netatalk.io

Netatalk 4.5.0

名前

afp.conf - Netatalk の設定ファイル

概要

afp.confNetatalk AFPファイルサーバの設定ファイルである。

全てのAFP固有の設定とAFPボリュームの定義がこのファイルを通して行われる。

ファイルの書式

ファイルはセクションとパラメータから構成される。セクションはブラケット[各括弧]で囲まれたセクション名に始まり、次のセクションが始まるまで続く。セクションには次のような書式のパラメータが含まれている:

option = value

このファイルは行を基本とする。それぞれの行は改行文字で終端し、コメント、セクション名、パラメータのうちどれかを表す。

パラメータ名は大文字と小文字の区別があるが、セクション名は区別しない。

パラメータに最初に現れる等号だけは重要な意味を持つ。最初の等号の前後にある空白は破棄される。セクション名とパラメータ名の前、後、途中にある空白は意味を持たない。パラメータ値の前後の空白は破棄される。パラメータ値の途中の空白はそのま維持される。

セミコロン(“;”)やハッシュ文字(“#”)で始まるいかなる行も、空白だけの行と同様に無視される。

\ (バックスラッシュ)で終わるいかなる行も、通例のUNIX方式で次の行に続くことを意味する。

パラメータにおいて等号の後ろに続く値は、文字列(引用符は必要ない)または真偽値である。真偽値はyes/no、1/0、true/falseで表現する。大文字と小文字の区別は真偽値では意味を持たないが、文字列では保存される。「file perm」のようないくつかの項目は数値を表す。

セクションの説明

設定ファイル中のそれぞれのセクション([Global]セクション以外)は共有リソース(“volume”として知られる)を記述する。セクション内のパラメータはボリューム属性とオプションを定義する。

[Global]と[Homes]という二つの特殊なセクションがあるが、これについては下の方の特殊なセクションで説明する。以下の解説は通常のセクションに適用される。

一つのボリュームは、アクセスを許可するディレクトリ設定と、そのサービスにおいてユーザに与えるアクセス権設定で成り立つ。ボリュームに対してpathオプションを使って共有ディレクトリを指定しなければならない。

ボリューム名はvolume nameオプションで定義される。省略された場合、ボリューム名は小文字で表されるセクション名となる。

pathオプションのないボリュームセクションは、他のボリュームセクションからvol presetオプション経由で呼び出され、ボリュームのデフォルト値を決めるボリュームプリセットと見なされる。プリセットボリュームセクションの両方で指定されたオプションについては、ボリュームオプション設定がプリセットオプションを完全に上書きする。

サーバが許可したアクセス権は、ホストシステムの特定のUNIXユーザまたはゲストユーザのアクセス権でマスクされる。サーバはホストシステムの許可以上の許可をしない。

以下のセクションの例は、一つのAFPボリュームを定義している。ユーザはパス/foo/barへの完全なアクセス権を持つ。 Bazという共有名でアクセスできる:

[baz]
    volume name = Baz
    path = /foo/bar

特殊なセクション

[Global]セクション

このセクションのパラメータはサーバ全体に適用される。以下で(G)の印がついているパラメータはこのセクションで設定しなければならない。

[Homes]セクション

ユーザのホームディレクトリの共有を可能にする。必須オプションはbasedir regexであり、ユーザのホームディレクトリの親ディレクトリにマッチするパスを設定する。

オプションのpathパラメータを指定すると、ユーザのホームディレクトリ全体ではなく、サブディレクトリpathが共有される。以下の例では、全てのユーザのホームディレクトリが/homeにあることを想定している。

[Homes]
    path = afp-data
    basedir regex = /home

ユーザjohnについて、/home/john/afp-dataというパスがAFPホームボリュームになる。

basedir regexががシンボリックリンクを含む場合、正規化した絶対パスを設定してください。/home/usr/homeにリンクしているとき:

[Homes]
    basedir regex = /usr/home

オプションパラメータhome nameはAFPボリューム名を変更するのに使うものであり、デフォルトは$u’s homeである。下の「変数置換」の項を見よ。

[Homes]
    home name = The home of $u
    basedir regex = /home

ユーザjohnについて、The home of johnという名前のAFPホームボリュームが作成される。

(H)の印がついているパラメータはこのボリュームセクション用である。

パラメータ

パラメータはセクション固有の属性を定義する。

いくつかのパラメータは[Global]セクションに固有のものである(たとえばlog type)。それ以外は全てボリュームセクションのみに許される。(G)はパラメータが[Global]セクション固有であることを示す。(V)はボリューム固有のセクションで指定できることを示す。

変数置換

ボリューム名で変数を使うことができる。パスでの変数の利用は$uに限られる。

  1. 不明な変数を指定した場合、それは変換されない。

  2. 既知の変数を指定したが変数が値を持たない場合、それは無視される。

置換に使われる変数は以下のとおり:

$b

ベース名

$c

クライアントのIPアドレス

$d

サーバ上のボリュームパス名

$f

フルネーム (passwdファイルのGECOSフィールドの内容)

$g

グループ名

$h

ホスト名

$i

クライアントのIPアドレス。ポート番号なし

$s

サーバ名 (ホスト名になることができる)

$u

ユーザ名 (ゲストの場合、ゲストとして動作しているユーザ名)

$v

ボリューム名

$$

ドル記号($)を表示する

グローバルパラメータの説明

認証オプション

ad domain = domain (G)

認証時にユーザ名に@DOMAINを追加する。Active Directory環境で有用。さもなくば、完全な文字列user@domainで参加するユーザを要求するだろう。

admin group = group (G)

信頼できるグループのユーザがログインしたときスーパユーザとして見えるようにする。 このオプションはデフォルトで無効である。

force user = user (G)

このサーバに接続する全ユーザへ、デフォルトユーザとして割り当てるUNIXユーザ名を指定する。 これは共有ファイルに役立つ。間違ってセキュリティ問題を引き起こすような使い方が可能なので、 それにも注意して利用すべきである。

force group = group (G)

このサーバに接続する全ユーザへ、デフォルトプライマリグループとして割り当てるUNIXグループ名を指定する。

guest account = name (G)

ゲストが利用するユーザ名を指定する(デフォルトは nobody である)。 本ユーザ名はシステム上の有効なユーザーである必要がある。

k5 keytab = path (G); k5 service = service (G); k5 realm = realm (G)

サーバがKerberos 5認証UAMをサポートする場合、これらが必要である。

nt domain = domain (G); nt separator = SEPARATOR (G)

例えばwinbind認証で利用し、有効かつ動作中のUAM認証を通して、 ログイン時のユーザ名の前に両方の文字列を付けたもので認証を試みる。

uam list = uam list (デフォルト: uams_dhx2.so) (G)

スペースまたはコンマで区切られたユーザ認証方法のリスト。

利用可能なUAMは以下のとおり:

uams_dhx2.so

(uams_dhx2_pam.soまたはuams_dhx2_passwd.so)認証のためのDiffie-Hellman eXchange 2(DHX2)を許可する。

uams_srp.so

認証のためのSRP(”Secure Remote Password”)を許可する。SRPソルトと検証子を含む別のファイルが必要。 デフォルトのafppasswd.srpファイルか、”srp passwd file“で指定されたファイルのいずれかを使用する。 詳細はafppasswd(1)を参照すること。

uam_gss.so

認証のためのKerberos Vを許可する。コンパイル時にKerberosサポートが有効である必要があり、適切に構成されたKerberos環境が必要。

uams_guest.so

ゲストログインを許可する。(安全でない!

uams_clrtxt.so

(uams_pam.soまたはuams_passwd.so) パスワードを平文で送信するログインを許可する。Mac OS 9以前と互換性がある。(安全でない!

uams_randnum.so

認証のためのランダムナンバーと双方向ランダムナンバー交換を許可する。(パスワードを含む別のファイルが必要。 デフォルトのafppasswdファイルか、”passwd file“で指定されたファイルのいずれかを使用。) 詳細はafppasswd(1)を参照。(安全でない!

uams_dhx.so

(uams_dhx_pam.soまたはuams_dhx_passwd.so)認証のためのDiffie-Hellman eXchange(DHX)を許可する。(安全でない!

uam path = path (G)

このサーバのためのUAMのデフォルトパスを設定する。

valid shellcheck = BOOLEAN (デフォルト: yes) (G)

ユーザのログインシェルが有効かどうかをチェックするかどうか(つまり、/etc/shellsにリストされているかどうか)。 ユーザのシェルが有効でない場合、認証は失敗する。これはnologinシェルを持つユーザのログインを防止するためのセキュリティ機能である。 nologinシェルを持つユーザのログインを許可するには、このオプションを無効にする。

文字セットオプション

OS XでAppleはAFP3プロトコルを導入した。大きな変更の一つは、AFP3は分解済UTF-8 (UTF8-MAC)としてエンコードされたUnicode名を用いることである。以前のAFP及びOSバージョンはMacRomanやMacCentralEuropeといった文字セットを用いた。

AFP3と古いクライアントに同時に応対できるように、afpdはUTF-8とMac文字セットの間の変換ができる必要がある。OS Xですら部分的にMac文字セットに依存している。AFP3以前のクライアントが使うコードページをafpdが検出する方法はないので、あなたはmac charsetオプションを使ってそれを指定しなけらばならない。デフォルトはMacRomanであり、多くの西欧ユーザにとって良いであろう。

afpdはUNIXオペレーティングシステムとも相互に作用する必要があるので、UTF8-MAC/Mac文字セットからUNIX文字セットへ変換できる必要がある。デフォルトでafpdUTF8を用いる。unix charsetオプションを使ってUNIX文字セットを設定できる。afpdのための設定ファイルで拡張文字セットを使う場合、端末がunix charsetに一致することを確認してください。

mac charset = charset (G)/(V)

Macクライアントの文字セット、例えばMAC_ROMANを指定する。 これは文字列やファイル名をOS9やClassic環境のクライアントコードページに変換するために用いられる。 すなわち認証やAFPメッセージ(SIGUSR2 messaging)である。 これはボリュームのmac charsetのデフォルトにもなる。デフォルトはMAC_ROMAN

unix charset = charset (G)

サーバのunix文字セット、例えばISO-8859-15EUC-JPを指定する。 これは文字列をシステムロケールとの間で変換するのに使われる。 すなわち認証やサーバメッセージやボリューム名である。 LOCALEが設定された場合、システムロケールが使われる。デフォルトはUTF8。

vol charset = charset (G)/(V)

ボリュームのファイルシステムのエンコーディングを指定する。デフォルトではunix charsetと同じである。

【注記】 デフォルトのUTF-8エンコーディングを使うことをを強く推奨する。

パスワードオプション

passwd file = path (G)

このサーバのRandnum UAM password ファイルのパスを設定する。

passwd minlen = number (G)

UAMが最小パスワード長をサポートする場合、それを設定する。

save password = BOOLEAN (デフォルト: yes) (G)

クライアントがローカルにパスワードを保存する機能を有効または無効にする。 このオプションをnoに設定すると、クライアントにこのヒントが送られるが、クライアントがそれを尊重するかどうかはクライアント次第である。

set password = BOOLEAN (デフォルト: no) (G)

クライアントがパスワードを変更する機能を有効または無効にする。 このオプションをyesに設定すると、使用中のUAMがこの機能をサポートする場合、クライアントがパスワードを変更できるようになる。

srp passwd file = path (G)

このサーバのSRP UAM検証子ファイルのパスを設定する。

ネットワークオプション

advertise ssh = BOOLEAN (デフォルト: no) (G)

古いMac OS Xクライアント(10.3.3から10.4)にSSHでトンネルしたAFP接続を自動的に確立させる。 このオプションを設定した場合、クライアントのFPGetSrvrInfo要求へのサーバの返答は追加エントリを含む。 これはクライアントの設定とsshd(8)が正しく設定されて動作するサーバ上で実行中であるかに依存する。

【注記】 SSHを介した全体を暗号化するAFP接続はサーバの負荷を著しく増加させるので、このオプションの設定は推奨しない。 一方、バージョン10.3.4より前のMac OS Xにおけるこの機能のAppleクライアント側の実装はセキュリティ欠陥があった。

afp interfaces = name [name …] (G)

サーバがリッスンするネットワークインターフェースを指定する。 デフォルトではシステムの最初のIPアドレスを宣伝するが、入ってくる如何なる要求もリッスンする。

【注記】 afp listen オプションと同時に使用しないでください。

afp listen = ip address[:port] [ip address[:port] …] (G)

サーバが宣伝およびリッスンするIPアドレスを指定する。 デフォルトではシステムの最初のIPアドレスを宣伝するが、入ってくる如何なる要求もリッスンする。 ネットワークアドレスはIPv4のドット付き10進数フォーマットやIPv6の16進数フォーマットのどちらでも指定してよい。

IPv6 address + portの組み合わせは角かっこを使ったフォーマット[IPv6]:portのURLを使わなければならない。

【注記】 afp interfaces オプションと同時に使用しないでください。

afp port = port number (G)

異なるTCPポートをAFPに使わせる。デフォルトは548である。 afp listenオプションで何も指定しなかった場合も適用されたデフォルトポートを設定する。

afp read locks = BOOLEAN (デフォルト: no) (G)

FPReadコールにおいてバイト領域リードロックを適用するかどうか。 AFPの仕様はこれを義務付けるが、実際のところこれはUNIXの動作に合致しないし、パフォーマンスを抑え込む。

disconnect time = number (G)

ドロップする前に、切断されたAFPセッションをnumber時間維持する。デフォルトは24時間である。

dsireadbuf = number (G)

DSI/TCP先読みバッファのサイズを決定する係数。デフォルトは12である。 これにDSI server quantum(デフォルトは1MiB)をかけるとバッファサイズになる。 この値を増やすと速いローカルネットワークでのボリュームからボリュームへのコピーのスループットが増えるかもしれない。

【注記】 このバッファはafpdの子プロセス毎に割り当てられるので、大きな値を指定すると大量のメモリが食われる (バッファサイズ * クライアント数)。

fqdn = name[:port] (G)

完全修飾ドメイン名をオプションのポート番号と共に指定する。サーバがこれを解決できない場合は破棄される。 AppleShareクライアント3.8.3以前はこのオプションを評価しない。 このオプションはデフォルトで無効である。これによりクライアント側は名前解決を二段階踏むことになるので注意して使ってください。 afpdはこのname:portの組み合わせを宣伝するが自動的にはリッスンしないことにも注意してください。

hostname = name (G)

宣伝用のIPアドレスを決定するため、ホスト名の呼出結果の代わりにこれを用いる。 従って、このホスト名から宣伝用IPアドレスが解決されるようになる。 これはリスニングには使われないし、afp listenによって上書きされてしまう。

max connections = number (G)

同時にサーバに接続できるクライアントの最大数を設定する(デフォルトは200)。

server quantum = number (G)

これはDSI server quantumを指定する。デフォルト値は0x100000 (1MiB)である。最大値は 0xFFFFFFFF であり最小値は32000である。 範囲外の値を指定した場合、デフォルト値が設定される。 自分が何をしようとしているか確信がない限り、この値を変更しないでください。

sleep time = number (G)

スリープモードにおいてクライアントを切断する前に、スリープ中のAFPセッションをnumber時間維持する。 デフォルトは10時間である。

tcprcvbuf = number (G)

setsockopt()を使ってTCP受信バッファの設定を試みる。 しばしばOSはこの値を設定しようとするアプリケーションの資格を制限する。

tcpsndbuf = number (G)

setsockopt()を使ってTCP送信バッファの設定を試みる。 しばしばOSはこの値を設定しようとするアプリケーションの資格を制限する。

recvfile = BOOLEAN (デフォルト: no) (G)

データ受信のためにLinuxのsplice()を使うかどうか。

splice size = number (デフォルト: 64k) (G)

spliceする最大バイト数。

use sendfile = BOOLEAN (デフォルト: yes) (G)

クライアントにファイルデータを送るためにsendfileシステムコールを使うかどうか。

zeroconf = BOOLEAN (デフォルト: yes) (G)

AvahiまたはmDNSResponder込みでコンパイル済の場合、 自動的なZeroconfサービス登録を使うかどうか。

CNID データベースバックエンドオプション

CNIDデータベースバックエンドに固有のグローバル設定。データベースがどのように保存されてアクセスされるかを制御する。

cnid listen = host[:port] (G)

CNIDサーバがリッスンするホスト名またはIPアドレスとポートを指定する。 ホストはcnid_metadがバインドできるローカルアドレスに解決されなければならない。 これはほとんどの展開においてcnid serverオプションのアドレスとポートに一致する必要がある。 デフォルトはlocalhost:4700である。 ホスト名またはIPアドレスのみが指定された場合、デフォルトのポート4700が使用される。

cnid mysql host = MySQL server address (G)

mysql CNIDバックエンドで使用するMySQLサーバの名前またはアドレス。

Unixシステムでは、これをlocalhostに設定する(または未設定のままにする)と、 MySQLクライアントライブラリはUnixソケット接続を優先するようになり、ローカルデータベースのパフォーマンスが向上する。 これを127.0.0.1に設定すると、ループバックインターフェースへのTCP接続が強制される。

cnid mysql user = MySQL user (G)

MySQLサーバ認証のためのユーザ名。

cnid mysql pw = password (G)

MySQLサーバのためのパスワード。

cnid mysql db = database name (G)

CNIDストレージに使用するデータベースの名前。データベースが存在しない場合、 Netatalkは自動的に作成しようとする(指定されたユーザーがCREATE DATABASE権限を持っている必要がある)。

cnid scheme = dbd | mysql | sqlite (G)/(V)

そのボリュームに使う CNID バックエンドをセットする。 すべてのバックエンドが手元の netatalk で使用できるとは限らない。 afpd -v を実行して有効なバックエンドの一覧またはデフォルトバックエンドを表示すること。

dbd は、Berkeley DB を使用した、データベースの読み書きが cnid_dbd デーモンを通して管理される。 これは非推奨であり、新規導入の際に選択しない様に。

mysql バックエンドでは、システム管理者が netatalk で使用するために MySQL(もしくはMariaDB)データベースサーバを構成する必要がある。 管理者権限が必須でありながら、データベースの制御は完全にできる。

sqlite バックエンドは SQLite 組み込みデータベースライブラリを使用する。 外部データベースやデーモンを必要としない、パフォーマンスが良くスリムである。

cnid server = host[:port] (G)/(V)

cnid_metadサーバのホスト名またはIPアドレスとポート番号を指定する。CNID dbdバックエンドのために必要。 これはほとんどの展開でcnid listenオプションと一致するべきである。デフォルトはlocalhost:4700。

ホスト名とIPv4アドレスが受け入れられる。ホスト名はIPv4またはIPv6アドレスどちらかに解決されることがある。

vol dbpath = path (G)/(V)

データベース情報をpathに格納するように設定する。 ボリュームが読み込み専用だったとしても、書き込み可能な場所を設定しなければならない。

vol dbnest = BOOLEAN (デフォルト: no) (G)

このオプションをtrueに設定するとNetatalk 2の動作に立ち返る。つまり、それぞれの共有のボリュームルートの下にある 「.AppleDB」というフォルダにCNIDデータベースを格納する。

ディレクトリキャッシュの調整

dircache size = number (G)

ディレクトリキャッシュの最大エントリ数。ディレクトリとオプションでファイルも格納する。 最小値: 1024 (1K)。デフォルト: 65536 (64K)。最大値: 1048576 (1M)。 より高い値はヒット率を改善するが、より多くのメモリを使用する。

dircache validation freq = number (G)

外部変更検出のためのディレクトリキャッシュ検証頻度。 1の値は毎回アクセス毎に検証することを意味する(後方互換性のためのデフォルト)、 より高い値はより低頻度で検証する。 Netatalkがボリュームにアクセスする唯一のプロセスである場合、最大パフォーマンスのために 100の値を安全に設定できる。

dircache mode = lru | arc (デフォルト: lru) (G)

キャッシュ置換アルゴリズム。lru = 最も最近使用されていない(安定していてメモリ効率が良い)。 arc = 適応型置換キャッシュ(自己調整、ヒット率が10-50%向上、シーケンシャルスキャンで2倍向上)。 ARCはゴーストエントリのために約2倍のメモリ(約100%のオーバーヘッド)を使用する。 ゴーストエントリは、学習のために追跡される追い出されたエントリで、ARCが適応できるようにする。 例:64Kキャッシュは約24 MB(ARC)対約12 MB(LRU)を使用する。

推奨: RAMが8GB以上のサーバにはarcを使用すること。制約のあるシステムにはlruを使用すること。 最高の結果を得るためにdircache size(最大エントリ数)を増やすこと。

dircache rfork budget = number (デフォルト: 0) (G)

ディレクトリキャッシュでリソースフォークデータをキャッシュするためのKB単位の総メモリ予算。 0に設定すると(デフォルト)リソースフォークのキャッシュは無効になる。 リソースフォークのキャッシュは、FPGetFileDirParamsやFPEnumerate操作中の繰り返しのディスク読み取りを避けるために、 小さなリソースフォークの内容をメモリに格納する。

最大値: 10485760 (10 GB in KB) 総計。

dircache rfork maxsize = number (デフォルト: 1024) (G)

キャッシュされる単一のリソースフォークエントリの最大サイズ(KB単位)。 この値より大きいリソースフォークは、総予算が消耗していない場合でもキャッシュされない。

最大値: 10240 (10 MB in KB) エントリごと。

【注記】 詳細はマニュアルの「セットアップ」の章を参照のこと。

雑多なオプション

afpstats = BOOLEAN (デフォルト: no) (G)

Unixソケットを介してAFPランタイム統計 (接続ユーザ、開いてるボリューム) を提供するかどうか。

afpstats group = group (G)

afpstats Unixソケットのグループ所有者を設定する。ソケットはモード0660で作成されるので、 rootとこのグループのメンバーだけがランタイム統計にアクセスできるようになる。 未設定の場合、ソケットは afpd が作成したときのオペレーティングシステムによって割り当てられたグループを保持する。

close vol = BOOLEAN (デフォルト: no) (G)

ボリュームが設定から削除され、その設定が再読み込みされたとき、 クライアントが既に開いているボリュームを可能な限り閉じるかどうか。

extmap file = path (G)

ファイル拡張子とタイプ/クリエータのマッピングを定義するファイルのパスを設定する。

force xattr with sticky bit = BOOLEAN (デフォルト: no) (G)/(V)

ディレクトリへの書き込み権限があったとしても、スティッキービット設定を使ってメタデータ(拡張属性)を 書き込むことに失敗するかもしれない。 なぜなら、スティッキービットが設定されている場合、所有者だけが拡張属性への書き込みを許されるからである。

このオプションを有効にするとNetatalkはroot権限でメタデータ(拡張属性)を書き込む。

ignored attributes = all | nowrite | nodelete | norename (G)/(V)

サーバが無視すべきファイルとディレクトリの属性を設定する。allはオプション全部という意味である。

OS Xにおいて、Finderがファイル/ディレクトリのロックを設定する場合、 またはターミナルでBSD uchgフラグを設定する場合、3つの属性が全て使われる。 従って、Finderロック/BSD uchgフラグを無視する目的でignored attributes = allの設定を追加してください。

mimic model = model (G)

macOS(Mac OS X)クライアント上に表示されるアイコンモデルを指定する。デフォルトではクライアント Mac に任せること。netatalkがZeroconfをサポートしなければならないことに注意してください。例:

macOS(Mac OS X)は認識しているモデルコードは /System/Library/CoreServices/CoreTypes.bundle/Contents/Info.plist を参照すれば確認できる。(macOS 15 Sequoia の場合。)

server name = name (G)

一意に AFP サーバを記述する人間が読める名前を指定する。 デフォルトでは、最初のピリオドまでのhostnameの値を使用する。 netatalkがZeroconfサポートでビルドされている場合、これはサービス名としても登録され、 UTF-8で最大63オクテット(バイト)の長さまで宣伝される。

signature = STRING (G)

サーバシグネチャを指定する。最大長は16文字である。 このオプションは障害隔離などを提供するクラスタ環境において有用である。 デフォルトでは、afpdは自動的にシグネチャを(乱数を元に)生成し、 それをafp_signature.confに保存する。asip-status(1)も見よ。

solaris share reservations = BOOLEAN (デフォルト: yes) (G)

Solarisの共有予約を利用する。Solaris CIFSサーバもこれを利用するので、ロックを統一したマルチプロトコルサーバを形成する。

veto message = BOOLEAN (デフォルト: no) (G)

禁止ファイルに関するオプションのAFPメッセージを送る。 クライアントが禁止名を持つファイルやディレクトリにアクセスを試みたとき、 名前とディレクトリを示したAFPメッセージを送る。

volnamelen = number (G)

Mac OS XのためのUTF8-MACボリューム名の最大長。ハングルはこれに特に敏感なので注意してください。

73: Mac OS X 10.1の制限
80: Mac OS X 10.4/10.5の制限 (デフォルト)
255: 最近のMac OS Xの制限

Mac OS 9以前はこれに影響されない。なぜならMac文字セットのボリューム名は常に27バイト制限がある。

vol preset = name (G)/(V)

([Global]セクションで設定したときは) 全ボリューム、(ボリュームセクションで設定したときは)そのボリュームのオプション初期設定となるセクションのnameを使う。

検索オプション

Netatalkのファイル検索機能を構成する。SpotlightとCatalog Search機能を設定できる。

dbus daemon = path (G)

LocalSearchバックエンドのためにプライベートD-Busを起動するために使用されるdbus-daemonバイナリへのパスを設定する。 コンパイル時のデフォルトパスがランタイム環境に合わない場合に使用できる。

Netatalkにサポートが組み込まれている場合、より高度な検索機能を有効にするlocalsearchバックエンドを代わりに使用することもできる。 これには全文検索やファイルメタデータ検索が含まれる。

search db = BOOLEAN (デフォルト: yes) (V)

低速な再帰的ファイルシステム検索の代わりに高速なCNIDデータベースの名前検索を用いる。 Classic Mac OS - Mac OS X 10.3 クライアントの場合のみ適用される。

【注記】 正確な検索結果を得るには、一貫性のあるCNIDデータベースが必要。 AFPボリュームを他のファイル共有プロトコルで操作したり、 nad(1) を使用せずにホスト上のローカルファイルシステム弄ったりすると、 不正確なCNIDデータベース状態に繫がり、dbd(1) で修復作業を推奨。

sparql results limit = NUMBER (デフォルト: 無制限) (G)

TrackerやLocalSearchからSPARQLクエリで問い合わせる結果の数に制限を課す。

xapianバックエンドも、歴史的なオプション名にもかかわらず、クエリごとの結果制限としてこの値を使用する。 0に設定すると、LocalSearchクエリは無制限になるが、xapianバックエンドは10000の候補結果の内部安全キャップを適用する。 より大きな非ゼロ値を設定してxapianのキャップを引き上げることができる。 cnidバックエンドはこのオプションを使用せず、固定されたCNID検索返信キャップによって制限される。

spotlight = BOOLEAN (デフォルト: yes) (G)/(V)

Spotlight互換の検索を有効にするかどうか。 グローバルオプションとして、これはボリュームのデフォルトを設定する。ボリュームオプションとしては、 そのボリュームのグローバルデフォルトを上書きする。

ボリュームは、その有効なspotlight設定が有効であり、そのボリュームに対してサポートされている spotlight backendが利用可能な場合にのみ検索可能である。

spotlight attributes = COMMA SEPARATED STRING (デフォルト: ) (G)

localsearchバックエンドが受け入れるSpotlightクエリアトリビュートのリスト。 デフォルトでは、LocalSearch SPARQLマッパーが知っているすべての属性を検索できる。 文字列を渡すと、検索可能な属性が文字列の要素に制限される。例:

spotlight attributes = *,kMDItemTextContent

このオプションはcnidxapianバックエンドには影響しない。

spotlight backend = backend (デフォルト: cnid) (G)/(V)

Spotlight機能で使用される検索バックエンド。

Netatalkの構成によって、利用可能なバックエンドにはcnidlocalsearchxapianなどがあるかもしれない。

インストールされているバックエンドを確認するにはnetatalk -vを実行。

【注記】 xapianバックエンドは実験的と見なされており、現時点では本番環境での使用は推奨されていない。

spotlight expr = BOOLEAN (デフォルト: yes) (G)

localsearchバックエンドがSpotlight RAWクエリをSPARQLに変換するときにSpotlight論理式を許可するかどうか。

このオプションはcnidxapianバックエンドには影響しない。

ログのオプション

どのようなメッセージをログに記録するか、どこに記録するかを制御する。

log file = logfile (G)

ログをlogfileに出力する。指定しない場合、Netatalkはsyslogデーモン機能にログを出力する。

log level = type:level [type:level …]; log level = type:level,[type:level, …] (G)

1つ以上のログタイプとログレベルのペアをスペースまたはカンマで区切ったリスト。

デフォルトのログレベルと重大度はdefault:noteである。

各ペアについて、ログレベルは、指定されたログタイプのメッセージのうち、ログに記録される最小の重大度を指定する。 指定されたログタイプのメッセージのうち、指定されたログレベル以上の重大度を持つものだけがログに記録され、指定されたログレベル未満の重大度を持つものは無視される。

defaultログタイプは、すべてのメッセージに適用される特別なログタイプである。 defaultのログレベルが指定されていない場合、明示的に指定されたログレベルを持つログタイプだけがログに記録され、その他のすべてのログタイプは無視される。

例えば、log level = default:warnを指定した場合、重大度がwarn以上のすべてのメッセージ(つまりwarnerrorsevere)がログに記録され、 warn未満のすべてのメッセージ(noteinfodebugなど)は無視される。

複数のログタイプとログレベルのペアを組み合わせることで、タイプと重大度に基づいてどのメッセージがログに記録されるかを細かく制御できる。

利用可能なログタイプ: default, logger, cnid, afpdaemon, dsi, atalkdaemon, papdaemon, uams, fce, ad, spotlight

利用可能なログレベル(重大度の高い順): severe, error, warn, note, info, debug, debug6, debug7, debug8, debug9, maxdebug

【注記】 ログタイプとログレベルの両方は大文字小文字を区別しない。

log microseconds = BOOLEAN (デフォルト: yes) (G)

タイムスタンプをマイクロ秒単位の精度でログに記録する。 無効にすると、タイムスタンプは秒単位のみを記録する。log file オプションと組み合わせて使用​​した場合にのみ有効になる。

ファイルシステム変更イベント (FCE)

Netatalk には素敵なファイルシステム変更イベント機構が含まれている。ここで、afpd プロセスは、なにがしかのファイルシステムイベントについて、関心を寄せているリスナーに、UDP ネットワークデータグラムで通知する。

以下の FCE イベントが定義されている:

fce listener = host[:port] (G)

FCE イベントを指定された host に送ることができるようにする。もし指定されていなければデフォルトの port は 12250 である。複数のリスナーを指定するにはそれぞれのリスナーに対するオプションを一度に指定することである。

fce version = 1 | 2 (G)

FCE プロトコルのヴァージョンで、デフォルトでは 1 である。fmov、dmov、login あるいは logout イベントのためにはバージョン 2 が必要である。

fce events = fmod,fdel,ddel,fcre,dcre,fmov,dmov,login,logout (G)

どの FCE イベントがアクティブかを指定する。デフォルトでは fmod,fdel,ddel,fcre,dcre である。

fce coalesce = all | delete | create (G)

FCE イベントを結合する。

fce holdfmod = seconds (G)

これは、もしクライアントによって FCE ファイル変更イベント (fmod) を送信する前に同じファイルに対する別の変更が同時に行われる場合、常に待機する遅延時間を秒単位で決定する。 例えば、フォトショップでファイルを保存することでそのファイル自体の複数のイベントを引き起こす。 なぜなら、アプリケーションはその“保存する”たびにファイルを複数回、開き、変更しそして閉じるからである。デフォルトでは 60秒である。

fce sendwait = milliseconds (G)

各 FCE イベントの発行間の遅延をミリ秒単位で定義する。 非常に多くのファイルを一度に作成または削除するときに、FCE イベントの損失が発生する場合は、これを使用して問題を防げる。 このような操作によって引き起こされる大量のイベントにより、UDP バッファ オーバーフローが発生し、その後パケット損失が発生する可能性がある。 0 から 999 までの値は設定可能。デフォルト: 0 ミリ秒。

fce ignore names = NAME[,NAME2,…] (G)

FCEイベントを生成すべきでないファイル名をカンマ区切りのリスト。デフォルトでは .DS_Store

fce ignore directories = PATH[,PATH2,…] (G)

FCEイベントが生成されないディレクトリのカンマ区切りのリスト。ホストのファイルシステム上の絶対パスである必要がある。 パスはスラッシュで終わってはならない。デフォルトは無し。

fce notify script = path (G)

各々の FCE イベントに対して実行されるスクリプト。スクリプト例については、Netatalk のソースの contrib/scripts/fce_ev_script.sh を参照のこと。

ACL処理のためのオプション

デフォルトでは、認証済ユーザの有効な権限は記載済UARights権限構造にだけマップされる。UNIXモードではない。この挙動は設定オプションmap aclsで調整できる:

chmod request = preserve (デフォルト) | ignore | simple (G)/(V)

ACLに対応する高度なパーミッション制御。

map acls = none | rights | mode (G)

none

ACLのマッピングをしない

rights

有効な権限がUARights構造にマップされる。これがデフォルトである。 default.

mode

ACLはファイルシステムオブジェクトのUNIXモードにもマップされる。

もしクライアント上で ACL を表示できるようにしたければ、 クライアントもサーバーも認証ドメイン(ディレクトリサービス、例えば、LDAP、Open Directory、Active Directory)の一部としてセットアップしなければならない。その理由は、OS X の ACL は単に uid ないしは gid と結合しているのではなく、UUID と結合しているからである。それ故、Netatalk は、OS X の UUID と紐付けした UNIX uid と gid に結合したサーバー側の ACL を返せるように、ファイルシステム全ての uid と gid を UUID と紐付けできるようにしなければならない。

Netatalk は LDAP 検索を用いてディレクトリサーバーを検索をすることができる。ディレクトリサーバーが既にユーザーとグループの UUID 属性を提供している(Active Directory、Open Directory)か、ディレクトリサーバー(例えばOpenLDAP)の未使用の属性を再使用(あるいは新しい属性を追加)するか、のいずれかである。

Netatalk では以下の LDAP オプションが設定されなければならない:

ldap auth method = none | simple (G)

none

匿名 LDAP 認証

simple

簡易 LDAP 認証

ldap auth dn = dn (G)

簡易認証でのユーザーの識別名。

ldap auth pw = password (G)

簡易認証でのパスワード。

ldap uri = ldap://somehost:1234/ (G)

接続先のLDAPサーバーのURI。選択可能のURIスキームは「ldap」、「ldapi」又は「ldaps」である。 TCP、ICP 又は TLS プロトコルに当たる。実際のサポートはLDAPライブラリ次第。 本オプションはLDAPにUUIDの問い合わせをできるようにするために、明示的なACLサポートを必要とする時のみ必要。

設定の構文的なチェックのために afpldaptest(1) を使うこともできる。

ldap userbase = base dn (G)

LDAP 内のユーザーコンテナの DN。

ldap userscope = scope (G)

ユーザー検索での検索スコープ: base | one | sub

ldap groupbase = base dn (G)

LDAP 内のグループコンテナの DN。

ldap groupscope = scope (G)

グループ検索での検索スコープ: base | one | sub

ldap uuid attr = dn (G)

UUID のある LDAP 属性の名前。

【注記】 これはユーザーでもグループでも双方で用いられる。

ldap name attr = dn (G)

ユーザーの短縮名のある LDAP 属性の名前。

ldap group attr = dn (G)

グループの短縮名のある LDAP 属性の名前。

ldap uuid string = STRING (G)

ディレクトリでの UUID 文字列のフォーマット。’x’ と ‘-‘を続けたもので、それぞれの ‘x’ は 0-9a-f の値を示し、’-’ はそれぞれ区切り文字である。

デフォルト: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

ldap uuid encoding = string (デフォルト) | ms-guid (G)

LDAP 属性の UUID のフォーマットは Active Directory からの obhectGUID バイナリーフィールドの使用を許す。もし未指定のままだと string がデフォルトとなる。これはほとんどの LDAP ストアによって ASCII UUID を通して渡される。もし ms-guid が設定されると、サーバーと相互に動作する時 Active Directory 内にあるオブジェクトの objectGUID 属性で用いられる内部 UUID 表記とバイナリー形式が相互に変換される。

オプション ldap user filter 及び ldap group filter も参照のこと。

string

UUID は文字列。例えば OpenDirectory とで使用する。

ms-guid

Active Directory からの objectGUID バイナリー。

ldap user filter = STRING (デフォルト: 未使用) (G)

ユーザーオブジェクトにマッチする任意のLDAPフィルター。 これは、ユーザーとグループが同じディレクトリのサブツリーに保存されているActive Directory環境で必要。

Active Directory での推奨設定: objectClass=user

ldap group filter = STRING (デフォルト: 未使用) (G)

グループオブジェクトにマッチする任意のLDAPフィルター。 これは、ユーザーとグループが同じディレクトリのサブツリーに保存されているActive Directory環境で必要。

Active Directory での推奨設定: objectClass=group

レトロオプション

Classic Mac OS や Apple II クライアントにのみ関連する Netatalk の機能を有効にする。このマニュアルの他の場所にある Charset オプションも参照のこと。

appletalk = BOOLEAN (デフォルト: no) (G)

AFPのAppleTalkトランスポート層を有効にする。このオプションを使用するには、オペレーティング システムが AppleTalk ネットワークプロトコルをサポートしている必要もあるし、 Netatalk が AppleTalk サポートでビルドされている必要がある。

ddp address = ddp address (G)

サーバーの DDP アドレスを指定する。デフォルトでは、アドレス (0.0) が自動的に割り当てられる。これは、複数のインターフェイスで AppleTalk を実行している場合にのみ役立つ。

ddp zone = ddp zone (G)

サーバーを登録する AppleTalk ゾーンを指定する。デフォルトでは、システムによって最後に構成されたインターフェースのデフォルト ゾーンにサーバーが登録される。

legacy icon = icon (G)/(V)

Classic Mac OSのFinderに表示される共有ボリュームアイコンを設定する。 参考に、すでにカスタムアイコンがボリュームに関連付けられている場合、このオプションは無視される。

legacy volume size = BOOLEAN (デフォルト: no) (V)

レガシー クライアントのディスク サイズ レポートを 2GB に制限する。これは、System 7.1 以前を実行し、新しい AppleShare クライアントを使用している古い Macintosh で使用できる。

login message = message (G)/(V)

Classic Mac OSクライアントがサーバにログオンしたときに表示されるメッセージを設定する。 メッセージはunix charsetで書く。拡張文字が使える。

prodos = BOOLEAN (デフォルト: no) (V)

ProDOS サポートを有効にする。このオプションは、Apple II をネットブートする予定のボリュームに対してのみ有効にする必要がある。ボリュームにブート フラグを設定するだけでなく、クライアントに報告するボリュームの空き領域を32MB に制限する。

デバッグパラメータ

これらのオプションはデバッグのみに有用である。本番環境では有効にしないこと。

tickleval = number (G)

tickleタイムアウトの間隔を(秒単位で)設定する。デフォルトは30。

timeout = number (G)

接続がタイムアウトする前に送るtickleの数を指定する。 デフォルトは4なので、2分後に接続がタイムアウトする。

client polling = BOOLEAN (デフォルト: no) (G)

このオプションを有効にすると、afpdはserver notificationの機能があることを宣伝しない。これは、 接続中のクライアントが開いているサーバのウインドウの変更を検出するために 10秒毎にポーリングするのを目的としている。

ボリュームパラメータの説明

ホームセクションパラメータ

ホームボリュームにのみ適用される特別なパラメータ。

basedir regex = regex (H)

ユーザホームの親ディレクトリにマッチする正規表現。 basedir regexがシンボリックリンクを含む場合、正規化した絶対パスを設定しなければならない。 簡単なケースだとこれは単に一つのパスである。つまりbasedir regex = /homeである。

home name = name (H)

AFPユーザのホームのボリューム名。デフォルトは$u’s homeである。 ボリューム名の文字列に”$u“は必須である。

ボリュームセクションパラメータ

各ボリュームは少なくとも pathvolume name を定義するべきである。

path = path (V)

パス名は完全修飾パス名でなければならない。

volume name = STRING (デフォルト: 小文字のセクション名) (V)

AFP共有ボリュームの名前を指定する。デフォルトでは、ボリュームが定義されている ini ファイルの 小文字に変換されたセクション名となる。

同じ名前の二つのボリュームというのは無いであろう。 ボリューム名が文字 ‘:’ を含むことはできない。 ボリューム名がとても長ければマングルされる。 Mac文字セットのボリューム名は27文字までに制限される。 UTF8-MAC ボリューム名は volnamelen パラメータで制限される。

vol size limit = MiB 単位でのサイズ (V)

Time Machineに有用。報告されるボリュームサイズを制限する。 故にTime Machineがバックアップのために実ディスク領域全体を使うことを防止する。 例えば “vol size limit = 1000” は報告されるディスク領域を 1 GB に制限する。

【重要】 これは Time Machine sparsebundle イメージの中身を考慮した概算である。 それ故このオプションを使用した時、このボリュームを他のコンテンツを保管するのに使用“してはならない”。 なぜなら勘定に入っていないからである。 計算は sparsebundle の Info.plist XML ファイルからバンドサイズを読む、 バンドファイルの数を数えてバンド/ディレクトリを読む、そしてお互いの乗算をする。ことによって行われる。

valid users = user / @group (V)

この許可オプションは指定された共有にそのユーザーとグループのアクセスを許可する。 ユーザーとグループはスペースかコンマで区切って指定する。グループは @ プレフィックスで明示する。例:

valid users = user @group

invalid users = user / @group (V)

この拒否オプションはその共有にアクセスを許可しないユーザーとグループを指定する。それ以外は “valid users” オプションと同じフォーマットである。

hosts allow = IP host address/IP netmask bits [ … ] (V)

列挙されたホストとネットワークのみが許可され、ほかの全ては拒否される。 ネットワークアドレスはIPv4のドット区切りフォーマット、IPv6の16進数フォーマットのどちらでもよい。

例: hosts allow = 10.1.0.0/16 10.2.1.100 2001:0db8:1234::/48

hosts deny = IP host address/IP netmask bits [ … ] (V)

列挙されたホストとネットのみが拒否され、ほかの全ては許可される。

例: hosts deny = 192.168.100/24 10.1.1.1 2001:db8::1428:57ab

ea = sys | samba | ad | none (デフォルト: 自動検出) (V)

拡張属性およびリソースフォークをどのように保存するか指定する。

共有ディレクトリ自体に拡張属性を設定することにより sys を試行して、 フォールバックすると none になる。 試行を実行するためにはボリュームが書き込み可能であることが必要である。 読み込み専用ボリュームの場合は、このオプションを明示的に設定すること。

sys

ファイルシステムの拡張属性を使う。

samba

ファイルシステムの拡張属性を使うが、Sambaのvfs_streams_xattrとの互換性の目的で、 それぞれの拡張属性に値がゼロの1バイトを追加する。

ad

.AppleDouble ディレクトリ内のファイルとして格納された AppleDouble v2 メタデータを使用する。 ファイルシステムが拡張属性をサポートしていない場合にのみ使用するべき。

none

拡張属性をサポートしない。

【警告】 samba オプションは、以前に sys に設定されたボリュームでは使用しないでください。 これにより、データが失われる可能性がある。(変換のための共有間のクライアントコピー。)

mac charset = charset (V)

もしグローバル設定を適用する指定がなければ、そのボリュームに対しての Mac クライアントの文字セット、例えば MAC_ROMANMAC_CYRILLIC 等を指定する。この設定は Mac 文字セットが [Global] セクションで全体的にセットした文字セットと異なるというボリュームを必要とする時のみ必須である。

casefold = option (V)

ファイル名の大文字小文字を変更すべき場合、casefoldオプションが処理する。有効なオプションは:

tolower - 双方向で名前を小文字に変換する。

toupper - 双方向で名前を大文字に変換する。

xlatelower - クライアントでは小文字に見えて、サーバでは大文字に見える。

xlateupper - クライアントでは大文字に見えて、サーバでは小文字にみえる。

password = password (V)

このオプションはボリュームパスワードの設定を許可する。パスワードは最大で 8 文字の長さ(これを記入するときには ASCII を強く推奨)

file perm = mode (V); directory perm = mode (V)

クライアントが要求した権限との論理和(or)をとる。file perm はファイルにのみ、directory perm はディレクトリにのみ用いる。 “unix priv = no” と共に用いてはならない。

:共同作業グループ向けのボリューム

file perm = 0660
directory perm = 0770

umask = mode (V)

権限のマスクを設定する。”unix priv = no” と共に用いてはならない。

preexec = command (V)

ボリュームがマウントされる時に実行されるコマンド

postexec = command (V)

ボリュームが閉じられる時に実行されるコマンド

rolist = users/groups (V)

信頼するユーザー及びグループの共有に対する読み込み専用アクセスを許可する。フォーマットは allow オプションに準ずる。

rwlist = users/groups (V)

信頼するユーザー及びグループの共有に対する読み込み/書き込みアクセスを許可する。フォーマットは allow オプションに準ずる。

veto files = vetoed names (V)

’/’ で区切られた 禁止名のどれかに一致するパスのファイルとディレクトリを隠す。禁止文字列は常に ‘/’ で終わらなければならない。例えば、”veto files = veto1/“、”veto files = veto1/veto2/”。

volume uuid = UUID (V)

ボリュームのカスタムUUIDを指定する。UUIDは標準的なフォーマットでなければならない。 例えば 550E8400-E29B-41D4-A716-446655440000。 指定されない場合、ランダムなUUIDが起動時にボリュームのために生成され、共有状態ディレクトリのファイル afp_voluuid.conf に保存される。

ほとんどの状況では、このオプションを設定する必要はなく、むしろ netatalk に管理させるべきである。

ボリュームオプション

ブーリアン型のボリュームオプション。

acls = BOOLEAN (デフォルト: yes) (V)

ボリュームが ACL をサポートしてるというフラグを立てるかどうか。もし ACL サポートでコンパイルしていれば、これはデフォルトで yes。

case sensitive = BOOLEAN (デフォルト: yes) (V)

ボリュームが大文字小文字を区別するファイル名をサポートしていると宣伝するかどうか。 ホストファイルシステムが大文字小文字を区別しない場合は、no に設定する。

cnid dev = BOOLEAN (デフォルト: yes) (V)

各ファイルやディレクトリの一意のデバイス番号を CNID バックエンドに保存するかどうか。 これはファイルがデバイスを跨いで移動されたときに検出するために使用され、Netatalk が CNID データベースを適切に更新できるようにする。

このオプションを使用する場合、ボリュームのデバイス番号が再起動しても一貫していることを確認すること。 これは /etc/fstab などで永続的なデバイス命名(例: UUID)を使用することで達成できる。 そうしないと、CNID データベースが毎回の再起動で常に再構築されることになり、理想的ではない。

convert appledouble = BOOLEAN (デフォルト: no) (V)

クライアントからファイルシステムにアクセスする際に、AppleDouble v2 メタデータファイルをファイルシステムの拡張属性に動的に自動変換する。

これは Netatalk v2 から後のバージョンへのアップグレードの際に有用であるが、すべてのファイルシステムアクセスに対して小さなパフォーマンスコストがかかる。

delete veto files = BOOLEAN (デフォルト: no) (V)

このオプションは Netatalk が一つあるいはそれ以上の veto されたファイルあるいはディレクトリ (veto files オプションを見よ)を削除しようとした時用いられる。 もしこのオプションを no に設定し(デフォルト)、そしてもしあるディレクトリが何か 非 veto ファイルないしはディレクトリを含んでいたら、ディレクトリの削除は失敗するであろう。 これは通常あなたの望むところの動作である。

もしこのオプションが yes に設定されていたら、Netatalk は veto 化ディレクトリ・ディレクトリ内も 含めあらゆるファイル、ディレクトリを再帰的に削除しようとするであろう。

follow symlinks = BOOLEAN (デフォルト: no) (V)

デフォルトの設定では偽なのでサーバー上でシンボリックリンクは辿られない。 これはMac OS XのAFPサーバーと同じ動作である。 このオプションを真に設定すると、afpdはサーバー上のシンボリックリンクを辿るようになる。

クライアントがAFP経由でシンボリックリンクを作成すると、ターゲットは検証される: 絶対パス、.. コンポーネントを含むパス、ボリュームルートの外に解決する相対パス、 およびボリュームとは異なるファイルシステムデバイス上のターゲットは拒否される。

【注記】 このオプションはセキュリティに敏感であるため、クライアントがサーバー上のシンボリックリンクを辿ることを許可することのセキュリティ上の影響を理解している場合にのみ有効にするべきである。

invisible dots = BOOLEAN (デフォルト: no) (V)

ドットファイルを不可視にする。

【警告】 このオプションを有効にすると、望まない副作用をOS Xアプリケーションに引き起こす。 つまり、先頭がドットではじまる一時ファイルにファイルをセーブし、 それから一時ファイルを最終的なファイル名にリネームした時、 結果としてセーブしたファイルが見えなくなる。唯一このオプションが有用なのは、 Mac OS 9でドットからはじまるファイルを見えなくさせるためである。 Mac OS Xでは、Finderでもターミナルでもドットではじまるファイルはいずれにしても 隠しファイルなので、完全に無駄である。

network ids = BOOLEAN (デフォルト: yes) (V)

サーバーがネットワーク id をサポートするかどうか。これを no に設定すると結果としてクライアントは ACL AFP 機能を使わなくなる。

preexec close = BOOLEAN (デフォルト: no) (V)

preexec からの 0 以外のリターンコードで、 クライアントがボリュームをマウントする/見ることを防ぐために当該ボリュームを即座に閉じる。

read only = BOOLEAN (デフォルト: no) (V)

その共有を全てのユーザーに対して読み込み専用と指定する。強制的に ea = sys となる。

stat vol = BOOLEAN (デフォルト: yes) (V)

ボリュームリストを列挙するときにボリュームパスを stat するかどうか。オートマウントや preexec スクリプトで作成されたボリュームに有用である。

time machine = BOOLEAN (デフォルト: no) (V)

このボリュームの Time Machine サポートを有効にするかどうか。

unix priv = BOOLEAN (デフォルト: yes) (V)

AFP3 UNIX 権限を使うかどうか。これは OS X クライアントに対しては設定すべきである。file permdirectory perm 及び umask も参照。

【例】 現代の Mac クライアント

Netatalk が Spotlight および AFP stats サポート付きでビルドされた場合に有効にする。mimic model オプションはサーバーを Xserveのように見せるために使われる。

ホームディレクトリは /home/{user}/afp-data にマウントされる。

[Global]
afpstats = yes
afpstats group = netatalk
spotlight = yes
mimic model = RackMac

[Home]
basedir regex = /home
path = afp-data

【例】 レトロ Mac クライアント

Netatalk が AppleTalk サポートを付きでビルドされた場合に AppleTalk を有効にする。Random Number と ClearTxt 認証モジュールは古い Mac クライアントをサポートするために使われる。legacy icon オプションはクラシック Mac OS クライアントでマウントされた時にボリュームにカスタムアイコンを与えるために使われる。

legacy volume size では非常に古い Mac 向けに報告されるボリュームサイズが 2 GB に制限される。一方、prodos は Apple II ProDOS ブートフラグをボリューム上で有効にし、さらにボリューム上の報告される空き容量を 32 MB に制限するために使われる。

[Global]
appletalk = yes
uam list = uams_dhx.so uams_dhx2.so uams_randnum.so uams_clrtxt.so
legacy icon = daemon

[mac]
volume name = Mac Files
path = /srv/mac
legacy volume size = yes

[apple2]
volume name = Apple II Files
path = /srv/apple2
prodos = yes

関連項目

afpd(8), afppasswd(5), afp_signature.conf(5), extmap.conf(5), cnid_metad(8)

著者

CONTRIBUTORS を参照