无法写入已挂载的 nfs 目录

无法写入已挂载的 nfs 目录

我真的不知道我在这里做什么,因此对于任何缺乏清晰度或准确性,我深表歉意。

我有一台 Fedora 27 工作站和服务器。该服务器配置为/home/nfs在 NFS 服务器上共享一个名为 的文件夹。此服务器之前运行的是旧版本的 NFS,现在我相信我默认使用 NFSv4。自升级以来,我无法写入安装在~/nas

这是我能想到的所有相关信息。我没有关注用户 ID,所以它们都是自动生成的。

# exportfs -v outputs:
  /home/nfs         <world>(rw,sync,wdelay,hide,no_subtree_check,fsid=0,sec=sys,secure,no_root_squash,no_all_squash)

# The permissions of the mount folder:
  drwxrwxr-x. 18 nobody nobody   4096 Mar  8 20:09  nas

# Try to 'touch ~/nas':
  touch: setting times of '/home/stg/nas': Permission denied

# Try to touch ~/nas/t
  touch: cannot touch '/home/stg/nas/t': Permission denied

# reading files works fine.
# sudo lets me write to files.

# cat /proc/mounts:
  hal:/ /home/stg/nas nfs4 rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp6,time

# on the server side, 'ls -ll /home/' gives:
  drwxrwxr-x. 18 nobody nobody 4096 Mar 10 11:38 nfs

我可以通过在服务器上运行来使文件夹可写chmod o+w nfs,但这似乎是错误的做法——在 NFSv3 下,现有权限有效。我尝试将客户端用户添加到 nobody 组(这似乎很奇怪),但没有效果。

有人能向我解释我做错了什么吗?

答案1

鉴于这些权限,您需要是nobody或 组nobody成员才能写入此目录。因此,您选择这条路径是正确的。

修改用户组后,您需要重新启动会话,因为这些组不是动态的。

这个问题提供了一些解决这个问题的方法:无需注销即可重新加载 Linux 用户的组分配。但请注意,这些解决方案通常涉及创建新的临时会话,而在桌面环境中,重新启动可能是最佳选择。

相关内容