한국어

개발자 도구 · Chmod 계산기

chmod 기호 모드 설명: u+x, g-w, o=r 및 a+rX

· 작동 방식

chmod 유닉스 개발자 워크플로

고유한 Unix 권한 비트 다이어그램으로 표시되는 기호 할당
원본 ToolAcre 벡터 일러스트레이션

chmod의 기호 형식은 누가, 연산자, 어느 비트와 같은 작은 문법입니다. 이 게시물은 이를 분해하여 u+x와 go-rwx가 명확해지고 기호가 8진수를 능가하는 경우를 보여줍니다.

문자로 가득 찬 배포 스크립트 — chmod u+x,go-w 배포.sh는 작동하지만 팀의 누구도 변경 사항을 말할 수 없습니다.

u+x와 같은 명령은 계산기의 기호 표시와 비슷해 보이지만 두 형식의 작업은 다릅니다. 편집 가능한 기호 필드는 선택적으로 인식된 파일 유형 문자가 앞에 오는 9개의 권한 위치를 허용합니다. 대조적으로, 생성된 chmod 인수는 u=, g= 및 o= 절을 사용하여 완전한 할당을 설명하므로 상대적인 변경 사항을 구문 분석하기보다는 고정 모드를 나타냅니다.

750을 입력하면 구분이 구체적으로 이루어집니다. 디스플레이는 rwxr-x---이고 생성된 할당은 u=rwx,g=rx,o=입니다. 둘 다 동일한 소유자, 그룹 및 기타 비트를 설명하지만 두 번째 비트만 chmod 인수로 형식화됩니다. 페이지에서는 해당 명령을 실행하지 않습니다. 별도의 셸 작업 전에 제안된 값을 검토할 수 있도록 표현을 노출합니다.

계산기는 생성된 할당 목록에서 ls 스타일 디스플레이를 분리합니다.

문자 u, g 및 o는 소유자, 그룹 및 기타 라벨을 지정하므로 생성된 과제에 표시됩니다. 모든 출력에는 클래스에 권한이 없는 경우 빈 절을 포함하여 세 클래스 모두의 이름이 명시적으로 지정됩니다. 계산기는 생략된 문법이나 단축어를 구문 분석하지 않습니다. 해당 입력은 기존 대상에 따라 결과가 달라지는 명령어가 아닌 완료된 모드에서 시작됩니다.

이 수정을 통해 미묘한 과장을 방지할 수 있습니다. 매트릭스는 어떤 클래스가 읽기, 쓰기 또는 실행을 수신하는지 정확하게 표시할 수 있지만, 다른 chmod 구현에서 생략된 클래스 선택기가 무엇을 의미하는지 결정할 수는 없습니다. 대신 세 개의 행렬 열을 세 개의 할당 절과 비교하세요. 그들의 동의는 이 인터페이스가 구현하지 않는 상대 명령 규칙에 의존하지 않고 고정 값을 확인합니다.

생성된 과제에는 어떤 문자가 표시됩니까? 상대 생략 - 문법이 구문 분석되지 않은 사람

할당 생성기는 각 일반 클래스에 =를 사용합니다. 해당 선택은 빈 오른쪽을 방출하여 클래스를 지우는 것을 포함하여 요청된 소유자, 그룹 및 기타 트리플을 정확하게 재구축합니다. + 및 -는 기호식 chmod 명령에 속하지만 계산기 입력으로 허용되지 않습니다. 따라서 이 페이지는 알 수 없는 시작 모드에서 증분 추가 또는 제거를 모델링하지 않습니다.

1비트 비교는 지원되는 워크플로가 무엇을 증명할 수 있는지 보여줍니다. 750 모드는 rwxr-x---를 렌더링합니다. 그룹 숫자를 7로 변경하면 rwxrwx---가 생성되고 g=rx가 g=rwx로 변경됩니다. 계산기는 완료된 전후 모드를 식별합니다. 현재 모드, 경로, 파일 시스템 또는 명령 실행이 변환에 참여하지 않기 때문에 라이브 파일에 대해 g+w를 평가하지 않습니다.

생성된 연산자는 =이고, + 및 - 입력 문법은 도구 외부에 남아 있습니다.

파서는 고정 위치의 r 및 w와 일반 실행 위치의 x 또는 -를 인식합니다. 또한 특수 비트가 해당 위치를 공유하는 s, S, t 및 T도 허용합니다. 대문자 X는 다릅니다. 상대 chmod 문법에 속하며 여기서는 지원되지 않습니다. X를 제공하면 일반 실행 비트로 자동 해석되지 않고 거부됩니다.

소문자, 대문자 특수문자는 의도적으로 구현되었습니다. Setuid 및 setgid는 일치하는 실행 비트가 있으면 s를 사용하고 없으면 S를 사용합니다. Sticky는 other-execute 위치에서 동일한 규칙에 따라 t 또는 T를 사용합니다. 특수 행과 4자리 요약은 해당 비트를 보존합니다. 이 중 어느 것도 파일과 디렉터리 전반에 걸쳐 조건부 대문자 X 선택에 대한 지원을 추가하지 않습니다.

파서는 r, w, x, s, S, t 및 T를 허용합니다. 대문자 X는 지원되지 않습니다.

g=u와 같은 클래스 복사 표현식은 구현되지 않습니다. 계산기는 기존 객체에서 소스 클래스를 읽거나 한 클래스의 비트를 다른 클래스에 적용하지 않습니다. 완전한 8진수 또는 ls 스타일 모드를 수신하고 해당 값을 명명된 부울로 변환하고 각 클래스에 대한 명시적 플래그를 내보냅니다. 복사된 결과는 이 페이지에서 검사하기 전에 다른 곳에서 계산되어야 합니다.

외부 단계에서 소유자와 그룹 모두 rwx를 갖고 다른 사람은 rwx를 갖지 않아야 한다고 결정한다고 가정합니다. 770을 입력하면 rwxrwx--- 및 u=rwx,g=rwx,o=가 생성됩니다. 이는 완성된 결과를 확인하지만 그것이 어떻게 도출되었는지 증명하지는 않습니다. 소유권도 알 수 없는 상태로 남아 있습니다. 변환기는 대상과 마주하게 될 실제 소유자, 그룹 또는 프로세스를 식별하지 않고 클래스에 레이블을 지정합니다.

클래스 간 권한 복사가 구현되지 않았습니다.

모드 0750은 앞에 0이 포함되어 허용되며 750과 동일한 값으로 구문 분석됩니다. 소유자 숫자 7는 읽기, 쓰기 및 실행을 활성화합니다. 그룹 숫자 5은 읽기 및 실행을 활성화합니다. 다른 숫자 0는 아무것도 활성화하지 않습니다. 동기화된 디스플레이는 rwxr-x---가 되며 항상 4자리 요약은 0750를 명확한 검토 값으로 표시합니다.

해당 고정 모드에 대해 생성된 기호 할당은 u=rwx,g=rx,o=입니다. 세 개의 절은 행렬 열에 직접 대응되는 반면, 8진수 명령 미리 보기는 특수 비트에 네 번째 숫자가 필요한 경우를 제외하고 750을 사용합니다. 제공된 경로는 미리보기에서 인용될 수 있지만 열리지는 않습니다. 이 예에서는 소유권, 승인 또는 성공적인 권한 변경이 아닌 표현을 확인합니다.

작업 예: 0750 고정 모드 및 생성된 할당 목록

참조 기반 변경 사항, 심볼릭 링크 처리 및 ACL 작업은 이 변환기 외부에 유지됩니다. 페이지에는 참조 파일 입력, 경로 탐색, ACL 항목 모델 또는 파일 시스템 쿼리가 없습니다. 재귀를 선택하면 표시된 -R 플래그만 추가됩니다. 결과적으로 생성된 명령은 도달할 개체나 다른 액세스 제어 계층이 효과적인 결과를 변경하는지 여부를 보고할 수 없습니다.

잘못된 입력은 유용한 경계 확인을 제공합니다. 잘못 배치된 허가서, 지원되지 않는 X, 후행 마커 또는 잘못된 형식의 8진수는 복구되는 대신 거부됩니다. 지원되는 9자 디스플레이로 텍스트를 수정하면 모드와 동기화된 보기가 생성됩니다. 이러한 승인은 문자열이 구현된 12비트에 매핑된다는 것만 증명합니다. 외부 chmod 기능이나 대상 환경의 유효성을 검사하지 않습니다.

참조, 심볼릭 링크 및 ACL 작업은 이 변환기 외부에 남아 있습니다.

실제적인 차이는 ls 스타일 표시와 생성된 고정 할당 사이에 있으며, 상대 기호 입력과 절대 8진수 입력 사이에는 없습니다. 편집 가능한 두 양식 모두 완료된 모드를 나타냅니다. 계산기는 둘 중 하나를 동일한 정수, 행렬, 요약, 설명 및 미리 보기로 변환한 다음 기호 명령 형식에 대해 명시적인 u=, g= 및 o= 절을 내보냅니다.

이러한 동기화된 보기를 사용하여 산술 실수를 잡아보세요. 750, rwxr-x--- 및 u=rwx,g=rx,o=가 함께 나타나는 경우 고정 모드는 내부적으로 일관성이 있습니다. 실제 시스템이 더 많은 증거를 제공하지 않는 한 거기서 멈추십시오. 페이지에서는 상대 연산자, 생략된 선택기, 클래스 복사 또는 대문자 X를 구문 분석하지 않으며 모드가 실제 실패한 작업을 처리하는지 여부를 확인할 수 없습니다.