getfacl에 user:lee:rw-와 mask::r--가 함께 있다면, lee의 항목 자체는 읽기와 쓰기를 요청하지만 mask가 쓰기를 제한합니다. 따라서 실제 effective 권한은 r--이며 읽기는 가능하고 쓰기는 허용되지 않습니다.

ACL 판단은 사용자 항목 하나만 읽어 끝내지 않습니다. 사용자와 그룹 항목 중 누가 접근 검사에 해당하는지, mask가 있는지, 파일시스템이 ACL을 지원하는지 확인해야 합니다. 아래 출력은 직접 만든 교육 예시이며 공식 기출이나 판매 카드 원문이 아닙니다.

ACL 출력에는 권한 요청과 상한이 함께 보입니다

전통적인 소유자·그룹·기타 세 칸만으로 구별하기 어려운 사용자를 POSIX ACL의 named-user 항목으로 지정할 수 있습니다. 예를 들어 user:lee:rw-는 lee에 대해 읽기와 쓰기를 적은 항목입니다. 그러나 named-user 권한이 그대로 허용된다는 뜻은 아닙니다. ACL mask가 있으면 이 항목과 named-group 항목에 적용되는 최대 권한을 함께 계산합니다.

rwx 교집합으로 실제 권한을 계산합니다

가상 getfacl 출력의 핵심 항목입니다.
ACL 항목표시 권한mask 적용effective
user:leerw-r--r--
group:reviewersrwxr--r--
maskr--상한r--

각 권한을 숫자로 바꾸면 lee 항목 rw-는 6, mask r--는 4입니다. 두 권한의 비트 교집합은 4이므로 읽기만 남습니다. 쓰기 비트 2는 ACL 항목에 있었지만 mask에는 없었습니다. getfacl은 환경에 따라 effective:r--라는 주석으로 이 제한을 표시할 수 있습니다. 주석이 보이지 않더라도 권한 계산에서 mask를 빼먹어서는 안 됩니다.

누가 일치하는 항목인지 먼저 정합니다

ACL 검사에서는 파일 소유자, 정확히 일치하는 named user, 파일 그룹에 해당하는 항목들, 기타 순으로 어떤 범주가 적용되는지 봅니다. lee가 파일 소유자가 아니라 named user로 일치한다면 user:lee 항목을 적용하고, 그 권한은 mask를 넘을 수 없습니다. 사용자가 여러 그룹에 속한다고 모든 항목의 권한을 무조건 더하는 방식도 아닙니다. 실제 접근 주체의 UID·그룹과 파일 ACL을 함께 맞춰야 합니다.

  1. 파일 소유자 UID와 접근 계정을 비교합니다.
  2. 소유자가 아니면 정확히 일치하는 named-user 항목이 있는지 봅니다.
  3. named-user나 그룹 항목에 적용될 ACL mask를 찾습니다.
  4. 항목과 mask의 rwx 교집합으로 effective 권한을 계산합니다.
  5. 마지막으로 파일시스템·마운트·상위 디렉터리의 경로 통과 권한을 별도로 확인합니다.

chmod 뒤에는 ACL도 다시 읽어야 합니다

확장 ACL이 있는 파일에서 chmod로 그룹 권한을 바꾸면, 보이는 세 자리 mode만 변하는 것이 아니라 ACL mask 또는 대응되는 ACL 항목에 영향을 줄 수 있습니다. 따라서 변경 뒤에는 ls -l의 권한 문자열과 끝의 + 표시만으로 named-user의 쓰기 허용 여부를 판정하지 마세요. 승인된 점검 과정에서는 getfacl로 named-user, group, mask를 다시 확인하고, 결과가 기대한 업무 권한과 일치하는지 검토합니다.

출력 읽기 예시일 뿐이며 설정을 변경하는 명령은 포함하지 않습니다.
# 교육용 예시 출력
user:lee:rw-
group:reviewers:rwx
mask::r--
other::---

항목의 권한만 보고 쓰기 가능이라고 답하지 않습니다

가장 흔한 실수는 user:lee:rw-를 발견한 즉시 ‘lee는 파일을 쓸 수 있다’고 결론 내리는 것입니다. 이 답은 mask를 무시합니다. 반대로 mask::r--만 보고 소유자도 쓰지 못한다고 말하는 것도 틀립니다. ACL mask는 소유자 user:: 권한이나 other:: 항목에 같은 방식으로 적용되는 제한이 아닙니다. 어느 항목이 주체와 일치하는지, 그 항목에 mask가 적용되는지를 나누어 보세요.

검토할 때는 표시 권한과 실제 권한을 두 칸으로 씁니다

오답을 줄이려면 ACL 항목을 베껴 적은 뒤 바로 아래에 mask 교집합을 따로 적습니다. rw- ∩ r-- = r--, rwx ∩ r-- = r--처럼 쓰면 원래 항목이 가진 권한과 실제 허용 권한이 다르다는 점이 눈에 들어옵니다. 그 다음 접근 사용자의 계정과 그룹을 맞춰 보세요. 파일 권한은 이름만 보고 판단하는 대신, 사용자가 어떤 항목으로 ACL 검사에 들어가는지부터 확인해야 합니다.

정답을 가리고 확인해 보세요

이 글을 위해 만든 학습 예시이며 공식 기출문제나 판매 카드의 인용이 아닙니다.

사용자 min의 ACL 항목이 user:min:rwx, mask가 mask::r-x입니다. mask가 적용되는 유효 권한은 무엇이며 쓰기는 가능한가요?

정답과 해설 확인유효 권한은 r-x입니다. 읽기와 실행은 가능하고 쓰기는 불가능합니다.

named-user 항목 rwx와 mask r-x의 교집합은 r-x입니다. w 비트가 mask에 없으므로 원래 항목에 있어도 effective 권한에는 남지 않습니다.

이 주제의 회상 연습 이어가기