Ich bin auf überraschendes (für mich) Berechtigungsverhalten bei FreeBSD gestoßen. Angenommen, ich arbeite als Nicht-Root- Benutzer. Ich erstelle eine Datei, setze ihre Berechtigung auf schreibgeschützt und versuche dann, in sie zu schreiben:
$ touch f
$ chmod 400 f
$ ls -l f
-r-------- 1 user wheel f
$ echo a >> t
t: Permission denied.
So weit, ist es gut. Jetzt mache ich dasselbe wie root und es schreibt in die Datei:
# ls -l f2
-r-------- 1 root wheel f2
# echo a >> f2
# echo $?
0
Ist es ein Fehler oder ein beabsichtigtes Verhalten? Kann ich davon ausgehen, dass dies unter Unix und Linux so funktioniert?
chmod
sie nicht in die Datei schreiben kann.
touch somefile; chmod 0000 somefile; chmod 0644 somefile
als normaler Benutzer.
CAP_DAC_OVERRIDE
kann dies tun. Auf fast allen Linux-Systemen bedeutet dies, dass root dies tun kann, so dass dies beabsichtigt ist. Ich kann nicht für den FreeBSD-Teil sprechen, aber ich würde mir vorstellen, dass sie ein ähnliches Setup haben.