Da ich gerade darauf gestoßen bin und es für einige Verwirrung bei mir und ein paar anderen gesorgt hat (vor allem bei mir), möchte ich meine Erkenntnisse über das Thema Linux Datei und Ordner Rechte mit euch teilen.
Man stelle sich vor, man hat eine Datei die in einem Ordne liegt, welche die folgenden Rechte hat (für die, die es nicht wissen, “ . “ stellt den Ordner in dem man sich befindet in der Konsole dar):
-rwxrwxrwx 1 www-data www-data 0 Aug 2 14:16 examplefile drwxr--r-- 2 www-data www-data 4096 Aug 2 14:16 .
Man selbst ist als User „Foobar“ unterwegs. Kann man die Datei nun löschen oder nicht? Antwort nein. Begründung folgt.
In Linux sind Ordner auch nur Dateien, welche eine Liste der beinhaltenden Dateien enthält (grob gesagt). Um nun die Datei examplefile
zu entfernen, muss man diese Liste also den Ordner bearbeiten können. Sprich, man braucht write Rechte. Die Rechte der Datei sind dabei komplett unabhängig, es zählen nur die Rechte des Ordners.
Die Recht der Datei sind nur dafür da, damit man deren Inhalt bearbeiten beziehungsweise löschen kann.
Nachfolgend noch ein Zitat, welches dies sehr schön nochmals kurz beschreibt.
ZB kann wer Schreibrechte in einem Verzeichnis hat, dort auch jede Datei löschen, auch wenn er für diese Dateien sonst überhaupt keine Rechte hat. Wer aber nur das Schreibrecht auf eine Datei hat, aber kein Schreibrecht im Verzeichnis, kann zwar in einer Datei Zeilen oder den gesamten Inhalt löschen, den Dateinamen mit dessen Bezug auf die Inode allerdings nicht.
(Quelle: http://wiki.linux-club.de/opensuse/Zugriffsrechte#Verzeichnisse)
Ich hoffe, ich konnte dem einen oder anderen hiermit helfen die Rechte unter Linux besser zu verstehen.