`sudo reboot` vs` reboot` - jaka jest różnica?

60

Niedawno dowiedziałem się, że rebootdziała tak samo dobrze sudo reboot, jak mogę powiedzieć. Jednak w wielu przypadkach widzę, że ludzie mówią sudo reboot. Dlaczego to? Czy są takie same i tylko osobiste preferencje? A może są inni? Czy sudo rebootrobi więcej niż reboot?

Zeke Egherman
źródło
1
Ponowne uruchomienie systemu przez zwykłego użytkownika nawet nie brzmi logicznie. Zmiana poziomu uruchamiania procesu root (init) powinna być możliwa dla użytkownika root i tylko dla użytkownika root. Nie możesz nawet uzyskać dostępu do skrótów systemu plików sysrq przez żadnego innego użytkownika. ALE ! Możesz ponownie uruchomić Linuksa za pomocą sysrq kluczy , nie wymaga sudo:)
Svetlana Linuxenko
sudojest skrótem od „Super-user Do”. Nie ma to wpływu na samo polecenie (to jest reboot), powoduje jedynie, że działa ono jako superużytkownik, a nie ty. Służy do robienia rzeczy, do których w innym przypadku nie miałbyś uprawnień, ale nie zmienia tego, co zostanie zrobione. Jeśli masz już uprawnienia do uruchamiania reboot, to dobrze, po prostu uruchom reboot.
Lee Crocker,
To tradycyjnie wymaga rootowania. Stare nawyki przełamują się.
Thorbjørn Ravn Andersen
6
@SvetlanaLinuxenko> Ponowne uruchomienie systemu przez zwykłego użytkownika nawet nie brzmi logicznie . Użytkownik siedzący przy konsoli może po prostu nacisnąć przycisk zasilania lub wyciągnąć wtyczkę, jeśli nie pozwolimy im na czysty restart.
Kaz
Wiele innych dystrybucji nie pozwoli na ponowne uruchomienie komputera, jeśli nie jesteś rootem.
user253751

Odpowiedzi:

114

W systemie Ubuntu 14.10 i starszych sudojest wymagany.

Wprowadzenie Systemd w 15.04 zmieniło sposób, w jaki Ubuntu obsługuje shutdowni reboot:

  1. Gdy pojedynczy użytkownik jest zalogowany, sudonie jest to konieczne. Gdy jest zalogowany więcej niż jeden użytkownik, jest sudoto wymagane.

  2. Aplikacje mogą blokować shutdowni reboot. Zastępujesz te za pomocą sudo.

  3. Pojedynczy użytkownik zalogowany za pośrednictwem sshnadal wymaga sudo.

użytkownik535733
źródło
Myślę, że dotyczy to również jednego użytkownika zalogowanego w wielu przypadkach.
mckenzm
6
Nie ma to nic wspólnego z liczbą podłączonych użytkowników. Możliwość ponownego uruchomienia bez użycia sudozależy od tego, czy jest się na konsoli komputera. Jeśli wpiszesz ssh na maszynie, nadal nie będziesz mógł zrestartować go bez sudo, nawet jeśli jesteś jedynym zalogowanym użytkownikiem. I odwrotnie, jeśli jesteś przy konsoli, nadal możesz zrestartować się bez, sudonawet jeśli inni użytkownicy są połączone zdalnie.
Dave Sherohman
1
@DaveSherohman: To niekoniecznie prawda - systemd nadal stosuje osobne akcje polkit w zależności od tego, czy jesteś jedyną zalogowaną osobą, czy też jest ich wiele. Oznacza to, że dystrybucja (lub sysadmin) może bardzo łatwo sprawić, że zachowają się inaczej.
grawitacja
21

Na moim komputerze 14.04, kiedy (jako zwykły użytkownik) rebootpiszę, otrzymuję

reboot: Need to be root

To jest różnica.

Jak zauważył Terrance w komentarzach, działa on inaczej na późniejszych systemach niż mój. Prawdopodobnie więc widzisz stare wpisy i / lub użytkowników (takich jak ja), którzy przywykli do pisania sudo reboot!

Marmur Organiczny
źródło
Ciekawy! Zastanawiam się teraz, czy coś zmieniło się między 14.04 a 17.10, aby nie trzeba było rootować reboot, lub jeśli w moim systemie występują inne czynniki, które to zmieniają.
Zeke Egherman
3
@ZekeEgherman Wydaje mi się, że różnica nastąpiła, gdy zmieniono z Upstart na Systemd dla poleceń. Kiedy patrzę na moje polecenie ponownego uruchomienia, wskazuje to jako link do /bin/systemctl. Możesz sprawdzić swoje, wpisując ls -al $(which reboot).
Terrance
@terrance, widzę też link do /bin/systemct1jakiej wersji jesteś?
Zeke Egherman
To jest interesujące! Właśnie wypróbowałem to na mojej wirtualnej maszynie przedpremierowej 18.04 i działa tak, jak mówisz. @Terrance, myślę, że powinieneś napisać prawdziwą odpowiedź.
Marmur Organiczny
@ZekeEgherman 16.04. Ubuntu przeszedł na Systemd o 15.04. Tak więc 14.04 nadal byłby wtedy Upstart lub inicjowany, jeśli tak chcesz to nazwać.
Terrance
9

sudo rebootjest używany w samouczkach / poradnikach ze względu na kompatybilność

Chociaż reboot może działać

  • jeśli jesteś rootem lub
  • jeśli korzystasz z hosta systemd i
  • jeśli żadna aplikacja nie blokuje ponownego uruchomienia

sudo rebootbędzie „ zawsze ” * działać, niezależnie od

  • czy jesteś rootem
  • czy są zalogowani inni użytkownicy
  • czy istnieją aplikacje blokujące
  • czy init jest systemd, System V, Upstart, cokolwiek

* Cóż, na pewno spróbuje - poza tym niektóre procesy jądra, które blokują / źle działają, powinny działać.

Robert Riedl
źródło
Zawsze będzie * działać… jeśli sudo jest zainstalowane.
Ave
7

Dla siebie wiele razy, jeśli piszę reboot, nie pozwoli mi to z powodu inhibitorów z Chrome podczas oglądania YouTube i innych otwartych kart. Więc jestem zmuszony użyć - sudo rebootwiększego młotka.

To w Ubuntu 16.04

WinEunuuchs2Unix
źródło
4

Dzięki za dyskusję, cieszę się, że teraz to rozumiem!

Jak wspomniał Terrance , w wersji 15.04 zmienili polecenia z Upstart na Systemd. Ta zmiana oznacza, że rebootnie wymaga już uprawnień administratora.

Jeśli chodzi o to, dlaczego społeczność * nix wydaje takie instrukcje sudo reboot, istnieje kilka potencjalnych powodów:

  • Nawyk - ludzie byli tak przyzwyczajeni do sudo rebootponownego uruchamiania, że ​​nadal to robią, mimo że nie jest to potrzebne
  • Niezaktualizowani użytkownicy - osoby instruujące sudo rebootsą w wersjach Ubuntu niższych niż 15.04 lub innych dystrybucjach, które używają Upstart do poleceń.

  • Kompatybilność - wydaje mi się to najbardziej prawdopodobne: ludzie instruują, sudo rebootponieważ gwarantuje, że uruchomi się ponownie we wszystkich systemach * nix, bez względu na wszystko.

Uwaga dodatkowa: od user535733 „s odpowiedź :

Wprowadzenie systemud w 15.04 zmieniło sposób, w jaki Ubuntu obsługuje zamykanie i restart:

  1. Gdy pojedynczy użytkownik jest zalogowany, sudonie jest to konieczne. Gdy jest zalogowany więcej niż jeden użytkownik, jest sudoto wymagane.

  2. Aplikacje mogą hamować zamykanie i ponowne uruchamianie. Zastępujesz te za pomocą sudo.

Zeke Egherman
źródło