
Als ich heute einige Wartungsarbeiten an meinem Server durchführte, bemerkte ich, dass ich eine Datei in meinem Home-Verzeichnis löschen konnte, die dem Eigentümer root gehörte.
Ich konnte ein Beispiel reproduzieren:
[cbennett@nova ~/temp]$ ls -al
total 8
drwxrwxr-x. 2 cbennett cbennett 4096 Oct 5 20:59 .
drwxr-xr-x. 22 cbennett cbennett 4096 Oct 5 20:58 ..
-rw-rw-r--. 1 cbennett cbennett 0 Oct 5 20:58 my-own-file
[cbennett@nova ~/temp]$ sudo touch file-owned-by-root
[cbennett@nova ~/temp]$ ls -al
total 8
drwxrwxr-x. 2 cbennett cbennett 4096 Oct 5 21:00 .
drwxr-xr-x. 22 cbennett cbennett 4096 Oct 5 20:58 ..
-rw-r--r--. 1 root root 0 Oct 5 21:00 file-owned-by-root
-rw-rw-r--. 1 cbennett cbennett 0 Oct 5 20:58 my-own-file
[cbennett@nova ~/temp]$ rm file-owned-by-root
rm: remove write-protected regular empty file ‘file-owned-by-root’? y
[cbennett@nova ~/temp]$ ls -al
total 8
drwxrwxr-x. 2 cbennett cbennett 4096 Oct 5 21:00 .
drwxr-xr-x. 22 cbennett cbennett 4096 Oct 5 20:58 ..
-rw-rw-r--. 1 cbennett cbennett 0 Oct 5 20:58 my-own-file
[cbennett@nova ~/temp]$
Meine Frage lautet: Wie konnte ich eine Datei löschen, deren Eigentümer Root ist und die über entsprechende Berechtigungen verfügt -rw-r--r--
, obwohl ich kein Root bin?
Antwort1
Die Berechtigungen, der Inhalt und alle Attribute sind Teil des Inodes. Der Name steht im Verzeichniseintrag. Die Berechtigungen werden nicht rekursiv vererbt (außer wenn Sie in Posix-ACLs Standard verwenden).
Wenn Sie eine Datei löschen, entfernen Sie intern nur einen Hardlink vom Verzeichniseintrag zum Inode. Wenn alle Hardlinks entfernt sind und der Inode nicht verwendet wird, gibt das Dateisystem den Speicherplatz frei. Sie benötigen nur Schreibberechtigung für den Ordner, unabhängig davon, welche Berechtigungen für die Datei festgelegt sind (mit Ausnahme der unveränderlichen Ext-Berechtigung). Dasselbe gilt für einen leeren Ordner.
Wenn Sie einen Ordner löschen, der nicht leer ist, benötigen Sie Schreibberechtigung für den zu löschenden Ordner und seinen übergeordneten Ordner.
Antwort2
Wenn Sie Eigentümer des Verzeichnisses sind, können Sie mit dem Verzeichnis und seinen Inhalten alles machen, was Sie möchten. Daher konnten Sie die Datei löschen, obwohl Sie nicht Eigentümer waren, da Sie Lese-/Schreibberechtigung für das Verzeichnis hatten, in dem sich die Datei befand.