c - 仅在可继承集中拥有能力意味着什么?

标签 c linux linux-capabilities

我的程序正在使用 cap_sys_admin,cap_setgid+i 运行。
当然,我知道它们可以跨 execve 继承,但除此之外:它们的行为方式是否与我根本没有它们一样,因为它们既无效又不允许?

最佳答案

好的,您的进程正在运行一些可继承的功能。这对您的流程意味着什么?几乎什么都没有。您无法调用 setcap() 来使任何这些功能有效,因为它们不在您的“允许”集中,并且无法将它们放入您的“有效”集中,您的进程无法使用这些功能本身。

但是,它们在您的可继承集中的存在可能会对您启动的其他进程产生影响。例如。如果您要 exec() 一个二进制文件,该二进制文件的有效集和可继承集中都有 cap_setgid,则该子进程将以 cap_setgid 开头它的有效集。

如果上例中 cap_setgid 不在进程的可继承集中,则文件具有 cap_setgid+ie 的事实就变得无关紧要,并且子进程将具有指定的功能。

关于c - 仅在可继承集中拥有能力意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927722/

相关文章:

python - 等待 dbus session 锁定/解锁消息

c - 这个结构有多少字节? - 指向结构的指针有多少字节?

linux - 如何在 linux 中创建用户并在用户每次打开 shell 时自动执行命令?

c - 如何使用 snprint() 函数追加字符串

python - 终端最后一行的 apt-like 进度

linux - 原始捕获功能(CAP_NET_RAW、CAP_NET_ADMIN)在/usr/bin 和使用 libpcap 的数据包捕获程序之外不起作用

yocto 的 Linux 功能

docker - 与其他任何主机操作系统相比,作为Docker主机的CentOS导致不同的容器行为

c++ - 使用fork的c++程序中的非阻塞系统调用

c - 使用 `##` 运算符的串联问题