압축하는 동안 권한 유지

압축하는 동안 권한 유지

를 사용하여 폴더를 압축하는 동안 권한을 보존하려면 어떻게 해야 합니까 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.
  • unziproot파일/디렉토리 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

답변3

짧은 대답: 그럴 수 없습니다! zip파일 권한을 유지하지 않습니다.

이에 대해 자세히 알아보기여기그리고여기.

권한을 유지해야 하는 경우 대신 스위치 tar와 함께 사용하는 것을 고려해 보세요 --preserve-permissions.

관련 정보