예, ACL :은 서로 다른 사용자 또는 그룹에 대해 서로 다른 권한을 자유롭게 설정할 수 있습니다. IIRC 일반적인 그룹 권한은 그룹과 사용자가 ACL을 통해 가질 수있는 권한의 집합을 제한 :의 (로 표시 mask
에를 getfacl
)하지만, setfacl
사용 권한을 추가하는 경우 그 처리해야한다.
그러나 경우에 따라 권한 집합이 의미가 있는지 묻어 야합니다.
원하는 권한을 가진 3 명의 사용자가 있습니다
....-
user1 rwx
-user2 rw_
-user3 r__
user1을 파일의 소유자, user2를 그룹의 구성원으로 만들고 user3을 포함한 다른 사용자가 읽기 액세스 권한을 갖도록하여 ACL : s를 사용하여 또는 대략적인 Unix 권한으로이를 구현할 수 있습니다. 그럼에도 불구하고 (디렉토리에 대한 액세스 권한이있는) 모든 사람이 읽기 액세스 권한을 갖습니다.
이러한 권한의 의미를 고려해 봅시다. 읽을 수있는 한 명의 사용자와 읽고 쓸 수있는 다른 사용자가 있습니다. 그것은 완전히 평범합니다. 이들 중 어느 것도 파일을 실행할 수있는 권한이 없지만 세 번째 사용자도 파일을 실행할 수 있어야합니다.
그것은 내 마음에별로 의미가 없습니다. 파일을 읽을 수있는 모든 사용자는 원본 파일을 실행할 수있는 권한없이 사본 (*)을 만들고 실행 파일로 표시하고 실행할 수 있습니다. 실행 파일이 suid를 통해 높은 권한을 가진 경우에만 일부 사용자에게는 실행 액세스 권한을 갖는 것이 합리적 일 수 있습니다. 그러나이 경우 파일에 대한 쓰기 권한을 가진 다른 사용자가 없어야합니다.
같은 의미에서 user4 with -wx
및 user5 with --x
도 의미가 없습니다. 단지 허용의 가능성이 있다면 쓰기 전용 액세스가 적합 할 수 있습니다 추가가 있지만, 권한 시스템은 미세 그레인 것이 아니다.
(* 어디에도 쓸 수 없다면)
그러나 x
비트에 대한 이상한 요구 사항을 제거하면 user1 및 user2에 쓰기 권한이 있고 user3에 읽기 권한이 있어야하는 파일이 남아 있습니다. 기존 모델에서는 한 명의 작성자와 여러 명의 독자가 쉬울 수 있지만이 경우 파일 권한을 포함하는 디렉토리의 권한과 결합하기위한 트릭이 필요합니다. 다행히 많은 경우에 더 많은 권한을 가진 한 명의 사용자로 충분합니다.
실행 비트에 대한 요구 사항이 없으면 ACL : s를 사용하는 경우처럼 보입니다. 그러나 그것으로,이 특별한 예는 나에게 다소 복잡해 보입니다.