Für neuere Systeme mit systemd wurde dies durch systemd-inhibit
gelöst . Anwendungsbeispiel:
systemd-inhibit --why="Doing weekly backup" bash my-backups.sh
Wenn ein Benutzer dann versucht, herunterzufahren, wird dies nicht zugelassen, es sei denn, es wird erzwungen.
❯ systemctl poweroff
Operation inhibited by "bash my-backups.sh" (PID 2414 "systemd-inhibit", user ntrrgc),
reason is "Doing weekly backup".
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.
Führen Sie which shutdown
aus um zu sehen, wo der Pfad zum Shutdown-Programm ist. Sie können die Datei umbenennen, obwohl ich davon abraten würde.
Eine andere (sicherere) Methode. Verwenden Sie einen Alias:alias shutdown=' '
So etwas ist umkehrbarer. Wenn Sie versuchen, das Herunterfahren von allen Benutzern zu verhindern, fügen Sie den Alias global hinzu.
Deaktivieren Sie die Befehle "shutdown/reboot/poweroff/halt/hostname" in unternehmenskritischen Servern
chmod 0 /sbin/shutdown
dann, wenn Sie es verwenden müssen, chmod es zurück zu chmod 0755
.