Mi sono imbattuto nel sorprendente (per me) comportamento dei permessi su FreeBSD. Diciamo che sto operando come utente non root . Creo un file, imposto la sua autorizzazione in sola lettura e quindi provo a scriverlo:
$ touch f
$ chmod 400 f
$ ls -l f
-r-------- 1 user wheel f
$ echo a >> t
t: Permission denied.
Fin qui tutto bene. Ora faccio lo stesso di root e scrive nel file:
# ls -l f2
-r-------- 1 root wheel f2
# echo a >> f2
# echo $?
0
È un bug o un comportamento previsto? Posso tranquillamente supporre che questo funzionerebbe così su qualsiasi Unix e Linux?
chmod
non è possibile scrivere sul file.
touch somefile; chmod 0000 somefile; chmod 0644 somefile
come un normale utente.
CAP_DAC_OVERRIDE
può farlo. Su quasi tutti i sistemi Linux ciò significa che root può farlo, quindi è intenzionale. Non posso parlare per la parte di FreeBSD ma immagino che abbiano una configurazione simile.