今天,我的一位同事在安排新实习生工作时遇到了麻烦。我们的 IT 团队为实习生建立了一个帐户,但我们无法访问它。当我调查时,我发现:
$ ls -ld /acct/c33408
drwxr-xr-x 1 root system 1 May 23 09:48 /acct/c33408
显然,设置帐户的管理员忘记更改所有者和组。然而令我困惑的是,帐户目录显示为每个人都可读和可搜索。但是,当我尝试查看其中内容时:
$ ls /acct/c33408
ls: /acct/c33408: The file access permissions do not allow the specified action.
类似地,尝试更改到该目录。
当权限似乎允许时,为什么它不向我显示该目录的内容?我查了一下,这个目录没有ACL。
这是一个 AIX 网络,该目录位于 NFS 挂载上。
答案1
我怀疑 NFS 文件系统根目录 (/acct/c33408) 的权限比存根目录的权限更严格。在挂载 NFS 文件系统之前,您可以检查存根目录权限,但是一旦触发自动挂载程序挂载 NFS 文件系统,新权限将不允许您的用户访问它。
我在本地测试了这个(使用不同的目录结构),结果类似:
# stub directory permissions
user@host/$ ls -ld /u/testdir
drwxr-xr-x 1 root system 1 Jun 2 17:00 /u/testdir
# trigger automount as root
user@host/$ sudo -s
root@host/# cd /u/testdir
root@host/u/testdir# exit
# NFS permissions
user@host/$ ls -ld /u/testdir
drwx------ 2 root somegroup 4096 Dec 1 2015 /u/testdir
# ls on the NFS mountpoint as a regular user
user@host:/$ ls -l /u/testdir
ls: /u/testdir: Permission denied
total 0