afpd(8) AppleTalk ファイリングプロトコルデーモン

書式

afpd [ -duptDTvI ] [ -f defaultvolumes ] [ -s systemvolumes ] [ -n nbpname ] [ -c maxconnections ] [ -g guest ] [ -P pidfile ] [ -S port ] [ -L message ] [ -F config ] [ -U uams ] [ -m umask ]

説明

afpd は AppleTalk ファイリングプロトコル (AppleTalk Filing Protocol, AFP) の インターフェースを Unix ファイルシステムに提供する。 このデーモンは、通常、ブート時に /etc/rc から起動される。 ユーザーに提供されるボリュームの一覧は、 /etc/netatalk/AppleVolumes.system および /etc/netatalk/AppleVolumes.default, ~/AppleVolumes, ~/.AppleVolumes のうちの 1 つから作成される。

AppleVolumes ファイルは、マウントするボリュームや ファイル名拡張子の対応付けを指定するために使われる。 以下のようなフォーマットで、1 行に 1 つを指定する:

pathname [ volumename ]
.extension [ type [ creator ] ]

volumename が指定されない場合、 pathname の最後の '/' より後の部分が使われる。 ボリューム名として同じ名前を重複して使うことはできない。 type が指定されない場合、 '????' が使われる。 creator が指定されない場合、 'UNIX' が使われる。 拡張子 '.' は、タイプが設定されていない Unix ファイルに対して、 デフォルトのクリエータとタイプを設定する。 空行と `#' で始まる行は無視される。

オプション

-d
デーモンを fork せず、全ての AFP コマンドを標準出力に書き出すように指定する。
-f defaultvolumes
デフォルトで提供するボリュームの一覧を、 /etc/netatalk/AppleVolumes.default ではなく defaultvolumes から読み込む。
-s systemvolumes
全てのユーザーに提供するボリュームの一覧を、 /etc/netatalk/AppleVolumes.system ではなく systemvolumes から読み込む。
-u
ユーザーの AppleVolumes ファイルを最初に読み込む。 このオプションにより、ユーザーの AppleVolumes ファイルにあるボリューム名が、システムの AppleVolumes ファイルにあるボリューム名よりも優先される。 デフォルトではシステムの AppleVolumes が最初に読まれる。 このオプションがファイル名拡張子の対応付けの優先順位には 影響しない点に注意すること: ユーザーの AppleVolumes ファイルが常に優先される。
-n nbpname
NBP の登録に、 ローカルゾーンのホスト名からドメイン部をとった最初の部分ではなく、 nbpname を使うように指定する。
-c maxconnections
afpd に許可する最大接続数を指定する。 デフォルトは 5 である。
-g guest
ゲストアカウントの名前を指定する。デフォルトは ``nobody'' である。
-P pidfile
afpd が自身のプロセス ID を格納するファイルを指定する。
-p
クライアントがパスワードを保存しないようにさせる (afpd.conf における -nosavepasswd と等価である)。
-t
クライアントがパスワードを変更できるようにする (afpd.conf における -setpasswd と等価である)。
-D
トランスポートプロトコルとして DDP (AppleTalk) を使う (afpd.conf における -ddp と等価である)。
-T
トランスポートプロトコルとして TCP/IP を使う (afpd.conf における -tcp と等価である)。
-S port
AFPoverTCP を実行するときに登録するポートを指定する。 デフォルトは 548 である (afpd.conf における -port と等価である)。
-L message
クライアントに送られるログインメッセージを指定する (afpd.conf における -loginmsg と等価である)。
-F config
使用する設定ファイルを指定する (デフォルトは /etc/netatalk/afpd.conf である)。
-U uams
認証プロセスで使用する UAM (訳註: User Authentication Method, ユーザ認証法) の コンマで区切られたリスト (afpd.conf における -uamlist と等価である)。
-I
プラットフォーム固有のアイコンを使う (afpd.conf における -icon と等価である)。
-m umask
Netatalk でフォルダを作成する際に、この umask を使う。
-v
バージョン情報を表示して、終了する。

認証

afpd は、現在のところ、 NoUserAuthent (ゲスト), Cleartxt passwrd, Kerberos IV という 3 つのユーザー認証法 (UAM) を使うことができる。 ユーザーが NoUserAuthent を使った場合、デフォルトのボリュームのみをマウントできる。 また、ゲストユーザーに許可されたファイルについてのみ読み書きが可能である。 -G オプションは NoUserAuthent を使用不可にする。 Cleartxt passwdKerberos IV が使われた場合、 afpd~/AppleVolumes にリストされている全てのボリュームをユーザーに提供する。 ユーザーは通常読み書きできる全てのファイルの読み書きができる。 AFS を使う際に Cleartxt passwd は推奨されず、 Kerberos IV が推奨される。 アメリカ国外用に、簡略化した UAM, AFS Kerberos が配布の中に含まれている。

警告

afpd のディレクトリ ID は、セッションの間を通して固定である。 これは Mac エイリアスが必ずしも常に正しく動作しないことを意味する。

アプリケーションが対応付けられているフォルダの名前が変更されると、 そのアプリケーションの APPL 対応付けは使用不能になる。 これは、アプリケーションが作った文書をダブルクリックしても、 そのアプリケーションが起動しなくなることを意味する。 APPL 対応付けは、次に Finder がアプリケーションを参照したときに、 Mac によって再構築される。

afpd が Macintosh ファイル名を小文字化するように設定されている場合、 大文字と小文字の混ざった Unix ファイル名は使うことができない。

キャリッジリターン / ラインフィードの変換が有効にされている場合、 Unix のバイナリファイルを Macintosh にコピーするのは安全でない。

デバイス間でディレクトリを移動することはできない。

既存のボリュームの親ボリュームをマウントした場合、 既存のボリュームのデスクトップデータベースは 親ボリュームからは使えない。 APPL 対応付けや BNDL ビットセットを使ったアプリケーションのアイコンは、 Finder がアプリケーションを参照したときに親ボリューム内に作成される。

ユーザーが自分の ~/AppleVolumes を編集して自分のディレクトリを提供しないようにした場合、 ユーザーは Macintosh から自分の ~/AppleVolumes を編集できなくなる。

`.' で始まる Unix ファイルは、Mac からアクセスできない。

pathname~/AppleVolumes ファイルにない場合、そのボリュームはセレクタに現れない。

Microsoft Word の TEXT 文書はキャリッジリターン / ラインフィードの変換が行われない。 なぜなら、MS Word は文書を書き込むときに TEXT ではないタイプを使い、その後でタイプを TEXT に変更するためである。 ユーザーが自分の ~/AppleVolumes を編集できるように、 afpd はファイルの行末文字が (NL, LF の) どちらであっても理解する。

31 文字より長い Unix ファイル名は、Macintosh からアクセスできない。

シグナル

メインの afpd プロセスに送られたシグナルは、子プロセスにも伝えられて、 全てに影響を与える。
SIGHUP
afpd プロセスは "The server is going down for maintenance." という メッセージをクライアントに送り、5 分以内にシャットダウンする。 新規の接続は許可されない。 子の afpd にシグナルが送られても、他の子プロセスには影響しない。 だだしメインプロセスは終了し、新規の接続はできない。
SIGUSR1
configure オプション --with-message-dir が指定された場合、 afpd プロセスは debug オプションを設定し、メッセージを /var/tmp/afpd-debug-pid にリダイレクトする。 このシグナルは子の afpd にのみ送るべきである。 警告: --with-message-dir オプションが指定されていない場合、 このシグナルは afpd プロセスを kill する。
SIGUSR2
afpd プロセスは msg ディレクトリで message.pid という名前のファイルを探す。 ファイルが見つかると、それに対応する AFP クライアントに ファイルの内容をメッセージとして送る。 メッセージが送られた後、ファイルは削除される。

ファイル

/etc/netatalk/AppleVolumes.default
マウントするデフォルトのボリュームの一覧
/etc/netatalk/AppleVolumes.system
全てのユーザーに提供するボリュームの一覧
~/AppleVolumes
各ユーザーがマウントするボリュームの一覧
/etc/netatalk/msg/message.pid
ユーザーに送られるメッセージ
/var/tmp/afpd-debug-pid
(SIGUSR1 で呼び出された場合の) デバッグ出力

バグ

いくつかの AFP の仕様は、Macintosh で使用されていないので、実装されていない。