Permissions 使用rpmbuild构建时如何更改umask?
我在外壳中尝试了“umask 77”,然后用以下材料制作:Permissions 使用rpmbuild构建时如何更改umask?,permissions,rpm,umask,Permissions,Rpm,Umask,我在外壳中尝试了“umask 77”,然后用以下材料制作: [non-root-user@machine SPECS]$ rpmbuild -bb SPECFILE.spec 但我仍然从输出中得到: + umask 022 无法从shell更改umask,因为在运行%prep脚本之前,rpmbuild将始终将固定umask设置为0022 因此,根据您试图实现的目标,您可以在%prep部分的开头尝试更改spec文件中的umask: %prep umask 077 但是,如果您只是试图为R
[non-root-user@machine SPECS]$ rpmbuild -bb SPECFILE.spec
但我仍然从输出中得到:
+ umask 022
无法从shell更改umask,因为在运行
%prep
脚本之前,rpmbuild将始终将固定umask设置为0022
因此,根据您试图实现的目标,您可以在%prep
部分的开头尝试更改spec文件中的umask:
%prep
umask 077
但是,如果您只是试图为RPM中的文件设置文件权限,标准方法是在%files
部分中使用%defattr
和%attr
指令:
%prep
umask 077
设置文件和文件夹的默认属性:%defattr
%defattr(<file mode>, <user>, <group>, <dir mode>)
%defattr
一样,如果不需要指定特定属性,可以将其替换为破折号(例如,可以将其与%defattr
一起使用,以保留该属性的默认值)
一个完整的例子:
%文件
#为所有文件和文件夹设置默认属性:
%defattr(644,根,根,755)
#使文件可执行:
%属性(755,--)/usr/bin/myexec
#为文件设置其他所有者:
%attr(-,myuser,-)/var/log/mylog.log
#为文件设置不同的权限、所有者和组:
%attr(600,我的用户,我的组)/home/myfile
有关更多详细信息和示例,请访问:和
我认为您不应该更改umask。我假设您对RPM中的文件权限不满意。为此,您应该在
%files
部分中使用%attr()
和%defattr()
。是的,我刚刚将所有规格设置为755。我只是想了解-,root,root是做什么的,以及为什么我还要麻烦它。因为你可能想让其他用户拥有这些文件。例如,MySQL的安装程序将使用适当的掩码创建文件。好的,您需要用户“mysql
”拥有的文件,因此您可以使用%defattr(-,mysql,mysql)
,然后只使用%attr()
标记真正需要root用户单独标记的文件。