サイト管理者の自宅のネットワークでは、リアルのWindowsマシンは存在しません。Sambaも使いますが、ということで、Linux/UbuntuでNFSを使ってファイル共有した方が、ドキュメントをFTPであちこちやりとりしなくても済みます。RedHat Enterprise Linux系と少し異なるようなので、下記にまとめて置きました。
環境としては、
- 192.168.1.30がNFSサーバー
- 192.168.1.2がNFSクライアントサーバー
- いずれも、Ubuntuサーバーをデスクトップ化
という前提です。
まず、NFSサーバーの方ですが、Ubuntuではnfs-kernel-serverパッケージがサーバー群で、デーモン名も同じくnfs-kernel-server。NFSデスクトップのパッケージはnfs-commonです。これらをそれぞれ192.168.1.30、192.168.1.2に$ sudo apt-getを使ってインストールします。サーバーのデーモンはパッケージをインストールすると自動的にスタートするようです。
次に、サーバー側で公開する共有ディレクトリを設定する必要がありますが、これは、/etc/exportsに書き込みます。セキュリティを気にせず、次のようにしました。
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/michiaki/document 192.168.1.2(rw,sync,no_subtree_check)
設定をUbuntuに反映させるため、
$ sudo exportfs -ra
を実行する必要があります。
主なオプションは
主なオプション一覧。詳しくは “man exports” を参照してください。
ro ファイルの読み込みのみを許可
rw 読み書きを許可
sync 書き込んだデータを共有ディレクトリに即座に書き込み
async 書き込んだデータを一旦サーバーのメモリに蓄積し、随時書き込み(既定値)
root_squash クライアントからのアクセスを匿名ユーザー(nobody)にマッピング(既定値)
※ただし、途中でサーバーが再起動などするとデータが壊れる場合があるとのことです。
no_root_squash クライアントからのroot権限での接続を、そのままroot権限によるアクセスとして処理
all_squash 全てのアクセスをnobodyからのアクセスとして処理
anonuid=uid root_squashあるいはall_squashがオプションの場合にanonymousの利用者IDを指定
anongid=gid root_squashあるいはall_squashがオプションの場合にanonymousのグループIDを指定
次に、クライアント側で次のコマンドを実行すればファイル共有ができます。
$ mkdir /home/michiaki/document2
$ sudo mount -t nfs 192.168.1.30:/home/michiaki/document /home/michiaki/document2
共有の解除は、$ sudo umount /home/michiaki/document2で。
Linuxのデスクトップマシンが普及してくると、SambaとNFSの混在環境になるかも知れません。