ユーザーとグループの権限を尊重するようにNFSをどのように設定しますか?

ユーザーとグループの権限を尊重するようにNFSをどのように設定しますか?

2つのサーバー間でNFS共有を作成した後、ポンド1(nfs クライアント) とデータサーバー1(nfs-kernel-server)、NFSサーバー権限を持つユーザーには、NFSクライアントにアクセスする権限がありません。

データサーバー1の構成:

$ cat /etc/exports
/data  10.132.246.167(rw,no_subtree_check)
$ ls -la / | grep data
drwx--x--x  3 u1   users    4.0K Sep  6 03:55 data/
$ ls -la /data
drwxr-xr-x 3 u1       users    4.0K Sep  6 02:31 prod/
drwxrwsr-x 2 www-data www-data 4.0K Sep  6 02:31 keys/
$ awk -F: '$0=$1 " uid="$3 " gid="$4' /etc/passwd | grep 'root\|u1\|ftp\|www-data'
root uid=0 gid=0
www-data uid=33 gid=33
u1 uid=115 gid=100
ftp uid=999 gid=100

lb1 構成:

$ mount 10.132.245.223:/data /data
$ mount
10.132.245.223:/data on /data type nfs4 (rw,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=10.132.246.167,minorversion=0,local_lock=none,addr=10.132.245.223)
$ sudo -u u1 ls -la / | grep data
drwx--x--x  3 u1   users    4.0K Sep  6 03:55 data/
$ sudo -u u1 ls -la /data
drwxr-xr-x 3 u1       users    4.0K Sep  6 02:31 prod/
drwxrwsr-x 2 www-data www-data 4.0K Sep  6 02:31 keys/    
$ awk -F: '$0=$1 " uid="$3 " gid="$4' /etc/passwd | grep 'root\|u1\|ftp\|www-data'
root uid=0 gid=0
www-data uid=33 gid=33
u1 uid=115 gid=100
ftp uid=999 gid=100    

NFSサーバー(つまり、data-server1)では、root、u1、およびftpユーザーは/ dataサブディレクトリに適切なrwx権限を持ち、問題なくファイルシステムにアクセスできます。ただし、NFSクライアント(たとえばlb1)では、NFS共有内のディレクトリの内容のみを一覧permission denied表示しようとすると、rootエラーとftpエラーが発生します。/data一方、ユーザーu1は完全に実行されます。

NFSを初めて使用します。

答え1

すべてが期待どおりに見えます。そのため、所有者のみを/dataリストできます。他の人は、そのファイルとサブディレクトリに対する権限に基づいて、そのファイルとサブディレクトリにアクセスできます。rwx--x--xu1

また、エクスポート行にno_root_squashがない場合(またはNFSv4を実行している場合は明示的なユーザーIDマッピングを実行する)、NFSクライアントのユーザーID 0はサーバーのユーザーID 65534(一部のシステムでは-2)にマップされます。次はエクスポート(5) マニュアルページ:

通常、NFSサーバー上のファイルにアクセスするときに、クライアントシステムのrootユーザーがrootと見なされることは望ましくありません。このため、uid 0 は通常、いわゆる匿名または人間 uid という別の ID にマップされます。この動作モード(「ルートスカッシュ」と呼ばれる)はデフォルト値であり、no_root_squashを使用してオフにすることができます。

デフォルトでは、エクスポートfsは圧縮アクセスのためにuidとgid 65534を選択します。この値は、anonuidおよびanongidオプションでオーバーライドすることもできます。

関連情報