用户被拒绝读取自己的主目录

用户被拒绝读取自己的主目录

注:用户名已修改为公开帖子。

我有一台 Linux 服务器,我在该服务器上拥有 root 权限。有一个用户帐户“privuser”只能使用 SSH 密钥通过 SSH 登录。但是,由于一些用户更改,privuser 无法再读取自己的目录。尽管是root,我也不能!

[root@server ~]# id privuser
    uid=29772(privuser) gid=509(abc) groups=509(abc),1519(ghi)

[root@server ~]# groups privuser
privuser : abc ghi

[root@server ~]# su - privuser
su: warning: cannot change directory to /usr/home/xyz/abc/privuser: Permission denied
Your password expires on never
-bash: cd: /usr/home/xyz/abc/privuser: Permission denied
cannot cd to home directory /usr/home/xyz/abc/privuser
-bash: /usr/home/xyz/abc/privuser/.bash_profile: Permission denied
-bash-4.1$ exit
logout
-bash: /usr/home/xyz/abc/privuser/.bash_logout: Permission denied

即使作为 root 我也看不到这些文件。

[root@server ~]# ls -alh /usr/home/xyz/abc/privuser/
ls: cannot access /usr/home/xyz/abc/privuser/: Permission denied

但是,/usr/home/xyz/abc/privuser 是 NFS 挂载,因此我可以直接在 NFS 服务器上检查该目录和文件确实属于该 UID。

我怎样才能知道这里发生了什么?

编辑:(添加 ls 输出)

testuser 是服务器中属于同一组的另一个用户 - abc 作为麻烦用户(privuser),这是我可以从 testuser 获取的内容。

[testuser@server ~]$ ls -alh /usr/home/xyz/abc/
total 196K
drwxr-s--- 37 root       xyz     4.0K Nov  2 15:47 .
drwxr-xr-x  9 root       root    4.0K Feb  1  2016 ..
drwx------  5 testuser   abc     4.0K Nov 29 14:12 testuser
drwxr-xr-x 13 privuser   abc     16K  Jan  4 21:05 privuser
.....

testuser,属于同一个组abc,可以看到privuser的文件。

testuser@server ~]$ ls -alh /usr/home/xyz/abc/privuser
total 124K
drwxr-xr-x 13 privuser abc      16K  Jan  4 21:05 .
drwxr-s--- 37 root     **xyz**      4.0K Nov  2 15:47 .. <========== !!
drwxr-xr-x  2 privuser abc      4.0K Jan  4 12:38 arkiv20180104
-rw-------  1 privuser abc      15K  Jan  4 21:05 .bash_history
-rw-r--r--  1 privuser abc      99   Jan  4 12:31 .bashrc
drwxr-xr-x  3 privuser abc      4.0K Jan  4 12:42 .conda
drwx------  2 privuser abc      4.0K Jan 23  2017 .ssh
....

解决方案: 尽管 privuser 的主目录位于 xyz 拥有的目录中,但它不属于组 xyz。我将 privuser 添加到 xyz 组,权限问题就消失了。

相关内容