在我的工作场所,我们在计算集群上安装了一个共享 NFS 存储。工作组的父目录和其中每个用户的目录都有0770
权限,因此我们应该能够完全访问彼此的目录。但我们得到了permission denied
。
我们是代表该工作组的小组成员:
$ id
uid=4171(deeenes) gid=2073(wg) groups=2073(wg), ...
$ id colleague
uid=4386(colleague) gid=2073(wg) groups=2073(wg), ...
NFS 存储安装在/net/data
:
$ mount | grep net/data
xxx:/yyy on /net/data type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=***,local_lock=none,addr=***)
我们可以在其中列出我们工作组的目录:
ls -la /net/data/wg
total 7325
drwxrwx--- 22 wg_admin wg 652 Sep 17 15:06 .
drwxrwxr-x 25 root 4294967294 606 Aug 6 09:43 ..
drwxrwx--- 2 deeenes wg 836 Aug 28 16:11 deeenes
drwxrwx--- 5 4294967294 wg 248 Sep 18 09:41 colleague
...
4294967294
似乎是未知的用户 ID。
我可以访问我自己的目录/net/data/deeenes
,但对于同事的目录,我得到permission denied
:
$ ls /net/data/wg/colleague
ls: cannot open directory /net/data/wg/colleague: Permission denied
我询问了负责的系统管理员,他们也不知道。我特别不明白,因为父目录位于同一个 NFS 挂载中,具有相同的 GID 和组权限,并且我可以访问它。这些目录中的组名、用户名和 ID 与客户端系统上的相匹配:
$ stat -c "%G(%g) %U(%u)" ~
wg(2073) deeenes(4171)
$ stat -c "%G(%g) %U(%u)" /net/data/wg/deeenes
wg(2073) deeenes(4171)
$ stat -c "%G(%g) %U(%u)" /net/data/wg/colleague
wg(2073) UNKNOWN(4294967294)
$ stat -c "%G(%g) %U(%u)" /net/data/wg/colleague2
wg(2073) colleague2(4243)
看起来colleague
服务器系统上不存在,但该组存在,而且我也无法访问colleague2
系统之间 UID 匹配的目录。