制作一个RPM包,该包设置POSIX文件能力。

11
如何制作一个RPM,以设置文件的POSIX capabilities? 如果我尝试使用非root用户运行rpmbuild,则在我的makefile的安装钩子尝试运行setcap时会出现错误,但如果我不运行setcap,那么rpmbuild如何复制这些capabilities?似乎没有任何方法可以在RPM spec文件中设置capability。
1个回答

12

设置能力的spec文件宏%caps存在,已经有了;由于某些原因,这似乎主要在发行说明和更改日志中进行了记录,所以我找了很长时间才找到它。

在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

我无法让%caps指令正常工作。一直出现syntax error near unexpected token 'cap_net_raw+ep'的错误提示。在这个问题中找到了另一个解决方案,使用%post进行描述:https://github.com/schweikert/fping/issues/24#issue-5647305 - acw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接