【发布时间】:2013-01-31 22:31:29
【问题描述】:
我想让系统在没有setuid、文件“+p”功能的情况下也可以使用,并且通常没有在我设置PR_SET_NO_NEW_PRIVS时被禁用的东西。
使用这种方法(init 设置 PR_SET_NO_NEW_PRIVS 和基于文件系统的能力提升不再可能)你不能“重新填充”你的能力,只需要小心不要“飞溅”它们。
如何execve 其他进程而不“破坏”任何授予的功能(例如,如果新程序的文件是setcap =ei)?只是“我相信这个新过程,就像我相信自己一样”。例如,给用户一个能力(并且用户想在他启动的任何程序中使用它)......
我可以永久创建整个文件系统=ei吗?我想保持文件系统不干扰方案,不能授予或撤销功能;通过父->子控制一切。
【问题讨论】:
-
您能否澄清一点,在您的标题中您写道“尽管缺少文件功能”,在您的问题中您说您想使用此功能并将整个文件的功能位设置为 ei。您的系统中是否存在该功能?
-
表示文件系统功能不允许 +i 用于例如用户刚刚编译的文件,但我们仍然希望该用户能够使用此功能。使用 +i 获取功能只能作为进程(用户)的 +i 和文件系统的 +i 之间的交集。如果没有文件系统的竞争(没有 +p 和没有 +i),我就无法运行其他可执行文件来保留我已经拥有的有效能力。这造成了差异(即可以加载将使用我的功能的动态库,但该库无法在不丢失上限的情况下生成进程)。
-
所以它工作正常,但不像你预期的那样。
标签: linux execve linux-capabilities