Ich habe ein Gerät vom Typ Raspi in einem Rechenzentrum und habe kürzlich versehentlich einen Befehl zum Herunterfahren in das falsche Terminal auf meinem Bildschirm eingegeben. Gibt es eine Möglichkeit shutdown -r
, #poweroff
#shutdown -P -H
Optionen beizubehalten , aber zu entfernen ?
Ich möchte das shutdown -r
Kommando behalten . Ich setze gerne einen Timer ein, wenn es mir gelingt, das System einzufrieren, oder sperre mich mit IP-Tabellenregeln aus. Beispielshutdown -r +10
quelle
systemctl
Ohne Argumente ausführen . Es werden alle aktiven Einheiten, deren Status und Beschreibungen aufgelistet. Hinzufügen--all
und es werden auch Einheiten aufgelistet, die nicht aktiv sind.man systemd.special
.Es gibt einige Möglichkeiten, dies zu erreichen. Man würde mit einem normalen, nicht privilegierten Konto arbeiten, für das der Befehl mit sudo ausgeführt und ein Kennwort eingegeben werden muss. Anschließend können Sie Folgendes an / etc / sudoers anhängen (indem Sie visudo ausführen):
Fügen Sie außerdem Folgendes hinzu, um das Zwischenspeichern von sudo-Anmeldeinformationen zu deaktivieren:
Dadurch wird verhindert, dass Anmeldeinformationen zwischengespeichert werden, wenn Sie zuvor einen Befehl mit sudo aufgerufen haben.
Beispiel:
Beachten Sie, dass ich im obigen Beispiel beim Ausführen nicht mein Kennwort eingeben
sudo shutdown -r +10
musste, für den Rest jedoch. Wenn Sie die Notwendigkeit beseitigen möchten, sudo vor dem Befehl (sudo shutdown -r +10
) einzugeben, fügen Sie Folgendes zu Ihrem .bash_profile oder .bashrc hinzu:Beispiel:
Beachten Sie, dass es empfehlenswert ist, mit einem nicht privilegierten Konto zu arbeiten und bei Bedarf mit sudo zu eskalieren.
quelle
sudo
der Standardkonfiguration die Anmeldeinformationen für einige Zeit nach dem ersten Aufruf zwischengespeichert werden. Dies kann praktisch sein, wenn Befehle wiederholt ausgeführt werden, wieroot
dies in einer Benutzersitzung erforderlich ist. In einer solchen Sitzung (oder in der Tat, wenn eineroot
Shell ausgeführt wird) wäre es durchaus möglich, den Befehlshutdown
auszuführen und die Prüfungen zu umgehen.shutdown -r
, dass beim Ausführen mit sudo kein Kennwort abgefragt wird. Wenn er ausgeführt wird, werdensudo shutdown -r ...
die Anmeldeinformationen daher nicht zwischengespeichert, da sie nicht eingegeben werden. Schauen Sie sich das Beispiel an, das ich oben gegeben habe. Sie können sehen, dass ich es ausgeführt habe, gefolgt von einemsudo shutdown -H
und ich wurde zur Eingabe eines Passworts aufgefordert.sudo
und keineNOPASSWD
Operation vorangestellt wurde . zB ein Aufruf zum Bearbeiten einer Konfigurationsdatei als root. In diesem Fall wird das Kennwort zwischengespeichert und ein nachfolgender Aufruf von wirdsudo shutdown -H
durchlaufen.sudo
Das Zwischenspeichern von Passwörtern muss deaktiviert werden, um dies zu vermeiden.sudo
dass wir einfach das Passwort eingeben und weitermachen. Sehen Sie sich hier einen alternativen Ansatz mit sudo an (das ist wahrscheinlich viel besser, obwohl es nicht sehr gut ist).Es gibt ein Tool namens molly-guard , bei dem Sie den Hostnamen des Computers angeben müssen, den Sie herunterfahren oder neu starten möchten.
Falls Sie Debian nicht verwenden, sollte es trivial sein, dies aus dem Quellcode zu kompilieren, da das Programm eher primitiv ist.
quelle
Um Missgeschicke zu vermeiden, haben RHEL-basierte Distributionen bereits Aliase für eingerichtet
rm
,cp
undmv
diese können etwas destruktiver sein, wenn sie vom Root-Benutzer ausgeführt werden.Sie könnten Ihre eigenen hinzufügen, zum Beispiel:
quelle
shutdown -r
beim Deaktivierenshutdown -P -H
?Benennen Sie die ausführbare Datei zum Herunterfahren in etwas um, das nicht versehentlich aufgerufen werden kann.
Dann alias
shutdown
sein(whatever) -r
quelle
shutdown
für/sbin/shutdown -r
. Eine Umbenennung ist nicht erforderlich. Da sich die Alias-Erweiterung auf einen absoluten Pfad bezieht, unterliegt sie keiner rekursiven Alias-Erweiterung.