linux – fork和execve继承非特权父进程的能力

Linux系统中,无特权的用户启动程序.创建的进程具有CAP_NET_RAW,CAP_NET_ADMIN功能,模式有效,允许,可继承.
然后,此进程通过调用fork和execv调用一个程序udhcpc来创建子进程,但子进程不会按预期继承CAP_NET_RAW,CAP_NET_ADMIN功能.即使在设置功能之前,我也称为prctl(PR_SET_KEEPCAPS,1).

关于如何在fork后跟execve继承非特权父进程的能力的任何建议?

解决方法

execve()上,检查正在执行的文件(在本例中为udhcpc)的文件功能集,并与线程的功能集合在一起.特别是,文件的Inheritable set与线程的Inheritable set进行AND编辑,以确定新的Permitted集,并且必须设置文件的Effective位,以便从Permitted集复制新的Effective set.

这意味着在您的情况下,您必须使用setcap cap_net_raw,cap_net_admin = ei / path / to / udhcpc来获得所需的效果(除了在父进程中设置功能之外 – 不需要prctl()).

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...