Warum wird sudo für einen Neustart im Terminal benötigt, jedoch nicht über die GUI?

10

Wenn ich meinen Computer einschalte und mich bei meinem Konto anmelde, kann ich tun, was ich will, und sogar meinen Computer herunterfahren oder Neustart sagen.

Aber wenn ich öffnen Terminal und versuchen , den Befehl auszuführen rebootoder shutdowndann brauche ich Root - Zugriff haben. Warum ist das so?

Ich kann mir einige Gründe vorstellen, warum diese Art von Verhalten für Sie wünschenswert ist, sshaber ich bin mir nicht sicher, oder ich kann irgendwann völlig fehlen.

Aman Deep Gautam
quelle
Überprüfen Sie dbusIhre grafische Umgebung (z. B. KDE oder Gnom).
Hennes
Ich denke, Sie können es auf jedem tun gui, ich möchte nur wissen, warum es solche Designmerkmale gibt.
Aman Deep Gautam

Antworten:

7

Es ist ein Sicherheitsmerkmal.

Wenn Sie die GUI verwenden, sitzen Sie (normalerweise) vor dem Computer, an dem Sie arbeiten. Wenn Sie jedoch ein Terminal verwenden, befinden Sie sich möglicherweise physisch auf einem Computer und verwenden remote einen anderen. Möglicherweise sind viele Terminalfenster für viele verschiedene Computer geöffnet . Was ist, wenn Sie versehentlich den Neustart falsch eingeben? Diese Aktion könnte von einer Unannehmlichkeit bis zu einer vollständigen Katastrophe reichen.

Durch die Verwendung von sudo werden Sie gezwungen, ein Passwort zu verwenden. Wenn Sie das falsche Passwort eingeben, erhalten Sie einen Fehler und hoffentlich stellen Sie fest, dass Sie sich am falschen Terminal befinden. Aus diesem Grund empfiehlt es sich, auf jedem Server ein anderes Root-Passwort zu haben.

Keltari
quelle
Ich dachte auch das gleiche, wollte aber nur sicherstellen, dass mir nichts fehlt .. :)
Aman Deep Gautam
1
Ich habe mehr als ein paar Unix-Administratoren gesehen, die den Computernamen aus ihren Shell-Eingabeaufforderungen entfernt haben, weil er zu viel Platz in Anspruch genommen hat und diese Entscheidung später bereut hat.
Keltari
Beachten Sie, dass dies nicht gerade ein Sicherheitsmerkmal im hier verstandenen Sinne ist. Als Unix gestartet wurde, gab es nur Konsolen (keine GUI). Und nur der Root-Benutzer hatte die Berechtigung zum Herunterfahren / Neustarten. Es ist immer noch so. Die GUI umgeht die Verwendung des + s-Bits in Dateien. Obwohl Sie diese in Ihrem Menü mit den folgenden Befehlen entfernen können: askubuntu.com/questions/53308/…
Alexis Wilke
Ich habe gerade gesehen, dass meine CentOS-VM behauptet, "Neustart" sei kein Befehl, als ich suals Root angemeldet war. Ich habe dort getippt sudo rebootund es hat funktioniert. Wenn ich direkt SSH als Root einsetze, rebootfunktioniert das einwandfrei. Es ist komisch.
Steven Lu
@StevenLu Überprüfen Sie Ihre Pfade. ("echo $ {PATH}") In einigen Fällen befindet sich möglicherweise kein "sbin" -Verzeichnis in Ihrem Pfad. In diesem Fall liegt die Verrücktheit möglicherweise nicht beim Neustartbefehl. Die Verwendung von "Welcher Neustart" kann ebenfalls zur Erklärung beitragen.
TOOGAM
0

Sie können normalerweise vom Terminal aus neu starten, indem Sie Strg + Alt + Entf drücken. Das funktioniert nicht aus der Ferne. (Ein Remote-Neustart von der GUI ohne Berechtigungen funktioniert ebenfalls nicht.)

Joshua
quelle