No, il gregge NON impedisce a nessuno di fare qualcosa. I lock Unix sono ADVISORY, il che significa che impediscono ad altri processi di chiamare il flock (o, nel caso di un lock condiviso, impediscono a un altro processo di usarne uno esclusivo).
Non impedisce a root, oa chiunque altro, di leggere, scrivere o eliminare il file.
In ogni caso, anche se fosse un blocco obbligatorio, non impedirebbe l'eliminazione del file, poiché è il file bloccato e non la voce della directory.
sudo chattr +i ./file.xml
MarkR ha ragione chattr'ing il file ne impedirà l'eliminazione:
-(~)-------------------------------------------------------------------------------------------------------(08:40 Mon Mar 29)
[email protected] [2135] --> sudo chattr +i junk.txt
[sudo] password for risk:
-(~)-------------------------------------------------------------------------------------------------------(08:40 Mon Mar 29)
[email protected] [2136] --> sudo rm ./junk.txt
rm: cannot remove `./junk.txt': Operation not permitted
zsh: exit 1 sudo rm ./junk.txt
-(~)-------------------------------------------------------------------------------------------------------(08:40 Mon Mar 29)
[email protected] [2137] --> sudo rm -f ./junk.txt
rm: cannot remove `./junk.txt': Operation not permitted
zsh: exit 1 sudo rm -f ./junk.txt
-(~)-------------------------------------------------------------------------------------------------------(08:40 Mon Mar 29)
[email protected] [2138] -->
flock non è lo strumento giusto per questo lavoro. Se hai un programma che sta cancellando file, non dovresti eseguirlo come root. Dovresti eseguirlo come un altro utente. Unix ha un ottimo supporto per i permessi dei file, ma root è un account divino. Root può fare tutto e non ci sono permessi per root.