gpt4 book ai didi

linux - rpmbuild 不保留目录的权限

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:47 28 4
gpt4 key购买 nike

我在/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(用户和组)所有。还有一个名为“help”的目录,具有不同的权限,例如

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

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

最佳答案

关于 %defattr 的注释,以及关于 BUILDROOT 树的注释的缺失可能表明有些困惑。根据rpm.org :

If a particular attribute does not need to be specified (usually because the file is installed with that attribute set properly), then that attribute may be replaced with a dash

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

关于linux - rpmbuild 不保留目录的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30644605/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com