Tôi đang sử dụng Trisquel GNU / Linux-Libre đi kèm với Môi trường máy tính để bàn Gnome3 Flashback .
Tôi biết rằng tôi có thể chạy ứng dụng GUI với quyền root sudo
& & gksudo
tôi muốn biết rằng Làm cách nào để chạy ứng dụng GUI với quyền root với sự trợ giúp của pkexec
?
Khi tôi cố chạy gedit
(hoặc bất kỳ ứng dụng nào khác như nautilus
:) pkexec gedit
thì nó sẽ nhắc mật khẩu để xác thực: -
Sau khi nhập mật khẩu, nó thoát với lỗi: -
$ pkexec gedit
error: XDG_RUNTIME_DIR not set in the environment.
(gedit:6135): Gtk-WARNING **: cannot open display:
Vì vậy, có vẻ như một cái gì đó đang đi sai với môi trường hiển thị.
Tôi cũng đã thử với DISPLAY=:0 pkexec gedit
nhưng không hoạt động.
Thông tin sau đây có sẵn từ man pkexec
: -
Môi trường mà PROGRAM sẽ chạy nó, sẽ được đặt thành một môi trường an toàn và được biết đến tối thiểu để tránh việc tiêm mã thông qua LD_LIBRARY_PATH hoặc các cơ chế tương tự. Ngoài ra, biến môi trường PKEXEC_UID được đặt thành id người dùng của quá trình gọi pkexec. Do đó, pkexec sẽ không cho phép bạn chạy các ứng dụng X11 với tư cách là một người dùng khác vì các biến môi trường $ DISPLAY và $ XAUTHORITY không được đặt. Hai biến này sẽ được giữ lại nếu chú thích org.freedesktop.policykit.exec.allow_gui trên một hành động được đặt thành giá trị không trống; tuy nhiên, điều này không được khuyến khích và chỉ nên được sử dụng cho các chương trình cũ.
Bây giờ tôi không biết phải làm gì để thực hiện điều này.
Vì vậy, hãy giúp tôi tìm hiểu Cách chạy các ứng dụng GUI bằng root bằng phương tiện pkexec
. Hay điều này có thể hay không?
BTW, Lấy cảm hứng từ gparted-pkexec
lệnh hoạt động tốt. gparted
Sử dụng như thế nào pkexec
?