ฉันใช้Trisquel GNU / Linux-Libre ซึ่งมาพร้อมกับGnome3 Flashback Desktop Environment
ฉันรู้ว่าฉันสามารถเรียกใช้แอปพลิเคชัน GUI เป็นรูทได้โดยsudo
& gksudo
แต่ฉันต้องการรู้ว่าฉันจะรันแอปพลิเคชัน GUI เป็นรูทด้วยความช่วยเหลือได้pkexec
อย่างไร
เมื่อฉันพยายามเรียกใช้gedit
(หรือแอปพลิเคชันอื่นเช่น:) nautilus
จากpkexec gedit
นั้นจะพร้อมท์ให้ใส่รหัสผ่านสำหรับการตรวจสอบสิทธิ์: -
หลังจากป้อนรหัสผ่านแล้วจะออกโดยมีข้อผิดพลาด: -
$ pkexec gedit
error: XDG_RUNTIME_DIR not set in the environment.
(gedit:6135): Gtk-WARNING **: cannot open display:
ดังนั้นดูเหมือนว่ามีบางอย่างผิดปกติกับสภาพแวดล้อมการแสดงผล
ฉันเคยลองด้วยDISPLAY=:0 pkexec gedit
แต่ไม่ได้ผล
ข้อมูลต่อไปนี้ได้จากman pkexec
: -
สภาพแวดล้อมที่โปรแกรมจะเรียกใช้จะถูกตั้งค่าเป็นสภาพแวดล้อมที่ปลอดภัยและรู้จักน้อยที่สุดเพื่อหลีกเลี่ยงการฉีดรหัสผ่าน LD_LIBRARY_PATH หรือกลไกที่คล้ายกัน นอกจากนี้ตัวแปรสภาพแวดล้อม PKEXEC_UID ถูกตั้งค่าเป็น id ผู้ใช้ของกระบวนการที่เรียกใช้ pkexec ดังนั้น pkexec จะไม่อนุญาตให้คุณเรียกใช้แอปพลิเคชัน X11 ในฐานะผู้ใช้รายอื่นเนื่องจากตัวแปรสภาพแวดล้อม $ DISPLAY และ $ XAUTHORITY ไม่ได้ถูกตั้งค่าไว้ ตัวแปรสองตัวเหล่านี้จะถูกเก็บไว้หากหมายเหตุประกอบ org.freedesktop.policykit.exec.allow_gui ในการดำเนินการถูกตั้งค่าเป็นค่าที่ไม่ว่างเปล่า สิ่งนี้เป็นสิ่งที่ท้อแท้และควรใช้สำหรับโปรแกรมดั้งเดิมเท่านั้น
ตอนนี้ฉันไม่รู้จะทำอย่างไรเพื่อจะทำสิ่งนี้ให้สำเร็จ
ดังนั้นความช่วยเหลือผมที่จะหาวิธีการเรียกใช้โปรแกรม GUI pkexec
เป็นรากโดยวิธีการของ หรือเป็นไปได้หรือไม่?
BTW แรงบันดาลใจจากgparted-pkexec
คำสั่งที่ทำงานได้ดี วิธีgparted
การใช้งานpkexec
?