如何使用 Synology NAS 为 linux NFSv4 客户端配置权限?

Mik*_* S. 8 linux nfs ubuntu

我有一个成熟的 Linux 服务器 (Ubuntu 12.04) 和一个新的 Synology NAS,但无法在挂载点上获得正确的 NFS 用户权限。

服务器还从另一台 Ubuntu 服务器安装 NFS 导出没有问题,但该 NFS 服务器和客户端上的 UID 是相同的(范围从 1001 到 1015)。对于 Synology,UID 从 1024 开始。

以下行来自/etc/fstabSynology 和其他示例显示如何配置安装。

nas:/volume1/Video      /mnt/nas/Video  nfs     nouser,rsize=8192,wsize=8192,atime,auto,rw,dev,exec,suid        0       0
Run Code Online (Sandbox Code Playgroud)

我配置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
Run Code Online (Sandbox Code Playgroud)

此时,当我挂载文件夹时,一切看起来都是正确的,直到我创建了一个文件。该文件归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
Run Code Online (Sandbox Code Playgroud)

当 UID 不匹配时,如何正确挂载 NFS 共享并保留正确的用户权限,并强制执行这些权限?

Mik*_* S. 0

对此我还没有很好的答案。如果没有在环境中部署 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
Run Code Online (Sandbox Code Playgroud)

在这种情况下,安装点 ( /mnt/nas) 的父文件夹控制对安装点 ( /mnt/nas/media) 的访问,否则所有文件的模式都是 0777。