TrueNASでWindows共有のSMBと古いAppleのファイル共有AFPを同時に使用するにはちょっとしたコツが必要。まぁこういうことはTrueNASに限らずの話ではあるが。
TrueNASの中身はFreeBSDなので、Linuxと同じようにSMBはsamba, AFPはafpdで運用されている。それぞれ全く異なるOSSプロジェクトであるため、両者を同時に走らせるためには設定を工夫する必要がある。もちろん、アクセス権限をつけずに動作させるだけであれば特に気にする必要は無いのだが、各ユーザーごとにホームディレクトリを作るというようにディレクトリの権限の管理を始めると、たとえばSMBで作成したファイルをAFPではパーミッションが足りずに修正できない、というような不具合が起きることを避けるべく設定が必要。
このようなコンフリクトを避ける一番手っ取り早い方法は、AFPを使わないという判断だ。こんなことを書いては元も子もないが、macOSはAFP over TCP/IPを廃止の方針にしている。macOSは2015年、MavericsからSMB2がファイル共有での優先プロトコルに変更され、MojaveのAPFSファイルフォーマットについてはAFP共有ができなくなった。そして、macOS 11 Big SurからAFPの共有サーバは廃止。
このようにmacOSのAFPサーバ機能は廃止されたが、AFPクライアント機能の方はmacOS 12 Montereyでもまだ残っている。従来のNASへのアクセスや古いネットワーク型Time Machineストレージへの互換性の配慮だろう。したがって、Macクライアントから昔ながらのAFPでNASに接続することもまだできる。
ということで、昨今の状況からAFPサーバをわざわざ残してSMBと同時に運用するかどうかは一度考え直しても良いと思う。
私の場合はというと、実はまだTrueNASによるAFPサーバを残している。理由は手元のMacに残っているNASへのエイリアス(ショートカット)を変更するのが面倒くさいということ、あとは古いMacからアクセスする際にAFPが必要だからである。なお、MacからNASへのアクセスはAFPよりもSMBの方が転送速度が出るようなので、本来はSMB推奨らしい。
目次
SMB, AFPを同時運用する時の基礎事項
- ファイル共有上のパーミッションはchmod, chownではなくACLで行われる
- パーミッションがおかしいときは、getfaclコマンドでACLを確認する
- ルートディレクトリの基本パーミッションはシェルで設定する
- サブフォルダはSMB, AFP経由で作成する
- ホームディレクリのユーザーのルートディレクトリはSMB経由で作成する
共有フォルダのルートを作成する
Storage > Pool > Add Dataset でPool内に新規データセットを作成する。データセットがファイルシステム構築の単位となる。
作成時のオプションでShare TypeをSMBに設定する。この設定を行うとSMB用にACL ModeがRestricted、Case SensitivityがInsensitiveに自動設定される。
グループ共有NASフォルダの作り方
アカウントのグループを作成する
SMBの共有ポイントを新規作成する
- Sharing > SMBの設定にて、[ADD]ボタンを押して新規にSMBの共有ポイントを作成する。
- Pathの設定で先ほど作成したデータセットの場所を選ぶ
- Purposeを"Multi-protocol(AFP/SMB) shares"にする
ユーザーのアクセス権限を設定する
ディレクトリのパーミッション設定
# ls -al /mnt/Pool001/
drwxrwxr-x+ 7 root nasuser 14 Sep 23 23:19 test_dir
AFPの設定
- Pathの設定はSMBと同じにする
- パーミッションは図のようにグループにも読み書き権限を与える。これはWindows ACLではなくFreeBSD上のUnixパーミッションである
- Users and Groupに接頭辞"@"をつけてアクセスを許可するグループ名を記入する。ユーザー名の場合は@は不要
- Mac OS X 10.4より古いクライアントがアクセスする際には、AFP3 Unix PrivsのチェックボックスをOFFにする。また、新しいmacOSでもファイルは作れるがフォルダの作成はできないという状態の時は、このチェックボックスを外す。
ホームディレクトリ型のネットワークフォルダの作り方
- フォルダは自分専用で他人は読み書きできない
- ネットワークのファイルブラウザで見た時、自分のホームディレクトリは自分にしか見えない
- SMBが自動でホームディレクトリ作成とパーミッション設定をしてくれるのでサーバ管理者側の設定が簡単
このような特徴がある。特に、2.のようにWindowsやMacからネットワークのファイルブラウザで共有フォルダを探したときに、他人のホームディレクトリは表示すらされない。このため他人のホームディレクトリ内のファイルを覗き見ることは一切できないという管理が可能。
なお、これはFreeBSDのUnixホームディレクトリとは全く別で、ファイル共有専用のホームディレクトリを作る設定なので混乱しないように。
ホームディレクトリ型のSMB共有ポイントの作成
- PathはSMB側と同じ
- Use as Home ShareのチェックをON
- AFP3 Unix PrivsのチェクはOFF ※こうしないとAFP側から新規フォルダ作成ができない
- Allowするグループ名、ユーザー名は空欄のまま
初めてホームディレクトリを利用する時の手順
各ユーザーのホームディレクトリはWindows ACLのパーミッション管理でディレクトリが作成される。シェルでディレクトリを手動作成した時はUnixのACL設定しかされていないので、SMBでの読み書きに問題が起きることがある。手動でACL管理コマンドを叩けば設定ができなくもないが、ここはSMBサーバの機能にお任せした方が良い。
0 件のコメント:
コメントを投稿