web-dev-qa-db-ja.com

NFSサーバーが間違ったディレクトリをエクスポートしています

認めるのは少し恥ずかしいことですが、NFSサーバーが正しいディレクトリをエクスポートするのに問題があります。クライアントとサーバーの両方で最新のCentOS6.2を使用しています。

サーバーは稼働しており、テスト中にファイアウォールが無効になりました。

サーバー側で私はこれを作成しました/etc/exports

/home/user1/documents/   *(ro,sync)

このディレクトリは、ソフトウェアRAIDのボリュームのルートです。 mountは次のように出力します:

/dev/mapper/lvm--raid-lvol0 on /home/user1/documents type ext4 (rw,nosuid,nodev)

サーバー上のコマンドshowmount -eは、正しい出力を表示します。

Export list for servername:
/home/user1/documents (everyone)

クライアントからその共有をマウントしようとすると、次の出力が得られます。

mount.nfs: access denied by server while mounting servername:/home/user1/documents

ただし、後でサーバーでファイル/proc/fs/nfsd/exportsを見ると、複数のマウントポイントが表示されますが、正しいマウントポイントは表示されません。

# Version 1.2
# Path Client(Flags) # IPs
/       *(ro,root_squash,sync,no_wdelay,no_subtree_check,v4root,fsid=0,uuid=696f3ea6:3d7641f3:b6315631:bd63c833)
/home   *(ro,root_squash,sync,no_wdelay,no_subtree_check,v4root,uuid=696f3ea6:3d7641f3:b6315631:bd63c833)
/home/user1     *(ro,root_squash,sync,no_wdelay,no_subtree_check,v4root,uuid=696f3ea6:3d7641f3:b6315631:bd63c833)

これらのエントリはどこから来て、なぜ/home/user1/documentsで始まる行がないのですか?クライアントから/home/user1の代わりに/home/user1/documentsをマウントしようとしましたが、これは奇妙に機能します。

ユーザーのUIDは、サーバーとクライアントで同じです。エクスポートするディレクトリ自体がマウントされているのは問題ですか?

編集

ファイル/var/lib/nfs/xtabは空です。

4
GorillaPatch

NFSv4を使用しているようです(/ proc/fs/nfsd/exports出力のfsid = 0はそれを提供します)。 NFSv4にはNFSルートが必要です。この/ etc/exportsの方が幸運かもしれません。

/home                    *(ro,fsid=0)
/home/user1/documents/   *(ro,sync)

サーバーとクライアントの/etc/idmapd.confのドメインを編集する必要がある場合もあります。

ちなみに、信頼できないシステムからデータにアクセスできないようにする場合は、そのアスタリスクをサブネットに置き換えることを強くお勧めします。

3
Nicholas

私は問題を抱えていました:

/my/dir1 *(rw,sync,fsid=0,crossmnt,no_subtree_check)
/my/dir2 *(rw,sync,fsid=0,crossmnt,no_subtree_check)

両方のマウントが/my/dir1に表示されました。

Ubuntu 16.04 nfs-kernel-server package /etc/exportsサンプルファイルに記載されているものと同じデフォルトオプションを使用しようとしました: https://unix.stackexchange.com/questions/198009/what-provides -etc-exports-and-how-do-i-find-that-out

解決策は、fsid=0,crossmntを削除し、次のように使用することでした。

/my/dir1 *(rw,sync,no_subtree_check)
/my/dir2 *(rw,sync,no_subtree_check)

これは次の場所でも言及されています: https://forums.opensuse.org/showthread.php/481263-NFS-directs-to-the-wrong-shared-folder/page2?s=ae345ec054b854b5cf036cd1816626f4

それらすべてが何をしているのか本当にわかりません。いつかNFSを学びます。多分。