CS/Linux

[Linux] 파일 시스템의 ACL과 속성(Attributes)

kyoulho 2025. 8. 9. 13:08

리눅스 파일 접근 제어는 소유권(Owner)허가권(Permission) 으로만 충분할 것 같지만, 실무에서는 더 세밀한 권한 관리와 강력한 보호가 필요합니다. 이때 사용하는 것이 ACL(Access Control List)속성(Attributes) 입니다.

  • ACL은 "누가 / 무엇을 할 수 있는지" 를 확장하는 도구
  • 속성은 "그 무엇도 / 혹은 특정 방식만 할 수 있게" 만드는 도구
  • 둘을 함께 사용하면, 운영 환경에서 발생할 수 있는 의도치 않은 변경과 악의적인 접근을 모두 방어할 수 있습니다.

권한 관리 4단계 모델

[1] 소유권(Owner)  → 파일의 주인과 소속 그룹
[2] 허가권(Permission) → 주체별 rwx 권한
[3] ACL → 개별 사용자·그룹 세밀 제어
[4] 속성(Attribute) → 권한과 무관한 행동 제한

 


1. ACL (Access Control List)

1-1. ACL이 필요한 이유

기본 권한 모델(rwx)은 소유자 / 그룹 / 기타(others) 3단계입니다.
하지만 그룹에 속하지 않은 개별 사용자에게 권한을 부여하거나 제한하는 것은 불가능합니다.

예: user1은 읽기만, user2는 읽기+쓰기, 다른 사람은 접근 불가
→ chmod로는 불가능, ACL 필요


1-2. ACL 구조 예시

# getfacl sample.txt
# file: sample.txt
# owner: root
# group: root
user::rw-
user:user1:r--
user:user2:rw-
group::r--
mask::rw-
other::---
  • user:user1:r-- → user1 읽기만 가능
  • user:user2:rw- → user2 읽기·쓰기 가능
  • mask → ACL의 최대 허용 권한 범위

1-3. ACL 명령어

# ACL 조회
getfacl filename

# ACL 부여 (user2에 rw 권한)
setfacl -m u:user2:rw filename

# ACL 제거
setfacl -x u:user2 filename

# ACL 전체 초기화
setfacl -b filename

📌 디렉터리 ACL 적용 시 -R 옵션으로 하위 경로까지 재귀 적용 가능


1-4. ACL 사용 시 주의사항

  1. ACL 지원 여부 확인파일 시스템 마운트 옵션에 acl이 있어야 함
  2. mount | grep acl
  3. mask 값 확인 필수 — ACL 권한이 mask보다 크면 무효
  4. ls -l 결과에 + 표시가 뜨면 ACL 적용된 파일
  5. -rw-r-----+ 1 root root 1234 Aug 9 test.txt

2. 파일 속성(Attributes)

2-1. 속성이란?

속성은 소유권·허가권보다 우선 적용되어, 파일의 행동 자체를 제한하거나 특수 기능을 부여합니다.
주로 ext 계열 파일 시스템(ext2/3/4)에서 사용하며, lsattr / chattr 명령어로 제어합니다.


2-2. 주요 속성 플래그

속성 설명 활용 예시

i (immutable) 수정·삭제·이름 변경 불가 /etc/passwd 보호
a (append only) 기존 내용 뒤에만 추가 가능 로그 무결성 확보
A (no atime update) atime 갱신 방지 SSD 수명 연장
S (synchronous updates) 변경 즉시 디스크 기록 전원 장애 대비
d (no dump) 백업 제외 임시파일 제외 설정

2-3. 속성 명령어

# 속성 확인
lsattr filename
# ----i-------- filename

# 속성 추가 (immutable)
sudo chattr +i filename

# 속성 제거
sudo chattr -i filename
  • + → 속성 추가
  • - → 속성 제거
  • = → 지정 속성만 유지

2-4. 속성 주의사항

  1. root도 제한: +i 속성이면 root도 수정·삭제 불가
  2. 파일 시스템 의존성: ext 계열은 대부분 지원, XFS·btrfs는 일부 속성만 지원
  3. 백업 툴 옵션: rsync 등은 -A 옵션으로 속성까지 복사해야 함

3. ACL vs 속성 비교

구분 ACL 속성
목적 특정 사용자·그룹의 세밀한 권한 제어 파일의 동작 자체 제한
적용 범위 권한 모델 확장 권한 모델 무시 가능
주요 명령어 getfacl, setfacl lsattr, chattr
예시 user2만 읽기 가능 누구도 삭제 불가 (+i)

4. 실무 예시 — ACL과 속성 조합

  • /etc/passwd: chattr +i → 시스템 계정 정보 불변화
  • /var/log/secure:
    1. chattr +a → 로그 삭제·수정 불가, append만 허용
    2. setfacl -m u:auditor:r-- → 감사 담당자만 읽기 가능

이렇게 하면 권한 모델 + 세밀 제어 + 행동 제한이 동시에 적용되어 보안성이 극대화됩니다.