Ich habe einen Ubuntu 10.04 LTS Desktop PC mit GNOME.
Wie kann ich die Funktionen Neustart / Herunterfahren / Suspendieren / Ruhezustand in GNOME oder sogar mit root vollständig deaktivieren? Damit der Root den Befehl "reboot" oder "pm-suspend" ausgibt, führt er nichts aus und der Computer fährt fort. Wie kann ich diese grundlegenden "Funktionen" vollständig deaktivieren?
shutdown
undpm-suspend
von/sbin/
und/bin/
Antworten:
Der Benutzerzugriff auf diese Aktionen wird von polkit gesteuert. Insbesondere entsprechen sie den folgenden Aktionen:
org.freedesktop.consolekit.system.stop
org.freedesktop.consolekit.system.restart
org.freedesktop.upower.suspend
org.freedesktop.upower.hibernate
Alle diese Aktionen sind standardmäßig für aktive lokale Benutzer
consolekit
zulässig ( schränkt jedoch die ersten beiden Berechtigungen weiter ein, sodass sie nur funktionieren, wenn ein einzelner Benutzer am System angemeldet ist).Wenn Sie diese Aktionen deaktivieren möchten, erstellen Sie eine Datei,
/etc/polkit-1/50-local.d/disable-shutdown.pkla
die Folgendes enthält:Dies sollte verhindern, dass diese Aktionen abgeschlossen werden. Weitere Informationen zu diesen Richtliniendateien erhalten Sie durch Ausführen von
man pklocalauthority
.Wenn Sie jedoch einschränken
root
möchten, ist dies nur eine geringfügige Unannehmlichkeit. Per Definitionroot
handelt es sich um ein uneingeschränktes Konto gemäß dem herkömmlichen UNIX-System für die diskretionäre Zugriffskontrolle. Wenn Sie den Benutzern nicht vertrauen können, auf die Sie vollenroot
Zugriff haben, haben Sie größere Probleme, als wenn sie nur das System herunterfahren.Beachten Sie, dass in späteren Ubuntu-Versionen jemand entschieden hat, die Kompatibilität zu brechen. Wie in Deaktivieren des Herunterfahrens / Neustarts von LightDM in 14.04 beantwortet ? Die Aktion scheint sich in "org.freedesktop. login1 .reboot" (und dergleichen) geändert zu haben .
Beispiel: In 14.04 werden die folgenden Zeilen wie folgt hinzugefügt
/etc/polkit-1/localauthority/50-local.d/restrict-login-powermgmt.pkla
:Beachten Sie außerdem, dass diese Methode nur Neustart / etc-Befehle blockiert, die von der GUI ausgegeben werden. Um Neustart- / etc-Befehle von der Befehlszeile aus zu blockieren, kann man molly-guard verwenden - wie unter Deaktivieren des Befehls zum Herunterfahren für alle Benutzer, auch für Root-Benutzer - erläutert .
quelle
Erwägen Sie die Installation von Molly-Guard .
Dieses Paket verhindert ein unbeabsichtigtes Herunterfahren / Neustarten / Anhalten / Ruhezustand, indem Sie interaktiv aufgefordert werden, den Hostnamen des Systems einzugeben.
Es ist jedoch trivial, molly-guard so zu konfigurieren, dass das Herunterfahren / Neustarten / Suspendieren / Ruhezustand vollständig deaktiviert wird. Erstellen Sie einfach eine ausführbare Datei unter /etc/molly-guard/run.d/99-prevent-all, in der Folgendes enthalten ist:
Beachten Sie, dass es nur vor Befehlen schützt, die über die Befehlszeile ausgegeben werden. Herunterfahren / Neustarten / Anhalten / Ruhezustand über die GUI umgeht dies. Um auch die GUI durch einen Neustart zu blockieren, können Polkit-Regeln verwendet werden .
quelle
quelle
/bin/systemctl
und entfernen das ausführbare Bit von ihr. Dies ist eine wichtige ausführbare Datei, die auch steuertservice SERVICE_NAME [stop|start|restart]
. Ihr System bootet wahrscheinlich nicht mehr (wenn Sie es überhaupt zum Herunterfahren bringen können)./bin/systemctl
ist nur Lesen-Schreiben eingestellt-rw-r--r-- 1 root root
Sie können auf der Antwort von OP aufbauen
Dadurch werden die Symlinks umbenannt und durch leere Dateien ersetzt. Dadurch wird das Herunterfahren der Befehlszeile verhindert. Ich weiß nicht, ob die GUI-Befehle dies aufrufen oder ihre eigenen Aktionen ausführen, sodass Sie möglicherweise auch die akzeptierte Antwort ausführen müssen.
quelle