用户无法在 NFSv3 挂载上创建文件/目录,但可以修改

用户无法在 NFSv3 挂载上创建文件/目录,但可以修改

我有两台 RHEL 6 服务器,一台是 NFS 服务器(我们将其称为nfs-server,假设它的 IP 是10.1.1.1),另一台是用于所有意图和目的的通用客户端(我们将其称为nfs-client,假设它的 IP 是10.0.0.1)。

nfs-server和都nfs-client连接到同一个集中式身份验证系统,因此对于给定用户,UID/GID 是相同的。

nfs-client正在将 NFSv3 共享从nfs-server:/shared_folder/cache挂载到/shared_folder/cache

/shared_folder上的目录处于nfs-server模式755,所有者为root:root,并且/shared_folder/cache目录处于 模式2775,所有者为cache:cache(UID=20014, GID=20004)。

我有一组用户,他们都是cacheLDAP 中组的成员,但他们无法在/shared_folder/cache上的目录本身中创建或删除任何内容nfs-client。但是:

  • 如果文件已存在/shared_folder/cache且具有正确的权限(可由组写入cache),则用户可以修改该文件,但不能删除它(例如,如果/shared_folder/cache/testfile存在且可由组写入cache,则用户可以修改文件的内容,但不能删除它)
  • /shared_folder/cache如果 中已经存在具有正确权限(模式2775,所有者)的子目录cache:cache,则用户可以正常修改目录(例如,如果/shared_folder/cache/testdir/存在于 模式2775下 且由cache组拥有,则用户可以添加/修改/删除 中的文件和目录testdir,但不能删除testdir自身)
  • 如果我以 上的用户身份登录nfs-server,我就能像往常一样在 中创建/修改/删除文件和目录/shared_folder/cache

我该如何修复此 NFS 挂载?诊断信息位于水平线下方。


id user1和的输出nfs-servernfs-client显示:

uid=8173(<username>) gid=8173(<username>) groups=20004(cache)

nfs-server中配置了以下导出/etc/exports

"/shared_folder/cache"        <nfs-client-IP>(rw)

exportfs -von的输出nfs-server显示:

/shared_folder/cache
                   <nfs-client-IP>(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,root_squash,no_all_squash)

答案1

删除文件需要目录的写权限。

您已经正确设置了rw挂载选项,但是 NFS 端似乎出现了问题(因为您可以通过登录服务器来删除文件)。

我会做的一些事情:

  • 检查默认的 umask。

  • lsattr使用和检查文件的权限getfacl

  • 确保在您尝试删除文件时没有其他人正在访问该文件(lsof)。

  • 如果 SELinux 处于强制模式,请检查审计日志(最好使用audit2why)。

  • 尝试添加同步挂载选项。

作为最后的解决方法,删除并重新创建服务器上的用户和组,然后重新启动 NFS 服务器。

相关内容