한국어

개발자 도구 · Chmod 계산기

POSIX ACL과 chmod 모드 비트: rwx가 충분하지 않은 경우

· 배경

chmod 유닉스 액세스 제어

고유한 Unix 권한 비트 다이어그램으로 표시된 ACL 경계
원본 ToolAcre 벡터 일러스트레이션

모드 비트는 하나의 소유자, 하나의 그룹 및 기타 모든 사람을 포함합니다. 이 게시물에서는 격차를 메우는 POSIX.1e ACL 모델, chmod와 상호 작용하는 방법, 공유 그룹이 여전히 더 간단한 대답인 경우에 대해 설명합니다.

모델이 허용하는 것보다 리더가 한 명 더 많습니다. 파일은 앱 그룹에 속하며 그룹 외부의 감사자 한 명이 파일을 읽어야 합니다.

일반 모드 모델에는 네 번째 ID 슬롯이 없습니다. 하나의 소유자, 하나의 그룹 및 기타 모든 사람에 대한 권한을 설명할 수 있지만 추가 감사자를 지정할 수는 없습니다. 계산기는 해당 경계를 정확하게 반영합니다. 매트릭스, 기호 표시 및 요약은 사용자별 또는 그룹별 액세스 항목이 아닌 세 가지 클래스와 특수 비트를 노출합니다.

단지 한 명의 추가 독자를 수용하기 위해 다른 클래스를 확장하면 해당 클래스에 속하는 모든 ID에 영향을 미칠 수 있습니다. 계산기는 0640에서 0644로 이동하는 등의 산술적 변경 사항을 표시할 수 있지만 더 광범위한 액세스가 허용되는지 여부는 결정할 수 없습니다. 명명된 액세스에는 이 경로 외부의 증거와 도구가 필요합니다.

세 가지 클래스의 제한 — 기존 모델에 소유자, 그룹 및 기타에 대해 각각 정확히 하나의 슬롯이 있는 이유

각 후행 8진수는 하나의 고정 클래스에 속합니다. 소유자, 그룹 및 기타 항목은 읽기, 쓰기 및 실행 플래그를 수신하여 9개의 일반 위치를 생성합니다. 모델은 이름이 지정된 사람에 대해 다른 트리플을 삽입할 수 없습니다. 따라서 성공적인 변환은 다른 곳에 첨부된 추가 항목에 대해서는 언급하지 않고 기본 모드를 충실하게 설명합니다.

이 제한은 명백히 제한적인 출력을 읽을 때 중요합니다. rw-r----의 기호 값은 0640이 나타내는 기본 소유자, 그룹 및 기타 비트를 알려줍니다. 계산기는 ACL 데이터를 검사하지도 않고 외부 적용 레이어를 관찰하지도 않기 때문에 다른 ID가 객체를 읽을 수 없다는 것을 증명하지는 않습니다.

POSIX.1e ACL — 동일한 파일에 추가된 명명된 사용자 및 명명된 그룹 항목, setfacl로 설정하고 getfacl로 읽습니다.

명명된 사용자 및 명명된 그룹 항목은 구현되지 않습니다. 소스에는 ACL 레코드에 대한 파서나 포맷터, ACL 마스크, setfacl 또는 getfacl 작업이 포함되어 있지 않습니다. 이러한 개념은 외부 액세스 제어 메커니즘을 사용하는 동기를 부여할 수 있지만 이 기사에서는 계산기의 명시적인 경계를 인정하는 것 이상의 명령 구문이나 동작을 지정할 수 없습니다.

별도의 작업을 수행하는 동안 기본 모드가 표시되도록 유지하세요. 보고된 8진수 값을 입력하고 소유자, 그룹 및 기타 트리플을 확인하고 특수 비트를 기록하십시오. 그런 다음 명명된 항목에 대해 권위 있는 파일 시스템 문서와 적절한 외부 도구를 사용하십시오. 계산기에서 생성된 chmod 미리보기는 ACL을 생성, 검사 또는 보존하지 않습니다.

명명된 ACL 항목에는 여기에 구현되지 않은 외부 도구가 필요합니다.

chmod 변경, 그룹 클래스 비트 및 ACL 마스크 간의 관계는 여기에 구현되지 않은 동작에 따라 달라집니다. 계산기는 단순히 12비트 모드를 변환하고 할당 또는 8진수 인수를 내보냅니다. 유효 권한을 계산할 ACL 상태가 없으므로 명명된 항목의 제한 여부를 예측할 수 없습니다.

모드 출력만으로 ACL 결과를 설명하지 마십시오. 0640에서 0600로 변경하면 이 모델에서 세 가지 그룹 클래스 비트가 확실히 제거됩니다. 명명된 사용자, 명명된 그룹 또는 마스크에 관한 모든 것에는 실제 ACL 및 플랫폼 규칙이 필요합니다. 표시된 명령을 ACL 포함 객체에 적용하기 전에 파일 시스템 문서를 통해 이를 확인하십시오.

chmod와의 ACL 마스크 상호 작용에는 파일 시스템 문서가 필요합니다.

기본 ACL 상속도 경로를 벗어납니다. 페이지에 디렉터리 ACL 입력, 생성 작업, umask 필드가 없습니다. 대상 선택기를 파일에서 디렉토리로 전환하면 고정 모드에 연결된 일반 영어 동사가 변경됩니다. 파일을 생성하거나 상속을 모델화하거나 향후 객체의 권한을 계산하지 않습니다.

같은 이유로 현재 디렉토리 모드는 여기에서 모든 새로운 하위 모드를 예측할 수 없습니다. 계산기는 디렉터리 읽기, 쓰기 및 실행이 항목 나열, 수정 및 명명된 콘텐츠 도달에 해당함을 설명할 수 있습니다. 이러한 기본 비트를 수신하지 않는 기본 항목, 생성 요청 또는 프로세스 마스크와 결합할 수 없습니다.

기본 ACL 상속 및 umask 상호작용은 이 경로 외부에 있습니다.

추가 판독기가 필요할 수 있는 파일에 대해 제공된 기본 모드 0640을 고려하십시오. 계산기는 rw-r----: 소유자 읽기 및 쓰기, 그룹 읽기, 기타 없음을 렌더링합니다. 이것이 입력 내용이 뒷받침하는 완전한 진술입니다. 감사인을 식별하지도 않고 해당 신원을 배치할 네 번째 클래스를 제공하지도 않습니다.

ACL 작업이 다른 곳에서 발생하는 동안 이 기본 모드 레코드를 보존합니다. 나중에 외부 프로세스가 다른 모드를 보고하면 이를 다시 디코딩하고 각 클래스를 비교하십시오. ACL 명령을 모드 필드에 붙여 넣거나 명령 미리 보기에 명명된 항목이 포함되어 있다고 가정하지 마십시오. 항상 현재 표시된 숫자 모드만 나타냅니다.

작동 예: ACL 작업이 다른 곳에서 발생하는 동안 기본 모드를 읽을 수 있도록 유지합니다.

기타 ACL 제품군, 원격 파일 시스템 규칙 및 마운트 지원은 이러한 소스에 의해 설정되지 않습니다. 계산기는 스토리지 유형, 마운트된 옵션, 운영 체제 또는 ACL 작업의 가용성을 감지하지 않습니다. 따라서 누락된 ACL 뷰는 구현 경계일 뿐 기본 객체에 더 풍부한 액세스 제어가 부족하다는 증거는 아닙니다.

필수 정책, 기능, 소유권 및 프로세스 ID도 마찬가지로 별개입니다. 기본 모드에 대한 완전한 지식이라도 이러한 입력을 대체할 수는 없습니다. 모드 변환을 하나의 레이어로 보고하고 관찰되지 않은 모든 레이어에 명시적으로 라벨을 지정합니다. 이렇게 하면 깔끔한 rwx 표시가 완전한 인증 분석으로 오인되는 것을 방지할 수 있습니다.

다른 ACL 모델 및 마운트 지원은 유추되지 않습니다.

세 가지 클래스로 충분할 경우 계산기는 클래스에 대한 정확하고 되돌릴 수 있는 설명을 제공합니다. 그렇지 않은 경우 명명된 예외를 다른 클래스에 강제로 적용하기보다는 해당 기본 계정을 읽기 가능한 상태로 유지하세요. 8진수, 기호 및 체크박스 보기는 동일한 소유자, 그룹, 기타 및 특수 비트 값에 동의해야 합니다.

중지 규칙은 간단합니다. ACL 상태에 대한 기본 모드 산술 및 외부 권한 도구에 이 경로를 사용합니다. rwx만으로는 명명된 항목, 마스크, 상속 또는 파일 시스템 지원을 추론하지 마십시오. 신중한 검토를 통해 계산기가 소스 코드에 포함되지 않은 액세스 제어 구조를 구현하는 것처럼 가장하지 않고 이러한 별도의 증거 소스를 결합합니다.