Wie verhindere ich den Zugriff zum Herunterfahren, jedoch nicht zum Neustarten?

Wie verhindere ich den Zugriff zum Herunterfahren, jedoch nicht zum Neustarten?

Ich habe einen Ubuntu-PC, der als Plex-Server läuft. Wie kann ich erreichen, dass niemand den Computer herunterfahren kann, sondern der Benutzer nur den Computer neu starten kann? Ich weiß, dass das unter Windows möglich ist, aber ich frage mich, ob das auch unter Ubuntu möglich ist.

Antwort1

Der effektivste Weg hierfür wäre, das Ausschaltziel folgendermaßen zu maskieren:

sudo systemctl mask poweroff.target

Jetzt ist es für niemanden mehr möglich, die Maschine herunterzufahren, ohne den Netzschalter gedrückt zu halten oder die Maschine physisch von der Stromversorgung zu trennen.

Der Neustart wird durch diese Maske nicht beeinflusst.


Für den Fall, dass Sie die Maschine in Zukunft zur Wartung oder zum Austausch der Hardware herunterfahren müssen, können Sie unmaskdas Ziel haben:

sudo systemctl unmask poweroff.target

Antwort2

Wenn Sie nur Benutzern ohne Administratorrechte die Berechtigung zum Neustart erteilen möchten,Sie können einen Eintrag für sie in Ihrer sudoersDatei hinzufügen fürreboot(und/oder systemctl reboot, je nachdem, was Sie ausführen möchten). Dann können sie sudo reboot(und/oder sudo systemctl reboot) ausführen.Diese Antwort setzt voraus, dass sie sonst keinen Zugang haben zusudo – d. h., dass es sich um normale Benutzer ohne Administratorrechte handelt, die nicht Teil der wheelGruppe sind.

Die sudoersDatei befindet sich unter /etc/sudoers, aber Siesollte nichtdirekt bearbeiten. Sie sollten es vielmehr nur mit bearbeiten visudo. Sie müssen root sein, um es bearbeiten zu können, also führen Sie aus sudo visudo. Der visudoBefehl überprüft die Syntax Ihrer Änderungen und Sie sollten dies immer verwenden, um zu vermeiden, dass Ihre Konfiguration beschädigt wird undselbstum in Zukunft Root-Zugriff zu erhalten.

Dann können Sie Ihrer Datei etwa folgende Zeilen hinzufügen sudoers:

username ALL=(root): /usr/sbin/reboot
username ALL=(root): /usr/bin/systemctl reboot

wobei usernameder Benutzername des Benutzers (oder %groupnameeiner Gruppe) ist und wobei die Pfade die tatsächlichen Pfade zu den Befehlen auf Ihrem System sind (überprüfen Sie dies whichbeispielsweise mit which reboot.).

Weitere Informationen finden Sie unterman sudoers,man sudo, Undman visudo.

verwandte Informationen