`sudo reboot` vs` reboot` - was ist der Unterschied?

60

Ich habe kürzlich herausgefunden, dass rebootdas genauso gut funktioniert sudo reboot, wie ich es beurteilen kann. In vielen Fällen sehe ich jedoch Leute, die dazu sagen sudo reboot. Warum ist das? Sind sie gleich und nur persönliche Vorlieben? Oder sind sie anders? Tut sudo rebootmehr als reboot?

Zeke Egherman
quelle
1
Ein Neustart des Systems durch den normalen Benutzer klingt nicht einmal logisch. Das Ändern des Runlevels des Root-Prozesses (init) sollte nur durch den Root und nur durch den Root-Benutzer möglich sein. Sie können von keinem anderen Benutzer auf Dateisystemverknüpfungen von sysrq zugreifen. ABER ! Sie können Ihr Linux mit den sysrq Schlüsseln neusudo
starten
sudoist die Abkürzung für "Super-User Do". Es hat keine Auswirkung auf den Befehl selbst (dieses Wesen reboot), es bewirkt lediglich, dass er als Superuser und nicht als Sie ausgeführt wird. Es wird verwendet, um Dinge zu tun, für die Sie möglicherweise keine Berechtigung haben, die jedoch nichts daran ändern, was getan wird. Wenn Sie bereits die Berechtigung zum Ausführen haben reboot, können Sie einfach ausführen reboot.
Lee Crocker
Dazu ist traditionell root erforderlich. Alte Gewohnheiten brechen schwer.
Thorbjørn Ravn Andersen
6
@SvetlanaLinuxenko> Neustart des Systems durch den normalen Benutzer klingt nicht einmal logisch Der Benutzer, der an der Konsole sitzt, kann einfach den Netzschalter drücken oder den Stecker ziehen, wenn er nicht sauber neu gestartet werden soll.
Kaz
Bei vielen anderen Distributionen können Sie keinen Neustart durchführen, wenn Sie nicht als Root angemeldet sind.
user253751

Antworten:

114

Auf Ubuntu 14.10 und älter sudoist erforderlich.

Die Einführung von Systemd in 15.04 veränderte die Art shutdownund Weise, wie Ubuntu vorgeht, und reboot:

  1. Wenn ein einzelner Benutzer angemeldet ist, sudoist dies nicht erforderlich. Wenn mehr als ein Benutzer angemeldet ist, sudoist dies erforderlich.

  2. Anwendungen können shutdownund hemmen reboot. Diese Hemmungen überschreiben Sie mit sudo.

  3. Ein einzelner über angemeldeter Benutzer sshbenötigt noch sudo.

user535733
quelle
Ich denke, dies schließt auch einen einzelnen Benutzer ein, der mehrfach angemeldet ist.
McKenzm
6
Es hat nichts mit der Anzahl der verbundenen Benutzer zu tun. Die Möglichkeit zum Neustart ohne Verwendung von sudohängt davon ab, ob Sie sich an der Konsole des Computers befinden. Wenn Sie einen Computer mit SSH starten, können Sie ihn auch dann nicht neu starten sudo, wenn Sie der einzige angemeldete Benutzer sind. Wenn Sie sich hingegen an der Konsole befinden, können Sie den Computer sudoauch dann neu starten , wenn andere Benutzer angemeldet sind aus der Ferne verbunden.
Dave Sherohman
1
@ DaveSherohman: Das muss nicht unbedingt zutreffen - systemd verwendet weiterhin separate Polkit-Aktionen, je nachdem, ob Sie die einzige Person sind, die angemeldet ist, oder ob es mehrere gibt. Das heißt, die Distribution (oder der Sysadmin) kann sehr leicht dazu führen, dass sie sich anders verhalten.
Grawity
21

Wenn ich (als normaler Benutzer) auf meinem 14.04-Computer tippe reboot, erhalte ich

reboot: Need to be root

Das ist der unterschied

Wie Terrance in den Kommentaren hervorhob, funktioniert es auf späteren Systemen anders als auf meinen. Sie sehen also wahrscheinlich alte Artikel und / oder Benutzer (wie ich), die sich an das Tippen gewöhnt haben sudo reboot!

Bio-Marmor
quelle
Interessant! Was ich mich jetzt frage, ist, ob sich zwischen 14.04 und 17.10 etwas geändert hat, um es so zu machen, dass Sie nicht root sein müssen reboot, oder ob es andere Faktoren auf meinem System gibt, die das ändern.
Zeke Egherman
3
@ZekeEgherman Ich denke tatsächlich, der Unterschied ist aufgetreten, als sie für die Befehle von Upstart zu Systemd gewechselt haben. Wenn ich mir meinen Neustartbefehl ansehe, zeigt er als Link auf /bin/systemctl. Sie können dies überprüfen, indem Sie Folgendes eingeben ls -al $(which reboot).
Terrance
@terrance, ich sehe auch den Link zu /bin/systemct1, welche Version hast du?
Zeke Egherman
Das ist interessant! Ich habe es gerade auf meiner virtuellen Maschine mit Vorabversion 18.04 ausprobiert, und es funktioniert, wie Sie sagen. @Terrance, ich denke du solltest die richtige Antwort aufschreiben.
Bio-Marmor
@ZekeEgherman 16.04. Ubuntu wechselte am 15.04 auf Systemd. 14.04 wäre also immer noch Upstart oder initd, wenn du es so nennen willst.
Terrance
9

sudo rebootwird in tutorials / How-Tos für verwendete Kompatibilität Gründe

Während reboot könnte funktionieren

  • wenn du root bist oder
  • Wenn Sie auf einem Host mit systemd und sind
  • Wenn keine Anwendungen einen Neustart blockieren

sudo rebootwird " immer " * funktionieren, unabhängig von

  • ob du root bist
  • Gibt es andere angemeldete Benutzer?
  • ob es blockierende anwendungen gibt
  • ob init ist systemd, System V, Upstart, was auch immer

* Nun, es wird sicherlich versuchen - kurz bevor es einige Kernel-Prozesse gibt, die blockieren / sich schlecht verhalten, sollte es funktionieren.

Robert Riedl
quelle
Es wird immer funktionieren, wenn sudo installiert ist.
Ave
7

Wenn ich häufig reboottippe, kann ich aufgrund von Chrome-Hemmnissen beim Ansehen von YouTube und anderen geöffneten Tabs keine Eingaben machen. Also bin ich gezwungen - sudo rebooteinen größeren Hammer zu benutzen .

Dies ist in Ubuntu 16.04

WinEunuuchs2Unix
quelle
4

Vielen Dank für das Gespräch, ich bin froh, das jetzt zu verstehen!

Wie Terrance bereits erwähnte, wechselten sie in Version 15.04 für die Befehle von Upstart zu Systemd. Diese Änderung bedeutet, dass rebootkeine Root-Rechte mehr erforderlich sind.

sudo rebootEs gibt einige mögliche Gründe, warum die * nix-Community dies anweist :

  • Gewohnheit - Die Leute waren so daran gewöhnt, sudo rebooteinen Neustart durchführen zu müssen, dass sie dies weiterhin tun, obwohl dies nicht erforderlich ist
  • Nicht aktualisierte Benutzer - Die Benutzer sudo reboot, die dazu auffordern, verwenden Versionen von Ubuntu niedriger als 15.04 oder andere Distributionen, die Upstart für Befehle verwenden.

  • Kompatibilität - Dies scheint mir am plausibelsten zu sein: Die Leute geben Anweisungen, sudo rebootda ein Neustart auf allen * nix-Systemen garantiert ist, egal was passiert.

Zusätzlicher Hinweis: aus der Antwort von user535733 :

Die Einführung von systemd in 15.04 änderte die Art und Weise, wie Ubuntu das Herunterfahren und den Neustart handhabt:

  1. Wenn ein einzelner Benutzer angemeldet ist, sudoist dies nicht erforderlich. Wenn mehr als ein Benutzer angemeldet ist, sudoist dies erforderlich.

  2. Anwendungen können das Herunterfahren und den Neustart verhindern. Diese Hemmungen überschreiben Sie mit sudo.

Zeke Egherman
quelle