올바른 권한을 얻는 동안 파일 압축을 해제 하시겠습니까?


17

다음을 사용하여 서버에서 파일의 압축을 풉니 다.

unzip filename

그러나 이로 인해 모든 파일에 소유자 / 그룹 권한이있는 것으로 보입니다 0 0.

내가 업로드 한 파일은 PHP소프트웨어 스크립트 였으므로 파일 압축을 풀 때 권한을 올바르게 설정하는 방법과 파일을 어떻게 설정해야하는지 궁금합니다.

답변:


10

Zip은 내가 아는 한 파일 소유권 / 권한 저장을 지원하지 않습니다. unzip이 이러한 권한으로 파일을 작성하도록 umask 설정을 시도 할 수 있습니다. 운영

umask 644

전에 unzip.


실제로 창으로 압축되었습니다. 죄송합니다.
Brett

1
Windows 또는 * nix에서 작성된 것인지는 중요하지 않습니다. Zip은 여전히 ​​유닉스 파일 권한을 지원하지 않습니다. 어디에서 만들어 졌든 상관 없습니다.
lawl0r

네, 알아요 ..하지만 당신은 내가 umask이런 권한을 가진 zip을 만들도록 설정할 수 있다고 말했습니다 . 하지만 창문에서 그렇게 할 수 있다고 생각하지 않습니까?
Brett

압축을 풀기
lawl0r

8
@ lawl0r 그렇습니다. 그것들을 보려면 -Z 옵션을 사용하십시오.
OrangeDog

20

실제로, 여기에 일부 답변이 올바르지 않습니다. ZIP 파일은 파일 권한을 가질 수도 있습니다. (*) ZIP 파일에있는 파일의 권한을 다음과 같이 나열 할 수 있습니다.

unzip -Z

ZIP 파일을 만드는 데 사용한 도구가 권한을 저장하지 않았거나 올바르게 저장하지 않았을 수 있습니다.

따라서 ZIP 파일을 직접 만든 경우 ZIP 파일을 만든 도구를 확인하십시오. 압축하기 전에 권한을 설정하는 방법이 있거나 (예 : maven과 같이) 원래 권한을 유지하지만 권한을 지원하는 시스템에서만 작동합니다 (예 : Windows에서는 작동하지 않음).

ZIP 파일을 직접 만들지 않은 경우 압축을 푼 후 권한을 올바르게 설정하십시오 (예 :

chmod -R [permissions] [directory]

(*) ZIP 파일에 들어가는 파일에 대해 fileMode를 지정할 수있는 maven assembly 플러그인과 함께이 기능을 사용합니다.


1
나는 당신이 옳다고 생각하지만 당신이 대답을 제안하는 방법이 옳지 않습니다. 새로운 답변에서 비판하는 것보다 좋은 답변을 제공하는 데 집중해야합니다.
Francisco Tapia

2
@FranciscoTapia 나는 내 대답을 업데이트했지만 (몇 가지 시도해 볼 수 있음) 다른 대답이 잘못되었다는 힌트를 남길 것입니다. 나는 그것이 중요하다고 생각합니다.
David Tanzer

1
UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler.Windows에서 / mingw. 현재 리눅스 상자에 액세스 할 수 없지만 -Z도 작동합니다. 어쨌든 힌트 주셔서 감사합니다!
David Tanzer

3
@David Tanzer , 귀하의 답변은 수락되지 않은 동안에도 최고입니다. 실제로 아카이브의 출처 (예 : Windows, Linux 등)가 중요합니다. Linux에서 테스트했습니다 ( Zip 3.0 , UnZip 6.00 ). 파일이 아카이브에 저장되면 권한이 저장됩니다. 그리고 추출 된 파일에서 복원됩니다 (예 : Linux에서 파일을 추출 할 때). 분명히 Windows 상자에서 추출 할 때 권한이 적용되지 않습니다. 정말에서 볼 냉각됩니다 압축을 풉니 다 (같은 특정 스위치 타르--no-same-permissions권한을 보존하고 존중하지 않는) 의 umask 추출하는 동안.
flaz14

1
@DanielF 권한은 작성 프로그램이 거기에 놓은 경우에만 존재하므로, 아카이브가 Windows에서 작성되면 zipinfo/ unzip -Z만 추측 할 수 있습니다. 사용 권한이 있는지 확인하려면 zipinfo -v/를 사용 unzip -Zv하고 "MSDOS 이외의 외부 파일 특성"을 찾으십시오. “파일 시스템 또는 운영 체제”가 UNIX 인 경우 가장 중요한 2 바이트는 UNIX 권한 (8 진수가 아닌 16 진수입니다)입니다.
Alex Shpilkin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.