小智 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 位。