如何制作设置文件RPM的POSIX capabilities?如果我尝试以非root用户身份执行rpmbuild
,那么当我的makefile的安装挂钩尝试运行 setcap
时出现错误,但是如果我不运行setcap
,rpmbuild
将如何复制功能?似乎没有任何方法可以从RPM spec file内部设置功能。
最佳答案
有一个用于设置功能的spec文件宏%caps
;由于某种原因,这似乎主要记录在release notes和changelogs中,所以我花了一段时间才找到它。
规格文件中的用法如下:
%caps(cap_net_admin=pe) %{_sbindir}/foobar
要使
make install
仅在由root调用时才使用setcap
,可以执行以下操作:@if test `id -u` -eq 0; then \
setcap cap_net_admin=pe $(DEST_SBINDIR)/foobar ; \
fi