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

最佳答案

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

但是,它们在可继承集中的存在可能会对您启动的其他进程造成影响。例如。如果要对文件的“有效”和“可继承”集中都具有exec()的二进制文件进行cap_setgid,则该子进程将从其“有效”集中的cap_setgid开始。

如果在上例中的进程的Inheritable集中没有设置cap_setgid,则文件具有cap_setgid+ie的事实将变得毫无意义,并且子进程将不具有所述功能。

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

10-12 19:02