Dlaczego sudo jest potrzebne do ponownego uruchomienia w terminalu, ale nie z GUI?

10

Kiedy włączam komputer i loguję się na swoje konto, mogę robić, co chcę, a nawet wyłączać komputer lub mówić o ponownym uruchomieniu.

Ale jeśli mogę otworzyć zacisk i spróbuj uruchomić polecenie rebootlub shutdownwtedy muszę mieć dostęp do roota. Dlaczego tak jest?

Mogę wymyślić kilka powodów, dla których takie zachowanie dla ciebie może być pożądane, sshale nie jestem tego pewien, lub mogę całkowicie zgubić jakiś punkt.

Aman Deep Gautam
źródło
Sprawdź dbusi środowisko graficzne (np. KDE lub gnome).
Hennes,
Myślę, że możesz to zrobić na każdym gui, chcę tylko wiedzieć, dlaczego taka funkcja projektowania jest dostępna.
Aman Deep Gautam

Odpowiedzi:

7

Jest to funkcja bezpieczeństwa.

Podczas korzystania z GUI (zwykle) siedzisz przed komputerem, nad którym pracujesz. Jednak podczas korzystania z terminala możesz znajdować się fizycznie na jednym komputerze, a zdalnie na innym. Możesz mieć wiele okien terminali otwartych na wiele różnych komputerów. Co jeśli przypadkowo wpiszesz restart w niewłaściwym? Działanie to może obejmować niedogodności lub całkowitą katastrofę.

Używanie sudo zmusza cię do użycia hasła. Jeśli wpiszesz błędne hasło, pojawi się błąd i mam nadzieję, że zdasz sobie sprawę, że jesteś w niewłaściwym terminalu. Dlatego dobrą praktyką jest stosowanie innego hasła roota na każdym serwerze.

Keltari
źródło
Też tak myślałem, ale chciałem się upewnić, że niczego mi nie brakuje. :)
Aman Deep Gautam
1
Widziałem więcej niż kilku administratorów systemu Unix usuwających nazwę komputera z podpowiedzi powłoki, ponieważ zajęło to dużo miejsca i później żałuje tej decyzji.
Keltari,
Należy pamiętać, że nie jest to dokładnie funkcja bezpieczeństwa w rozumieniu tutaj rozumianym. Kiedy Unix się uruchomił, masz tylko konsole (bez GUI). I tylko użytkownik root miał uprawnienia do zamknięcia / ponownego uruchomienia. Tak jest nadal. GUI pomija użycie bitu + s w plikach. Chociaż możesz usunąć te z menu za pomocą następujących poleceń: askubuntu.com/questions/53308/...
Alexis Wilke,
Właśnie zobaczyłem, że moja maszyna Wirtualna CentOS twierdzi, że „restart” nie był poleceniem, gdy byłem su-ed jako root. Pisałem sudo reboottam i działało. Kiedy bezpośrednio SSH w jako root, rebootdziała dobrze. To dziwne.
Steven Lu
@StevenLu Sprawdź swoje ścieżki. („echo $ {PATH}”) Możliwe, że w niektórych przypadkach katalog „sbin” nie znajduje się na twojej ścieżce. W takim przypadku dziwność może nie wynikać z polecenia restartu. Użycie opcji „które restartuje” może również pomóc w wyjaśnieniu.
TOOGAM
0

Zwykle można ponownie uruchomić komputer z terminala, naciskając Ctrl + Alt + Del. To nie działa zdalnie. (Ponowne uruchomienie zdalne z GUI bez uprawnień również nie działa).

Jozuego
źródło