macOS는 ZIP 파일에 Unix 파일 권한을 어떻게 저장합니까?


4

Finder의 내장 아카이브 기능을 사용하여 Mac에서 생성 된 ZIP 파일을 Java로 추출하려고합니다. ZIP 파일에는 응용 프로그램 번들이 포함되어 있으므로 Unix 파일 권한, 특히 실행 가능 플래그를 유지하는 것이 중요합니다.

Finder를 사용하여 ZIP 파일을 추출 할 때 권한이 유지됩니다. 그래서 나는 그것들이 어딘가에 저장되어 있다는 것을 알고 있습니다.

이제 내 질문은 : macOS는 어떻게 ZIP 파일에 Unix 파일 권한을 저장합니까? 불행히도 나는 이것에 대한 정보를 인터넷에서 찾을 수 없었습니다.

답변:


4

권한은 Linux와 같은 다른 Unixoid 시스템과 동일한 방식으로 저장됩니다.

zip 파일의 중앙 디렉토리 헤더를 보면 Zip 파일에 저장된 각 파일에 대해 "외부 파일 속성"이라는 필드가 있습니다. 필드는 헤더에서 바이트 36에 있으며 길이는 4 바이트입니다.

해당 필드의 마지막 두 바이트에는 macOS에 대한 파일 권한이 포함됩니다. 정확하게 말하면 마지막 9 비트 (최하위 9 비트)입니다. 그들의 의미는 전통적인 유닉스 파일 허가와 같습니다.


@bmike 편집 관련 : ZIP 파일에 권한을 반드시 저장해야하는 것은 아닙니다. Finder는 이에 대한 사용자 인터페이스를 제공하지 않지만 다른 유틸리티는이를 선택적으로 만듭니다. 권한 인코딩은 실제로 원래 Zip 표준이 아닙니다. 또한 ACL은 ZIP 파일 (Linux는 아님)에 저장되지 않으므로 ZIP 파일과 관련이 없습니다.
jksoegaard

맞습니다. 확장 속성 필드에는 권한이 포함되어 있습니다. 힌트 주셔서 감사합니다!
Oliver Matuschin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.