[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Dateirechte Verständnisproblem



* Michael Schmidt schrieb am 21.Mär.2003:

> Warumn darf ein user eine Datei, die root (!) gehört, löschen obwohl er
> weder in seiner Gruppe ist, noch irgendwelche andere (Schreib-) Rechte
> auf die Datei hat??? Nur weil die Datei in "SEINEM" Verzeichnis liegt??
> Hat "SEIN Verzeichnis" mehr Priorität als "root" ??

Nicht weil es sein Verzeichnis ist, sondern weil er in dem
Verzeichnis Schreibrecht hat. Um Dateien löschen zu können muß man
Schreibrecht im Verzeichnis haben. Die Rechte der Datei selber sind
dabei vollkommen Wurscht. Du kanst auch umgekehrt keine Datei
löschen, wenn Du kein Schreibrecht im Verzeichnis hast, egal ob Dir
die Datei gehört, oder nicht. 

Dieses Verhalten wird einem klar, wenn man sich Hardlinks anschaut.
Bei einem Hardlink gibt es mehere gleichberechtigte Verweise auf ein
und die selbe Datei. Bei einem Hardlink kann man nicht zwichen
Original und Link unterscheiden. Da eine Datei exakt eine Inode hat,
und nur eine, sind die Rechte der Datei bei allen Hardlinks auf der
Datei gleich. Aber die Dateien könnten in verschiedene Verzeichnisse
liegen. (müssen aber nicht) Die Verzeichnisse können
unterschiedliche Rechte haben. Es ist doch einigermaßen ersichtlich,
daß man im Verzeichnis das Schreibrecht haben muß um dorthin ein
Hardlink zu legen und auch wieder zu löschen. Auch ist es
ersichtlich, daß man dafür nicht das Schreibrecht der Datei selber
braucht. Was man beim löschen macht, ist einen Hardlink auf die
Datei löschen. Wenn es zufälligerweise der letzte Link ist, also
nichts mehr auf die Datei verweist, dann gibt der Kernel den
Speicher der die Datei belegt wieder frei, die Datei ist somit
gelöscht. 

Noch eine Bemerkung zu den Warnungen die rm ausgibt. Die gibt rm
aus, wenn man kein Schreibrecht auf die Datei hat, wohl aber auf das
Verzeichnis. Mit -f kann man das vermeiden, dann löscht rm ohne
nachzufragen. Aber dieses Nachfragen ist eine Eigenschaft des
Anwenderprogramms rm. Wenn von Rechten die Rede ist, dann ist davon
die Rede, wie der Kernel mit Anforderungen eine Datei zu lesen bzw.
schreiben oder auszuführen umgeht. Darüberhinaus können
Anwenderprogramme den Modus natürlich einsehen und je nach dem sich
unterschiedlich verhalten ohne den Kernel zu belästigen. Dabei kann
dies Verhalten belibig skuriel sein, das hat erst mal nichts mit den
Rechten zu tun. Deshalb bleibt wahr, daß man das Schreibrecht des
Verzeichnisses braucht und nur das,  um eine Datei löschen zu
können. Das Schreibrecht der Datei ist vollkommen unnötig.

Bernd



Reply to: