storage / knowledge

TrueNAS의 ACL preset과 owner를 root로 두는 이유

paul 2025.10.09 271words (1m)

TrueNAS의 ACL 편집 화면은 권한을 하나씩 체크하게 되어 있는데, preset으로 묶어 고를 수도 있다. 어떤 것이 들어 있는지 알고 골라야 한다.

권한 약어

약어 이름 의미
R Read 파일 내용 읽기, 폴더 내용 보기
W Write 파일 수정, 생성, 삭제
X Execute (Traverse) 폴더 진입, 실행
D Delete 파일/폴더 삭제
A Append 기존 파일에 내용 추가
C Create 새 파일/디렉토리 생성
T Traverse 폴더 안으로 이동은 되지만 내용은 못 봄

preset

Preset 구성 쓰는 곳
Read R, T 읽기만 하면 되는 공유 폴더
Modify (RW) R, W, D, T 여럿이 같이 쓰는 폴더. ACL 변경은 안 된다
Traverse (X) X, T 하위 dataset으로 가는 통로
Full Control 전부 + ACL 관리 소유자나 관리자

Traverse는 통로용이다. 상위 dataset의 내용은 보여주고 싶지 않은데 그 아래 dataset에는 들어가야 할 때 쓴다. 앞에서 본 디렉토리의 x 비트와 같은 역할이다.

Modify로는 ACL을 못 바꾼다. 일반 사용자에게 주기 적당한 이유가 이것이다. 파일은 마음대로 다루되 권한 구조는 못 건드린다.

owner는 root로 둔다

dataset의 소유자를 실제 사용자로 지정하고 싶어지는데, owner는 root 로 두고 필요한 권한은 ACL로 따로 주는 편이 안정적이다.

owner에게는 ACL과 별개로 붙는 권한이 있다. 소유자를 사용자로 두면 ACL에서 아무리 막아도 그 사용자가 우회할 수 있는 여지가 생긴다. 권한이 두 군데에서 정해지면 나중에 왜 되는지 왜 안 되는지 추적하기 어렵다.

owner를 root 로 고정하면 실제 접근 권한이 전부 ACL 한 곳에만 적힌다. 사용자 홈처럼 그 사람만 쓰는 dataset은 예외로 뒀다.

console
$ getfacl <경로>