![如何获取 nfs 共享的用户权限?](https://linux22.com/image/1047833/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%20nfs%20%E5%85%B1%E4%BA%AB%E7%9A%84%E7%94%A8%E6%88%B7%E6%9D%83%E9%99%90%EF%BC%9F.png)
情况:我只是想以非 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
。