Non, flock n'empêche personne de faire quoi que ce soit. Les verrous Unix sont CONSULTATIFS, ce qui signifie qu'ils empêchent d'autres processus d'appeler également flock (ou dans le cas d'un verrou partagé, empêchent un autre processus d'utiliser un verrou exclusif).
Cela n'empêche pas root, ni personne d'autre, de lire, d'écrire ou de supprimer le fichier.
Dans tous les cas, même s'il s'agissait d'un verrou obligatoire, cela n'empêcherait pas la suppression du fichier, car c'est le fichier qui est verrouillé et non l'entrée du répertoire.
sudo chattr +i ./file.xml
MarkR a raison de discuter du fichier pour l'empêcher d'être supprimé :
-(~)-------------------------------------------------------------------------------------------------------(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 n'est pas le bon outil pour ce travail. Si vous avez un programme qui supprime des fichiers, vous ne devez pas exécuter ce programme en tant que root. Vous devez l'exécuter en tant qu'utilisateur différent. Unix a un très bon support pour les autorisations de fichiers, mais root est un compte divin. Root peut tout faire, et il n'y a pas d'autorisations pour root.