root_squashとanonuid、anongid

Fedora8上のnfsサーバの設定に関する備忘録その2の続き
nfsはデフォルトでroot_squashオプションが有効になっており、クライアントからrootでアクセスしても、nfsサーバー側では匿名ユーザー、匿名グループとして扱われるらしい(Fedora8では匿名ユーザー:nfsnobody、匿名グループ:nfsnobody)。参考:Redhatの解説記事
その結果/home/publicに書き込む権限が無いので"許可がありません"となるわけだ。
解決方法としてはno_root_squashオプションを指定するか(これはセキュリティ上推奨されない。)、/home/public(今回エクスポートしているディレクトリ)にnfsnobodyでも書き込めるようパーミッションを設定するか、anonuid=1000,anongid=100オプションで匿名ユーザーと匿名グループをuid=1000,gid=100にマップするか(注:/home/publicの所有者はuid=1000,gid=100)いずれかを選ぶ。今回は後で所有者をnfsnobodyから変更するのが面倒なので、最後の方法を取ることにした。
改良した/etc/exports:

/home/public/ CF-X1(rw,anonuid=1000,anongid=100)

/home/public/ VOSTRO(rw,anonuid=1000,anongid=100)

これで書き込み出来るようになった。

[]CF-X1[]# []mount.nfs VOSTRO:/home/public /mnt/dir1[]
[]CF-X1[]# []touch /mnt/dir1/aho[]
[]CF-X1[]# []ls -l /mnt/dir1/[]
[]合計 4[]
[]-rw-r--r-- 1 tks users 0 2008-03-20 13:40 aho[]

その他
hosts.deny:

ALL:ALL

hosts.allow:

all:VOSTRO
all:CF-X1

今後の課題
nfsとファイアーウォールの共存:複眼中心さん