I've stumbled upon surprising (for me) permission behavior on FreeBSD. Let's say I'm operating as non-root user. I create a file, set its permission on read-only and then try to write into it:
$ touch f
$ chmod 400 f
$ ls -l f
-r-------- 1 user wheel f
$ echo a >> t
t: Permission denied.
So far so good. Now I do the same as root and it writes into the file:
# ls -l f2
-r-------- 1 root wheel f2
# echo a >> f2
# echo $?
0
Is it a bug or intended behavior? Can I safely assume that this would work so on any Unix & Linux?
Best Answer
It's normal for
root
to be able to override permissions in this manner.Another example is
root
being able to read a file with no read access:Some systems have the concept of immutable files. eg on FreeBSD:
Now even
root
can't write to the file. But, of course,root
can remove the flag:With FreeBSD you can go a step further and set a kernel flag to prevent
root
from removing the flag:Now no one, not even
root
can change this file.(The system needs rebooting to reduce the securelevel).