我正在打包和分发我为 Windows、Linux 和 Mac 制作的程序。我计划将文件和文件夹放在 zip 档案中。
如果我设置正确的文件夹和文件权限,然后压缩成 zip 并重新分发它们,当用户在 Linux 或 Mac 系统中提取它们时,这些权限是否会保留?还是他们必须自己设置权限?
zip
不在存档中存储文件权限。
tar
档案将保留 Linux 和 OS X 上的文件权限。我不知道在 Windows 上会发生什么。如果您可以在 Windows 上进行测试并且可以正常工作,那么这可能是您最好的选择。这可能取决于人们用来解压档案的工具。
另一个选择是创建一个安装程序,尽管创建跨平台安装程序的非商业选项很少。维基百科有一个列表。
安装程序是您最好的选择。让我更好地解释为什么。
Windows 具有以下权限:
Modify
Read & Execute
Read
Write
分配给组或用户名,
基于 Unix 的系统具有:
Read
Write
Execute
可以分配给所有者、组和其他人。
您是否可以看到,很难将权限从一个系统映射到另一个系统,因为文件系统处理权限的方式不同。
然而,像 Info-Zip 这样的一些 zip 实用程序支持基于 Unix 的文件系统功能,例如用户和组 ID、文件权限以及对符号链接的支持。它还支持 NTFS 文件系统权限,并在提取文件时尝试将 NTFS 权限转换为 Unix 权限,反之亦然。这可能会导致潜在的意外组合,例如在 NTFS 卷上创建 .exe 文件,但可执行权限被拒绝。*
如果您计划分发您的程序,安装程序确实是您的最佳解决方案。
*来自维基百科:Zip(文件格式)