기본 그룹(gid), 보조 그룹 및 권한 관련 문제

기본 그룹(gid), 보조 그룹 및 권한 관련 문제

며칠 동안 다른 키워드로 인터넷을 검색했지만 권한 문제에 대한 해결책을 찾을 수 없었기 때문에 내 질문이 중복되지 않기를 바랍니다.

서버에 공유 폴더를 설정했습니다. 이 폴더의 옵션은 다음과 같습니다.

user2@server:~$ mount
Y.Y.Y.Y:/Data on /media/Data type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=X.X.X.X,local_lock=none,addr=Y.Y.Y.Y)

"user2"는 "wholegroup" 그룹을 사용하여 폴더에 액세스하려는 사용자입니다. 첫 번째 부분에서는 내 허가가 거부되었습니다. "user2"는 소유자가 아니고, 폴더가 속한 그룹에 속하지 않으며, 폴더에는 어떤 사용자에 대해서도 r 또는 x 권한이 없기 때문에 이는 정상적인 현상입니다.

user2@server:~$ id
uid=1001(user2) gid=1001(user2) groups=1001(user2)
user2@server:~$ ls -l /media/Data/
ls: cannot open directory '/media/Data/': Permission denied
user2@server:~$ ls -l /media/
total 5
drwxr-x--- 6 user1  wholegroup      6 Aug 15 22:59 Data
drwxr-xr-x 2 root root           4096 May 15 16:12 OtherData
user2@server:~$

이제 관리자 권한이 있는 "user1"에서 "user2"를 "wholegroup" 그룹에 추가합니다.

user1@server:~$ sudo usermod -a -G wholegroup user2

"user2" 변경 사항을 적용하려면 로그아웃했다가 로그인합니다.

user2@server:~$ exit
logout
Connection to X.X.X.X closed.
user1@computer:~$ ssh [email protected]

"user2" 그룹을 확인하고 폴더에 액세스하려고 합니다.

user2@server:~$ id
uid=1001(user2) gid=1001(user2) groups=1001(user2),166636(wholegroup)
user2@server:~$ ls -l /media/Data/
ls: cannot open directory '/media/Data/': Permission denied
user2@server:~$ ls -l /media/
total 5
drwxr-x--- 6 user1 wholegroup    6 Aug 15 22:59 Data
drwxr-xr-x 2 root root        4096 May 15 16:12 OtherData
user2@server:~$

허가가 없다고 나오네요. 이것이 제가 이해하지 못하는 것입니다. "user2"가 보조 그룹으로 "wholegroup"에 속하고 폴더에 해당 그룹에 대한 r 및 x 권한이 있는 경우 왜 액세스할 수 없습니까? 액세스하려면 기본 그룹 "전체 그룹"이어야 합니까?

그룹을 기본 그룹으로 변경하여 이를 테스트했습니다.

user1@server:~$ sudo usermod -g wholegroup user2



user2@server:~$ exit
logout
Connection to X.X.X.X closed.
user1@computer:~$ ssh [email protected]
user2@server:~$ id
uid=1001(user2) gid=166636(wholegroup) groups=166636(wholegroup)
user2@server:~$ ls -l /media/Data/
total 34
drwxr-x--- 23 user1 wholegroup 25 Sep  7 11:58 Data
drwxr-x---  5 user1 wholegroup  5 Aug 17 13:02 Music
drwxr-x---  6 user1 wholegroup  6 Aug 15 22:59 Video
user2@server:~$ ls -l /media/
total 5
drwxr-x--- 6 user1 wholegroup    6 Aug 15 22:59 Data
drwxr-xr-x 2 root root        4096 May 15 16:12 OtherData
user2@server:~$

왜 보조그룹으로 활동하지 않는지 설명해주실 수 있나요? 내가 뭘 잘못하고 있고 해결책은 무엇입니까? SUID 또는 GUID와 같은 특수 권한을 사용해야 합니까?

매우 감사합니다!

답변1

해결책을 찾았습니다. 감사합니다.Super_ik의그리고도라페비치Reddit에 대한 댓글.

서버에서 사용자를 생성하지 않았기 때문에 실패했습니다. 내 특정 사례에 대한 해결책은 user2이전에 서버에 생성된 그룹을 생성하여 추가하는 것이었습니다.wholegroup

나는 super_ik의 의견을 인용합니다.

내 기억이 맞다면 액세스 확인은 서버 측에서 수행되고 서버는 폴더에 액세스하는 프로세스의 uid와 gid만 받습니다. 서버가 이러한 UID를 모르면 보조 그룹을 찾을 수 없습니다.

관련 정보