mutt_dotlock (1) Linux Manual Page
NAME
mutt_dotlock – Lock mail spool files.
SYNOPSIS
mutt_dotlock [-t|-f|-u|-d] [-p] [-r retries] file
DESCRIPTION
mutt_dotlock implements the traditional mail spool file locking method: To lock file, a file named file.lock is created. The program operates with group mail privileges if necessary.
OPTIONS
- -t
- Just try.
mutt_dotlockwon’t actually lock a file, but inform the invoking process if it’s at all possible to lock file. - -f
- Force the lock. If another process holds a lock on file longer than a certain amount of time,
mutt_dotlockwill break that lock by removing the lockfile. - -u
- Unlock.
mutt_dotlockwill remove file.lock. - -d
- Delete.
mutt_dotlockwill lock file, remove it if it has length 0, and afterwards remove file.lock. - -p
- Use privileges. If given this option,
mutt_dotlockwill operate with group mail privileges when creating and deleting lock files. - -r retries
- This command line option tells
mutt_dotlockto try locking retries times before giving up or (if invoked with the-fcommand line option) break a lock. The default value is 5.mutt_dotlockwaits one second between successive locking attempts.
FILES
- file.lock
- The lock file
mutt_dotlockgenerates.
SEE ALSO
fcntl(2), flock(2), lockfile(1), mutt(1)
DIAGNOSTICS
mutt_dotlock gives all diagnostics in its return values:
0 – DL_EX_OK- The program was successful.
1 – DL_EX_ERROR- An unspecified error such as bad command line parameters, lack of system memory and the like has occurred.
3 – DL_EX_EXIST- The user wants to lock a file which has been locked by another process already. If
mutt_dotlockis invoked with the-fcommand line option,mutt_dotlockwon’t generate this error, but break other processes’ locks. 4 – DL_EX_NEED_RPIVS- This return value only occurs if
mutt_dotlockhas been invoked with the-tcommand line option. It means thatmutt_dotlockwill have to use its group mail privileges to lock file. 5 – DL_EX_IMPOSSIBLE- This return value only occurs if
mutt_dotlockhas been invoked with the-tcommand line option. It means thatmutt_dotlockis unable to lock file even with group mail privileges.
NOTES
mutt_dotlock tries to implement an NFS-safe dotlocking method which was borrowed from lockfile (1).
If the user can’t open file for reading with his normal privileges, mutt_dotlock will return the DL_EX_ERROR exit value to avoid certain attacks against other users’ spool files. The code carefully avoids race conditions when checking permissions; for details of all this see the comments in dotlock.c.
HISTORY
mutt_dotlock is part of the Mutt mail user agent package. It has been created to avoid running mutt with group mail privileges.
AUTHOR
Thomas Roessler <roessler [at] does-not-exist.org>
