액세스 제어 목록
정답은 액세스 제어 목록 (ACL) 입니다. 예, 반례를 찾을 수 있지만 실제로는 사용자가 항상 그것에 대해 생각 해야하는 그룹 쓰기 가능성과 달리 실제로 충분합니다. 필요한 것은 시스템 관리자 (루트)가 파일을 명명 된 그룹 만 공유하도록하려면 그룹을 정의해야한다는 것입니다 (루트는 예를 들어 LDAP에서 그룹을 수락하여 위임하도록 선택할 수 있지만 다른 이야기입니다).
참여 사용자는 022의 umask를 가져야합니다. 사용자가 세계에서 읽을 수없는 파일을 정기적으로 작성하면이 체계가 작동하지 않습니다. 그러나 제한적 umask가 있으면 어쨌든 파일을 공유하고 싶지 않기 때문일 수 있습니다.
ACL 활성화
Ubuntu는 기본적으로 ACL을 활성화하지 않으므로 일회성 관리자 요구 사항이 있습니다. /etc/fstab
선호하는 편집기를 사용하여 편집 하고 파일을 공유하려는 파일 시스템에 해당하는 모든 행을 변경하십시오. acl
옵션에 추가 하십시오. (다른 줄은 바꾸지 말고 긴 줄을 감싸는 편집기는 사용하지 마십시오.) acl
옵션이 추가 된 예제 줄은 다음과 같습니다 .
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
옵션이 처음으로 적용 되려면 다음과 같은 명령을 사용하십시오 (각 파일 시스템마다).
sudo mount -o remount,acl /
acl
패키지 에서 ACL 도구를 설치하십시오 .
공유 디렉토리 설정
그룹이 파일을 공유하려면 mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
사람들이 파일을 작성하여 공유 디렉토리에 복사하면 파일은 세계적으로 읽을 수 있으며 (umask로 인해) 그룹의 모든 사용자는 파일을 추가하고 제거 할 수 있습니다 (그룹이 그룹 쓰기 가능하므로). 사람들은 서로의 파일을 편집 할 수 없지만 좋은 일이거나 편집 충돌을 즉시 겪게됩니다.
유닉스 그룹이 없다면, 사용자를 하나씩 추가 할 수 있습니다 :
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
버전 관리
사람들이 제 위치에서 파일을 편집 할 수있게하려면 편집 충돌을 방지 할 수있는 것도 필요합니다. 버전 관리입니다.
자식 저장소를 공유하기 위해이 중 어느 것도 필요하지 않습니다. gitosis와 같은 솔루션이 있다는 것을 알고 있으므로 사용하십시오.