压缩时保留权限

Bin*_*abu 19 zip

如何在使用 压缩文件夹时保留权限zip?

我知道如何使用--symlinks是否有类似的权限选项来保留符号链接?

Tho*_*key 12

info-zip(您可能正在使用的程序)可以保存/恢复类 Unix系统的权限。

它针对提到的目录中的手册页:

除非在 Unix 下,否则不会恢复存储目录的日期、时间和权限。(在 Windows NT 和后续版本上,时间戳现在已恢复。)

读取/写入/执行的文件权限被保存/恢复。但快速检查显示 (zip 3.0) 未保留 setuid/setgid 权限。

该功能不是可选的;zip/unzip 只需在可以时执行此操作。

在其他系统上,保存/恢复权限的功能不太完整。例如,在 Windows 上,ZIP 文件使用%temp%文件夹中的权限设置。

进一步阅读:


小智 8

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
Run Code Online (Sandbox Code Playgroud)

注意:您还可以使用unzip该-K标志来恢复 SUID/SGID/Sticky 位。


mau*_*wns 6

简短的回答:你不能!zip不保留文件权限。

在此处和此处阅读有关此内容的更多信息。

如果您需要保留权限,请考虑tar与--preserve-permissionsswitch 一起使用。

  • 请参阅 http://superuser.com/a/940477/109788。我可以使用 `zip -Z <file>` 查看权限。 (2认同)