netatalk.io

Netatalk 4.5.0

Netatalk のセットアップ

AFP ファイルサーバーのセットアップ

AFP (Apple Filing Protocol) はそもそもアップル・マッキントッシュのために開発されたファイルサービスプロトコルである。AFP プロトコルは年を追うごとに進展を見せ、最終バージョンは OS X Lion (10.7) で加えられた AFP 3.4 である。

Netatalk の afpd デーモンは AFP クライアントに対してファイルサービスを提供する。設定ファイルは afp.conf のみで、”ini” スタイルの構文で記述する。

afp.conf

afp.conf は、AFP ファイルサーバー及び提供する AFP ボリュームの挙動と設定を 決定するために afpd が使用する設定ファイルである。

afp.conf は複数のサーバーセクションに分割できる。すなわち:

[Global]

グローバルセクションで基本的なサーバーオプションを定義する。

[Homes]

ホームセクションでユーザーのホームボリュームを定義する。

Global とも Homes、とも呼ばれないセクションは単なる一つの AFP ボリュームであると解釈される

【注記】 ネストされたボリューム(あるボリュームのパスが別のボリュームのサブディレクトリである場合)は許可されない。 Netatalk がネストされたボリューム構成を検出すると、ネストされたボリュームをスキップし、警告をログに記録する。 これは、ネストされたボリュームが CNID データベースの不整合を引き起こし、クラッシュやデータの破損につながるためである。 親ディレクトリとサブディレクトリの両方を共有する必要がある場合は、 Homes セクションの path オプションを使用してホームボリュームをサブディレクトリに制限するか、 ボリュームパスが他のボリューム内に含まれないように共有を再構成することを検討すると良い。

Homes を定義してユーザーのホームディレクトリを共有するために、 basedir regex オプションを明記しなければならない。 これは全てのユーザーのホームの親ディレクトリのパスあるいは正規表現からなる単純な文字列でよい。

例:

[Homes]
basedir regex = /home

AFP サーバーにログインできるユーザーはそれぞれ /home/(ユーザー名) というパス名でのユーザーボリュームを使用できる。

より複雑なセットアップで、例えば二つの異なったファイルシステムにわたって分割された、 大量のユーザーホームディレクトリーのあるサーバーなら:

以下の設定が必要である:

[Homes]
basedir regex = /RAID./.*homes

もし、basedir regex にシンボリックリンクが含まれる場合、 正規化された絶対パスを指定すべきである。つまり、パス /home から /usr/home にシンボリックリンクがはられていた場合:

[Homes]
basedir regex = /usr/home

他の使用できるオプションの詳細な解説については afp.conf の man page を参照いただきたい。

バックアップボリューム

Netatalk は AFP を介して macOS Time Machine のリモートバックアップ機能を提供する。ボリュームを Time Machine のターゲットにするには、オプション time machine = yes を使う。

Zeroconf と組み合わせて使用すると、バックアップボリュームはサーバーが稼働しているときに Bonjour を介して自動的に宣伝され、macOS クライアントが Time Machine バックアップの宛先としてそれを発見し選択できるようになる。

シンボリックリンク

デフォルトでは、シンボリックリンクはサーバー側で追跡されず、クライアントに解決のために渡されるため、クライアントのファイルシステムビューのどこかを指すリンクになる。これは歴史的な Mac OS X AFP サーバーと同じ挙動である。

サーバー側のシンボリックリンクの追跡は、follow symlinks = yes でボリュームごとに有効にできる。有効にすると、AFP を介して作成されたシンボリックリンクのターゲットは検証される:絶対パス、.. を含むパス、ボリュームルートの外部に解決されるターゲット、異なるファイルシステムデバイス上のターゲットは拒否される。AFP 以外で作成された既存のシンボリックリンクはこの検証の対象にならないことに注意。

サーバー側のシンボリックリンクの追跡を有効にすると、注意して使用しないとセキュリティ上の問題につながる可能性があることに注意。