web-dev-qa-db-ja.com

フォーク爆弾を防ぐには?

フォーク爆弾を防ぐために私はこれに従いました http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm

_ulimit -a_は新しい設定を反映しますが、実行すると(rootbashとして):(){ :|:&};: VMはまだ続きます最大CPU + RAMとシステムがフリーズします。

フォーク爆弾を使用したり、バグのあるアプリケーションを実行したりすることで、ユーザーがシステムを停止させないようにする方法は?

OS:RHEL 6.4

14
user44441

スーパーユーザーまたはCAP_SYS_ADMIN機能またはCAP_SYS_RESOURCE機能を持つプロセスは、その制限の影響を受けません。これは変更可能なものではありません。 rootは常にプロセスをフォークできます。

一部のソフトウェアが信頼されていない場合は、rootとして実行することはできません。

8

この変更を広範にするには、これらの制限を環境全体に追加する必要があります。 ulimitコマンドを使用した変更は、現在の環境にのみ適用されます。

注:これはrootユーザーには影響しません!

このファイルを編集:vi /etc/security/limits.confし、特定のユーザーまたはユーザーのグループが許可するプロセスの数(nproc)を制限するエントリをファイルに追加します。

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

注:そのファイルには他の例があります。 「すべて」(別名*)これにより、システムアカウントも制限されます。

参考文献

11
slm