Alecriar Studioの中の人の技術メモ

横浜の個人事業主が日々の技術的な情報をつづります

Arch Linuxでnetatalk

wiki.archlinux.jp

こちらのWikiがすべてですが、Arch Linuxnetatalkを実際に導入するときの手順を記します。

インストール

$ pikaur -S netatalk

netatalkはAURパッケージです。AURを取り扱える適当なパッケージマネージャを先に導入し、netatalkをインストールします。自動的にソースからコンパイルしますが、途中で以下のような選択肢が出てきますので適切に処理します。

( サポートがないパッケージ: 潜在的に危険です ! )
==> PKGBUILD を編集しますか ? [Y/n] ("A" で中止)
==> ----------------------------------
==> 

==> netatalk の依存パッケージ:
 - avahi>=0.6 (既にインストールされています)
 - libldap (既にインストールされています)
 - libgcrypt>=1.2.3 (既にインストールされています)
 - python2 (既にインストールされています)
 - dbus-glib (既にインストールされています)
 - pam (既にインストールされています)
 - libevent (パッケージが見つかりました)
 - python2-dbus (パッケージが見つかりました)


==> netatalk.install を編集しますか ? [Y/n] ("A" で中止)
==> ------------------------------------------
==> 

==> netatalk のビルドを続行しますか ? [Y/n]
==> ----------------------------
==> 

==> パッケージのビルドとインストール
==> netatalk に欠けている依存パッケージをインストールあるいはビルド:

依存パッケージでまだ導入されていないものがあれば、そちらから先にインストールされます。

設定例

インストール後、/etc/afp,conf を適切に設定します。

[Global]
; Global server settings
mimic model = RackMac   ※ネットワーク上に表示するアイコンの種類
log level = default:warn
log file = /var/log/afpd.log
hosts allow = 192.168.0.0/16  ※接続を許可するネットワーク範囲
uam list = uams_dhx2.so uams_guest.so
guest account = guest  ※ゲストアカウントを指定
vol preset = My Default Values

[My Default Values]  ※後述
ea = samba
file perm = 0664
directory perm = 0775

[Homes]
basedir regex = /home

[Shared Volume]  ※共有ボリューム
path = /srv/share
rwlist = guest
file perm = 0660
directory perm = 0770

[My Time Machine Volume]  ※MacからTime Machineとして利用するボリューム
path = /path/to/backup
time machine = yes

mimic modelはnetatalkが動作しているコンピュータの種類を指定します。例)RackMac, Xserve, PowerBook, PowerMac, Macmini, iMac, MacBook, MacBookPro, MacBookAir, MacPro, AppleTV1,1, AirPort

My Default Valuesにて ea = samba としていますが、これはsambaとの相互運用をするときの設定です。拡張属性をsambaの方式と合わせます。以下のブログが詳しいです。

hatx.hatenablog.com

起動と恒常化

systemdにサービスとして登録します

$ sudo systemctl start netatalk

問題なく起動できることを確認し、以下で恒常化します。

$ sudo systemctl enable netatalk

その後発生した問題(自環境)

ここからは自環境で発生したことなので他には当てはまらないと考えていますが、事象ととして記します。

設定でゲスト接続を有効にしたのですが、どうも上手く接続できません。原因を探るとgroupが異なるためにアクセス拒否されている状態でした。しかし、netatalkではgroupを設定する項目が見当たりません。そのため筆者の環境ではnetatalkの使用を諦め、sambaのみの運用となっています。