我在網路中使用 CIFS 已經很長時間了,我想使用 NFS 來進行 Linux 到 Linux 的檔案分發。我有一個共用驅動器,我在上面設定了一個黏性群組,透過 NFS 安裝時它似乎工作正常,除非 root 正在寫入。
所以在檔案伺服器上有一個我執行過的名為 media 的目錄 應用 ACL setfacl -d -m u::rwx,g::rwx,o::r-x Media
上,所以它看起來像這樣:
drwsrwsrwx+ 16 chrishunter users 4096 Sep 25 06:10 Media
並如預期執行操作:
chrishunter@server:/media/disk1/Media$ touch file
chrishunter@server:/media/disk1/Media$ sudo touch file2
[sudo] password for chrishunter:
chrishunter@server:/media/disk1/Media$ sudo su
root@server:/media/Media# touch file3
root@server:/media/Media# ls -ltra file*
-rw-rw-r-- 1 chrishunter users 0 Sep 26 05:51 file
-rw-rw-r-- 1 root users 0 Sep 26 05:51 file2
-rw-rw-r-- 1 root users 0 Sep 26 05:52 file3
現在透過 NFS 掛載似乎不會應用 ACL,因此當我執行 sudo touch 檔案時,它看起來像這樣:
chrishunter@client:/mnt/Media$ touch file
chrishunter@client:/mnt/Media$ sudo touch file2
[sudo] password for chrishunter:
chrishunter@client:/mnt/Media$ sudo su
root@client:/mnt/Media# touch file3
root@client:/mnt/Media# ls -ltra file*
-rw-rw-r-- 1 chrishunter users 0 Sep 26 06:09 file
-rw-r--r-- 1 root users 0 Sep 26 06:10 file2
-rw-r--r-- 1 root users 0 Sep 26 06:10 file3
所以看來 NFS4 應該會自動將其傳播到客戶端,並且透過運行nfs4_getfacl Media
我可以看到權限:
A::OWNER@:rwaDxtTcCy
A::GROUP@:rwaDxtcy
A::EVERYONE@:rxtcy
A:fdi:OWNER@:rwaDxtTcCy
A:fdi:GROUP@:rwaDxtcy
A:fdi:EVERYONE@:rxtcy
現在這對我說跟著那個男人實際上,所有權限都應該繼承,但在本例中並非如此。
註釋表明應在 ACL 就位的情況下安裝它。
chrishunter@server:/media/disk1/Media# tune2fs -l /dev/dm-0 | grep "Default mount options:"
Default mount options: acl
chrishunter@server:/media/disk1/Media# mount |grep media
/dev/mapper/vg1-lv1 on /media/disk1/Media type ext4 (rw,acl)
更新: 添加了導出內容,因為這是一個潛在問題。
/media/Media 192.168.0.0/24(rw,no_root_squash,anonuid=1000,anongid=1000,sync,no_subtree_check)
答案1
經典 NFS 專門處理 root 使用者。您可以嘗試no_root_squash
在伺服器上的匯出檔案中設定該選項。看man exports