web-dev-qa-db-ja.com

14.04へのアップグレード後、NFSマウントのファイル許可が「nobody」として表示される

NFSを介していくつかのファイルシステムをエクスポートするUbuntu 12.04サーバーがあります。

server$ cat /etc/exports
/home 192.168.42.0/255.255.255.0(rw,anonuid=65534,anongid=65534,async,no_subtree_check)
/stuff 192.168.42.0/255.255.255.0(rw,anonuid=65534,anongid=65534,async,no_subtree_check)
/stuff 192.168.99.0/255.255.255.0(ro,anonuid=65534,anongid=65534,async,no_subtree_check)

私はそれらをマウントするクライアントも持っています:

client$ cat /etc/fstab
...
server:/home    /home       nfs hard,intr,rsize=8192,wsize=8192,_netdev 0 0
server:/stuff   /server/stuff   nfs hard,intr,rsize=8192,wsize=8192,_netdev 0 0

クライアントのIPは192.168.42.xの範囲にあります。昨日までUbuntu 10.04を実行していました。 NFSは多かれ少なかれ正常に機能しました(ブート時に自動マウントされない場合がありますが、それを検出して修正するためのcronスクリプトがありました)。

昨日、クライアントをUbuntu 12.04にアップグレードして再起動しました。 NFSは引き続き正常に機能しました。

今日、クライアントをUbuntu 14.04にアップグレードして再起動しました。 NFSはマウントされましたが、すべてのファイル所有権情報はnobody:4294967294にマップされます。

client$ ls -ld /home/weblate
drwxr-xr-x   5 nobody 4294967294     4096 Jan 29  2014 weblate

それはなぜですか、またファイルの所有権を再び機能させるために何をする必要がありますか?

5
Marius Gedminas

重要な手がかりは/var/log/syslogに現れました:

Sep 16 13:11:07 client nfsidmap[7340]: nss_getpwnam: name 'www-data@lan' does not map into domain 'localdomain'

NFSv4Howto からのこの抜粋と組み合わせて

すべてのディレクトリリストに実際のユーザー名とグループ名ではなく「nobody」と「nogroup」のみが表示される場合は、/ etc/idmapd.confに設定されているDomainパラメーターを確認することをお勧めします。 NFSv4クライアントとサーバーは同じドメインにある必要があります。

/etc/idmap.confのこのコメント:

# set your own domain here, if id differs from FQDN minus hostname
# Domain = localdomain

したがって、私のサーバーはそのドメインがlanであると考えていたことがわかりました。

server$ hostname -f
server.lan

server$ grep server /etc/hosts
127.0.1.1   server.lan server

私のクライアントにはドメインがありませんでしたが:

client$ hostname -f
client

client$ grep client /etc/hosts
127.0.1.1   client

修正:クライアント上の/etc/hostsを編集して読み取ります

127.0.1.1   client.lan client

そして再起動します。

9
Marius Gedminas

この方法で問題を解決しました。ファイル/etc/nfsmount.confを開き、Nfsvers=を見つけます。

その行のコメントを外し、サーバーでサポートされているNFSバージョンを記述します。私は3だったので書きました:

Nfsvers=3

NFSサーバーを再起動しました。

1
Muhammad Naeem