Postępując zgodnie z instrukcją tutaj otrzymuję:
pkexec visudo
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ===
Authentication is needed to run `/usr/sbin/visudo' as the super user
Authenticating as: Thomas,,, (tuc) Password: polkit-agent-helper-1:
error response to PolicyKit daemon:
GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: No session for
cookie
==== AUTHENTICATION FAILED ===
Error executing command as another user: Not authorized
This incident has been reported.
Robię to przez ssh, ponieważ okno, na którym to robię, jest używane jako serwer muzyczny bez ekranu i jest raczej niedostępny. Stało się tak, kiedy zaktualizowałem system Ubuntu 14.04 do 16.04. Próbowałem skopiować plik sudoers z innej niedawnej instalacji 16.04, ale nie mogę tego zrobić z powodu pliku sudoers:
sudo mv ~/gyrf sudoers
>> /etc/sudoers: syntax error near line 36 <<<
>> /etc/sudoers: syntax error near line 37 <<<
>> /etc/sudoers: syntax error near line 38 <<<
>> /etc/sudoers: syntax error near line 39 <<<
>> /etc/sudoers: syntax error near line 40 <<<
>> /etc/sudoers: syntax error near line 41 <<<
>> /etc/sudoers: syntax error near line 42 <<<
>> /etc/sudoers: syntax error near line 43 <<<
>> /etc/sudoers: syntax error near line 44 <<<
>> /etc/sudoers: syntax error near line 45 <<<
>> /etc/sudoers: syntax error near line 46 <<<
>> /etc/sudoers: syntax error near line 47 <<<
>> /etc/sudoers: syntax error near line 48 <<<
>> /etc/sudoers: syntax error near line 49 <<<
sudo: parse error in /etc/sudoers near line 36
sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin
Czy powinienem wziąć pudełko ze strychu i spróbować, pkexec visudo
czy coś jest nie tak?
pkexec
tylko pozwala to na lokalnym użytkownik (nie użytkownika SSH zdalny) - tak więc powinien działać ze strychusudoers
odpowiednio do potrzeb. Zależy od tego, co najłatwiejsze.Odpowiedzi:
Natknąłem się na ten problem i przy pewnym kopaniu znalazłem działające rozwiązanie. Oryginalne rozwiązanie pochodzi z tego wydania github dla NixOS autorstwa EstalillaJ.
W pierwszej sesji uzyskaj PID bash, uruchamiając:
echo $$
W drugiej sesji uruchom agenta uwierzytelniania za pomocą:
pkttyagent --process (pid from step 2)
W pierwszej sesji uruchom:
pkexec visudo
W drugiej sesji otrzymasz monit o hasło. visudo rozpocznie się w pierwszej sesji.
źródło