참고: 사용자 이름이 공개 게시물로 변경되었습니다.
루트 권한이 있는 Linux 서버가 있습니다. SSH 키를 사용하여 SSH를 통해서만 로그인할 수 있는 사용자 계정 "privuser"가 있습니다. 그러나 일부 사용자 변경으로 인해 privuser는 더 이상 자신의 디렉터리를 읽을 수 없습니다. 루트인데도 할 수 없어요!
[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@server ~]# ls -alh /usr/home/xyz/abc/privuser/
ls: cannot access /usr/home/xyz/abc/privuser/: Permission denied
그러나 /usr/home/xyz/abc/privuser는 NFS 마운트이므로 디렉터리와 파일이 해당 UID에 속해 있는지 NFS 서버에서 직접 확인할 수 있습니다.
여기서 무슨 일이 일어나고 있는지 어떻게 알 수 있나요?
편집: (ls 출력 추가)
testuser는 문제가 있는 사용자(privuser)와 동일한 그룹(abc)에 속하는 서버의 다른 사용자입니다. 이것이 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
.....
동일한 그룹 abc에 속한 testuser는 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 그룹에 속하지 않습니다. xyz 그룹에 privuser를 추가했는데 권한 문제가 사라졌습니다.