1

我有一个项目需要安装后挂钩进行部署。我的方法是使用 setuptools 生成骨架 rpm 规范文件并 tar 源文件。

问题是我不知道如何用这种方法控制权限。规范文件如下所示:

%install
python setup.py install --single-version-externally-managed --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES

%files -f INSTALLED_FILES
%defattr(755,%{user},%{user})

这工作得相当好:因为所有文件都设置为适当的用户和权限。但是这些目录没有设置属性。我不知道这是否是一个问题,但它看起来确实很奇怪:所有目录都归 root 拥有,具有 755 权限。有谁知道使目录拥有的好(合理标准)方法user?我问是因为我的公司倾向于打包将在特定于应用程序的角色帐户下部署的应用程序。当我使用 setuptools 将结果放入站点包时,.pyc文件会被复制过来。但是,如果我想在路径之外创建一个配置文件目录,这似乎是一个很好的解决方法。

4

1 回答 1

3

%defattr(755,%{user},%{user})

该行设置所有文件的默认权限、用户和组所有权。您可以使用以下内容覆盖默认值:

%attr(644, <username>, <username>) </path/to/file>

如果您希望默认值由 root 以外的用户拥有,那么您可能需要在规范顶部定义“用户”宏:

%define user myusername
于 2009-10-20T22:58:34.837 回答