Dlaczego `reboot` i` poweroff` działa w systemie Ubuntu 16.04 bez uprawnień superużytkowników?


10

Jest wiele pytań na temat tego, dlaczego shutdowni rebootwymagają uprawnień roota. Dostępnych jest również wiele dobrych odpowiedzi.

Ale jest coś, czego nie rozumiem : jeśli możliwość ponownego uruchomienia lub zamknięcia bez uprawnień roota w systemie wielu użytkowników jest bardzo złym pomysłem ... to dlaczego jest to możliwe w Ubuntu 16.04?

Kiedy piszę powerofflub rebootw terminalu i wciskam Enter, to naprawdę wyłącza się / restartuje!

To jest w porządku dla mnie, kiedy poweroffi rebootnie wymaga uprawnień administratora ... ale dlaczego suspenduprawnień roota potrzeba? Kiedy piszę suspendterminal i uderzam Enter, nie zawiesza się, zamiast tego blokuje się ... a kiedy biegnę pm-suspend, wymaga sudo.


Powinno to być również możliwe w starszych wersjach, jeśli to skonfigurujesz, zrób to ( askubuntu.com/a/570969/158442 , zwróć uwagę na działania dla wielu sesji). Systemd robi to jednak domyślnie. Widoczny również w Arch Linux.
— muru

Odpowiedzi:


3

Dla mnie oba poweroffnie rebootpotrzebują hasła do Ubuntu 16.04.

Jednak aby tak się stało, musiałem utworzyć konto użytkownika o nazwie na przykład „foo”, a następnie ssh do localhost jako ten użytkownik lub ja. Kiedy to robię, muszę się uwierzytelnić. Wygląda na to, że rozpoznaje innego użytkownika zalogowanego.

Na przykład otrzymuję tę wiadomość:

User foo is logged in on sshd.
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl reboot -i'.

Przypuszczalnie jest wystarczająco „sprytny”, aby zdać sobie sprawę, gdy w rzeczywistości zalogowany jest inny użytkownik.

(Zgadzam się z Tobą, że byłoby miło zawsze uwierzytelniać się jako root. Czasami żaden inny użytkownik nie jest zalogowany, ale w tle wykonuje się ważny proces wykonujący jakieś obliczenia).

Edycja: Właśnie spróbowałem. Jeśli jestem zalogowany jako foo, muszę się uwierzytelnić (należący do grupy sudo). Jeśli zrestartuję się, gdy foo nadal jest zalogowany, muszę pisać systemctl reboot -ibez hasła. Zakładam, że różnica polega na tym, że system wie, że jestem w grupie sudo.

Edycja 2: Jak zauważył Severus Tux, systemctl suspend -izachował się podobnie jak systemctl reboot -iw poprzedniej edycji.


Ach ... nie próbowałem tego. BTW czy polecenie zawieszenia działa na twoim komputerze? Muszę się upewnić, że to błąd
— Severus Tux

Jeśli ssh do localhost i zawiesić, nie powiodło się. Pojawia się komunikat „-bash: suspend: nie można zawiesić powłoki logowania”.
— Ray

Jeśli otworzę okno i spróbuję „zawiesić”, okno terminalu zawiesza się. :-) Niezbyt dobry znak ... Myślę, że to nie ma związku. W każdym razie dzięki za pytanie! Nigdy nie myślałem o próbowaniu siebie, ale twoje pytanie mnie zainteresowało. Nadal mam zwyczaj restartowania z sudo ... nie zauważyłem tej subtelnej zmiany.
— Ray

Dziękuję Ci. Jak powiedziałeś o ponownym uruchomieniu, „systemctl suspend -i” również działa dobrze. rozważ dodanie tego do swojej odpowiedzi
— Severus Tux

Ok! Prawdopodobnie powinienem dodać to wszystko za pomocą jednej wiadomości, ale za każdym razem, gdy próbowałem czegoś, powodowało to ponowne uruchomienie, więc musiałem zapisać to, co publikowałem ...
— Ray
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.