我的程序正在使用 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/