Warum funktionieren "Neustart" und "Ausschalten" in Ubuntu 16.04 ohne Superuser-Berechtigungen?

10

Es gibt viele Fragen, warum shutdownund rebooterfordern Root-Rechte. Es gibt auch viele gute Antworten.

Aber es gibt etwas, das ich nicht verstehe : Wenn es eine sehr schlechte Idee ist, in einem Mehrbenutzersystem ohne Root-Rechte neu zu starten oder herunterzufahren ... warum ist dies dann in Ubuntu 16.04 möglich?

Wenn ich poweroffoder rebootin ein Terminal Entertippe und drücke, wird es tatsächlich heruntergefahren / neu gestartet!

Es ist für mich in Ordnung , wenn poweroffund rebootkeine root - Rechte benötigen ... aber warum tut suspendPrivilegien Notwendigkeit root? Wenn ich suspendein Terminal eingebe und drücke Enter, wird es nicht angehalten, sondern bleibt hängen ... und wenn ich renne pm-suspend, ist es erforderlich sudo.

Severus Tux
quelle
Dies sollte auch in älteren Versionen möglich sein, wenn Sie dies konfigurieren ( askubuntu.com/a/570969/158442 , beachten Sie die Aktionen für mehrere Sitzungen). Systemd macht dies jedoch standardmäßig. Auch unter Arch Linux zu sehen.
Muru

Antworten:

3

Für mich braucht beides poweroffnoch rebootkein Passwort unter Ubuntu 16.04.

Dazu musste ich jedoch beispielsweise ein Benutzerkonto mit dem Namen "foo" erstellen und dann als dieser Benutzer oder als ich selbst an localhost ssh. Wenn ich das mache, muss ich mich authentifizieren. Es scheint zu erkennen, dass ein anderer Benutzer angemeldet ist.

Zum Beispiel bekomme ich folgende Nachricht:

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'.

Vermutlich ist es "klug" genug, um zu erkennen, ob tatsächlich ein anderer Benutzer angemeldet ist.

(Ich stimme Ihnen zu, dass es schön wäre, sich immer als root zu authentifizieren. Manchmal ist kein anderer Benutzer angemeldet, aber im Hintergrund läuft ein wichtiger Prozess, der eine Art Berechnung durchführt.)

Edit: Hab es einfach selbst versucht. Wenn ich als foo angemeldet bin, muss ich mich authentifizieren (wer in der sudo-Gruppe ist). Wenn ich als ich selbst neu starte und foo noch angemeldet ist, muss ich systemctl reboot -iohne Passwort eingeben. Ich nehme an, der Unterschied besteht darin, dass das System weiß, dass ich in der Sudo-Gruppe bin.

Bearbeiten 2: Wie von Severus Tux festgestellt, systemctl suspend -iverhielt es sich ähnlich wie systemctl reboot -ibei der vorherigen Bearbeitung.

Strahl
quelle
Ah ... das hatte ich nicht versucht. Übrigens funktioniert der Befehl zum Anhalten auf Ihrem Computer? Ich muss sicherstellen, dass es ein Fehler ist
Severus Tux
Wenn ich zu localhost ssh und suspendiere, bin ich erfolglos. Ich erhalte "-bash: suspend: Anmelde-Shell kann nicht angehalten werden".
Ray
Wenn ich ein Fenster öffne und "Suspend" versuche, friert das Terminalfenster ein. :-) Kein gutes Zeichen ... Ich denke, das hat nichts damit zu tun. Trotzdem danke fürs fragen! Ich habe nie daran gedacht, es selbst zu versuchen, aber deine Frage hat mich neugierig gemacht. Ich habe immer noch die Angewohnheit, mit sudo neu zu starten ... habe diese subtile Änderung nicht bemerkt.
Ray
Vielen Dank. Wie Sie über den Neustart gesagt haben, funktioniert "systemctl suspend -i" auch gut.
Severus Tux
In Ordnung! Ich hätte wahrscheinlich alles mit einer Nachricht hinzufügen sollen, aber jedes Mal, wenn ich etwas versuchte, verursachte es einen Neustart, also musste ich speichern, was ich postete ...
Ray