rm -rf * verhinder

Gast #3505102
Lesenswert?

Hab ich vor über 20 Jahren mal bei einem Kollegen gesehe. Da ist eine 
ganze SAP Instanz mit verschwunden und der Kunde war echt sauer. Auch 
wenn man's nicht selber war, als root ist man danach extrem vorsichtig.
Gast #3505174
Lesenswert?

Läubi .. schrieb:
> Die -rf Option ständig anzugeben (egal ob nötig oder nicht) ist sowieso
> eine Unsitte ...

Tja, genauso gibt es ja Exemplare, die ein "chmod -R 777 *" als 
Allheilmittel gegen Fehler jeglicher Art einsetzen.

Was will man da machen, wenn das Grundverständnis fehlt und keine Lust 
bzw. kein Interesse an Nachdenken (über den Befehl an sich, dessen 
Parameter und die möglichen Folgen) besteht...
Gast #3505219
Lesenswert?

Es gab in der Vergangenheit genug kommerzielle Software, die wenn sie
das Verzeichnis das zu löschen war nicht fand, eine Ebene darunter
platt machte.

Da war dann usr einfach weg :-)

Um SAP ists sowieso nicht schade.
Die daranhägende Datenbank wär viel schlimmer.
#3505396
Lesenswert?

Bei BSD gibts für diesen Zweck das User Immutable und das System 
Immutable Flag.

"An immutable file may not be changed, moved, or deleted.  An 
append-only file is immutable except that data may be appended to it."

man chflags
http://www.openbsd.org/cgi-bin/man.cgi?query=chflags

Vergleiche dazu auch securelevel(7)
http://www.openbsd.org/cgi-bin/man.cgi?query=securelevel&sektion=7&arch=&apropos=0&manpath=OpenBSD+Current

fchk
Gast #3506419
Lesenswert?

Pete K. schrieb:
> noch besser ist rm -rf .*  :-)

Darauf bin ich auch mal reingefallen, nachdem ich gemerkt hatte, daß rm 
* die versteckten Files nicht mitgelöscht hat. Den Fehler macht man aber 
nur einmal.

Rapsberry iP schrieb:
> Wie kann ich unter Linux grundsätzlich verhindern, daß Befehle wie
> rm -rf *
> oder
> rm -rf /
> ausgeführt werden(auch für sudo)?

Am besten, indem du sie nicht ausführst ;-)
#3506452
Lesenswert?

Ich hab mal zu DOS-Zeiten ein "format c: /y" abgeschickt.
Der Kommentar des OS nach der Aktion war "command.com not found", womit 
es ja Recht hatte.

Die aktuellen Windowse sind aber verrammelt und verriegelt, da wehrt 
sich das OS mit Händen und Füßen gehen eifrige Löscher. Viele 
System-Ordner sind mit einem Schloß versehen.
Und hat man so einen Ordner mit "cacls" umständlich entriegelt, sind die 
Unterordner natürlich weiterhin verriegelt.
Gast #3506885
Lesenswert?

So wie Yalu vorgeschlagen hat.
Aber ich würde /usr/bin/rm nach /usr/sbin/rm verschieben.
Dann kann man, wenn man's braucht, mit /usr/sbin/rm -rf immer noch 
benützen. Für den täglichen Gebrauch nützt man das entschärfte Skript.
Gast #3506965
Lesenswert?

Ein leidiges Thema,

aber es wird nur durch Einsatz von Hirn besser,
da wenn man es mal weiss, auch aliase umgehen kann.

In meinen bisherigen Tätigkeiten musste ich schon mehrfach Kunden aus 
der "rm"-Patsche helfen.


Angefangen bei rsh root@serverb "cd /directory/das/nicht/existiert; rm 
-rf *"
Der Kunde meinte am Morgen "uns ist da was passiert" ...
Danach war das ganze OS weg, war damals ein Ultrix. Bei Linux ist der 
Flurschaden kleiner, aber auch noch nervig genug, da dann mindestens das 
home-directory von root leer ist.
Hat mir damals einen Vormittag im Keller sitzen beschert um das Ultrix 
neu zu installieren.

Oder Kollegen die mal einen ganzen Dateibaum löschen wollten, allerdings 
war da auch ein NFS-Volume gemountet, somit waren nicht nur lokale Daten 
weg wie gewünscht, sondern auch der halbe NFS-Server leer.

Es gibt genug Situationen in denen auch entsprechende Passagen 
geskriptet sind und somit keiner wirklich den interaktiven Modus von rm 
herbeisehnt.
Der Alias greift ja auch nur bei interaktiven Sessions und nicht in 
Skripten.

Es gibt durchaus andere Alternativen. Aber wer unbedingt möchte bekommt 
das auch hin was falsch zu machen.
Gast #3507787
Lesenswert?

StinkyWinky schrieb:
> So wie Yalu vorgeschlagen hat.
> Aber ich würde /usr/bin/rm nach /usr/sbin/rm verschieben.

rm gehört nach /bin, nicht nach /usr/bin. Und ob noch alle Skripte 
richtig tun, wenn man das wo anders hinschiebt?

Mark Brandis schrieb:
> unixadmin schrieb:
>> Dann wird aber dringend benötigter Platz nicht sofort frei ...
>
> Dringend benötigter Platz - bei heutigen Festplatten mit drölfzig
> Exabyte? ;-)

Nun, wenn der Platz nicht benötigt wird, braucht man ja auch die Dateien 
nicht zu löschen.
Gast #3507795
Lesenswert?

Rapsberry iP schrieb:
> Wie kann ich unter Linux grundsätzlich verhindern, daß Befehle wie
>
>
1
rm -rf *
>
> oder
>
>
1
rm -rf /
>
> ausgeführt werden(auch für sudo)?

das device  readonly mounten

der bereitsvorgeschlagene alias zu rm -i war Standard auf ner SUN. IMHO 
eine elegamte Weise das Hirn des Nutzers in kritischen Situationen 
wieder einzuschalten.

Dann könnte man rm auch euf ein script verweisen lassen, das kritische 
cmd-linee options wegparst und dann das standard rm aufruft. Könnte ein 
kleiner 5-Zeiler sein, substitute im sed  mit geschickten regexp könnte 
das schaffen.

MfG,
Gast #3507902
Lesenswert?

Rolf Magnus schrieb:
>> noch besser ist rm -rf .*  :-)
>
> Darauf bin ich auch mal reingefallen, nachdem ich gemerkt hatte, daß rm
> * die versteckten Files nicht mitgelöscht hat. Den Fehler macht man aber
> nur einmal.

Wovon redet ihr?
Wird bei euch das aktuelle Verzeichnis und rekursiv alle 
Elternverzeichnisse gelöscht?

Bei mir nicht:

user@host:/tmp/x$ rm -rf .*
rm: cannot remove directory: ‘.’
rm: cannot remove directory: ‘..’
#3508117
Lesenswert?

Rolf Magnus schrieb:
> Nun, wenn der Platz nicht benötigt wird, braucht man ja auch die Dateien
> nicht zu löschen.

Es gibt ja auch noch den Fall, dass man die Dateien nicht mehr braucht, 
den Platz aber aktuell auch nicht.

Uhu Uhuhu schrieb:
> Hast du noch nicht gemerkt, daß Festplatten - unabhängig von der Größe -
> immer zu klein sind?

Ja - weil Menschen Jäger&Sammler sind und einen Haufen unnützen Schrott 
horten ;-)
#3508423
Lesenswert?

Rapsberry iP schrieb:
> Wie kann ich unter Linux grundsätzlich verhindern, daß Befehle wie
>
>
1
rm -rf *
>
> oder
>
>
1
rm -rf /
>
> ausgeführt werden(auch für sudo)?

Ganz einfach:

a) Niemanden ranlassen, also keinerlei Logings zulassen

b) / readonly mounten, z. B. als Livefilesystem, geht von 
CD/DVD/USB-Speicherstick mit Schreibschutz

Aber zum erfolgreichen

rm -rf /

muss man ohnehin die Option --no-preserve-root angeben und auch mit 
dieser Option bleiben alle Verzeichnisse erhalten, die ein gemountetes 
Dateisystem enthalten; rm weigert sich mit der Fehlermeldung "Device or 
resource busy" und terminiert dann.
Zum Frühjahrsputz empfiehlt sich deshalb für die lokalen Datenträger:

cd /dev
for i in $(ls hd? sd? fd0 fd1)
do
    badblocks -fw -t random "$i" &
done

Und um auch die Netzlaufwerke zu säubern kann man diese Schleife 
anhängen:

find / -type f | while read file
do
  >"$file"
done

Da hilft dann auch kein undelte, weil Badblocks überschreibt und die 
find-Schleife nur die Dateilänge auf Null setzt, also nur ändert aber 
nicht löscht.
#3508808
Lesenswert?

Uhu Uhuhu schrieb:
> Und wenn man was gelöscht hat, was sich hinterher doch nicht als Schrott
> entpuppt, ist die Hektik groß... Oder weißt du bei 300.000 Dateien in
> einem System, von jeder einzelnen ganz genau, ob und wozu sie noch
> gebraucht wird?

Das "Festplatten sind immer zu klein" bezieht sich aber wohl eher nicht 
auf das Betriebssystem an sich, sondern eher auf Filme, Musik, Spiele... 
das sind meines Erachtens die wahren Speicherfresser.
Gast #3508941
Lesenswert?

rm schrieb:
> Rolf Magnus schrieb:
>>> noch besser ist rm -rf .*  :-)
>>
>> Darauf bin ich auch mal reingefallen, nachdem ich gemerkt hatte, daß rm
>> * die versteckten Files nicht mitgelöscht hat. Den Fehler macht man aber
>> nur einmal.
>
> Wovon redet ihr?
> Wird bei euch das aktuelle Verzeichnis und rekursiv alle
> Elternverzeichnisse gelöscht?

Nein. Ich bin mir allerdings relativ sicher, daß das damals (ist schon 
etliche Jahre her) anders war und ich auf diese Weise einige Files 
verloren habe.
#3509062
Lesenswert?

Mark Brandis schrieb:
> Das "Festplatten sind immer zu klein" bezieht sich aber wohl eher nicht
> auf das Betriebssystem an sich, sondern eher auf Filme, Musik, Spiele...
> das sind meines Erachtens die wahren Speicherfresser.

Die genannte Zahl ist ohne OS - das sichere ich nicht - und Musik und 
Filme machen nicht so wahnsinnig viel aus. Zu einem großen Teil - 
zumindest zahlenmäßig - sind es Dateien in alten Projekten. Da geht man 
lieber nicht mit der Axt dran.
#3519956
Lesenswert?

Rolf Magnus schrieb:
>> Rolf Magnus schrieb:
>>>> noch besser ist rm -rf .*  :-)
>>>
>>> Darauf bin ich auch mal reingefallen, nachdem ich gemerkt hatte, daß rm
>>> * die versteckten Files nicht mitgelöscht hat. Den Fehler macht man aber
>>> nur einmal.
>>
>> Wovon redet ihr?
>> Wird bei euch das aktuelle Verzeichnis und rekursiv alle
>> Elternverzeichnisse gelöscht?
>
> Nein. Ich bin mir allerdings relativ sicher, daß das damals (ist schon
> etliche Jahre her) anders war und ich auf diese Weise einige Files
> verloren habe.

Habe das damals auf einer SUN ausgeführt. Danach bin ich erst einmal aus 
dem Raum gegangen, habe mir einen großen Kaffee geschnappt und die 
Installationsmedien gesucht.

Ja, es wurden alle Unterverzeichnisse und Elternverzeichnisse (".*" 
enthält auch "..") mit gelöscht. Habe das danach nie wieder auf 
aktuellen Distris probiert :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren