如何预防fork炸弹?

如何预防fork炸弹?

为了防止叉子炸弹我遵循了这个http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm

ulimit -a反映了新的设置,但当我运行时(如root中所示bash),:(){ :|:&};:VM 仍然使用最大 CPU+RAM 并且系统将冻结。

如何确保用户不会因使用fork炸弹或运行有缺陷的应用程序而导致系统瘫痪?

操作系统:RHEL 6.4

答案1

为了使此更改普遍存在,您需要将这些限制添加到整个环境中。使用该命令的更改ulimit仅针对当前环境。

笔记:这对 root 用户没有影响!

例子

编辑此文件:并向该文件添加条目,限制允许特定用户或用户组拥有的vi /etc/security/limits.conf进程数 ( )。nproc

vivek hard nproc 300
@student hard nproc 50
@faculty soft nproc 100
@pusers hard nproc 200

笔记:该文件中有更多示例。使用“all”(又名。*)时要小心,这也会限制系统帐户。

参考

答案2

超级用户或任何具有 CAP_SYS_ADMIN 或 CAP_SYS_RESOURCE 功能的进程不受该限制的影响,这是无法更改的。root总是可以分叉进程。

如果某些软件不受信任,则无论如何它都不应运行root

相关内容