如何制作设置文件RPMPOSIX capabilities?如果我尝试以非root用户身份执行rpmbuild,那么当我的makefile的安装挂钩尝试运行 setcap 时出现错误,但是如果我不运行setcaprpmbuild将如何复制功能?似乎没有任何方法可以从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

08-16 23:47