gpt4 book ai didi

linux - 杀死进程和所有后代的安全方法

转载 作者:太空狗 更新时间:2023-10-29 12:35:16 24 4
gpt4 key购买 nike

我正在使用 apparmor 在 Linux 中创建沙箱环境, setrlimit , cap_set_rpoc让匿名用户基本上在科学应用程序的上下文中在我的服务器上执行一些任意代码。沙箱中特别允许的一件事是通过 fork 和调用可执行文件来启动新进程(尽管一个用户的进程总数受 RLIMIT_NPROC 限制)。

在给定的时间段后,比如 1 分钟,系统将终止主进程和所有潜在的子进程。我目前依靠进程组 ID 来识别 child 。但是,理论上,子进程可以调用setpgid 来改变它的进程组,这样当我调用kill(-1 * pid) 时,它就不会再受到影响。主进程 ID(正确吗?)。不幸的是,我无法设置 linux capability 来阻止进程调用 setpgid

杀死进程及其所有(递归)子进程的可靠方法是什么,这将使子进程很难以某种方式“逃脱”大屠杀并继续作为孤儿进程?

最佳答案

如果您使用 lxc (Linux 容器)隔离每个进程树,然后你可以使用 lxc-stop 杀死容器中的所有进程。请参阅 lxc manual page 的“启动/停止容器”部分.

关于linux - 杀死进程和所有后代的安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13261277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com