การแก้ไขปัญหา ปรากฏขึ้น ที่จะอธิบายใน โพสต์นี้ บนเธรด Synaptic ล้มเหลวในการดำเนินการเว็บเบราว์เซอร์เริ่มต้น ข้อผิดพลาดอินพุต/เอาต์พุต (โปรดทราบว่าฉันได้แก้ไขลิงก์เพื่อให้บริบทชัดเจนขึ้น และแก้ไขลิงก์เสียที่สามแล้ว):
ภายในซินแนปติก เมื่อคลิก
ตัวจัดการสำหรับลิงค์หน้าแรกคือ
RGPkgDetailsWindow::cbOpenHomepage()
(ดู rgpkgdetails.cc - สาย
201) ที่โทร GetBrowserCommand()
(ดู rgutils.cc - บรรทัดที่ 114)
และเรียกใช้ /usr/bin/xdg-เปิด
(เป็นเชลล์สคริปต์ที่แก้ไขได้ง่าย)
(ดู xdg-open.in - บรรทัดที่ 432)
ถ้า [ -n "$BROWSER" ]; แล้ว
open_envvar "$1"
ไฟ
การแพตช์ที่นี่จะป้องกันสิ่งใดก็ตามที่ส่งผ่าน xdg-เปิด
(ไม่ใช่แค่ซินแนปติก)
ถ้า [ -n "$BROWSER" ]; แล้ว
ถ้า [[ $EUID -eq 0 ]]; แล้ว
open_envvar "su -c ${SUDO_USER} $1"
อื่น
open_envvar "$1"
ไฟ
ไฟ
เหตุผลเบื้องหลังนี้ได้รับการอธิบายอย่างดีโดย โพสต์นี้ ในหัวข้อเดียวกัน:
ความลึกลับของการสังเกตที่คุณกำลังเผชิญอยู่นั้นเกิดจากการรักษาความปลอดภัย
การตั้งค่าและผู้ใช้ที่แตกต่างกันที่เกี่ยวข้อง
พื้นหลัง: เมื่อคุณเริ่ม synaptic แอป GUI จะทำงานในฐานะผู้ใช้รูท
ปัญหา: เมื่อคุณคลิกลิงก์เพื่อเปิดเว็บเบราว์เซอร์ synaptic
โอนสายเพื่อเปิดเว็บเบราว์เซอร์ในฐานะผู้ใช้รูท นี้มีบางอย่าง
ความหมายที่เกี่ยวข้องกับความปลอดภัยและเสถียรภาพของระบบ
เพิ่มเติม : สามารถเริ่มต้น Synaptic ได้หลายวิธีเพื่อเรียกใช้ในฐานะผู้ใช้
รูท การโทรที่แตกต่างกันเหล่านั้นเกี่ยวข้องกับความปลอดภัยของระบบที่แตกต่างกัน
ข้อ จำกัด (เรียกผ่าน pkexec, gksu หรือ gksudo ก็ได้
ขึ้นอยู่กับว่าการเรียกใช้ synaptic เริ่มต้นอย่างไร เช่น จากเมนู จาก
MX-updater หรืออย่างอื่น) การตั้งค่าเบราว์เซอร์เริ่มต้นภายใน
แอปพลิเคชันที่ต้องการหรือทางเลือกผ่านเดเบียน
กลไกไม่ได้เรียงลำดับปัญหาจากสิ่งเหล่านั้น
ข้อจำกัดด้านความปลอดภัย
สรุป: เนื่องจากตอนนี้วิธีที่ง่ายที่สุดคือการคัดลอกลิงก์และ
เปิดเบราว์เซอร์ด้วยตนเอง นี้จำเป็นต้องได้รับการพิจารณาต่อไป
ให้วิธีการโทรที่เสถียรและปลอดภัยจากแอป GUI (ทำงานเป็น
รูทผู้ใช้) เว็บเบราว์เซอร์ของผู้ใช้ภายในสภาพแวดล้อมผู้ใช้
นี่อาจเป็นที่น่าสังเกตว่าแพทช์อาจเป็นได้ แก้ไขเพิ่มเติมตามที่ โพสต์สุดท้าย:
ความคิดที่ดีที่จะ "ปลอดภัย" xdg-เปิด
อีกหน่อยก็น่าจะตรวจสอบการเรียกใช้แอปรูททุกประเภทเช่น su-to-root, gksu, gksudo และ pkexec เนื่องจากเรามี f.i. ในเมนูการโทร synapic-pkexec