디렉터리에 그룹 ID 비트를 설정할 수 없습니다.

디렉터리에 그룹 ID 비트를 설정할 수 없습니다.

라는 디렉토리를 만들고 newDir그것이 속한 그룹을 변경했습니다 mkdir newDir && chgrp test-group newDir.

me내가 이 작업을 수행할 때 나는 사용자입니다.

호출은 stat newDir예상되는 출력을 생성합니다.

  File: newDir
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d  Inode: 10756102    Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1001/      me)   Gid: ( 1003/test-group)
Access: 2018-01-27 17:03:07.514864274 +0100
Modify: 2018-01-27 17:03:07.514864274 +0100
Change: 2018-01-27 17:05:08.317543163 +0100
 Birth: -

나중에 사용자로 로그인하고 를 otherUser사용하여 디렉토리에 그룹 ID(setgid) 권한 비트를 설정하려고 했습니다 chmod g+s newDir.

실망스럽게도 stat권한이 변경되지 않은 것을 확인했습니다. 그러나 stderr에서는 오류가 발생하지 않으며 명령 결과는 chmod표시된 대로 0입니다 echo $?.

chmod g+s newDir작동하지 않나요?

저는 아치 리눅스 4.14.13을 사용하고 있습니다.

답변1

chmod g+s newDir사용자로 실행 시 성공하지 못하는 이유는 해당 그룹이 속한 그룹에 속하지 않기 otherUser때문입니다 .otherUsertest-groupnewDir

해당 사용자로 전환되었으며 작업이 정상적으로 test-group수행됩니다 .chmod g+s newDir

답변2

Mattias의 답변에 추가하여 수치적으로 그리고 절대적으로 수행하려면 다음과 같습니다.

chmod 2755 newDir

대상 그룹에 자신을 추가하려면 다음 단계를 따르세요.

usermod -a -G otheruser test-group
newgrp

때로는 newgrp가 그룹을 새로 고치지 않는 것 같아서 다시 로그인해야 할 수도 있습니다.

GUID 비트를 설정하려는 그룹의 일부여야 하고 오류 없이 실패한다는 것이 이상하지만 그게 전부입니다.

관련 정보