새 파일을 만들 때 사용자의 기본 그룹을 설정 하시겠습니까?


36

SSH를 통해 파일을 만들 때 씹는 파일을 자주 발견하고 jm:jm예를 들어 소유하고 있습니다.

그런 다음 Apache가 액세스 할 수있게하려면 예를 들어 do해야 chown jm:www-data합니다.

내 이름으로 그룹을 사용하는 대신 파일을 만들 때 다른 이름을 지정하도록 지정할 수 있습니까?

아니면 사용자 / 그룹을 관리하는 더 좋은 방법이 있습니까?

답변:


73

특정 디렉토리의 모든 새 파일을 특정 그룹이 소유하려면 setgid비트를 적용하십시오 .

chgrp www-data /some/dir
chmod g+s /some/dir

이 동작을 적용하려는 기존 디렉토리 트리가있는 경우 다음과 find같이 할 수 있습니다 .

find /some/dir -type d -exec chgrp www-data {} +
find /some/dir -type d -exec chmod g+s {} +

(디렉토리가 이미 관련 그룹에 의해 소유 된 경우,이 두 예제 모두에서 첫 번째 명령을 생략 할 수 있습니다).


1
좋은 대답입니다! 상징이 무엇을 ... {} +의미 하는지 명확히 해 주 시겠습니까?
Alexander Lomia

3
그것들은 find매뉴얼 페이지에서 다루는 명령 에 대한 주장 입니다. 첫 번째 호출의 경우 명령을 실행하여 chgrp www-data여러 결과를 인수로 추가합니다 (각 결과에 대해 명령을 한 번 호출하는 대신 {} \;).
James Henstridge

6
왜 사용하지 chmod g+s /some/dir -R않습니까? 방금 테스트했는데 작동하는 것 같습니다.
Cragmonkey

13
@Cragmonkey : 일반 파일에서 setgid 비트를 설정합니다. 실행 가능한 파일이 있으면 시스템의 다른 사용자가 파일을 소유 한 그룹의 권한을 얻을 수 있습니다.
James Henstridge
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.