nfsといくつかの共有があります。ここに /etc/exports ファイルがあります。 (no_root_squashが危険であることを知っていますが、テストのために一時的です。)
/srv/nfs4 10.3.0.0/24(ro,no_subtree_check,fsid=0,sec=krb5p:sys) 192.168.0.0/24(ro,no_subtree_check,fsid=0,sec=krb5p:sys)
/srv/nfs4/kernels 10.3.0.0/24(rw,no_subtree_check,async,no_root_squash,nohide,sec=krb5p:sys) 192.168.0.0/24(rw,no_subtree_check,async,no_root_squash,nohide,sec=krb5p:sys)
sysオプションを使用してディレクトリをマウントするとposix aclが尊重され、ファイルをrootとして作成すると権限がrootとして報告されます(私が望むもの)。
mount -vvv -o sec=sys myserver:/kernels /mnt/
mount.nfs: timeout set for Tue Dec 28 07:18:41 2021
mount.nfs: trying text-based options 'sec=sys,proto=tcp,retrans=2,retry=1,acl,ac,rsize=32768,wsize=32768,bsize=32768,port=2049,vers=4,addr=10.3.0.1,clientaddr=10.3.0.1'
cd /mnt
mkdir 44944
root@server:/mnt$ ls -lhd *
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 06.52 33/
drwxr-xr-x 2 root root 4,0K 28 dic 07.10 449/
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 07.17 4494/
drwxr-xr-x 2 root root 4,0K 28 dic 07.18 44944/
問題は、sec = krb5pを使用してディレクトリをマウントすると、none:nogroup(sic!)でマウントが強制され、ディレクトリに777権限を与え、Kerberos化されたユーザーとして入力し(最初にkinitを実行しました)、作成しようとしました。です。 dir..itは権限をnone:nogroupとして報告します。
mount -vvv -o sec=krb5p myserver:/kernels /mnt/
mount.nfs: timeout set for Tue Dec 28 07:21:45 2021
mount.nfs: trying text-based options 'sec=krb5p,proto=tcp,retrans=2,retry=1,acl,ac,rsize=32768,wsize=32768,bsize=32768,port=2049,vers=4,addr=10.3.0.1,clientaddr=10.3.0.1'
mkdir 449444
root@myserver:/mnt$ ls -lhd *
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 06.52 33/
drwxr-xr-x 2 root root 4,0K 28 dic 07.10 449/
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 07.17 4494/
drwxr-xr-x 2 root root 4,0K 28 dic 07.18 44944/
drwxr-xr-x 2 nobody nogroup 4,0K 28 dic 07.21 449444/
ご覧のとおり、ディレクトリはnone nogroupとして作成されました(chmod 777を使用しないと正しい権限が拒否されます)。
何を確認する必要がありますか?サーバーとクライアントの両方がDebian 11です。
答え1
解決策を見つけてください。私は、あるインターフェースを介してあるネットワークに接続し、別のインターフェースを介して別のネットワークに接続するマルチネットワークサーバーを使用しています。ネットワークごとに2つの異なるホスト名を使用する前に(ネットワークAは私のサーバーをvirt.domain.exampleとして解決し、ネットワークBは私のサーバーをrouter.domain.exampleとして解決しました)、同じホスト名(しかし別のドメイン)を使用してこの変更を行いました。もちろん、各ネットワークの)は、デーモンを再起動した後でも完全に動作します。