希望有人能帮忙解决这个问题。
我遇到一个问题,我有一个包含三个子目录的安装目录。我可以毫无问题地进入两个子目录,但是即使我是 root 用户,第三个子目录也会给出“权限被拒绝”。
如果我以所有者身份登录,我可以通过 CD 进入,但是我很困惑为什么 root 用户无法访问该目录。 NFS 服务器和挂载服务器上的 UID 和 GID 是相同的。
我尝试重新安装目录,但问题仍然存在。
答案1
在 Linux NFS 上,目前默认情况是启用root_squash
服务器端选项。这意味着服务器会将 root uid 重新映射到其他内容,通常是nobody
.如果您不想这样做,请将该选项添加no_root_squash
到服务器上的导出文件中。
如果您不是服务器的 root 用户,那么此行为是一个功能,而不是一个错误:-)
答案2
如果 root 被授予您期望的权限,那么 NFS 将极其不安全。
因此,root 只能覆盖本地权限,因为拥有 root 权限的人通常还有其他方式访问文件(例如通过读取原始设备)。
默认情况下通过 NFS 映射到根nobody
。 NFSv3 的无人用户 ID 为 60001,NFS2 的用户 ID 为 65534。
对于受信任的主机,有一种方法可以通过设置root=thishost
NFS 导出选项来启用 root 访问。可以附加更多主机,并用冒号分隔。
请注意,对于 NFSv4,情况有所不同,因为 NFSv4 根据用户名而不是用户 ID 提供访问权限。因此,即使具有正确用户 ID 的用户也不会获得访问权限,除非存在用户映射或服务器和客户端使用相同的网络命名服务域。