무엇

무엇

디렉터리에 기본 ACL을 적용하면 다음 두 가지 일만 발생합니다 default:mask.mask

장면 1

-bash-4.2$ ls -ld test/
 drwxr-x---. 2 test test 4096 Oct 15 19:12 test/

-bash-4.2$ setfacl -d -m u:arif:rwx test/

-bash-4.2$ getfacl --omit-header test
 user::rwx
 group::r-x
 other::---
 default:user::rwx
 default:user:arif:rwx
 default:group::r-x
 default:mask::rwx
 default:other::---

장면 2

-bash-4.2$ ls -dl dir/
 drwxr-x---. 2 test test 4096 Oct 15 18:17 dir/

-bash-4.2$ getfacl dir
 # file: dir
 # owner: test
 # group: test
 user::rwx
 group::r-x
 other::---

-bash-4.2$ setfacl -m user:arif:rwx dir

-bash-4.2$ getfacl --omit-header dir
 user::rwx
 user:arif:rwx
 group::r-x
 mask::rwx
 other::---

그렇다면 여기서 목적은 무엇입니까 mask?

답변1

무엇

이 3자리 ACL 시스템은 TRUSIX에서 파생되었습니다. 다른 ACL 시스템(예: FreeBSD, MacOS, AIX, Illumos 및 Solaris의 NFS4 스타일 시스템)은 다르게 작동하며 이 ACL 개념은마스크액세스 제어 항목이 없습니다.

이것마스크이름에서 알 수 있듯이 응용 프로그램입니다.마스킹액세스 제어 항목은 사용자 및 그룹에 권한을 부여합니다. 파일 소유자 또는 "기타" 항목이 아닌 모든 액세스 제어 항목에서 부여할 수 있는 최대 권한입니다. 해당 3비트는 and이러한 다른 항목의 3비트와 일치합니다.

예를 들어 사용자에게 rw-액세스 제어 항목이 부여되었지만 마스크가 인 경우 r--해당 사용자는 실제로 r--액세스 권한만 가집니다. 반대로 사용자에게 --x액세스 제어 항목만 부여된 경우 마스크는 rwx추가 권한을 부여하지 않으며 사용자에게는 --x액세스 권한만 부여됩니다.

이것기본 마스크상위 디렉터리에는 생성된 콘텐츠에 적용되는 마스크 설정이 있습니다. 이것은 상속의 한 형태입니다.

안타깝게도 IEEE 1003.1e는 표준이 되지 못했고 1998년에 철회되었습니다. 실제로 19년이 지난 지금은 널리 보급된 운영체제이다.리눅스통과하다FreeBSD도착하다솔라리스(후자의 경우 NFS4 스타일 ACL과 함께) - 실제 구현입니다.

IEEE 1003.1e 작업 초안 #17흥미롭게 읽었고 추천합니다. 부록 B § 23.3에서 작업 그룹은 레거시 그룹 권한 플래그와 관련하여 POSIX ACL이 작동하는 다소 복잡한 방식에 대한 8페이지의 자세한 근거를 제공합니다 S_IRWXG. (TRUSIX 사람들이 10년 전에 거의 동일한 분석을 제공했다는 점은 주목할 가치가 있습니다.) 이는 마스크의 존재 이유를 다루며 여기서는 간략하게만 다루겠습니다.

  • 전통적인 Unix 애플리케이션은 파일, 명명된 파이프, 장치 또는 디렉터리에 대한 모든 액세스를 거부할 수 있기를 원합니다 chmod(…,000). ACL이 있으면 이 기능은 꺼집니다.모두사용자 및 그룹 권한(마스크되어 있고 이전 항목 S_IRWXG이 매핑된 경우) 이것이 없으면 이전 파일 권한을 설정해도 000비소유자 usergroup항목에 영향을 주지 않으며 놀랍게도 다른 사용자가 여전히 해당 개체에 액세스할 수 있습니다.

    파일의 권한 비트를 액세스 금지로 일시적으로 변경한 chmod 000다음 다시 다시 변경하는 것은 Unix가 권고 잠금 메커니즘을 갖기 전에 사용된 오래된 파일 잠금 메커니즘입니다.- 보시다시피 - 21세기에도 사람들은 여전히 ​​사용하고 있습니다.. ( setlock1990년대 후반부터 권고 잠금은 이식 가능하고 잘 알려진 도구를 사용하는 스크립트를 통해 쉽게 사용할 수 있게 되었습니다.)

  • 기존 Unix 스크립트는 실행될 것으로 예상되며 chmod go-rwx궁극적으로 개체 소유자만 개체에 액세스할 수 있습니다. 다시 말하지만, 마스크가 있고 이전 권한이 이에 매핑되지 않으면 S_IRWXG아무런 효과가 없습니다 . 그렇지 않으면 명령이 비소유자 또는 액세스 제어 항목을 chmod닫지 않아 소유자 외부의 사용자와 비소유 그룹이 액세스 권한을 유지하게 되기 때문입니다. 특정 콘텐츠 액세스 권한usergroup기대네요접근하기 쉬운오직소유자에게.

    그럼 다시- 보시다시피 - 이 chmod명령은 여전히 ​​받아들여지는 지혜입니다.12년 후. 이 진실은 아직도 유효합니다.

  • 마스킹 메커니즘이 없는 다른 방법에도 단점이 있습니다.
  • 대부분의 경우 권한 비트는 andACL과 별도로 사용되며 대체 시스템에서는 파일 권한 플래그가 필요합니다. rwxrwxrwx.
  • 다른 시스템의 권한 비트를 ACL과 별도로 사용하고 orACL과 함께 사용하는 경우 chmod(…,000)앞서 언급한 문제가 발생할 수 있습니다.

따라서 ACL 시스템에는 마스크가 함께 제공됩니다.

추가 읽기

관련 정보