
我嘗試在 Synology NAS 上設定 NFS 存取。由於歷史原因,我的客戶端和伺服器上的 uid 不匹配。我知道 NFSv4 可以讓我優雅地解決這個問題,但代價是了解如何使用 idmap (儘管,它似乎不起作用那在 Synology NAS 上表現良好:安裝 Synology-nfsv4-export-with-id-mapping)。
不管怎樣,我對 suprjami 提出的解決方案感到滿意使用者 ID 映射與 Synology-nas 上的 nfs(我在網路上發現了其他幾個描述相同技術的地方),其中包括使用 all_squash 選項將客戶端上的任何使用者對應到伺服器上的給定使用者。 NAS 圖形使用者介面提供的唯一可能性是映射到 uid=1024 的名為 admin 的使用者。
這工作正常:
NAS-192.168.0.2 # cat /etc/exports
/volume1/photo 192.168.0.10(rw,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100)
在我的客戶端筆記型電腦上,IP 為 192.168.0.10:
laptop-192.168.0.10 # mount 192.168.0.2:/volume1/photo /mnt/nas
laptop-192.168.0.10 # ls -l /mnt
drwxrwxrwx 5 root root 4096 juin 22 17:08 nas
我可以列出、讀取和寫入 /mnt/nas 中的文件,並且正如預期的那樣,一切都歸功於用戶 1024。
現在,我的問題是:我不想映射到管理員,而是映射到 NAS 上的本地用戶,該用戶的用戶 ID 為 1026,可以在 NAS 上檢查:
NAS-192.168.0.2 # id infisxc
uid=1026(infisxc) gid=100(users) groups=100(users)
因此,我只需更改伺服器上 /etc/exports 上的 anonuid 值:
NAS-192.168.0.2 # cat /etc/exports
/volume1/photo 192.168.0.10(rw,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=1026,anongid=100)
NAS-192.168.0.2 # exportfs -ra
現在,在客戶端,掛載仍然成功,但根本沒有權限:
laptop-192.168.0.10 # mount 192.168.0.2:/volume1/photo /mnt/nas
laptop-192.168.0.10 # ls -l /mnt
d--------- 5 root root 4096 juin 22 17:08 nas
不出所料,我無法列出該資料夾的內容。
在我看來,我做得很好,但我可能忘記了一些事情。任何建議都將受到歡迎。
為了完整起見,我有一台來自 Synology 的 DS414j NAS,配備 DSM 6.1.2-15132。