gpt4 book ai didi

permissions - 使用 rpmbuild 构建时如何更改 umask?

转载 作者:行者123 更新时间:2023-12-04 04:19:25 25 4
gpt4 key购买 nike

我已经尝试在 shell 中使用“umask 77”,然后使用以下命令构建它:

[non-root-user@machine SPECS]$ rpmbuild -bb SPECFILE.spec 

但我仍然从输出中得到这个:

+ umask 022 

最佳答案

您不能从 shell 更改 umask,因为 rpmbuild 在运行 %prep 脚本之前总是设置一个固定的 umask 0022

因此,根据您想要实现的目标,您可以尝试更改规范文件中 %prep 部分开头的 umask:

%prep
umask 077

但是,如果您只是想为 RPM 中的文件设置文件权限,标准方法是使用 %defattr%attr 指令%files 部分:

  • %defattr 设置文件和文件夹的默认属性:

    %defattr(<file mode>, <user>, <group>, <dir mode>)

一些属性可以通过用破折号替换它们来省略(因为文件安装时正确设置了这些属性)

  • %attr 设置单个文件或文件夹的属性:

    %attr(<mode>, <user>, <group>) file/folder

%defattr 一样,如果不需要指定特定属性,您可以将其替换为破折号(例如,您可以将其与 %defattr 一起使用保留该属性的默认值)

一个完整的例子:

%files
# set default attributes for all files and folders:
%defattr(644, root, root, 755)
# make a file executable:
%attr(755, -, -) /usr/bin/myexec
# set a different owner for a file:
%attr(-, myuser, -) /var/log/mylog.log
# set different permissions, owner and group for a file:
%attr(600, myuser, mygroup) /home/myfile

有关更多详细信息和示例,您可以查看:
http://www.rpm.org/max-rpm-snapshot/s1-rpm-specref-files-list-directives.html
http://www.rpm.org/max-rpm/s1-rpm-anywhere-specifying-file-attributes.html

关于permissions - 使用 rpmbuild 构建时如何更改 umask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12520293/

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