Nein, Flock hindert niemanden daran, irgendetwas zu tun. Unix-Sperren sind ADVISORY, was bedeutet, dass sie verhindern, dass andere Prozesse ebenfalls flock aufrufen (oder im Fall einer gemeinsamen Sperre verhindern, dass ein anderer Prozess eine exklusive verwendet).
Es hindert weder root noch andere daran, die Datei zu lesen, zu schreiben oder zu löschen.
In jedem Fall, selbst wenn es sich um eine obligatorische Sperre handelte, würde dies das Löschen der Datei nicht verhindern, da die Datei gesperrt wird und nicht der Verzeichniseintrag.
sudo chattr +i ./file.xml
MarkR hat Recht, wenn die Datei gechattet wird, wird verhindert, dass sie gelöscht wird:
-(~)-------------------------------------------------------------------------------------------------------(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 ist nicht das richtige Werkzeug für diesen Job. Wenn Sie ein Programm haben, das Dateien löscht, sollten Sie dieses Programm nicht als Root ausführen. Sie sollten es als ein anderer Benutzer ausführen. Unix bietet sehr gute Unterstützung für Dateiberechtigungen, aber root ist ein gutes Konto. Root kann alles, und es gibt keine Berechtigungen für Root.