16.4. クライアントの設定

/etc/idmapd.conf の設定

サーバー側で設定した /etc/idmapd.conf の内容と同じにします。

マウントポイントの作成

NFSv4 サーバー側のエクスポートディレクトリをマウントするためのマウントポイントを作成します。ここでは、/mnt/NFS を作成しています。

# mkdir  /mnt/NFS
ユーザーの作成

サーバー側で作成したユーザーと同じようにユーザーを作成します。

# useradd -u 600 taro
# useradd -u 601 jiro
# passwd taro
# passwd jiro
# id taro
uid=600(taro) gid=600(taro) groups=600(taro)
# id jiro
uid=601(jiro) gid=601(jiro) groups=601(jiro)
デーモンの起動

クライアント側では portmap と rpc.idmapd を起動しておく必要があります。

# /etc/init.d/portmap start
Starting portmapper:                                                      OK
# /etc/init.d/rpcidmapd start
Starting NFS4 idmapd:                                                     OK

16.4.1. 動作確認

NFSv4 クライアントでのマウント

NFSv4 クライアントで NFS サーバー(nfsv4)のエクスポートディレクトリをマウントします。はじめに modprobe コマンドで nfs モジュールをロードします。NFSv4 の場合は、mount コマンドのファイルシステムタイプに -t nfs4 を指定します。また、マウントするディレクトリのパスは単に / と指定します。これは、/etc/exportfs で fsid=0 の指定されたディレクトリがクライアントからはルートディレクトリとして見えるためです(項16.5 を参照)。

# mount -t nfs4 -o rw,hard,intr nfsv4:/ /mnt/NFS

ティップ

mount のオプションには様々なものがありますが、ここでは、rw,hard,intr を指定しています。これらのオプションは必須ではありません。オプションの詳細については、man mount(8) を参照してください。

以下のように、/etc/fstab に記述しておけば、毎回オプションを指定する必要がなくなります。

nfsv4:/  /mnt/NFS        nfs4     rw,hard,intr,noauto  0 0

/etc/fstab に記述した場合は、以下のように実行するだけでマウントすることができます。

# mount /mnt/NFS

ファイルシステムのマウント後は、/mnt/NFS ディレクトリに対して、あたかもローカルのファイルシステムのようにファイルやディレクトリの作成、修正、削除が可能になります。

# cd /mnt/NFS/
# su taro
$ touch test01
$ ls -l
total 0
-rw-rw-r--  1 taro taro 0 Sep 17 20:32 test01
$ exit

また、root ユーザーでの書き込みは、エクスポートする際の root_squash 指定によって nfsnobody ユーザーになり、その他のユーザーの書き込みは nobody にマッピングされていることが確認できます。

# touch test02
# ls -l
total 0
-rw-rw-r--  1 taro   taro   0 Sep 17 20:32 test01
-rw-rw-r--  1 nfsnobody nfsnobody 0 Sep 17 20:32 test02
-rw-rw-r--  1 nobody nobody 0 Sep 17 20:48 test03

ファイルシステムをアンマウントするには、以下のコマンドを実行します。なお、ユーザーが /mnt/NFS 以下のディレクトリにアクセスしている状態で、アンマウントすることはできません。

# umount /mnt/NFS
NFSv3 クライアントでのマウント

NFSv2/v3 クライアントでマウントするのであれば、以下のように実行します。NFS サーバー側では、portmap が起動しており、最低でも /etc/hosts.allow で portmap、mountd へのアクセスがクライアントに対して許可されていなければなりません。mount コマンドの -t オプションには nfs を指定し、サーバー側のエクスポートディレクトリも / ではなく /home/NFS と通常のパスで指定します。

# mount -t nfs -o rw,hard,intr nfsv4:/home/NFS /mnt/NFS