Was ist die Idee hinter rm, nicht beschreibbare Dateien nicht standardmäßig zu entfernen?


13

Was ist die Idee hinter rm, nicht beschreibbare Dateien nicht standardmäßig zu entfernen? Jedes Mal, wenn Sie eine Datei entfernen möchten, die für den aktuellen Benutzer nicht beschreibbar ist, Sie jedoch über eine Schreibberechtigung für das Verzeichnis verfügen, wird diese Warnung angezeigt, und Sie müssen "y" drücken, um das Löschen zu bestätigen:

rm: remove write-protected regular file 

Ich frage mich, warum nicht beschreibbare Dateien so speziell behandelt werden. Eine Sache, die mir in den Sinn kommt, ist, dass solche Dateien normalerweise Benutzerkonfigurationsdateien sind, die geheime Benutzerdaten wie verschlüsseltes Passwort enthalten, also warnt rm vor dem Löschen. Was ist nun der wahre Grund?

Antworten:


16

Dies liegt daran, dass das Verhalten von UNIX in diesem Fall etwas kontraintuitiv ist. Viele Leute sind ziemlich überrascht, wenn sie eine Datei als schreibgeschützt markieren und jemand sie löschen kann. Sie benötigen nur Schreibberechtigungen für das enthaltende Verzeichnis, um eine Datei zu löschen. rmbittet Sie um Höflichkeit, falls Sie gehofft haben, dass es schreibgeschützt ist, um es zu schützen.

Mit -f(Kraft) wird es geschafft, ohne Sie zu belästigen. Aber benutze das vorsichtig.


Seien Sie vorsichtig, wenn Sie "rm -rf *" eingeben.
ChuckCottrill

4
Ein Freund von mir bezeichnet das als "Read Mail Real Fast". :)
Kurtm

0

Ich denke, Sie haben Recht damit, weil es so eingestellt ist, dass es nicht geschrieben werden soll. Wenn Sie die nicht beschreibbare Datei entfernen, schreiben Sie tatsächlich in diese Datei. Wenn Sie nicht dazu aufgefordert werden möchten, können Sie jederzeit einen Alias ​​erstellen, der besagt, dass rm tatsächlich rm -f ist.


Ich glaube nicht, dass ich deine Antwort richtig verstanden habe. Ich frage mich, warum rm überhaupt eine solche Warnung ausgibt, warum schreibgeschützte Dateien anders behandelt werden als beschreibbare Dateien. Ich weiß, wann diese Warnung angezeigt wird, ich frage mich warum.
user1042840

Denn wenn Sie etwas so einstellen, dass es nur gelesen werden soll, darf es nicht geändert werden. Das schließt das Entfernen ein. Wenn Sie root sind und ihm sagen, dass er die schreibgeschützte Datei trotzdem entfernen soll, möchte er bestätigen, dass Sie keinen Fehler machen. Es veranlasst Sie, Ihre Wahl zu überdenken.
Jeight

1
@Jeight Das stimmt eigentlich nicht. Sie schreiben beim Löschen nicht in die Datei. Sie schreiben in das enthaltende Verzeichnis.
Kurtm

@ Kurtm Du bist richtig. Das war ein Tippfehler, aber die zugrunde liegende Argumentation ist dieselbe.
Jeight
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.