如何防止叉炸弹?

use*_*441 16 rhel freeze resources ulimit

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

ulimit -a体现了新的设置,但是当我运行(如rootbash:(){ :|:&};:的虚拟机仍继续最大CPU +内存,系统将冻结。

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

操作系统:RHEL 6.4

slm*_*slm 14

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

注意:这对 root 用户没有影响!

例子

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

vivek hard nproc 300
@student hard nproc 50
@faculty soft nproc 100
@pusers hard nproc 200
Run Code Online (Sandbox Code Playgroud)

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

参考


Sté*_*las 9

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

如果某些软件不受信任,则它不应以任何方式运行root

  • 除非它做了一些特别的事情,否则几乎没有任何东西应该以 root 身份运行。root 是当您厌倦了试图弄清楚需要什么特权/权限或某些基本系统服务时使用的帐户。 (3认同)