Linuxfork endless loop bomb and its Prevention

Source: Internet
Author: User
Run this code in Linux: () {:|:& amp ;};: this 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 restrict the ability of users

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.

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.