NFS
共有をエクスポートするローカルサーバーがあり、ネットワーク内のLinuxホームフォルダーの親ディレクトリとして使用されます。ユーザーはLDAP
(同じサーバー上で実行)を介して認証します。
認証は正常に機能し、共有上のホームフォルダーは、ユーザーがクライアントマシンにログインした後も適切に機能します。
ただし、1つの問題があります。それは、クライアントのrootユーザーがユーザーフォルダーにアクセスできないことです。 rootはユーザーのフォルダーに書き込めないため、Sudo apt-get
のような単純なものでもエラーが発生するため、これは問題です。
問題は、NFS
サーバーのホームフォルダーのアクセス許可が0700であるため、ユーザー自身だけがアクセスできることだと思いました。そのため、この権限を0770に変更しました。また、サーバー上のユーザーフォルダーのグループ所有権を0、つまりルートに設定しました。 0はクライアントマシン上のrootのグループIDでもあるため、これは機能するはずだと思いました。
残念ながら、それでも問題は解決しませんでしたが、rootはまだユーザーのフォルダーにアクセスできません。
root@Mule:/home/users# ll
total 28
drwxr-xr-x 7 team team 4096 Aug 20 14:18 ./
drwxr-xr-x 3 root root 4096 Oct 29 10:43 ../
drwxrwx--- 30 mfb root 4096 Jan 30 17:49 mfb/
root@Mule:/home/users#
root@Mule:/home/users# cd mfb
bash: cd: mfb: Permission denied
root@Mule:/home/users#
root@Mule:/home/users# ll mfb
ls: cannot open directory mfb: Permission denied
root@Mule:/home/users#
root@Mule:/home/users# whoami
root
root@Mule:/home/users#
root@Mule:/home/users# mount | grep users
bison:/media/profiles on /home/users type nfs (rw,hard,intr,addr=192.168.0.2)
root@Mule:/home/users#
私はここでアイデアがありません。 rootがクライアントのユーザーホームフォルダ(この例ではmfb
)にアクセスできるようにする方法についての提案はありますか?
exportsのマニュアルページから:
多くの場合、NFSサーバー上のファイルにアクセスするときに、クライアントマシンのrootユーザーもrootとして扱われることは望ましくありません。この目的のために、uid 0は通常、別のID、いわゆる匿名または誰もいないuidにマップされます。この操作モード(「ルートスカッシング」と呼ばれる)はデフォルトであり、no_root_squashでオフにすることができます。
nFSマウントがどのようにエクスポートされているかを確認する必要があります。 「root_squash」が有効になっている可能性があります。
ドキュメントから:root_squash —リモートで接続されたrootユーザーがroot権限を持つことを防ぎ、ユーザーnfsnobodyのユーザーIDを割り当てます。
no_root_squashオプションは、ルートスカッシングをオフにします
詳細はこちら: http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-nfs-server-config-exports.html
エクスポートでno_root_squash
を設定する必要があります。それ以外の場合、rootユーザーによるアクセスは匿名ユーザー(通常は誰も)にマップされます。