Hlfsd
is a daemon which implements a filesystem containing a symbolic link to
subdirectory within a user's home directory, depending on the user
which accessed that link. It was primarily designed to redirect
incoming mail to users' home directories, so that it can read from
anywhere.
Hlfsd
operates by mounting itself as an
NFS
server for the directory containing
linkname,
which defaults to
/hlfs/home.
Lookups within that directory are handled by
hlfsd,
which uses the password map to determine how to resolve the lookup.
The directory will be created if it doesn't already exist. The symbolic link will be to the accessing user's home directory, with
subdir
appended to it. If not specified,
subdir
defaults to
.hlfsdir.
This directory will also be created if it does not already exist.
A SIGTERM sent to
hlfsd
will cause it to shutdown. A SIGHUP will flush the internal
caches, and reload the password map. It will also close and
reopen the log file, to enable the original log file to be
removed or rotated. A SIGUSR1 will cause it to dump its internal
table of user IDs and home directories to the file
/usr/tmp/hlfsd.dump.XXXXXX.
OPTIONS
-a alt_dir
Alternate directory. The name of the directory to which
the symbolic link returned by
hlfsd
will point, if it cannot access the home directory of the user. This
defaults to
/var/hlfs.
This directory will be created if it doesn't exist. It is expected
that either users will read these files, or the system administrators
will run a script to resend this "lost mail" to its owner.
-c cache-interval
Caching interval.
Hlfsd
will cache the validity of home directories for this interval, in
seconds. Entries which have been verified within the last
cache-interval
seconds will not be verified again, since the operation could
be expensive, and the entries are most likely still valid.
After the interval has expired,
hlfsd
will re-verify the validity of the user's home directory, and
reset the cache time-counter. The default value for
cache-interval
is 300 seconds (5 minutes).
-f
Force fast startup. This option tells
hlfsd
to skip startup-time consistency checks such as existence of mount
directory, alternate spool directory, symlink to be hidden under the
mount directory, their permissions and validity.
-g group
Set the special group HLFS_GID to
group.
Programs such as
from
or
comsat,
which access the mailboxes of other users) must be setgid HLFS_GID to
work properly. The default group is "hlfs". If no group is provided,
and there is no group "hlfs", this feature is disabled.
-h
Help. Print a brief help message, and exit.
-i reload-interval
Map-reloading interval. Each
reload-interval
seconds,
hlfsd
will reload the password map.
Hlfsd
needs the password map for the UIDs and home directory pathnames.
Hlfsd
schedules a SIGALRM to reload the password maps. A SIGHUP sent to
hlfsd
will force it to reload the maps immediately. The default
value for
reload-interval
is 900 seconds (15 minutes.)
-l logfile
Specify a log file to which
hlfsd
will record events. If
logfile
is the string
syslog
then the log messages will be sent to the system log daemon by
syslog(3),
using the LOG_DAEMON facility.
This is also the default.
-n
No verify.
Hlfsd
will not verify the validity of the symbolic link it will be
returning, or that the user's home directory contains
sufficient disk-space for spooling. This can speed up
hlfsd
at the cost of possibly returning symbolic links to home
directories which are not currently accessible or are full.
By default,
hlfsd
validates the symbolic-link in the background.
The
-n
option overrides the meaning of the
-c
option, since no caching is necessary.
-o mount-options
Mount options. Mount options which
hlfsd
will use to mount itself on top of
dirname.
By default,
mount-options
is set to "ro". If the system supports symbolic-link caching, default
options are set to "ro,nocache".
-p
Print PID.
Outputs the process-id of
hlfsd
to standard output where it can be saved into a file.
-v
Version. Displays version information to standard error.
-x log-options
Specify run-time logging options. The options are a comma separated
list chosen from: fatal, error, user, warn, info, map, stats, all.
-C
Force
hlfsd
to run on systems that cannot turn off the NFS attribute-cache. Use of
this option on those systems is discouraged, as it may result in loss
or misdelivery of mail. The option is ignored on systems that can turn
off the attribute-cache.
-D log-options
Select from a variety of debugging options. Prefixing an
option with the string
no
reverses the effect of that option. Options are cumulative.
The most useful option is
all.
Since this option is only used for debugging other options are not
documented here. A fuller description is available in the program
source. A SIGUSR1 sent to
hlfsd
will cause it to dump its internal password map to the file
/usr/tmp/hlfsd.dump.XXXXXX.
-P password-file
Read the user-name, user-id, and home directory information from the file
password-file.
Normally,
hlfsd
will use
getpwent(3)
to read the password database. This option allows you to override the
default database, and is useful if you want to map users' mail files to a
directory other than their home directory. Only the username, uid, and
home-directory fields of the file
password-file
are read and checked. All other fields are ignored. The file
password-file
must otherwise be compliant with Unix System 7 colon-delimited format
passwd(4).
FILES
/hlfs
directory under which
hlfsd
mounts itself and manages the symbolic link
home.
.hlfsdir
default sub-directory in the user's home directory, to which the
home
symbolic link returned by
hlfsd
points.
/var/hlfs
directory to which
home
symbolic link returned by
hlfsd
points if it is unable to verify the that
user's home directory is accessible.
HLFSD: Delivering Email to Your $HOME,
in
Proc. LISA-VII, The 7th Usenix System Administration Conference,
November 1993.
AUTHORS
Erez Zadok <ezk@cs.columbia.edu>, Computer Science Department,
Columbia University, New York City, New York, USA, and
Alexander Dupuy <dupuy@smarts.com>, System Management ARTS,
White Plains, New York, USA.