를 사용하여 폴더를 압축하는 동안 권한을 보존하려면 어떻게 해야 합니까 zip
?
--symlinks
비슷한 권한 옵션이 있습니까?를 사용하여 심볼릭 링크를 보존하는 방법을 알고 있습니다 .
답변1
info-zip(아마도 사용하고 있는 프로그램)은 다음에 대한 권한을 저장/복원할 수 있습니다.유닉스-같은 시스템.
에 대해 언급됩니다.디렉토리에서매뉴얼 페이지:
저장된 디렉터리의 날짜, 시간 및 권한은 Unix를 제외하고는 복원되지 않습니다. (Windows NT 및 후속 버전에서는 이제 타임스탬프가 복원됩니다.)
읽기/쓰기/실행에 대한 파일 권한이 저장/복원됩니다. 그러나 빠른 확인을 통해(zip 3.0) setuid/setgid 권한이 유지되지 않음을 알 수 있습니다.
이 기능은 선택 사항이 아닙니다. zip/unzip은 가능할 때 간단히 수행하세요.
다른 시스템에서는 권한을 저장/복원하는 기능이 덜 완벽합니다. 예를 들어 Windows에서 ZIP 파일은 다음의 권한 설정을 사용합니다.%temp%
폴더.
추가 자료:
답변2
Info-Zip 3.0은 파일/디렉터리 UNIX 권한 및 UID/GID 소유권 데이터 보존을 지원합니다. 기본적으로 저장하지만 복원하려면 특별한 방법을 zip
사용해야 합니다 .unzip
unzip
플래그 와 함께 사용해야 합니다-X
.unzip
root
파일/디렉토리 UID/GID를 설정하려면 as를 실행해야 합니다 . 일반 사용자로 실행하면 UID는 항상 현재 사용자의 하나가 되며 GID는 현재 사용자가 해당 그룹에 속한 경우에만 복원됩니다.
예:
# zip -v | head -2 | tail -1
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
# unzip -v | head -1
UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.
# touch file1
# mkdir dir1
# chmod 000 file1
# chown 1111 dir1
# ls -ld file1 dir1
drwxr-xr-x 2 1111 root 40 mar 28 20:12 dir1
---------- 1 root root 0 mar 28 20:12 file1
# zip files.zip file1 dir1
adding: file1 (stored 0%)
adding: dir1/ (stored 0%)
# unzip -X files.zip -d extracted
Archive: files.zip
extracting: extracted/file1
creating: extracted/dir1/
# ls -l extracted
total 0
drwxr-xr-x 2 1111 root 40 mar 28 20:12 dir1
---------- 1 root root 0 mar 28 20:12 file1
참고: SUID/SGID/Sticky 비트를 복원하기 위해 플래그 unzip
와 함께 사용할 수도 있습니다 .-K