【问题标题】:rpmbuild does not preserve permissions of directoriesrpmbuild 不保留目录的权限
【发布时间】:2015-08-19 02:38:13
【问题描述】:

我在 /opt/MyApp 中有一个应用程序,我需要使用 FPM 将其打包到 RPM 包中,如下所示:

fpm -e -s dir -t rpm --name 'MyApp' --version '1.0' --iteration "12345" --directories /opt/MyApp --epoch 0 /opt/MyApp

(其他选项在这里不相关)

MyApp 中的所有文件和目录都归 root(用户和组)所有。还有一个名为“帮助”的目录,具有不同的权限,例如

drwxrwxrwx.

即所有用户都可以写入该目录。 当我检查 FPM 生成的规范文件时,它有

%defattr(-,root,root,-)

然后列出所有目录 (%dir) 和文件,因此我希望所有原始权限都保留在此包中。但是,当我使用

检查它时
rpm -qlvp MyApp.rpm

“帮助”目录的权限被重置为:

drwxrwxr-x

即其他用户不能再在那里写了。 我的第一个猜测是添加选项

--rpm-use-file-permissions

但这让事情变得更糟,因为现在 RPM 中的所有文件都归调用 FPM 的用户所有。

编辑: 我已经使用

实现了结果
--rpm-use-file-permissions --rpm-user root --rpm-group root

但它仍然感觉不优雅和灵活。 提前致谢。

【问题讨论】:

    标签: linux file-permissions rpmbuild


    【解决方案1】:

    关于%defattr 的评论以及关于BUILDROOT 树的cmets 的缺失可能表明存在一些混淆。根据rpm.org

    如果不需要指定特定属性(通常是因为文件已安装且该属性设置正确),则该属性可以用破折号替换

    也就是说,如果%defattr中没有给出明确的权限,那么构建rpm时来自构建时%install的权限是令人满意的。无法保证它们与后来安装 rpm 的实际系统匹配(甚至兼容)。

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 2014-12-11
      • 1970-01-01
      • 2011-08-30
      • 2019-07-02
      • 2012-11-16
      • 2010-12-04
      • 2014-07-20
      • 2019-10-31
      相关资源
      最近更新 更多