Czytanie tych pytań i odpowiedzi:
przyniósł mi kolejny, który spowoduje problemy dla nowych użytkowników tego polecenia:
- Jak skonfigurować w
pkexec
celu łatwego użycia?
Na przykład podczas wykonywania następujących czynności:
(Otwieranie pliku w terminalu)
pkexec nano /etc/mysql/my.cnf
(Otwieranie pliku w GUI)
pkexec gedit /etc/mysql/my.cnf
Ostatni otrzymuje następujący błąd:
pkexec must be setuid root
To przyniosło mi następujące pytania:
Jak skonfigurować,
pkexec
aby tego uniknąć? Podobne do zachowaniasudo
/gksu
zachowania podczas robienia tego samego (proszą tylko o hasło).Jeśli ma to zastosowanie, jak powiedzieć mu, aby nie pytał o hasło po pierwszym zastosowaniu go do polecenia (lub włączając pierwsze polecenie, jeśli można je skonfigurować)?
Gdzie zapisać plik konfiguracyjny, jeśli jeszcze nie istnieje?
Czy istnieje aplikacja GUI do konfiguracji
pkexec
użytkowania (Policy Kit)?
źródło
Odpowiedzi:
Jak skonfigurować,
pkexec
aby uniknąć błędów podczas uruchamiania aplikacji GUI?Znalazłem dwa możliwe sposoby:
Jak widać, używając:
nie spowoduje błędu. Jest to normalne, ponieważ
man pkexec
w tej sprawie jest bardzo jasne:W rezultacie możesz utworzyć ( stały ) alias (jest to najprostszy sposób):
Lub (ponownie) jak
man pkexec
mówi:możesz utworzyć nowy plik strategii o
/usr/share/polkit-1/actions
nazwiecom.ubuntu.pkexec.gedit.policy
z następującym kodem xml wewnątrz, w którym najważniejsze jest ustawienieorg.freedesktop.policykit.exec.allow_gui
niepustej wartości:Jak powiedzieć, aby nie pytał o hasło po pierwszym zastosowaniu go do polecenia?
Z tych trzech znaczników Otoczenie:
allow_any
,allow_inactive
aallow_active
z pliku zasad, dostępne są następujące opcje:sudo
autoryzacja, trwa kilka minut.sudo
autoryzacja trwa kilka minut.Źródło: Polkit - Struktura - Działania
Tak więc, jeśli użyjesz opcji auth_admin_keep (lub, w stosownych przypadkach, auth_self_keep ),
pkexec
przez pewien czas nie poprosisz o hasło (domyślnie czas ten jest ustawiony na 5 minut, jak sprawdziłem). Wadą jest to, że ta rzecz ma zastosowanie tylko do jednego - tego samego - polecenia / aplikacji i jest ważna dla wszystkich użytkowników (chyba że zostanie ona zastąpiona w późniejszej konfiguracji).Gdzie zapisać plik konfiguracyjny, jeśli jeszcze nie istnieje?
Pliki konfiguracyjne lub definicje pakietu polkit można podzielić na dwa rodzaje:
Działania są zdefiniowane w plikach .policy XML znajdujących się w
/usr/share/polkit-1/actions
. Do każdej akcji przypisany jest zestaw domyślnych uprawnień (np. Musisz zidentyfikować się jako administrator, aby użyć akcji GParted). Wartości domyślne można zmienić, ale edytowanie plików działań NIE jest poprawnym sposobem. Nazwa tego pliku zasad powinna mieć ten format:Reguły autoryzacji są zdefiniowane w plikach .rules JavaScript. Można je znaleźć w dwóch miejscach: pakiety innych firm mogą z nich korzystać
/usr/share/polkit-1/rules.d
(choć niewiele, jeśli w ogóle) i/etc/polkit-1/rules.d
można je konfigurować lokalnie. Pliki .rules wyznaczają podzbiór użytkowników, odnoszą się do jednej (lub więcej) akcji określonych w plikach akcji i określają, z jakimi ograniczeniami te akcje mogą być podejmowane przez tego / tych użytkowników. Na przykład plik reguł może unieważnić domyślny wymóg uwierzytelniania wszystkich użytkowników przez administratora podczas korzystania z GParted, co oznacza, że określony użytkownik nie musi tego robić. Lub w ogóle nie wolno używać GParted.Źródło: Polkit - Struktura
Czy istnieje aplikacja GUI do konfiguracji
pkexec
użycia?Z tego co wiem, do tej pory (18.01.2014) nie istnieje coś takiego. Jeśli w przyszłości coś znajdę, nie zapomnę też zaktualizować tej odpowiedzi.
źródło
doublecmd
z ROOT PRIVELEGES, ponieważ musiałem eksportować środowiskaDISPLAY & XAUTHORITY
!! Po prostu małe pytania: czy jest jakaś różnica w pisaniu zasad lub po prostu uruchamianiu programu z poleceniem przezpkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY doublecmd
cały czas?pkexec
stanie się tak niebezpieczny, jakgksudo
gdyby działał przez taki alias? może zamiast aliasu może być skrypt z uprawnieniami administratora, może być bezpieczniejszy?auth_admin_keep
wydaje się nie działać. Jeśli uruchomię synaptic z GUI (co jest równoważnepkexec synaptic
), to za każdym razem pyta o hasło. Masz pomysł, dlaczego?Oprócz odpowiedzi Radu: nie użyłbym aliasu pkexec, ale gksudo .
Czemu? Nie musisz przepisywać skryptu.
Używam następującej konfiguracji:
cd /usr/local/bin
sudo gedit gksudo
(utwórz nowy plik o nazwie „gksudo”napisz następującą treść:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY $@
(nie zapomnij
$@
na końcu. Służy to do przekierowania wszystkich parametrów)Zapisz i wyjdź
chmod 755 gksudo
Z powodów związanych z dokumentacją napiszę, co próbowałem i nie wyszło:
~/.bash_aliases
ln -s pkexec [...]
)źródło