Mandatory file lock on linux

Frank picture Frank · Aug 21, 2012 · Viewed 9k times · Source

On Linux I can dd a file on my hard drive and delete it in Nautilus while the dd is still going on.

Can Linux enforce a mandatory file lock to protect R/W?

Answer

amoe picture amoe · Jan 9, 2013

To do mandatory locking on Linux, the filesystem must be mounted with the -o mand option, and you must set g-x,g+s permissions on the file. That is, you must disable group execute, and enable setgid. Once this is performed, all access will either block or error with EAGAIN based on the value of O_NONBLOCK on the file descriptor. But beware: "The implementation of mandatory locking in all known versions of Linux is subject to race conditions which render it unreliable... It is therefore inadvisable to rely on mandatory locking." See fcntl(2).