![解压文件并获取正确的权限?](https://linux22.com/image/1365594/%E8%A7%A3%E5%8E%8B%E6%96%87%E4%BB%B6%E5%B9%B6%E8%8E%B7%E5%8F%96%E6%AD%A3%E7%A1%AE%E7%9A%84%E6%9D%83%E9%99%90%EF%BC%9F.png)
我使用以下命令在我的服务器上解压缩文件:
unzip filename
然而,这似乎导致所有文件都具有 的所有者/组权限0 0
。
我上传的文件是PHP
软件脚本,所以我想知道在解压文件时如何正确设置权限以及应该将它们设置为何?
答案1
据我所知,Zip 不支持保存文件所有权/权限。您可以尝试设置 umask,以便 unzip 能够使用这些权限创建文件。运行
umask 644
前unzip
。
答案2
实际上,这里的一些答案并不正确。ZIP 文件也可以具有文件权限。(*)您可以使用以下命令列出 ZIP 文件中文件的权限:
unzip -Z
您用于创建 ZIP 文件的工具可能没有存储权限或没有正确存储权限。
所以,如果你自己制作了 ZIP 文件,检查您制作 ZIP 文件所用的工具。也许有一种方法可以在压缩之前设置权限(例如使用 maven),或者它保留原始权限(但这只适用于支持权限的系统 - 即不适用于 Windows)。
如果你没有自己制作 ZIP 文件,你唯一的机会是在解压后设置正确的权限,例如使用
chmod -R [permissions] [directory]
(*)我们将该功能与 maven assembly 插件结合使用,您可以在其中指定进入 ZIP 文件的文件的 fileMode。