Je suis tombé sur un comportement de permission surprenant (pour moi) sur FreeBSD. Supposons que j'opère en tant qu'utilisateur non root . Je crée un fichier, définit son autorisation en lecture seule, puis j'essaye d'y écrire:
$ touch f
$ chmod 400 f
$ ls -l f
-r-------- 1 user wheel f
$ echo a >> t
t: Permission denied.
Jusqu'ici tout va bien. Maintenant, je fais la même chose que root et il écrit dans le fichier:
# ls -l f2
-r-------- 1 root wheel f2
# echo a >> f2
# echo $?
0
Est-ce un bug ou un comportement voulu? Puis-je supposer en toute sécurité que cela fonctionnerait ainsi sur n'importe quel Unix et Linux?
chmod
il ne peut pas écrire dans le fichier.
touch somefile; chmod 0000 somefile; chmod 0644 somefile
tant qu'utilisateur normal.
CAP_DAC_OVERRIDE
peut le faire. Sur presque tous les systèmes Linux, cela signifie que root peut le faire, c'est donc intentionnel. Je ne peux pas parler pour la partie FreeBSD mais j'imagine qu'ils ont une configuration similaire.