壓縮時保留權限

壓縮時保留權限

如何在使用壓縮資料夾時保留權限zip

我知道如何使用--symlinks是否有類似的權限選項來保留符號連結?

答案1

info-zip(您可能正在使用的程式)可以儲存/恢復權限Unix類系統。

提到的是目錄在裡面手冊頁:

除非在 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。如果您以普通使用者身分執行它,則 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

注意:您也可以unzip與該-K標誌一起使用來恢復 SUID/SGID/Sticky 位元。

答案3

簡短的回答:你不能!zip不保留檔案權限。

閱讀更多相關內容這裡這裡

如果您需要保留權限,請考慮使用tar開關--preserve-permissions

相關內容