Tại sao pkexec được ưa thích hơn gksudo cho các ứng dụng đồ họa?


10

Vui lòng cung cấp tài liệu Ubuntu bác bỏ điều này: https://help.ubfox.com/community/RootSudo Tại sao, trên hệ thống 13.04 được cập nhật đầy đủ của tôi, pkexec không hoạt động?

$ pkexec gedit somefile.txt
No protocol specified

** (gedit:13135): WARNING **: Could not open X display
Cannot open display: 
Run '/usr/bin/gedit --help' to see a full list of available command line options


pkexec không phải là một sự thay thế cho gksu. Nó không dành cho bạn để tự chạy như vậy.
psusi

2
Tôi đã không hỏi về cũng không đề cập đến gksu.
ớt555

Một câu trả lời rất hay về việc tạo pkexecGUI chạy mà không cần cấu hình: Askubfox.com/a/332847/89385
akostadinov

Cài đặt chính sách-1-gnome. Xem ở đây để biết chi tiết và giải thích.
dùng303371

Câu trả lời:


7

Tại sao nó không hoạt động?

Theo mặc định pkexec, không cho phép bạn chạy các ứng dụng đồ họa (X11). Từ trang người đàn ông:

 The environment that PROGRAM will run it, will be set to a minimal
 known and safe environment in order to avoid injecting code through
 LD_LIBRARY_PATH or similar mechanisms. In addition the PKEXEC_UID
 environment variable is set to the user id of the process invoking
 pkexec.
     As a result, pkexec will not allow you to run X11 applications
     as another user since the $DISPLAY and $XAUTHORITY environment
     variables are not set.
 These two variables will be retained if the
 org.freedesktop.policykit.exec.allow_gui annotation on an action is set
 to a nonempty value; this is discouraged, though, and should only be
 used for legacy programs.

Như đã nêu trong trang người đàn ông, bạn có thể làm cho nó hoạt động mặc dù tôi thực sự không biết điều này có nguy hiểm hay được khuyến nghị không .

Để bật gedit chẳng hạn, bạn có thể tạo /usr/share/polkit-1/actions/com.ubuntu.gedit.policyvới nội dung sau:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">
<policyconfig>
  <vendor>gedit</vendor>
  <vendor_url>gedit</vendor_url>
  <icon_name>accessories-text-editor</icon_name>
  <action id="org.freedesktop.policykit.pkexec.gedit">
   <description>Run "gedit"</description>
   <message>Authentication is required to run Text Editor</message>
   <defaults>
     <allow_any>auth_admin</allow_any>
     <allow_inactive>auth_admin</allow_inactive>
     <allow_active>auth_admin</allow_active>
   </defaults>
     <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/gedit</annotate>
     <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
   </action>  
</policyconfig>

Sau đó pkexec geditnên làm việc như mong đợi:

nhập mô tả hình ảnh ở đây

Như bạn có thể đoán, điều này sẽ chỉ làm cho geditcông việc. Về lý thuyết, nếu bạn đã thêm allow_guivào "org.freedesktop.policykit.exec" (hành động mặc định) thì nó sẽ hoạt động cho tất cả các ứng dụng, nhưng trong các thử nghiệm của tôi, tôi đã nhận được kết quả tương tự như của bạn.

Tại sao pkexec được ưa thích?

Ở đây bạn có thể tìm thấy một cuộc thảo luận về những điểm mạnh của pkexec.


3
Vì vậy, đối với các ứng dụng đồ họa, gksudo có được ưa thích và KHÔNG pkexec không?
ớt555

1
Tôi đoán vậy. Nếu gksudocó sẵn, việc sử dụng nó sẽ dễ dàng hơn rất nhiều thay vì tạo các hành động đơn lẻ cho mỗi ứng dụng bạn cần sử dụng (nếu không có cách "toàn cầu" để thực hiện).
Salem

1
@ Salem- Sau đó, tôi tự hỏi tại sao câu trả lời của tôi đã được chỉnh sửa và chấp thuận sử dụng pkexec khi nó không được sử dụng cho các ứng dụng đồ họa và, như bạn có thể đọc, không hoạt động. Askubfox.com/questions/313619/ Khăn Phải có điều gì đó tôi không hiểu.
ớt555

@ chili555 Nếu chỉnh sửa đó là điều thúc đẩy câu hỏi của bạn, bạn nên hỏi điều này tại Meta. Trong 13.04, bạn phải cài đặt gksudohoặc định cấu hình pkexec(bạn cũng có thể sử dụng sudo -inhưng điều đó sẽ không hoạt động với Alt + F2 hay còn gọi là "Chạy"). Tôi tìm thấy NHIỀU đầu tiên dễ dàng hơn. Nếu bất cứ ai nghĩ khác ... Đối với tôi có vẻ sai khi đề xuất một cái gì đó sẽ không hoạt động như dự định, nhưng tôi có thể đang thiếu một cái gì đó ...
Salem

Cả bạn và tôi. Tôi sẽ hỏi trong Meta.
ớt555
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.