리눅스 ACL(Access Control List) 관리
ACL(Access Control List)은 리눅스에서 디렉터리와 파일에 대해 특정 사용자 및 그룹에 특정 권한을 설정할 수 있는 기능입니다. 이를 통해 보다 세밀한 권한 관리를 할 수 있습니다.
ACL의 주요 용도
- 특정 사용자에게 권한 부여: root 사용자의 홈 디렉터리에 접근하여 모든 권한을 부여하고 싶을 때.
- 선택적 권한 부여: 다른 사용자의 디렉터리에 특정 권한만 부여하고 싶을 때.
이러한 경우 ACL을 활용하여 권한을 보다 세밀하게 설정할 수 있습니다.
ACL 명령어
ACL을 관리하기 위한 명령어로는 setfacl과 getfacl이 있습니다.
- setfacl: ACL 설정을 위한 명령어입니다.
- getfacl: 현재 설정된 ACL을 확인하는 명령어입니다.
예시: ACL 설정
사용자 권한 부여:
일반 사용자인 user1이 root의 홈 디렉터리인 /root에 접근하여 읽기, 쓰기, 실행 권한을 갖도록 설정합니다.
setfacl -m u:user1:rwx /root
기본 권한 설정:
일반 사용자인 user2에게 /root 디렉터리디렉터리 내의 모든 현재 및 향후 생성되는 파일과 디렉터리에 대해 읽기, 쓰기, 실행 권한을 설정합니다.
setfacl -m d:u:user2:rwx /root
여기서 d:는 default의 약자로, 기본 ACL을 설정하는 것을 의미합니다.
ACL 확인
ACL 설정을 확인하려면 다음 명령어를 사용합니다.
getfacl [디렉토리]
ACL 설정을 위한 파티션 옵션
ACL을 사용하기 위해서는 해당 디렉터리가 속한 파티션에 특정 옵션이 필요합니다. 아래 명령어를 통해 현재 마운트 옵션을 확인할 수 있습니다.
tune2fs -l [해당 블록 디바이스]
출력된 결과에서 Default mount options 항목을 확인하며, user_xattr과 acl 옵션이 적용되어 있어야 합니다. user_xattr은 메타 정보를 관리자가 접근하여 수정할 수 있도록 해주는 옵션입니다.
새로운 하드디스크 설정
새롭게 추가한 하드디스크는 기본적으로 none으로 설정되어 있습니다. /etc/fstab 파일에서 defaults 대신 acl을 입력해 설정해야 합니다. 하지만 이 경우 Default Mount Option에는 자동으로 추가되지 않습니다.
기타 설정
ACL 옵션을 영구적으로 적용하려면 다음 명령어를 사용합니다.
tune2fs -o acl [블록 디바이스]
user_xattr을 추가하려면 아래와 같이 입력합니다.
tune2fs -o user_xattr [블록 디바이스]
마지막으로, ACL이 설정된 파일이나 디렉터리를 복사할 때는 cp 명령어에 -p 옵션을 사용하지 않으면 ACL 설정이 사라질 수 있으므로 주의해야 합니다.
마무리
리눅스에서 ACL을 활용하면 파일과 디렉터리에 대한 접근 권한을 더욱 세밀하게 설정할 수 있습니다. setfacl과 getfacl 명령어를 통해 필요한 권한을 부여하고 확인할 수 있으며, ACL 사용을 위한 파티션 설정을 이해하는 것이 중요합니다. 이러한 지식을 바탕으로 리눅스 시스템의 보안을 강화하고 사용자 관리의 효율성을 높일 수 있습니다.