그룹이 이면 /some/dir
실행 foo
합니다.
chmod g+s /some/dir
...그러면 모든 어린이 /some/dir
도 그룹을 갖게 됩니다 foo
.
그러나 결정적으로 새로운 하위 디렉터리 /some/dir/subdir
는아니요있습니다 g+s
(단, 방금 말했듯이 해당 그룹은 입니다 foo
).
모든 하위 디렉터리가 /some/dir
그룹뿐만 아니라 foo
권한도 g+s
상속받도록 하려면 어떻게 해야 합니까?
FWIW, 내 umask는 002
이고 파일 시스템은 nfs이며 옵션 mount
은 (rw,relatime,vers=3,rsize=20961,wsize=413177,namlen=255,hard,proto=tcp,timeo=450,retrans=2,sec=sys,mountaddr=xxx.xxx.xxx.xxx,mountvers=3,mountport=333,mountproto=udp,local_lock=none,addr=xxx.xxx.xxx.xxx)
.
고쳐 쓰다: 나는 이제 혼란의 원인을 이해합니다.때때로디렉토리 그룹을 변경( 사용 chgrp
)하면 이전에 활성화된 setgid 비트가 비활성화되는 효과가 있습니다. 예를 들어
% rm -rf /some/dir
% mkdir -p /some/dir
% chmod g+s /some/dir
% ls -ld /some/dir
drwxrwsr-x 2 jones jones 0 Nov 7 07:13 /some/dir
% chgrp foo /some/dir
% ls -ld /some/dir
drwxrwxr-x 2 jones jones 0 Nov 7 07:13 /some/dir
(setgid 비트는 결국 설정되지 않게 됩니다.)
내가 말했듯이 이것은 단지 발생합니다때때로. 예를 들어, 위와 동일한 순서를 반복하지만 chgrp
아래에서 명령을 실행하면 sudo
비트는 setgid
끝에 설정된 상태로 유지됩니다.
권한에 대한 이러한 영향 chgrp
에 실망했습니다 .
답변1
/some/dir
setgid 비트가 설정되면 새 하위 디렉터리 가하다새로 생성된 모든 자손이 적절한 그룹과 setgid 비트를 갖도록 이를 상속합니다.
setgid 비트는 를 사용하여 제거할 수 있습니다 chgrp
.POSIX 라고
적절한 권한이 있는 프로세스에서 chgrp를 호출하지 않는 한, 일반 파일의 set-user-ID 및 set-group-ID 비트는 성공적으로 완료되면 다른 파일의 set-user-ID 및 set-group-ID 비트를 지워야 합니다. 유형이 삭제될 수 있습니다.