我有一个项目需要安装后挂钩才能进行部署。我的方法是使用setuptools生成骨架rpm spec文件并tar源文件。
问题是我不知道如何使用此方法控制权限。 spec文件看起来像:
%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将结果放入site-packages时,会复制.pyc
个文件。但是如果我想在路径上创建一个配置文件目录,那么似乎可以解决这个问题。
答案 0 :(得分:3)
%defattr(755%{用户},%{用户})
该行设置所有文件的默认权限,用户和组所有权。您可以使用以下内容覆盖默认值:
%attr(644, <username>, <username>) </path/to/file>
如果您希望默认值由root以外的用户拥有,那么您可能需要在规范的顶部定义“用户”宏:
%define user myusername