HLFSD(8)

名称
hlfsd - ホームリンクファイルシステムデーモン

書式
hlfsd [ -fhnpvC ] [ -a alt_dir ] [ -c cache-interval ] [ -g group ] [ -i reload-interval ] [ -l logfile ] [ -o mount-options ] [ -x log-options ] [ -D debug-options ] [ -P password-file ] [ linkname [ subdir ] ]

解説
hlfsd は、ユーザのホームディレクトリ内のサブディレクトリを指すシンボリックリンク (そのリンクをアクセスしたユーザに応じて変化する) を含むファイルシステムを 実装したデーモンです。 これは主に、到着したメールをユーザのホームディレクトリにリダイレクトして どこからでも読めるようにするために設計されました。

hlfsd は、 linkname (デフォルトは /hlfs/home) を含むディレクトリに対する NFS サーバとして自分自身をマウントして動作します。 このディレクトリに対する lookup は hlfsd が処理し、これには、lookup をどのように解決するかを決定するための パスワードマップを使います。 ディレクトリは、存在しなかった場合には作成されます。 シンボリックリンクは、それをアクセスしたユーザのホームディレクトリの後ろに subdir をつけたものになります。 subdir が指定されなかった場合の、 subdir のデフォルトは .hlfsdir です。このディレクトリも、存在しなかった場合には作成されます。

SIGTERM を hlfsd に送ると hlfsd がシャットダウンします。SIGHUP を送ると内部キャッシュのフラッシュを行い、 パスワードマップの再読み込みを行います。 さらに、ログファイルをいったんクローズしてから再度オープンし、 オリジナルのログファイルを削除したりローテートしたりできるようにします。 SIGUSR1 を送ると、ユーザ ID とホームディレクトリの情報が入っている 内部テーブルを、ファイル /usr/tmp/hlfsd.dump.XXXXXX にダンプします。

オプション

-a alt_dir
    代替ディレクトリです。 ユーザのホームディレクトリをアクセスできなかった場合に hlfsd が返すシンボリックリンクが指すディレクトリの名前です。 このデフォルトは /var/hlfs です。 このディレクトリは、ない場合には自動的に作られます。 ここに作られたファイルは、その所有者が直接読むか、 システム管理者がスクリプトを起動してこの "lost mail" をその所有者に再送する かのどちからが期待されます。

-c cache-interval
    キャッシングの間隔です。 hlfsd は、ホームディレクトリが確実にアクセスできるかどうかを、この時間間隔 (単位は秒) でキャッシュします。 最後の確認から cache-interval 秒内のエントリが再度確認されることはありません。 これは、この確認作業が高価で、そのエントリはおそらくまだ有効だからです。 この時間が expire した後は、 hlfsd は そのユーザのホームディレクトリが有効かどうかを再度確認し、 キャッシュの時間のカウンタをリセットします。 cache-interval のデフォルトは 300 秒 (5 分) です。

-f  高速に起動するようにします。 このオプションは、 hlfsd に対し、 マウントディレクトリや代替スプールディレクトリや マウントディレクトリの下に隠されてしまうシンボリックリンク が存在するかどうかや、これらのパーミッションや確実性 などの一貫性チェックを起動時に行わないように指示します。

-g group
    特別なグループ HLFS_GID を group に設定します。 from や comsat などのプログラムは他のユーザのメールボックスをアクセスしますが、 これらを正しく動作させるためには setgid HLFS_GID をしなければなりません。 デフォルトのグループは "hlfs" です。グループが指定されずかつ グループ "hlfs" がない場合、この機能は無効になります。

-h  ヘルプです。簡単なヘルプメッセージを表示して終了します。

-i reload-interval
    マップ-リロードの間隔です。 reload-interval 秒ごとに hlfsd はパスワードマップをリロードします。 hlfsd には、UID とホームディレクトリのパス名を得るためのパスワードマップが必要です。 hlfsd はパスワードマップのリロードを行うために、SIGALRM をスケジューリングします。 SIGHUP が hlfsd に送られると、 hlfsd は直ちに強制的にマップを読みます。 reload-interval のデフォルト値は 900 秒 (15 分) です。

-l logfile
    hlfsd がイベントを記録するログファイルを指定します。 logfile の文字列が syslog の場合、ログメッセージは syslog(3) をファシリティ LOG_DAEMON で使ってシステムログデーモンに送られます。 また、これがデフォルトです。

-n  確認しません (No verify)。 シンボリックリンクの先が正しくアクセスできるかどうかや、 ユーザのホームディレクトリに充分な空きがあるかどうかの確認を hlfsd がしなくなります。 これは、 ホームディレクトリを指すシンボリックリンクがその時点でアクセスできない とか満杯である可能性とコストを考えれば hlfsd のスピードアップになるでしょう。 デフォルトでは hlfsd はシンボリックリンクの確認をバックグラウンドで行います。 -n オプションは -c オプションより優先されるため、キャッシングは必要ありません。

-o mount-options
    マウントオプションです。 hlfsd が自分自身を dirname の上にマウントする時に使うマウントオプションです。 デフォルトでは mount-options は "ro" に設定されます。 システムがシンボリックリンクのキャッシングをサポートしれいれば、 デフォルトのオプションは "ro,nocache" になります。

-p  PID を表示します。 hlfsd のプロセス ID を標準出力に出力するので、これをファイルに保存することが できます。

-v  バージョンです。 バージョン情報を標準エラー出力に出力します。

-x log-options
    実行中のログの保存に関するオプションを指定します。 オプションは fatal, error, user, warn, info, map, stats, all から選んで、コンマで区切って並べます。

-C  NFS の attribute-cache をオフにできないシステムで hlfsd を強制的に使います。このようなシステムでこのオプションを使うと、 メールの喪失や配送に失敗する可能性があるため、このオプションを使うのには反対 です。 このオプションは attribute-cache をオフにできるシステムでは無視されます。

-D log-options
    たくさんあるデバッグオプションを選択します。 オプションの先頭に文字列 no がついた場合は、そのオプションの効果が反転します。 オプションの効果は累積されます。 最も有用なオプションは all です。このオプションはデバッグのためだけにあるため、他のオプションは ここでは記述しません。完全な解説はプログラムソースの中にあります。 SIGUSR1 を hlfsd に送ると、内部のパスワードマップをファイル /usr/tmp/hlfsd.dump.XXXXXX にダンプします。

-P password-file
    ファイル password-file から、ユーザ名、ユーザ ID、ホームディレクトリの情報を読みます。 通常、 hlfsd はパスワードデータベースを読むのに getpwent(3) を使います。このオプションはデフォルトのデータベースを上書きするため、 ユーザのメールファイルをホームディレクトリ以外のディレクトリにマップしたい場合 に有効です。ファイル password-file 内のユーザ名、UID、ホームディレクトリのフィールドだけが読まれて チェックされます。他の全てのフィールドは無視されます。 ファイル password-file は Unix System 7 のコロンで区切られた passwd(4) フォーマット互換でなければなりません。

関連ファイル
/hlfs
    hlfsd は自分自身をこのディレクトリの下にマウントして、シンボリックリンク home を管理します。
.hlfsdir
    hlfsd は、 home シンボリックリンクに対するアクセスにはユーザのホームディレクトリ内の サブディレクトリを指し示しますが、これのデフォルト値です。
/var/hlfs
    ユーザのホームディレクトリがアクセス可能であることを確認できなかった場合に home シンボリックリンクへのアクセスに対して hlfsd が指し示すディレクトリです。

関連項目
amd(8), automount(8), cron(8), getgrent(3), getpwent(3), mail(1), mnttab(4), mount(8), mtab(5), passwd(4), sendmail(8), umount(8).
HLFSD: Delivering Email to Your $HOME, in Proc. LISA-VII, The 7th Usenix System Administration Conference, November 1993.

作者
New York City, New York, USA にある Columbia 大学 Computer Science Department の Erez Zadok <ezk@cs.columbia.edu> と、White Plains, New York, USA にある System Management ARTS の Alexander Dupuy <dupuy@smarts.com> です。