FreeBSD 9-CURRENTにはNFSv4のコードがマージされています。FreeBSD 9.
maxosx
- How to use the NFSv4 server from Mac OS X Lion
current - 先日公開されたMac OS X Lionは新しくNFSv4に対応したという特徴があります。FreeBSD 9-CURRENTでNFSv4サーバを構築すれば、
Mac OS X LionをNFSc4クライアンとして利用することが可能です。マウントはターミナルから次のように行います。 「-o vers=4」 と指定することで、 NFSv4を使ったマウントが可能です。サーバに用意したユーザとMac OS X Lionのユーザ名が同じであり、 ユーザIDもグループIDもサーバと同じ状態になっていれば、 これだけで操作が可能になります。そうでない場合、 マウントできないかパーミッションがないものとして各種操作が行えないはずです。 NFSv4の最大の特徴の1つが、
サーバに用意したユーザアカウントとユーザIDとグループIDを揃える必要がない、 というものですが、 Lionに導入されているNFSv4では管理サービスを使わない限り、 そのあたりを簡単にハンドリングする方法は提供されていないようです。FreeBSD NFSv4サーバでちょっとした工夫をすることで異なるユーザID/グループIDのマッピングができないこともないのですが、 わかりやすい方法とはいいがたいので辞めておきましょう (数字のユーザを作成することでマッピングできるのですが、 あまりいい方法とはいえないので)。 ここでは素直にユーザIDとグループIDを揃えることで、
LionからNFSv4マウントを実施する方法を紹介します。なお、 以降の内容はコマンドラインからの作業となりますので、 ある程度Mac OS Xを操作することができ、 問題が発生しても対処できるユーザの方のみ参考にしてください。Time Machineでバックアップを取ってからの作業を推奨します。 まず、
ユーザIDをサーバに用意されているユーザIDと同じ番号へ変更します。たとえば次のように作業します。ここではユーザdaichiのユーザIDを1000へ変更しています。 次に対象ユーザのホームディレクトリ以下すべてのファイルやディレクトリの保有者データを更新します。この作業を忘れると利用できなくなるので注意してください。確実に変更するためにユーザ名ではなくユーザIDを指定して実行したほうがいいかもしれません。
次にサーバ上のユーザが所属しているのと同じ名前、
同じグループIDのグループを作成します。ここではユーザdaichiがグループdaichiに所属しているものとして作業しています。daichi:daichiであり、 1000:500を想定します。 「GroupMembership: daichi」 の項目を追加することで、 グループdaichiに所属するユーザがdaichiである、 ということを指定しています。GroupMembershipには複数のユーザ名を指定可能です。 ユーザのユーザIDとグループIDはid(1)コマンドで確認できます。たとえばLionのdaichiユーザでid(1)を実行すると次のようなデータが表示されます。ユーザIDと所属グループが想定しているものになっていることがわかります。
ここで想定しているFreeBSD NFSv4サーバのdaichiユーザでid(1)コマンドを実行すると次のようなデータが表示されます。ユーザIDとグループIDがそろっていることがわかります。
LionでユーザIDの変更やグループIDの変更を実施してもid(1)コマンドの表示に反映されない場合、
次のコマンドを実行してみてください。 今のところLionのデフォルトのツールを使って簡単にNFSv4サーバを利用する方法は提供されていないようです。大掛かりなユーザ管理が実施されている場合、
専用の管理ツールを導入することになるようです。ユーザIDとグループIDを揃えればいいという程度であれば、 ここで紹介した十分方法で利用できます。