怎么做一个RPM设置文件的POSIX capabilities?如果我尝试将rpmbuild
作为非root用户,那么当我的makefile的安装钩子试图运行setcap
时我得到一个错误,但是如果我不运行setcap
,rpmbuild
将如何复制这些功能?似乎没有任何方法可以在RPM spec file中设置功能。
有一个用于设置功能的spec文件宏,%caps
;出于某种原因,这似乎主要记录在release notes和changelogs中,所以我花了一段时间才找到它。
它在spec文件中使用如下:
%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