Eine Datei mit den Dateimodusbits a + rw kann nicht entfernt werden

7

Ich habe eine Datei mit den folgenden Dateimodus-Bits ( a+rw):

[0] mypc<johndoe>:~>sudo touch /tmp/test    
[0] mypc<johndoe>:~>sudo chmod a+rw /tmp/test
[0] mypc<johndoe>:~>ls -l  /tmp/test
-rw-rw-rw- 1 root root 0 Mar 13 11:09 /tmp/test

Warum kann ich die Datei nicht entfernen?

[0] mypc<johndoe>:~>rm  /tmp/test
rm: cannot remove '/tmp/test': Operation not permitted
haba713
quelle

Antworten:

12

Das /tmpVerzeichnis ist herkömmlicherweise mit dem Flag zum eingeschränkten Löschen gekennzeichnet , das als Berechtigungsschreiben toder Tin der lsAusgabe angezeigt wird .

Eingeschränktes Löschen impliziert mehrere Dinge. Im allgemeinen Fall bedeutet dies, dass nur der Eigentümer der Datei oder der Eigentümer /tmpselbst eine Datei / ein Verzeichnis in löschen kann /tmp.

Sie können die Datei nicht löschen, da Sie nicht der Eigentümer sind root. Versuchen Sie zu laufen, rmmit sudodem Sie wahrscheinlich vergessen haben.

sudo rm /tmp/test

Insbesondere die eingeschränkten Löschvormerkung (auf einer welt beschreibbaren Verzeichnis wie auf Linux allein /tmp) auch ermöglicht , die protected_symlinks, protected_hardlinks, protected_regularund protected_fifosEinschränkungen, die jeweils in solchen Verzeichnissen Benutzer von folgenden symbolischen Verbindungen zu verhindern , dass sie nicht selbst tun, verhindern , dass Benutzer schwer machen Links zu Dateien, die sie nicht besitzen, verhindern, dass Benutzer FIFOs öffnen, die sie nicht besitzen, und verhindern, dass Benutzer vorhandene Dateien öffnen, die sie nicht besitzen, wenn sie diese erstellen möchten.

Dadurch werden Sie mit Berechtigungen Fehler überraschen , wenn verschiedene weitere Dinge , wie zu tun , rootwenn Sie tun Einsatz sudo.

Weitere Informationen hierzu finden Sie unter " Unterschiedliches Verhalten von Hardlink-Berechtigungen zwischen CentOS 6 und CentOS 7 ", " Symbolischer Link funktioniert nicht wie erwartet, wenn der Benutzer geändert wird " und " Gruppenberechtigungen für Root funktionieren nicht in / tmp ".

Samuel Philipp
quelle
5
Kann es auch wert sein, den grundlegenden Punkt hervorzuheben, dass das Löschen einer Datei von den Berechtigungen ihres Verzeichnisses abhängt , nicht von den Berechtigungen der Datei ?
Gidds
6

Das Problem scheint das klebrige Stück zu sein /tmp.

$ ls -ld / tmp
drwxrwxrw t ⃝ 1 root root 1044 13. März 12:09 / tmp

https://en.wikipedia.org/wiki/Sticky_bit

Wenn das Sticky-Bit eines Verzeichnisses gesetzt ist, behandelt das Dateisystem die Dateien in solchen Verzeichnissen auf besondere Weise, sodass nur der Eigentümer der Datei, der Eigentümer des Verzeichnisses oder der Root-Benutzer die Datei umbenennen oder löschen können. Ohne das gesetzte Sticky-Bit kann jeder Benutzer mit Schreib- und Ausführungsberechtigungen für das Verzeichnis enthaltene Dateien unabhängig vom Eigentümer der Datei umbenennen oder löschen. In der Regel wird dies im Verzeichnis / tmp festgelegt, um zu verhindern, dass normale Benutzer Dateien anderer Benutzer löschen oder verschieben.

haba713
quelle