Linux(Gentoo)をサーバにしてMac OS X 10.6(Snow Leopard)とファイル共有してみた(AFP over TCP)
LinuxとMac間でファイルのやりとり出きるようにしていないことに気がついたので、AFPデーモンをLinuxに立ててファイル共有することにしました。
NFSも考えましたが設定がいろいろと面倒くさいのでやめてAFPにしました。AFPというのはAppleが開発したファイル共有プロトコルです。Mac OS X以前はAppleTalkの一部でしたが、現状はTCP/IP上で動くプロトコル(AFP over TCP)となっています。
環境
- ディストロ:Gentoo Linux
- クライアント:Mac OS X 10.6(Snow Leopard)
- AFPデーモン:netatalk-2.0.5
手順
/etc/netatalk/nettatalk.confを変更する
下記のように設定します。netatalk.confから変更が必要な部分だけを抽出しています。
ATALKD_RUN=no PAPD_RUN=no CNID_METAD_RUN=yes AFPD_RUN=yes TIMELORD_RUN=no A2BOOT_RUN=no
/etc/netatalk/afpd.confを変更する
下記の行をファイルに追加してください。それぞれの引数の意味は備考にまとめてあります。
- -noddp -uamlist uams_dhx2.so
/etc/netatalk/AppleVolumes.defaultを変更する
ここは設定できるボリュームの設定をします。ユーザのホームディレクトリやビデオやオーディオ、TimeMachineのバックアップ先の指定などが可能です。
ユーザのホームディレクトリの共有を行うのが目的なのでファイルに"~"を挿入します。というか、元々"~"は入っていました。
~
その他のオプションは備考で簡単に紹介します。
Macでマウントする
Finderの「サーバに接続」機能を使用します。下記で接続できます。
[ユーザ名]はサーバ側と同じであれば特に指定不要です。
# ユーザ名を指定する場合 afp://[ユーザ名]@[アドレス] # ユーザ名を指定しない場合 afp://アドレス
備考
AppleTalkはなくなりました
AppleTalkはMacに搭載されている辞書だと下記の用に紹介されています。
アップルが提供していた、コンピュータネットワークのためのソフトウェアツールのセットです。AppleTalk ネットワークシステムは、Mac OS X を使用する Macintosh コンピュータでは TCP/IP ネットワークにその役割が引き継がれました。
もともとAFPはAppleTalkプロトコル上で動いていた分けですが、AppleTalkプロトコルが廃止されるとともにAFP over TCP/IPとなりました。
CNIDとは
Catelog Node ID(CNID)の略称でファイルやディレクトリに割り当てられたIDです。AFPではこのIDを用いてファイルへの要求を行います(パスを用いては行いません)。例えばファイルの指定はファイルの指定に文字列使用し、ディレクトリの指定にCNIDを使用すると言った具合です。
netatalk.confの設定について
- unixcodepage
- maccodepage
上記の文字コード指定の項目がありますがUTF-8で運用していれば変更の必要はありません。
Mac OSのバージョンが古い(AFP2.2まで)場合などはクライアントの文字コードを正しく指定する必要がある場合があるので注意が必要です。詳しくはhttp://netatalk.sourceforge.net/2.0/htmldocs/configuration.html を参照ください。
afpd.confの設定について
- -noddp -uamlist uams_dhx2.so
下記に引数の意味をまとめました。
- noddp:AFPをAppleTalk上で扱うかどうかを設定しています。AppleTalkは使用しないので[no]を付加しています
- uamlist:使用するUAM(User Authentication Modules)を指定します
- uams_dhx2.so:パスワードが最大256文字までサポートされたモジュールです。MacOS X 10.2から導入されています
もし、AppleShare client 3.8.4〜Mac OS X 10.2より前のバージョンとでやり取りを行いたい場合は"uams_dhx.so"を指定します。
全てのMac OSを対象にしたい場合は"uams_randnumo.so"を指定することで可能になります。
モジュールは複数指定することも可能です(','で区切ることにより)。
AppleVolumes.defaultsの設定について
この記事ではホームディレクトリにアクセスするのが目的だったので"~"で終わらせてしまったので、ざっくり紹介。詳しくはmanをどうぞ。
下記が基本となる記述になっています。
path [ volume name ] [ options ]
- path:ボリュームへのパスを指定します。"/home/ktomoya/xx"といったパスや"/var/afpd/timemachine/$u"といった$[a-z]の記述でユーザ名など動的要素も指定できます。
- [ volume name ]:ボリュームの名称を指定します。"Music"といった名称や"Music for $g group"のようにパスと同様に動的要素も指定できます。
- [ options ]:allow,denyユーザやtimemachine対応か否か
感想
特に何もとらぶるなく終わってしまうと何のノウハウも蓄積されないので微妙。
今後
TimeMachineとか試しに使ってみようかなぁ。
参考
更なる情報は参考元をどうぞ。
manは日本語もありますが、古いので"LANG=c"で英語を見るのをお勧めします。
- man netatalk.conf
- man afpd.conf
- man AppleVolumes.default
- http://en.gentoo-wiki.com/wiki/Share_Directories_using_AFP
- Apple辞書(Mac OS X 10.6内蔵)
- http://netatalk.sourceforge.net/2.0/htmldocs/configuration.html