디렉토리의 새 파일이 그룹에 속하는지 확인


67

다수의 사용자 (모두 mygroup에 속함)가 파일을 작성하고 편집 할 수있는 경우 공유 디렉토리를 작성하려고합니다. 이 디렉토리와 하위 디렉토리의 모든 파일이 mygroup 에 속하고 싶습니다.

그룹을 사용하여 mygroup 그룹을 갖도록 기존 파일을 변경 chgrp했지만 새 파일이 여전히 생성되어 사용자의 기본 그룹에 속합니다. chgrp를 반복적으로 실행하지 않고 새 파일이 그룹에 속하도록하는 방법이 있습니까?

답변:


108

SetGID 비트를 설정하려고합니다.

chmod g+s dir

디렉토리에서 작성된 모든 새 파일에는 그룹이 디렉토리 그룹으로 설정됩니다.

수퍼 유저 블로그 게시물 에서 고정 비트 및 기타 Linux 권한 비트에 대해 설명했습니다.

그러나 SetGID는 완전히 다른 볼 게임입니다. 디렉토리에 SetGID 비트 세트가 있고 파일이 해당 디렉토리 내에 작성되면 파일의 그룹 소유권이 디렉토리의 그룹이되도록 자동으로 수정됩니다.


1
감사. 참조가 유용합니다. 그림의 일부인 umask 명령을 설명합니다
justintime

4
초기 디렉토리에 상위 디렉토리 그룹에도 속하는 하위 디렉토리를 작성하는 것은 어떻습니까? 이게 가능해?
daaxix

@LukePH의 대답은 이것이 자동으로 실패 할 때 혼동하지 않는 데 중요합니다. sudo
Rhubarb 사용


11

폴더 그룹이 자신의 그룹 그룹과 다르면 chmod를 루트로 실행해야하지만이 작업을 수행해야한다는 오류는 발생하지 않습니다.

sudo없이

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir

$ chmod g+s dir                                     # no errors

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir   # but nothing changed

$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar  9 10:51 nosudo        # and the group is set wrong

sudo와 함께

$ sudo chmod g+s dir

$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar  9 10:44 dir   # the setgid bit is now on

$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke      0 Mar  9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar  9 10:51 withsudo # and the group is set right
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.