Esw*_*war 8 linux linux-capabilities
在Linux系统中,无特权的用户启动程序.创建的进程CAP_NET_RAW,CAP_NET_ADMIN具有模式为的功能effective,permitted,inheritable.然后,此过程通过调用fork和 execv调用另一个程序udhcpc来创建子进程,但子进程不会CAP_NET_RAW,CAP_NET_ADMIN按预期继承这些功能.即使在设置我调用的功能之前prctl(PR_SET_KEEPCAPS, 1).
什么任何建议做非特权继承父进程的能力,在fork后面execve?
caf*_*caf 12
在execve(),udhcpc检查正在执行的文件(在本例中为)的文件功能集,并与线程的功能集合并.特别是,文件的Inheritable集合是AND-ed,线程的Inheritable设置是为了确定新的Permitted集合,Effective必须设置文件的位以便Effective从Permitted集合中复制新的集合.
这意味着在您的情况下,您必须使用setcap cap_net_raw,cap_net_admin=ei /path/to/udhcpc获得所需的效果(除了在父进程中设置功能之外 - prctl()没有必要).
| 归档时间: |
|
| 查看次数: |
4661 次 |
| 最近记录: |