gpt4 book ai didi

linux - 限制 fork /子过程的数量

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:06 33 4
gpt4 key购买 nike

我在 Ubuntu 12.04 上托管一个计算服务,我需要一种方法来防止用户进行 forkbombing。我目前在 Linux 中使用 setrlimit(RLIMIT_NPROC)。但是,这实际上对给定 UID 的进程数设置了全局限制。因为我的服务有很多并行作业,所有作业都使用相同的 UID 运行,这意味着一个进程可以 DOS 整个服务。

相反,我正在寻找一种方法来设置限制,例如当前进程的递归子进程数。我被告知要查看 linux cgroups/libcgroup 但老实说,我真的不明白这如何解决我的问题。有什么建议吗?

最佳答案

互联网上说防止(阅读:减轻) fork 炸弹的唯一方法是设置 RLIMIT_NPROC。可能是因为用户 ID 是附加“到目前为止 fork 的进程”调用的唯一实用位置。

建议:让您的服务在多个 uid 下运行,并让服务的每次调用都选择一个。然后,流氓客户端通过 fork 轰炸进入 DOS 的能力会受到所用 UID 数量的限制。

您可能需要某种 SUID 帮助程序来执行此操作,除非服务的顶级进程以 root 身份运行(通常被认为是一个坏主意)。

关于linux - 限制 fork /子过程的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569739/

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