1

我使用包制造商创建了一个 OS x pkg,它安装了一个自定义 SDK 和 Xcode 插件,根据建议,有效负载的权限设置为 root:admin 和 chmod 775。

这在使用 Xcode 3.2 和 Xcode 4.0 创建的包的 OS X 10.6(Snow Leopard) 上运行良好,但在带有 Xcode 4.1 的 OS X 10.7 (Lion) 中,文件的权限在某种程度上更改为 root:wheel

如果我在 10.6 中创建 10.7 包,则权限设置正确。如果 10.7 或 Xcode 4.1 在包权限方面有一些变化,有什么想法吗?

4

2 回答 2

1

PackageMaker,或者更确切地说是 /usr/sbin/installer,往往会忽略构建包时指定的所有者和权限。在将负载添加到 PackageMaker 之前,您必须设置负载的所有者和权限。

如果您在命令行上使用 packagemaker 进行构建,请确保指定 --no-recommend,否则它将从您的系统将“推荐”权限应用于包。

于 2012-06-28T13:28:08.363 回答
0

我不确定这是否是您想要的,但请参阅此处的文档: https ://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/pkgbuild.1.html

特别是这部分:

--ownership (recommended | preserve | preserve-other) 默认情况下,当payload被归档到包中时,推荐的UID和GID将应用于所有文件。(通常,这将是 root:wheel,这确保安装在系统域中的文件是 root 拥有的,而安装在用户主目录中的文件将归该用户所有。)如果您有特殊的所有权要求,您应该使用chmod(1) 调整源文件的所有权,并使用 --ownership preserve 以便 pkgbuild 归档磁盘文件的确切所有权。或者,如果您只有几个文件需要调整,--ownership preserve-other 将对运行 pkgbuild 的用户拥有的那些文件应用推荐的推荐修改 UID 和 GID,但保持其他文件不变。请注意,pkgbuild 永远不会更改实际磁盘文件的所有权,只会更改归档到包中的所有权。

于 2015-10-09T05:13:43.430 回答