Unten sehen Sie eine Datei, /tmp/testfile
die user1 gehört und deren Gruppe in wheel geändert wurde und die auch user2 enthält . Die Datei hat die rw
Berechtigung für die Gruppe. Sollte also kein Mitglied der Gruppe in der Lage sein, sie zu löschen? Die folgende Beispielausgabe zeigt, dass Benutzer2 die Datei nicht löschen kann. Warum?
[user2@files ~]$ ls -l /tmp/testfile
-rw-rw-r-- 1 user1 wheel 0 Jul 18 18:54 /tmp/testfile
[user2@files ~]$ groups
user2 wheel
[user2@files ~]$ rm /tmp/testfile
rm: cannot remove `/tmp/testfile': Operation not permitted
linux
permissions
file-permissions
user347765
quelle
quelle
tmp
und dieAntworten:
Erstens sehen Sie die falschen Berechtigungen. Wenn Sie eine Datei verschieben, umbenennen oder löschen, ändern Sie nur das übergeordnete Verzeichnis. Die eigenen Berechtigungen der Datei werden nicht überprüft. Sie entfernen nur einen Eintrag aus der Dateiliste des Verzeichnisses. Daher sollten Sie die Berechtigungen des übergeordneten Verzeichnisses überprüfen (in diesem Fall
/tmp
).Zweitens
/tmp
ist etwas Besonderes. Auf praktisch allen Systemen ist es für jedermann beschreibbar (ugo=rwx
). Auf den ersten Blick sieht es so aus, als könnte jeder eine Datei darin umbenennen oder löschen. Dies würde es natürlich einfach (naja, noch einfacher) machen, Probleme für andere Benutzer zu schaffen, daher hat man/tmp
immer den "sticky" aka "restricted deletion" -Modus gesetzt (o+t
). In diesem Modus kann nur der Eigentümer der Datei Dateien in diesem Verzeichnis verschieben oder löschen, unabhängig von den Berechtigungen.(Auf GNU-Coreutils enthält die
chmod(1)
Handbuchseite einen Abschnitt über das "eingeschränkte Löschflag oder Sticky-Bit" .)quelle
chmod o-t /tmp
und dann erneut versucht, die Datei zu löschen, aber es wird immer noch das gleiche beanstandet.