ACL을 사용하여 사용자에게 디렉토리와 모든 내용에 대한 제어 권한을 부여하는 방법

ACL을 사용하여 사용자에게 디렉토리와 모든 내용에 대한 제어 권한을 부여하는 방법

두 명의 사용자, Foo와 Bar. Foo는 Bar가 Foo의 홈 디렉터리에 있는 프로젝트를 작업하기를 원합니다.

[foo]$ mkdir project
[foo]$ # Set defaults
[foo]$ setfacl -m d:u::rwx,d:g::rwx,d:o::--- project
[foo]$ # Set defaults overrides for bar
[foo]$ setfacl -m d:u:bar:rwx project
[foo]$ # Set actual acls for project dir
[foo]$ set facl -m u::rwx,g::rwx,o::--- project

그런 다음 foo는 새 프로젝트 디렉터리에 파일과 디렉터리를 만들기 시작합니다.

bar이제 프로젝트 디렉터리에 액세스할 수 있는 권한이 있는지 확인한 후 (즉, 모든 상위 디렉터리에 대한 적절한 권한이 있음) bar이러한 모든 파일과 디렉터리에 액세스할 수 있으며 프로젝트에서 ACL을 상속하는 고유한 파일과 디렉터리를 생성할 수 있습니다. 예배 규칙서.

그러나 이는 foo프로젝트 폴더에 다음 내용이 포함되어 있음 을 의미합니다.소유자bar, 이는 foo에 액세스 권한이 없음을 의미할 수 있습니다. 예를 들어

[bar]$ # feeling annoying...
[bar]$ cd /path/to/project
[bar]$ mkdir -p -m 700 ha/ha
[bar]$ dd if=/dev/zero of=ha/ha/evil bs=1G count=10

이제 foo는 프로젝트 폴더에 대한 bar의 액세스를 취소할 수 있지만 foo가 액세스하거나 삭제할 수 없는 10GB 파일이 남아 있습니다!

foo가 특정 디렉터리에 생성된 모든 파일/디렉터리에 대해 항상 모든 권한을 갖도록 하는 방법이 있습니까?

답변1

더 이상 사용되지 않는 1993년 ACL 제안이 1997년에 철회되었기 때문에 bar는 foo가 사물을 제어하는 ​​것을 방지하는 방식으로 항상 권한을 변경할 수 있기 때문에 이를 수행할 수 없습니다. 이 ACL 제안은 사용자가 처음부터 만족하지 않았기 때문에 결코 표준이 되지 않았습니다.

NTFS에서 파생되었으며 현재 NFSv4 정의로 표준화된 최신 ACL 표준을 지원하는 ZFS와 같은 최신 파일 시스템을 사용하는 것이 좋습니다. NFSv4 ACL을 사용하면 foo만이 ACL 정의를 제어할 수 있도록 개인 ACL을 설정할 수 있으며, 자동으로 전파되는 디렉터리의 기본 ACL을 사용하면 bar에 대한 액세스 권한을 부여하는 방식으로 필요한 권한을 설정할 수 있습니다. 그러나 ACL 권한은 변경되지 않습니다. chmod 매뉴얼 페이지를 참조하십시오:http://schillix.sourceforge.net/man/man1/chmod.1.htmlNFSv4 ACL에 대한 정보입니다.

관련 정보