두 명의 사용자, 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가 특정 디렉토리에 생성 된 모든 파일 / 디렉토리에 대해 항상 모든 권한을 갖도록하는 방법이 있습니까?
1997 년에 철회 된 1993 년의 오래된 ACL 제안에서는 bar가 항상 foo가 일을 제어 할 수 없도록 권한을 변경할 수 있기 때문에이를 수행 할 방법이 없습니다. 이 ACL 제안은 처음부터 사용자가 만족하지 않았기 때문에 표준이되지 않았습니다.
NTFS에서 파생되었으며 현재 NFSv4 정의로 표준화 된 최신 ACL 표준을 지원하는 ZFS와 같은 최신 파일 시스템을 사용하는 것이 좋습니다. NFSv4 ACL을 사용하면 foo가 ACL 정의를 제어 할 수있는 유일한 사람이되는 전용 ACL을 설정할 수 있으며 자동으로 전파되는 디렉토리의 기본 ACL을 사용하여 bar에 대한 액세스 권한을 부여하는 방식으로 필요한 권한을 설정할 수 있습니다. 그러나 ACL을 변경할 수있는 권한은 없습니다. NFSv4 ACL에 대한 내용은 chmod 매뉴얼 페이지 http://schillix.sourceforge.net/man/man1/chmod.1.html 을 참조하십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다