POSIX ACL 마스크 값이 논리합이 아닙니다.

POSIX ACL 마스크 값이 논리합이 아닙니다.

POSIX ACL 마스크가 어떻게 다시 계산되는지 이해해야 합니다. 맨페이지를 읽었습니다(https://man7.org/linux/man-pages/man1/setfacl.1.html) 다음과 같은 설명이 있습니다.

The default behavior of setfacl is to recalculate the ACL mask entry, unless a mask entry was 
explicitly given. The mask entry is set to the union of all permissions of the owning group, and
all named user and group entries.

분명해 보이지만 보기만큼 쉽지는 않습니다. 그룹 사용자와 2명의 사용자(학생과 jbond)가 있다고 가정해 보겠습니다. 사용자 Student는 다음 ACL 목록이 포함된 test.txt 파일을 만들었습니다.

# file: test.txt
# owner: student
# group: users
user::rw-
user:jbond:rw-          #effective:r--
group::r--
mask::r--
other::r--

현재 학생들은 읽고 쓸 수 있지만 jbond는 읽기만 가능합니다. 그런 다음 chmod를 사용하여 그룹 권한을 변경했습니다.

chmod g-r test.txt

이제 ACL 목록은 다음과 같습니다.

# file: test.txt
# owner: student
# group: users
user::rw-
user:jbond:rw-          #effective:---
group::r--              #effective:---
mask::---
other::r--

제 질문은 이 마스크가 어떻게 된 걸까요 ---? 매뉴얼 페이지에 설명된 결합 작업을 수행하는 방법. 논리 OR과 동일합니까? 그렇다면 단계별로 계산하는 방법은 무엇입니까? 정말 이해해야 해요.

시스템 정보: SUSE 열기

답변1

달리고 있지 않으므로 setfacl마스크를 수리할 수 없습니다. 실행했지만 chmodACL을 알지 못했습니다. 지금 실행하면 setfacl -m user:jbond:rw test.txt마스크도 수정되는 것을 볼 수 있습니다.

setfacl -m group::xyz(ACL 마스크의 경우는 마스크를 수정하는 반면 전자는 마스크가 속한 그룹의 실제 권한을 수정하기 때문에 ACL 마스크의 경우와 다릅니다 .)chmod g=xyz

관련 정보