我在 Ubuntu 12.04 上托管一个计算服务,我需要一种方法来防止用户进行分叉炸弹攻击。我目前setrlimit(RLIMIT_NPROC)
在 Linux 中使用。但是,这实际上对给定 UID 的进程数设置了全局限制。因为我的服务有许多并行作业,都以相同的 UID 运行,这意味着一个进程可以 DOS 整个服务。
相反,我正在寻找一种方法来设置限制,例如当前进程的子进程的递归数量。我被告知要研究 linux cgroups
/libcgroup
但老实说,我真的不明白这如何解决我的问题。有小费吗?