Netatalk で AFP ファイル共有サーバを構築する

提供:maruko2 Note.
移動: 案内, 検索

目次


CentOS 6, Netatalk 2.2.3 での構築例。[1]

Netatalk の特徴

fstab の編集

ディスククォータは、ルート・ファイルシステム / では有効にはらない。
/ とは別にマウントするファイルシステムに対して設定する必要がある。

例えば、/ とは別のファイルシステム /home で拡張ファイル属性 (user_xattr)ディスククオータ (usrquota)を有効にするには、/etc/fstab を次のように編集する。

/dev/mapper/VolGroup-lv_root /       ext4   defaults   1 1
/dev/mapper/VolGroup-lv_home /home   ext4   defaults,user_xattr,usrquota   1 2

EXT4 の場合、ジャーナリング対応のバージョン2のクォータを使用するよう促される。[2]

バージョン1

UUID=abdbbf65-0199-4a20-96a8-37444bc495df /home ext4 defaults,usrquota,grpquota,user_xattr 1 2

バージョン2

UUID=abdbbf65-0199-4a20-96a8-37444bc495df /home ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0,user_xattr 1 2

/home を再マウントする。

# mount -o remount /home

マウントオプションが有効になっているか確認。

# mount
...
/dev/mapper/VolGroup-lv_home on /home type ext4 (rw,user_xattr,usrquota)
...

有効にしたディスククォータは、ユーザ別に制限をかけるユーザクォータ機能を利用している。 管理するには、Webmin などのツールを使うと便利。

Netatalk をインストールする

HAT さんのページ を参考に rpm を作成しインストール。

Netatalk の設定

/etc/netatalk/ ディレクトリ以下に設定ファイルがあり、主な設定ファイルは以下になる。

netatalk.conf Netatalk 全般の設定。

一度設定すると、ほとんど変えることはないはず。

afpd.conf AFPサーバの設定。

IPアドレスごとにサーバー名やユーザー認証方法を変えたりする事ができる。(マルチサーバー機能は Netatalk 3 で廃止された。)

AppleVolumes.default AFPサーバの共有ボリュームを設定する。

共有ボリュームのアクセス設定とディレクトリを指定する。

netatalk.conf

ATALK_UNIX_CHARSET='UTF-8'
ATALK_MAC_CHARSET='MAC_JAPANESE'

export ATALK_UNIX_CHARSET
export ATALK_MAC_CHARSET
CNID_METAD_RUN=yes
AFPD_RUN=yes

AFPD_MAX_CLIENTS=100
AFPD_GUEST=nobody

CNID_CONFIG="-l LOG_NOTE -f /var/log/netatalk.log"
ATALK_UNIX_CHARSET
Linux 側の設定ファイル内で使う文字コード。
ATALK_MAC_CHARSET
Mac OS 9 側の文字コード。
Mac OS X はこの設定に関係なく UTF8-MAC に固定なので、MAC_JAPANESE と指定する。
AFPD_GUEST
AFP のゲストユーザを、Linux のどのユーザにするか設定する。
Samba のゲストユーザもデフォルトが nobody なので、nobody としておく。

afpd.conf

"AFPサーバ名" \
	-maccodepage MAC_JAPANESE \
	-setuplog "default log_info /var/log/afpd.log"
-maccodepage
netatalk.conf の ATALK_MAC_CHARSET と同じコードを設定する。
-setuplog
-setuplog "<logtype> <loglevel> [<filename>]"

マルチサーバとして設定するには、設定を複数記述する。

"ファイルサーバ" \
	-ipaddr 192.168.1.1 \
	-maccodepage MAC_JAPANESE \
	-setuplog "default log_note /var/log/afpd.log"
"ゲスト用サーバ" \
	-ipaddr 192.168.1.2 \
	-uamlist uams_guest.so \
	-maccodepage MAC_JAPANESE \
	-setuplog "default log_note /var/log/afpd.log"
-ipaddr
リッスンする IP アドレスを指定する。
-uamlist
ユーザー認証方法(UAM)を指定する。
ゲストログインを許可するには、uams_guest.so を指定する。
デフォルト値: uams_dhx.so,uams_dhx2.so

AppleVolumes.default

:DEFAULT: options:upriv,usedots maccharset:MAC_JAPANESE ea:sys
/home/SharePoint "AFPファイル共有ボリューム名" allow:@maruko2
/home/TimeMachine "TimeMachine用ボリューム" option:tm volsizelimit:20480

:DEFAULT: で始まる行は、全ボリュームの共通設定。

options:upriv,usedots
upriv は UNIX パーミッションを有効にする設定。Mac OS X で利用する場合、設定しておく。
usedots は、ドットで始まるファイル名をそのまま使う。
maccharset:MAC_JAPANESE
netatalk.conf, afpd.conf で設定した内容と同じにする。
ea:sys
拡張属性の保存方法を指定する。
ea:sys はファイルシステムの拡張属性に保存する設定。

2行目以下に、共有ボリュームの設定を記述する。

"CentOSのディレクトリ" "共有ボリューム名" アクセス設定

アクセス設定の項目は AppleVolumes.default のマニュアル を参考に。

例えば、allow:maruko2 と設定すると、ユーザー名 maruko2 のみアクセスできるようになる。グループを指定する場合は @maruko2 のように @ を付ける。複数指定する場合はカンマで区切る。

option:tm とすると Time Machine 用のボリュームになる。 volsizelimit: は、ボリュームのサイズに制限をかける(MBで指定)。ディスククォータの設定ではないので注意。

Bonjour に登録する

Avahi で Bonjour サービスを設定する方法

Samba と連動させる設定

Samba と Netatalk を連動させる設定

参考ページ

HATさんのサイト (www003.upp.so-net.ne.jp/hat)

Netatalk 2.2 Manual - Chapter 5. Manual Pages (netatalk.sourceforge.net)

脚注

  1. 複数の AFP ファイルサーバー (Mac OS X Server) を 1 台の Linux サーバーに統合し、かつ、使用感を従来通りにするため、マルチサーバー機能のある Netatalk 2.2.x で構築しています。Netatalk の最新バージョンは Netatalk 3 です。
  2. Linux の 101 試験対策: ディスク・クォータの管理
LINEで送る このエントリーをはてなブックマークに追加
個人用ツール
名前空間
変種
表示
操作
案内
ツールボックス

注目のページ

このサイトのはてなブックマーク数