Execute this code in Linux: () {:|:&};:will cause a crash. Once executed, the only method is to restart the system. In fact, this code is an infinite recursive code that consumes system resources.
This article provides a detailed explanation of this Code. To prevent fork bombs, the method is to limit the number of processes that can be started by the user. Edit the/etc/security/limits. conf file and add:
* Hard nproc 200
Limit the number of processes to 200. After testing, the root account is not restricted.
Q.Can you explain following bash code or bash fork () bomb?
:() {:| :&};:
A. This is a bash function. it gets called recursively (recursive function ). this is most horrible code for any Unix/Linux box. it is often used by sys admin to test user processes limitations (Linux process limits can be configured via/etc/security/limits. conf and PAM ).
Once a successful fork bomb has been activated in a system it may not be possible to resume normal operation without rebooting, as the only solution to a fork bomb is to destroy all instances of it.
WARNING! These examples may crash your computer if executed. Understanding :() {:|:&};: fork () bomb code
()-It is a function name. It accepts no arguments at all. Generally, bash function is defined as follows:
foo(){ arg1=$1 echo '' #do_something on $arg argument}
Fork () bomb is defined as follows:
:(){ :|:&};:
: |:-Next it call itself using programming technique called recursion and pipes the output to another call of the function ':'. The worst part is function get called two times to bomb your system.
&-Puts the function call in the background so child cannot die at all and start eating system resources.
;-Terminate the function definition
:-Call (run) the function aka set the fork () bomb.
Here is more human readable code:
bomb() { bomb | bomb &}; bomb
Properly configured Linux/UNIX box shocould not go down when fork () bomb sets off.