8.2. Access ACL 설정하기

두가지 종류의 ACL이 있습니다: access ACLs과 기본 ACLs. access ACL은 특정 파일이나 디렉토리에 사용되는 접근 제어 목록을 말합니다. 기본 ACL은 오직 디렉토리에만 사용됩니다; 만일 디렉토리 내의 한 파일에 access ACL이 없다면, 이 파일은 디렉토리의 기본 ACL 규칙을 사용합니다. 기본 ACL은 옵션입니다.

ACL은 다음과 같이 설정 가능합니다:

  1. 사용자 당 설정

  2. 그룹 당 설정

  3. 유효한 접근 권리 마스크를 사용한 설정

  4. 그 파일의 사용자 그룹에 속하지 않는 사용자들에 대한 설정

setfacl 유틸리티는 파일과 디렉토리에 ACL을 설정합니다. -m 옵션을 사용하여 파일이나 디렉토리의 ACL을 추가하거나 수정하십시오:

setfacl -m <rules> <files>

규칙들 (<rules>)은 다음과 같은 형식으로 지정하셔야 합니다. 한개의 명령어에 여러 개의 규칙을 콤마로 구분하여 지정하는 것도 가능합니다.

u:<uid>:<perms>

사용자에 대한 access ACL을 설정합니다. 사용자명이나 UID를 지정하실 수 있습니다. 사용자는 시스템 상 어느 사용자라도 가능합니다.

g:<gid>:<perms>

그룹에 대한 access ACL을 설정합니다. 그룹명이나 GID를 지정할 수 있습니다. 그룹은 시스템 상 어느 그룹이라도 가능합니다.

m:<perms>

유효한 접근 권한 마스크를 설정합니다. 이 마스크는 소유 그룹의 허가와 모든 사용자와 그룹 항목을 조합한 것입니다.

o:<perms>

파일의 그룹에 속한 사용자가 아닌 다른 사용자에 대한 access ACL을 설정합니다.

공백은 무시됩니다. 허가 (<perms>)는 읽기, 쓰기와 실행을 가리키는 r, w, x 문자를 조합하여 설정되어야 합니다.

만일 파일이나 디렉토리가 이미 ACL을 가지고 있는 경우, setfacl 명령을 사용하시면, 추가 규칙이 기존 ACL에 추가되거나 기존 규칙이 수정됩니다.

예를 들어, tfox라는 사용자에게 읽기와 쓰기 권한을 주시려면:

setfacl -m u:tfox:rw /project/somefile

사용자, 그룹이나 기타 그룹에 대한 모든 권한을 삭제하시려면 -x 옵션을 사용하시고 아무런 권한도 지정하지 마십시오:

setfacl -x <rules> <files>

예를 들어 UID 500인 사용자의 모든 권한을 삭제하시려면:

setfacl -x u:500 /project/somefile