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 が処理し、その検索をどのように解決するかを決定するために パスワードマップを使います。ディレクトリは、存在しなかった場合には作成 されます。シンボリックリンクは、それをアクセスしたユーザの ホームディレクトリに subdir をつけたものになります。 subdir が指定されなかった場合の、 subdir のデフォルトは .hlfsdir です。このディレクトリも、存在しなかった場合には作成されます。

SIGHUP を送ると、内部キャッシュのフラッシュを行い、パスワードマップの再読み込みを 行います。また、ログファイルをクローズし、オープンしなおして、 以前のログファイルを消去したり交換します。 SIGUSR1 を送ると、ユーザ ID とホームディレクトリの内部テーブルを /usr/tmp/hlfsd.dump.XXXXXX にダンプします。

オプション

-a alt_dir
    代わりのディレクトリです。ユーザのホームディレクトリにアクセスできない場合に、 hlfsd が返すシンボリックリンクが指すディレクトリの名前です。デフォルトは /var/hlfs です。このディレクトリは存在しなければ作成されます。ユーザがこのファイルを 読む、またはシステム管理者がこの “lost mail” をその所有者に送り直すスクリプトを走らせるということが期待されます。

-c cache-interval
    キャッシュする間隔です。 hlfsd はこの間隔 (秒単位) でホームディレクトリの有効性をキャッシュします。 cache-interval 秒以内に確認されたことのあるエントリは再確認されません。 それは、その操作のコストが高く、 そのエントリがまだ有効であることが十分に期待できるからです。 その間隔がたつと、 hlfsd はユーザのホームディレクトリの有効性をふたたび確認し、キャッシュの タイムカウンタをリセットします。 デフォルトの cache-interval は 300 秒 (5 分) です。

-f  高速に起動させます。 hlfsd マウントディレクトリ、代わりのスプールディレクトリ、マウントディレクトリ下に 隠れているシンボリックリンクが存在すること、そのパーミッション、そして その有効性といった起動時の一貫性チェックを、このオプションが与えられたとき にはスキップします。

-g group
    特殊グループ HLFS_GID を group に設定します。 comsat (ほかのユーザのメールボックスにアクセスする) といったプログラムは正常に動作するためには HLFS_GID に setgid しておかねばなりません。デフォルトのグループは “hlfs” です。グループが与えられなくて、 “hlfs” というグループが存在しないなら、この機能は無効になります。

-h  ヘルプです。短いヘルプメッセージを表示し、終了します。

-i reload-interval
    マップを再読み込みする間隔です。 reload-interval 秒ごとに hlfsd はパスワードマップを再読み込みします。 hlfsd はユーザ ID とホームディレクトリのパスを知るために、パスワードマップが必要です。 hlfsd は SIGALRM を用いてパスワードマップを再読み込みします。 SIGHUP を送ると、 hlfsd はマップをすぐに再読み込みします。 reload-interval のデフォルトは 900 秒 (15 分) です。

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

-n  確認しません。 hlfsd は返すシンボリックリンクの有効性、またユーザのホームディレクトリに スプールするために十分なディスクスペースがあることを確認しません。 これによって、 hlfsd は、現在アクセスできないか、容量がいっぱいであるホームディレクトリへの シンボリックリンクを返すかもしれないという犠牲を払って、スピードアップ します。 デフォルトで、 hlfsd はバックグラウンドでシンボリックリンクを確認します。 キャッシュは必要ないので、 -n オプションは -c オプションの意味を無効にします。

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

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

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

-x log-options
    実行時にログをとるためのオプションを指定します。このオプションは、 fatal, error, user, warn, info, map, stats, all から選ばれた コンマ区切りのリストです。

-C  NFS attribute-cache を無効にできないシステムで hlfsd を実行させます。メールが失われたり、誤配送されることになりかねないので、 そのようなシステムで、このオプションを用いることは推奨されていません。 attribute-cache を無効にできるシステムではこのオプションは無視されます。

-D debug-options
    いろいろなデバッグオプションを選びます。オプションの接頭辞として "no" という文字列がついていると、そのオプションの効果を反転させます。 オプションは追加されます。 もっとも便利なオプションは all です。このオプションはデバッグのためだけに使われるので、 そのほかのオプションはここには記しません。 より詳細な解説はプログラムのソースにあります。 SIGUSR1 を送ると hlfsd は、内部パスワードマップを /usr/tmp/hlfsd.dump.XXXXXX にダンプします。

-P password-file
    password-file からユーザ名、ユーザ ID、ホームディレクトリの情報を読みます。 通常 hlfsd は、 getpwent(3) でパスワードのデータベースを読みます。このオプションによりデフォルトの データベースを無効にすることができ、ホームディレクトリ以外にユーザの メールをマップしたいときに便利です。 password-file のユーザ名、ユーザ ID、ホームディレクトリのフィールドだけを読み、 チェックします。ほかのすべてのフィールドは無視されます。 password-file は UNIX System 7 のコロン区切りのフォーマット passwd(5) に従わなければなりません。

関連ファイル

/hlfs
    hlfsd が自分自身をマウントし、シンボリックリンク home を処理するディレクトリです。

.hlfsdir
    ユーザのホームディレクトリ内のデフォルトのサブディレクトリで、 hlfsd が返したシンボリックリンク home のリンク先です。

/var/hlfs
    ユーザのホームディレクトリがアクセスできるかどうか確認できないときの、 hlfsd が返したシンボリックリンク home のリンク先です。

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

作者
Erez Zadok <ezk@cs.columbia.edu>, Department of Computer Science, Columbia University, New York, USA.

Alexander Dupuy <dupuy@smarts.com>, System Management ARTS, White Plains, New York, USA.

歴史
hlfsd ユーティリティは FreeBSD 3.0 で登場しました。