So verhindern Sie 'sudo rm -rf /'

10

Einige Male habe ich den Befehl versehentlich ausgeführt sudo rm -rf /.

Gibt es eine Möglichkeit, mich daran zu hindern, diesen Befehl auszuführen? Kann ich es zum Beispiel irgendwie mit der sudoers-Datei deaktivieren?

iProgramm
quelle
2
Wie können Sie diesen Befehl versehentlich eingeben und dann ausführen?
fnord_ix
Wenn ich einen solchen Befehl eingebe. sudo rm -rf / Applications/chess.appBeachten Sie den Abstand zwischen dem / und dem A. So
iProgram

Antworten:

14

Sie können eine Zeile wie hinzufügen

%admin ALL = !/bin/rm -rf /

in Ihre sudoersDatei, um die Ausführung des Befehls mit den spezifischen Optionen zu verhindern.

Wenn Sie mehrere Befehle ausschließen möchten, können Sie auch mit Befehlsaliasnamen arbeiten

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /
%admin ALL=!DANGEROUS_CMNDS

Sie können auch versuchen, auf Nummer sicher zu gehen

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /, /bin/rm / *, /bin/rm * /, /bin/rm -rf / *, /bin/rm -rf * /, /bin/rm -fr / *, /bin/rm -fr* /
%admin ALL=!DANGEROUS_CMNDS

Aber es gibt vielleicht noch andere Möglichkeiten, wie Sie sich in den Fuß schießen können. Seien Sie rmalso trotzdem vorsichtig .

Beachten Sie jedoch, dass alle Übereinstimmungen für die gesamte Zeichenfolge des Befehls durchgeführt werden und daher sudo rm -rf /Volumesweiterhin funktionieren (wie auch cd /; sudo rm -rf .).

PS: Verwenden Sie sudo visudoauf jeden Fall, um die sudoersDatei zu bearbeiten und NIEMALS direkt zu bearbeiten

PPS: Ich habe das offensichtlich nicht mit getestet rm(nur mit /bin/echostattdessen)

nohillside
quelle
Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde in den Chat verschoben .
bmike
6

Ich weiß, dass Sie die Frage so formuliert haben, dass ich den Verdacht habe, dass Sie diese Antwort nicht hören möchten, aber Sie sollten sich wirklich aus der Sudoers-Datei entfernen, wenn Sie dazu neigen, immer wieder denselben Fehler zu machen.

Das zugrunde liegende Problem besteht darin, dass Sie nicht als Alias ​​eingestuft wurden rm, um in den Papierkorb verschoben zu werden (wie Sie es derzeit und in der Vergangenheit verwenden) oder auf andere Weise gezwungen wurden rm -r, in den Papierkorb gezwungen zu werdenrm -ri

alias rm='/bin/rm -i'

Sie können den Alias ​​jederzeit umgehen, command rm -rf whateverwenn Sie Ihren Verstand darauf trainiert haben, wann zweimal gemessen wird und einmal geschnitten wird, um ihn zu rm -rfverwenden.

bmike
quelle
Danke für diesen Tipp. Ich habe darüber nachgedacht, ein verstecktes Administratorkonto (nur für den Zugriff auf das Terminal) und ein Standardkonto für den normalen Gebrauch zu erstellen. Ich könnte den Wrapper dazu bringen, stattdessen auch in den Papierkorb zu gelangen. Danke für diesen Tipp. Ich denke, dass die Verhinderung von Sudo ein sicherer Schritt sein kann. Ich werde weiterhin sicherstellen, dass ich darauf zugreifen kann, indem ich mich beim versteckten Administrator anmelde.
iProgramm
Nicht markiert ist jedoch als beantwortet, da es die oben genannten Fragen nicht beantwortet. Dies ist jedoch immer noch ein guter Rat
iProgram