본문 바로가기
카테고리 없음

setfacl, getfacl

by egbox 2023. 7. 10.

개 요

ACL은 액세스 제어 목록의 약자입니다. Linux 및 Windows를 비롯한 많은 운영 체제의 기능으로, 기존의 소유자-그룹-기타 권한 모델을 넘어 파일 및 디렉터리 권한을 보다 세밀하게 제어할 수 있는 기능입니다.

Linux에서는 setfacl 및 getfacl과 같은 명령을 사용하여 ACL을 관리할 수 있습니다. 

다음은 각각에 대한 간략한 설명입니다:
setfacl: setfacl 명령은 파일 및 디렉터리에 대한 ACL을 설정하거나 수정하는 데 사용됩니다. 이 명령을 사용하면 표준 읽기, 쓰기 및 실행 권한 외에 사용자 및 그룹에 대한 특정 권한을 부여하거나 취소할 수 있습니다. setfacl을 사용하면 여러 사용자 및 그룹에 대한 권한을 정의하고, 새로 만든 파일 및 디렉터리에 대한 기본 ACL을 설정하고, 상위 디렉터리에서 ACL을 상속할 수 있습니다.

getfacl: getfacl 명령은 파일 또는 디렉터리와 연결된 ACL을 검색하고 표시하는 데 사용됩니다. 이 명령은 다른 사용자 및 그룹에 부여된 권한은 물론 기본 또는 상속된 ACL을 포함하여 파일 또는 디렉터리에 대한 자세한 ACL 항목을 표시합니다.

setfacl [옵션] 파일명/디렉토리
getfacl [옵션] 파일명/디렉토리
이러한 명령은 파일 및 디렉터리 권한을 관리하는 보다 유연하고 세분화된 접근 방식을 제공하므로 기본 소유자-그룹-기타 모델을 넘어 특정 사용자 및 그룹에 대한 액세스 권한을 정의할 수 있습니다.

 

ACL의 장점

Linux에서는 파일마다 owner와 group이 정해져 있습니다. 그 기준으로 파일의 접근 권한을 갖을 수 있습니다.

그런데, 특정 폴더에 임시적 또는 반 영구적으로 특정 유저 에게 권한을 주고 싶을 때 사용하는 옵션이 setfacl옵션 입니다.

즉, 폴더별로 권한을 주고 지울 수 있는 것입니다.

따라서, 그룹에 유저를 추가하거나, 소유권을 바꿀 필요없이 바로 권한을 줄 수 있어서 보다 간편하게 권한을 줄 수 있습니다.

setfacl -m u:유저이름:권한 /디렉토리/파일
setfacl -m g:그룹이름:권한 /디렉토리/파일

이런식으로 유저별, 그룹별로 권한을 줄 수 있어서, 필요시 유용하게 사용될 수 있습니다.

setfacl -x u:유저이름 /디렉토리/파일
setfacl -x g:그룹이름 /디렉토리/파일

위 명령문을 사용하시면 해당 유저의 권한을 지울 수 있습니다.