我有一台已建立的 Linux 服务器(Ubuntu 12.04)和一台新的 Synology NAS,但在挂载点上获取正确的 NFS 用户权限时遇到了问题。
该服务器还可以毫无问题地挂载来自另一台 Ubuntu 服务器的 NFS 导出,但该 NFS 服务器和客户端上的 UID 相同(范围从 1001 到 1015)。对于 Synology,UID 从 1024 开始。
下面几行/etc/fstab
是 Synology 和其他示例展示如何配置安装。
nas:/volume1/Video /mnt/nas/Video nfs nouser,rsize=8192,wsize=8192,atime,auto,rw,dev,exec,suid 0 0
我配置idmapd.conf
如下:
[General]
Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
Domain = SYNOLOGY
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
[Static]
homenas@SYNOLOGY = homenas
此时,当我挂载文件夹时,一切看起来都正确,直到我创建一个文件。该文件归 nobody.nogroup 所有,但我仍然可以对其进行更改。
$ id
uid=1002(homenas) gid=1002(homenas) groups=1002(homenas)
$ pwd
/mnt/nas/Video
$ ls -l test
ls: cannot access test: No such file or directory
$ touch test
$ ls -l test
-rw-rw-r-- 1 nobody nogroup 0 Dec 24 15:30 test
$ rm test
当 UID 不匹配时,如何正确挂载 NFS 共享并保留正确的用户权限并强制执行这些权限?
答案1
添加。nfsvers=3
/etc/fstab
nas:/volume1/Video /mnt/nas/Video nfs nfsvers=3,nouser,rsize=8192,wsize=8192,atime,auto,rw,dev,exec,suid 0 0
该问题仅出现在 NFS 版本 4 中,如果您指定需要 NFS 版本 3,则可以解决该问题。
答案2
我还是没有好的回答这个问题。除了在环境中部署 NIS 之外,似乎没有一种好的方法可以在 Synology 上实现多用户 NFS。
与此同时,我已开始使用 CIFS,因此我可以在嵌套挂载点挂载共享,我可以使用本地组权限进行访问控制。使用 CIFS 身份验证可使所有权与 Synology 设备上的单个用户保持一致,但权限仍然不稳定。
该行/etc/fstab
主要使用默认设置:
//nas/media /mnt/nas/media cifs uid=ubuntuuser,gid=ubuntugroup,rw,credentials=/etc/cifspwd,_netdev 0 0
在这种情况下,挂载点的父文件夹 ( /mnt/nas
) 控制对挂载点 ( /mnt/nas/media
) 的访问,其中所有文件的模式均为 0777。