다중 사용자 시스템의 경우, 특히 둘 이상의 시스템이있는 경우 문제입니다. )에는 없습니다 정말 당신이 원하는 것을 할 수있는 좋은 방법. 다가오는 접근법은
- 외장 드라이브를 사용하는 모든 컴퓨터에서 계정에 대해 동일한 UID를 가짐
- 소유자 / 그룹 비밀을 모르는 파일 시스템 사용 (FAT 또는 NTFS가 떠오를 수 있지만…
가장 효과적인 방법은 일반적인 관행으로 돌아 오는 것입니다. 대부분의 (적어도) Linux 시스템에는 일반적으로 공통 GID 를 갖는 일부 그룹이 있습니다 . 예를 들어 users
, 100
대부분의 Linux 배포판에 GID 가 있습니다 . 이 그룹에 해당 사용자 계정을 보유 할 수 있다면
- 드라이브의 모든 파일과 디렉토리를이 그룹이 소유하게하십시오
- 어떻게 든 그 파일과 디렉토리에 적절한 그룹 권한을 가질 수 있습니다.
- 어떻게 든 적절한 그룹 소유권 resp로 새 파일을 만들 수 있습니다. 권한.
첫 번째와 두 번째 포인트는 달성하기 쉽습니다 ( chown
, chmod
). 세 번째 요점은 조금 까다 롭습니다.
"그룹 소유권"부분은 비교적 쉽습니다. 드라이브의 모든 디렉토리에 SGID 비트를 설정할 수 있습니다. 디렉토리에 적용된 SGID 비트는 커널에게 BSD 방식으로 동작하도록 알려줍니다. BSD는 특정 디렉토리 아래에 생성 된 모든 파일 / 디렉토리를 그룹의 소유가 아닌 파일 / 디렉토리를 작성합니다 (Linux처럼). 부모 디렉토리의 소유자에 의해.
권한 비트는 조금 어렵습니다. 새로 작성된 파일 / 디렉토리의 권한은 (다른 것들 중에서도) 명시 적으로 언급되지 않은 경우 umask
어떤 비트 를 설정 하지 않는지 를 나타내는 비트 마스크에 의해 영향을받습니다 . umask
예를 들어 일반적인 값은이며 022
,»group«및»others«의 쓰기 비트는 일반적으로 설정해서는 안됩니다. 당신은 당신을 바꿀 수 umask
에 002
사용자가 쓰기 권한이 그룹에 대한 삭제하지 않으려는하지만, 단점은이 값은 디렉토리 기반 설정할 수 없다는 것입니다 당신이 보통에 대한 쓰기 권한을 가지고 싶지 않아 말하고, 생성하는 모든 파일에 대해 기본 그룹 세트.
ACL을 사용하여이 문제를 해결할 수 있습니다. ACL에서 a mask
및 default
권한 세트를 설정할 수 있으며이 ACL 세트를 사용하여 디렉토리 내에 작성된 모든 파일 및 디렉토리에 적용됩니다. 따라서 문제의 가능한 해결책은
- 외장 드라이브를 사용하려는 모든 시스템에서 공통 그룹의 구성원인지 확인
- 드라이브의 모든 파일과 디렉토리를이 그룹이 소유하고 모든 디렉토리에서 SGID 비트를 설정하십시오.
- 모든 디렉토리의 ACL을 변경하여 그룹에 대해 쓰기 권한이 설정된 모든 새 파일 / 디렉토리를 커널에 작성하도록하는 마스크 및 기본 권한을 포함하십시오.
참조 setfacl(1)
및 acl(5)
자세한 내용은.