2016-08-05 4 views
3

私はしばらくの間、遊びに来ていて、みんなフォーク爆弾と呼ぶ素敵なコードを見つけました::(){ :|:& };:。私はそれを試してみたいが、それは私のコンピュータが狂気のように遅れることを知っているので、私はコマンドを実行するときにコンピュータが遅れないように誰かが私にいくつかのステップを与えることができるかどうかだけ考えていた。ヘルプありがとう:D安全にフォーク爆弾を試してみる

+0

試してみると何が見えますか?とにかく、私はこれがトピック上の質問としてここに分類されているとは確信していません... –

答えて

2

警告:これを仮想マシンで試してみるほうがずっと良いです。以下は私の経験ですが、結果が似ていることを保証するものではありません。


あなたは、現在のユーザーが許可されているプロセスの数をキャップするulimit -uを使用することができます。この制限にはにはプロセスが既に実行されているか、他の場所で起動されていることがあるので、かなり大きくする必要があります。 (100は私には小さすぎたが、500は私にフォークボムを開始させた。)この制限はシステム全体にも当てはまるので、後で再起動する必要があるかもしれない。(Mac OS Xでは、私はどのシェルからも外に出てしまったので、制限を取り除く可能性があるシェルを含め、これ以上プログラムを起動できませんでした)

警告500:しかし、200の制限は、成功しないで新しいプロセスを開始しようとする無限ループで自分のシェルを取得するように見えました。

$ ulimit -u 500 
$ :(){ :|:& };: 
[kaboom] 
0

保証なし。 Linuxでは、あなたはこの場合、ユーザーが唯一の80個のプロセスを実行することができます

youruser hard nproc 80 

のようないくつかのことを追加することができ あなた/etc/security/limits.confを編集しようとすることができます。何かが起こる前に、これはforkbombを止めるべきです。しかし、それは他のプロセスにも影響します。

仮想マシンや重要でないシステム内で試してみるのが最適です。

0

slowjackの答えの精緻化(主に私がコメントすることはできませんので):

その後、フォーク爆弾を実行し、何かに彼らのプロセスを制限し、作成するか、何もしないだ空のユーザーを見つけます。

root権限で実行するか、多くの特権を持つユーザー(特に破壊的なもの)を実行することは悪い考えです。 Linuxシステムには、シートベルトやヘルメットが付属していないため、簡単に破壊することができます。

関連する問題