Estaba leyendo la advertencia de Ubuntu Forum sobre comandos maliciosos y encontré esta joya interesante:
:(){ :|:& };:ADVERTENCIA: El código anterior se bloquee la máquina a menos que tenga límites estrictos en lugar proc (que es probable que no) que provocó un reinicio duro.
Considere este código similar a la ejecución
sudo rm -rf /.
Pero ¿qué significa eso? Incluso con mi experiencia en programación, nunca he visto un comando tan críptico que no sea lenguaje ensamblador.

sudo rm -rf /. Ese comando elimina todos sus archivos; este solo obstruye los recursos de su máquina hasta que se vuelve inutilizable y tiene que reiniciar.sudo rm -rf /es más peligroso, pero he visto a personas ejecutar esto en servidores remotos "solo quería ver lo que hacía" donde tiene dificultades para reiniciar sin acceso a un panel de control.arbitrary_name(){ arbitrary_name|arbitrary_name& };arbitrary_name. El nombre:no solo hace que este comando sea corto y críptico, sino que también convierte una función:incorporada que no hace nada en una función que hace mucho . Si:(){ :|:& }introduce su definición en el entorno de otra persona y deja que permanezca allí, golpeará cuando la víctima menos lo espere .Respuestas:
Es, como dijiste, una bifurcación. Lo que hace es definir una función, luego llamarla. La función se llama
:.Vamos a nombrarlo
forkbombpara que podamos ver mejor lo que está sucediendo:Como puede ver, y probablemente adivine por su experiencia en programación, la primera parte es la definición de la función (
forkbomb(){ ... }), y la última:es donde se llama a la función (la;simple separa las declaraciones en Bash).Ahora, ¿qué hace esta función? Si está familiarizado con Bash, sabrá que el
|personaje canaliza la salida estándar de un comando / programa a la entrada estándar de otro. Básicamente,:|:inicia dos instancias de la función (aquí es donde se "bifurca").Y luego la magia:
&pone esos comandos en segundo plano, permitiendo que la función original regrese, mientras que cada instancia se bifurca hasta que las vacas lleguen a casa en segundo plano, utilizando todos sus recursos y eliminando el sistema (a menos que tenga límites) impuesto sobre él).fuente
:, que realmente ejecuta la función!Tomado del artículo de Wikipedia Forkbomb :
fuente
Desglosado:
Cambia
:abomby tienes:bomb(){ bomb|bomb& };bombEs realmente bastante elegante.
fuente