Warum funktionieren „Reboot“ und „Poweroff“ in Ubuntu 16.04 ohne Superuser-Berechtigungen?

Warum funktionieren „Reboot“ und „Poweroff“ in Ubuntu 16.04 ohne Superuser-Berechtigungen?

Es gibt viele Fragen zum Warum shutdownund rebootzur Notwendigkeit von Root-Rechten. Es gibt auch viele gute Antworten.

Aber es gibt etwas, das ich nicht verstehe: Wenn ein Neustart oder Herunterfahren ohne Root-Rechte in einemMehrbenutzerSystem ist einsehr schlechtIdee ... warum ist das dann in Ubuntu 16.04 möglich?

poweroffWenn ich oder rebootin ein Terminal eingebe und drücke Enter, wird es tatsächlich heruntergefahren bzw. neu gestartet!

Für mich ist es ok, wenn poweroffund rebootkeine Root-Rechte erfordern ... aber warum werden Root-Rechte benötigt? Wenn ich in ein Terminal suspendtippe und drücke , wird es nicht angehalten, sondern bleibt hängen ... und wenn ich ausführe , erfordert es .suspendEnterpm-suspendsudo

Antwort1

Bei mir ist unter Ubuntu 16.04 weder ein Passwort noch eine Anmeldung erforderlich poweroff.reboot

Damit dies jedoch möglich ist, musste ich beispielsweise ein Benutzerkonto mit dem Namen „foo“ erstellen und dann entweder als dieser Benutzer oder als ich selbst per SSH auf den lokalen Host zugreifen. Dabei muss ich mich authentifizieren. Es scheint zu erkennen, dass ein anderer Benutzer angemeldet ist.

Ich erhalte beispielsweise diese Meldung:

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 „intelligent“ genug, um zu erkennen, wenn 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 irgendeine Berechnung durchführt.)

Bearbeiten: Habe es gerade selbst ausprobiert. Wenn ich als foo angemeldet bin, muss ich mich authentifizieren (wer ist in der Sudo-Gruppe). Wenn ich als ich selbst neu starte und foo noch angemeldet ist, muss ich systemctl reboot -iohne Passwort tippen. Ich nehme an, der Unterschied besteht darin, dass das System weiß, dass ich in der Sudo-Gruppe bin.

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

verwandte Informationen