情况:我只是想以非 root 用户身份从 Ubuntu 服务器访问 Synology NAS。
在 NAS 上,我的导出文件中有以下内容:
/Directory <client-ip>/255.255.255.0(rw,async,no_wdelay,no_root_squash,insecure_locks,sec=sys,anonuid=1003,anongid=1004)
在 Ubuntu-Server 的 fstab 中我得到了这个:
<server-ip>:/Directory /Mountpoint nfs noauto,user,rw 0 0
现在我想允许UserA用于一些自动进程来挂载共享并对其进行写入。
mount /Mountpoint
以 UserA 身份挂载没问题,但我甚至没有权限读取目录中的内容。作为 root 用户,我可以读取。列出挂载点文件夹会显示以下权限:
drwxrwx--- 4 UserA root 4096 Sep 17 13:58 Mountpoint
我尝试将导出中的 anon-id 设置为 UserA 的 id,但这没有帮助。将 UserA 设为文件夹的所有者也无济于事。我是不是忽略了一件简单的事情?
另外:这需要是一个 nfs 共享,因为它将传输大量数据。
编辑:出于安全原因,我宁愿避免向“其他人”授予读写权限。
答案1
让usera
成为 UserA 的主组(groups usera
)。您可以使用以下方式找出 GID:id -g usera
在客户端系统上,假设它是1256
。现在将您的用户添加到usera
组中:
sudo adduser ayven usera
现在,在服务器上执行以下操作:
chown :1256 /Directory # Replace 1256 with the correct GID
chmod g+rwxs /Directory
在客户端上重新挂载:
sudo umount /Directory
sudo mount /Directory
(您可能需要重新登录才能使新组生效。)
现在您和 都usera
可以完全访问 NFS 共享。我已经使用了该setgid
位,所以您可能必须启用它,我不记得了。将您希望有权访问此目录的任何用户添加到组中usera
。