权限不限制对 NFS 挂载的访问

权限不限制对 NFS 挂载的访问

我们有一台 RHEL 5.9 服务器,其中带有来自中央 NAS 的 NFS 安装目录。在那里,我们有一个aird1(11055):app_dev(1101)由具有权限的用户/组拥有的目录rwxrwsr-x(即sgid到app_dev)。最后我们有了一个以grid(1001)用户身份运行的进程。

问题是grid用户可以写入该目录,尽管它不应该这样做。当我创建一个与 NFS 安装目录具有相同所有权和权限的本地测试目录时,我无法写入它,这正是我所期望的。

由于某种原因,NFS 挂载不完全遵守权限。这是一个例子:

$ ls -ldn /nfs/aird1/tmp
drwxrwsr-x 5 aird1(11055) app_dev(1101) 24576 Oct 17 13:21 /nfs/aird1/tmp

该目录的所有者是该目录aird1(11055):app_dev(1101),并且没有附加 ACL。

当我尝试在我的帐户下创建文件时失败:

$ id
uid=20501(myuser) gid=1003(mygroup) groups=10(wheel),1003(mygroup)

$ ls -l /nfs/aird1/tmp/xyz
ls: /nfs/aird1/tmp/xyz: No such file or directory

$ touch /nfs/aird1/tmp/xyz
touch: cannot touch `/nfs/aird1/tmp/xyz': Permission denied

这是预期的,但现在与用户相同grid......

$ id
uid=1001(grid) gid=1001(oinstall) groups=1001(oinstall),1002(dba)

$ touch /nfs/aird1/tmp/xyz

$ ls -l /nfs/aird1/tmp/xyz
-rw-r--r-- 1 grid(1001) app_dev(1101) 0 Oct 17 13:24 xyz

我怎么能够创建该文件?目录所有权的 UID 和 GID 之间没有重叠,并且myuser某些gridUID/GID 可以创建文件,而其他一些则不能。

这是来自的记录/etc/fstab

nas:/vol/... /nfs  nfs   rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,nosuid,actimeo=0 0 0

有什么想法吗?

谢谢!

答案1

NFS 最初设计用于所有计算机上具有相同帐户(用户、组和组成员身份)的网络。如果情况并非如此,就会发生奇怪的事情。最近的 NFS 实现确实有办法在客户端和服务器之间重新映射用户和组 ID。

这是我对正在发生的事情的猜测。该目录可由组 1101(app_dev在客户端上调用)写入。服务器看到代表用户 1001 的请求(在客户端上调用grid,服务器不关心),因此它尝试以用户 1001 的身份写入目录。/nfs/aird1/tmp碰巧服务器上的用户 1001 属于组 1101 ,因此可以在此目录中写入。因此,该请求被批准。

相关内容