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?
files
permissions
root
Menge
quelle
quelle
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.chmod
sie nicht in die Datei schreiben kann.touch somefile; chmod 0000 somefile; chmod 0644 somefile
als normaler Benutzer.Antworten:
Es ist normal
root
, Berechtigungen auf diese Weise überschreiben zu können.Ein weiteres Beispiel ist
root
das Lesen einer Datei ohne Lesezugriff:Einige Systeme haben das Konzept unveränderlicher Dateien. zB auf FreeBSD:
Jetzt
root
kann nicht einmal in die Datei schreiben. Aber natürlichroot
kann entfernen die Flagge:Mit FreeBSD können Sie noch einen Schritt weiter gehen und ein Kernel-Flag setzen, um zu verhindern,
root
dass das Flag entfernt wird:Jetzt kann niemand, nicht einmal
root
diese Datei ändern.(Das System muss neu gestartet werden, um die Sicherheitsstufe zu verringern.)
quelle
chattr +i tst
setzt unveränderlich Attribut.Ja, das ist sehr normal. root hat keine Grenzen für Lesen / Schreiben (mit sehr wenigen Ausnahmen), da er der Root ist.
quelle