Hermann Robin <robin(at)papenburg.net> wrote:
> Hallo, ich habe ein echtes FreeBSD Problem.
Nö, Du hast ein Verständnisproblem mit UNIX-Permissions.
:-)
> Wenn ich z.B. eine Datei als user "root" erstelle, diese auch mit
> "chown root.wheel datei.txt" die Benuztzerrechte ändere und dann mit
> "chmod 700 datei.txt" die Zugriffsrecht änderen, so kann zwar keiner
> diese Datei lesen ausser ser user "root", baer ein jeder Benutzer kann
> diese löschen oder umbenennen. Das Betriebssystem fragt lediglich nach:
>
> override -rwx------ root/wheel for datei.txt?
>
> Wenn diese Frage mit "y" beantwortet wird, wird die Datei Gnadenlos
> gelöscht. Das kann doch nicht richtig sein, das kann doch nicht angehen,
> da muss doch ein Bug im system sein, oder?????? Gibt es denn noch eine
> Konfigurationsdatei, wo man das abstellen kann?????????
Du mußt zwischen Zugriffsrechten auf der Datei und Zugriffs-
rechten auf dem Verzeichnis, in dem sich die Datei befindet,
unterscheiden.
Die Zugriffsrechte für die Datei regeln, wer dieser Datei
lesen und darin schreiben darf. Das Löschen oder Umbenennen
ist aber _keine_ Operation in der Datei sondern in dem Ver-
zeichnis, in dem sich die Datei befindet. Entscheidend da-
für sind also dann die Zugriffsrechte dieses Verzeichnisses!
Einzige Ausnahme: Wenn auf einem Verzeichnis das »t«-Bit
gesetzt ist, kann man im Verzeichnis keine Operationen
durchführen, die Dateieinträge anderer Benutzer verändern
würden, auch wenn man Schreibrecht auf das Verzeichnis hat.
Dies wird sinnvollerweise für öffentlich schreibbare Ver-
zeichnisse wie /tmp und /var/tmp verwendet.
In Deinem obigen Beispiel gehörte die Datei zwar root, aber
das Verzeichnis muß wohl für den Normalbenutzer schreibbar
gewesen sein (und kein t-Bit gehabt haben). Beispiel:
drwxr-xr-x 6 otto otto 1024 Jul 18 17:48 .
drwxr-xr-x 46 otto otto 12288 Jul 18 17:48 ..
-rw------- 1 root wheel 4536702 Jul 18 17:48 foobar
Da der Benutzer »otto« Schreibrecht auf das Verzeichnis
hat, kann er die Datei foobar darin löschen oder Umbenen-
nen. Diese Operationen ändern ja _nicht_ den Inhalt der
Datei, sondern _nur_ den Inhalt des Verzeichnisses.
Wenn Du nicht möchtest, daß der Benutzer »otto« das tun
kann, mußt Du ihm das Schreibrecht auf das Verzeichnis
wegnehmen. Oder das t-Bit setzen (»chmod +t«, siehe die
manpage für Details), allerdings sollte das Verzeichnis
dann auch root gehören, da sonst der Eigentümer ja das
t-Bit auch wieder entfernen könnte.
Du kannst die Datei auch in ein Unterverzeichnis verschie-
ben, das ebenfalls root gehört; dann kann der Benutzer
»otto« nichts mehr ausrichten: Die Datei darin kann er
nicht löschen oder umbenennen, weil er kein Schreibrecht
in dem Unterverzeichnis hat, und letzteres kann er auch
nicht entfernen, weil es nicht leer ist. Allerdings kann
er es umbenennen.
Fazit: Kein Bug. Works as designed.
Gruß
Olli
-- Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München Any opinions expressed in this message may be personal to the author and may not necessarily reflect the opinions of secnetix in any way. "All that we see or seem is just a dream within a dream" (E. A. Poe) To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Thu 18 Jul 2002 - 17:51:31 CEST