Der /tmp
Verzeichnis ist herkömmlicherweise mit der eingeschränkten Löschung gekennzeichnet Flag, das als Erlaubnisbrief t
erscheint oder T
in ls
Ausgabe.
Eingeschränkte Löschung impliziert mehrere Dinge. Im allgemeinen Fall bedeutet dies, dass nur der Eigentümer der Datei oder der Eigentümer von /tmp
selbst, kann eine Datei/ein Verzeichnis in /tmp
löschen .
Sie können die Datei nicht löschen, da Sie nicht der Besitzer sind, also root
. Versuchen Sie, rm
auszuführen mit sudo
die Sie wahrscheinlich vergessen haben.
sudo rm /tmp/test
Genauer gesagt, nur für Linux, das eingeschränkte Lösch-Flag (in einem Verzeichnis, das von allen beschreibbar ist, wie /tmp
) auch aktiviert den protected_symlinks
, protected_hardlinks
, protected_regular
, und protected_fifos
Einschränkungen, die Benutzer in solchen Verzeichnissen daran hindern, symbolischen Links zu folgen, die ihnen nicht gehören, Benutzer daran hindern, feste Links zu Dateien zu erstellen, die ihnen nicht gehören, Benutzer daran hindern, FIFOs zu öffnen, die ihnen nicht gehören, und Benutzer daran hindern, vorhandene Dateien zu öffnen, die ihnen nicht gehören sie besitzen nicht, wann sie erwartet haben, sie zu erstellen.
Dies wird Sie mit Berechtigungsfehlern überraschen, wenn Sie verschiedene weitere Dinge wie root
tun wenn Sie tun Verwenden Sie sudo
.
Mehr zu diesen fraglichen Fragen wie „Hardlink-Berechtigungsverhalten unterschiedlich zwischen CentOS 6 und CentOS 7“, „Symbolischer Link funktioniert nicht wie erwartet, wenn Benutzer geändert wird“ und „Gruppenberechtigungen für Root funktionieren nicht in /tmp“.
Das Problem scheint das Sticky Bit von /tmp
zu sein .
$ ls -ld /tmp drwxrwxrwt⃝ 1 root root 1044 Mar 13 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 kann. Ohne das gesetzte Sticky-Bit kann jeder Benutzer mit Schreib- und Ausführungsberechtigungen für das Verzeichnis enthaltene Dateien umbenennen oder löschen, unabhängig vom Eigentümer der Datei. Normalerweise wird dies im /tmp-Verzeichnis festgelegt, um normale Benutzer daran zu hindern, die Dateien anderer Benutzer zu löschen oder zu verschieben.