Eu me deparei com um surpreendente (para mim) comportamento de permissão no FreeBSD. Digamos que estou operando como usuário não root . Crio um arquivo, defino sua permissão como somente leitura e, em seguida, tento gravar nele:
$ touch f
$ chmod 400 f
$ ls -l f
-r-------- 1 user wheel f
$ echo a >> t
t: Permission denied.
Por enquanto, tudo bem. Agora eu faço o mesmo que root e ele grava no arquivo:
# ls -l f2
-r-------- 1 root wheel f2
# echo a >> f2
# echo $?
0
É um bug ou comportamento pretendido? Posso assumir com segurança que isso funcionaria assim em qualquer Unix e Linux?
chmod
não poderá gravar no arquivo.
touch somefile; chmod 0000 somefile; chmod 0644 somefile
como um usuário normal.
CAP_DAC_OVERRIDE
pode fazer isso. Em quase todos os sistemas Linux, isso significa que o root pode fazer isso, sendo intencional. Não posso falar pela parte do FreeBSD, mas imagino que eles tenham uma configuração semelhante.