Z następujących pytań
widzimy, że gksu nie będzie dłużej wspierane i nie będzie domyślnie instalowane od> = 13.04. Zamiast tego powinniśmy używać pkexec, który dobrze działa w aplikacjach nie graficznych, ale nie w aplikacjach w GUI:
pkexec gedit
podczas zastępowania gksu w pliku .desktop
EXEC=pkexec /usr/bin/gedit
lub gdy uruchamiam skrypt Pythona w celu uruchomienia aplikacji graficznej z uprawnieniami administratora, pojawia się następujący błąd:
>>>subprocess.Popen(['pkexec','gedit'])
** (gedit:3203): WARNING **: Could not open X display
Jak musiałbym ponownie napisać moje skrypty lub pliki .desktop w celu obsługi okna dialogowego uwierzytelniania i uruchomić aplikację jako root, jeśli nie powinienem mieć zależności od gksu?
sudo
którą widziałem, mówi coś o zintegrowaniu obsługi gksu w sudo. Inną rzeczą, na którą należy zwrócić uwagę, jest to, żesudo -A
według strony podręcznika uruchamia się (ewentualnie) graficzny login.Odpowiedzi:
Najpierw utwórz
.policy
plik akcji w/usr/share/polkit-1/actions/
. Nazwy plików akcji są zwyczajowo nazywane „hierarchicznymi dostawcami”, takimi jakcom.ubuntu.pkexec.gparted.policy
luborg.debian.apt.policy
Następnie wklej następującą treść:
Zamień na
[Short/Full Program Name/Path]
odpowiednie wartości, na przykładgedit
,gedit Text Editor
i/usr/bin/gedit
.<action id>
wartość nie musi być zgodna z wybraną nazwą pliku (a pojedynczy plik może zawierać wiele akcji), ale konwencjonalnie nazwa pliku jest prefiksem wszystkich jego akcji.Po zapisaniu pliku określony program będzie działał z X i GUI i tym podobne.
Kolejna poprawka wydaje się być: Dodaj następujący wiersz w /etc/pam.d/polkit-1:
źródło
Jeszcze jedna poprawka dla skryptów użytkownika: Określ odpowiednie zmienne środowiskowe w skrypcie.
Aby to zrobić, możesz użyć fragmentu takiego jak poniższy:
(w oparciu o funkcję ACPI
getXuser
)Jeśli uważasz, że
.desktop
plik nadal nie działa, możesz spróbować owinąć gopkexec commandline
wesh
fragmencie, np .:Ostatnim problemem jest znany błąd, najwyraźniej:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690339
https://bugzilla.xfce.org/show_bug.cgi?id=9373
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=650038
https://bugzilla.gnome.org/show_bug.cgi?id=686059
źródło