NFSサーバーの構築

NFSサーバーを構築しよう。NFSはUNIXの標準的なファイル共有プロトコルだけど、クライアントとサーバー間でユーザーIDが共通であるのが前提だったり、NISサーバーと合わせて使わないとちょっと使いづらい。今回は自分の管理しているマシンにのみ読み書き権限を与え、そのほかのマシンには読み取り権限しか与えないことにする。

共有用ディレクトリを作成する。まずは特定のプロジェクト・グループにしか公開しないディレクトリ。ローカル環境に対しては、projectグループに読み書きを許可し、sgidビットを立てることで、そのディレクトリ内に書き込みされたファイルは全て、そのディレクトリと同じグループになるようにした。

# useradd project
# gpasswd -a gadget project
# chmod 02775 /home/project
# ls -ld /home/project
drwxrwsr-x 2 project project 1024 6月 17 16:50 /home/project/
# su – gadget
$ id
uid=500(gadget) gid=500(gadget) 所属グループ=10(wheel),500(gadget),501(project) context=user_u:system_r:unconfined_t
$ touch /home/project/foo
$ ls -l /home/project/foo
-rw-rw-r– 1 gadget project 0 6月 17 16:55 /home/project/foo

同様にLAN内全てのマシンと共有するディレクトリを作成する。

# mkdir -p /var/pub
# chgrp wheel /var/pub
# chmod 02775 /var/pub
# ls -ld /var/pub
drwxrwsr-x 2 root wheel 1024 6月 17 16:50 /var/pub/

いよいよNFSサーバーの設定だ。設定は /etc/exports に記述する。/home/project はホスト「powermac」に読み書きで公開し、/var/pub はpowermacには読み書きで公開するものの、そのほか全てのホストは読み取りのみで公開する。Mac OS X を含むBSD系のOSから共有する場合は、オプションにinsecureをつけること。また、ユーザーIDのそろっていないホスト(この場合はpowermac)からの書き込みがあるので、強制的に不特定ユーザー(nfsnobody)とするためにall_squashオプションをつけている。

/etc/exports

/home/project powermac(rw,sync,insecure,all_squash)
/var/pub *(ro,sync,insecure) powermac(rw,sync,insecure,all_squash)

デーモンを起動する。

# chkconfig portmap on
# chkconfig nfs on
# chkconfg nfslock on
# service portmap start
portmap を起動中: [ OK ]
# service nfs start
NFS サービスを起動中: [ OK ]
NFS クォータを起動中: [ OK ]
NFS デーモンを起動中: [ OK ]
NFS mountd を起動中: [ OK ]
# service nfslock start
NFS statd を起動中: [ OK ]

powermacからマウントしてみよう。

<

p class=”screen”># hostname
powermac.local

mkdir -p /mnt/poweredge/project

mount poweredge:/var/shared /mnt/poweredge/project

ls /mnt/poweredge/project

foo

umount /mnt/poweredge/project

コメントを残す