ERICLINUX: yes > config &

6/5/08

yes > config &

ERICLINUX

Vía Braianet llega éste post "yes > config &", gracias Braian, como siempre colaborando y mostrando tu conocimiento con el publico.

Este sera un post muy breve orientado a los principiantes en los sistemas GNU/Linux.
¿Alguna vez en un IRC alguien les dijo que tipeen yes > config &?, ¿qué es esto?.

Bien paso a explicar, este es un parecido a una fork bomb (aunque no tiene nada que ver con la funcion fork), se basa de tres partes, el comando en si (yes), la redireccion (>) y la ejecución en el background (&).

  • yes: produce una secuencia infinita de yes (si)
  • >: redirecciona la salida estándar (la terminal, en este caso)
  • config: la redirección va a parar a un archivo llamado config
  • &: ejecuta el proceso en el background (segundo plano, invisible a nuestros ojos).

Bien, como hemos visto yes, al producir una secuencia inifita de si mismo, sera redireccionado a un archivo llamado config, el cual sera ejecutado en el background invisible a los ojos del usuario. Este archivo, comenzara a crecer inmediatamente hasta colapsar la capacidad de almacenamiento quoteada para el usuario, y peor aun (si no estuviera quoteada), de la partición, en la cual fue ejecutada. No quedandole otro remedio, al usuario inexperto que reiniciar.

Veamos:

$: yes > config &
[1] 20711

Vemos que la consola nos devuelve la siguiente información, [ 1 ], este es el numero de job del proceso, osea, es un número natural, que identifica a el proceso que se esta ejecutando en el background, y el siguiente número 20711 es el PID, (Identificador del proceso), esta información es muy util, ya que al no poder enviarle una señal de interrupción desde el teclado, deberemos interrumpilo desde la línea de comandos. Para esto, en otra terminal escribimos:

$: pgrep yes
20711

Lo que hemos hecho es buscar el proceso yes, y este nos devuelve el numero de PID<, necesario para poder matarlo, y asi evitar que siga ejecutandose, asi que rapídamente en la shell escribimos:

$: kill 20711

Y listo!, ya hemos matado al proceso yes y detenido la ejecución de esta forkbomb.
Ahora, un dato extra para saber la cantidad que ocupo el archivo generado (config) y conocer realmente lo rapido que se propaga esta secuencia infinita de yes escribimos:

$: du -h /home/usuario/config
157M /home/usuario/config

Por supuesto, que debemos cambiar por la ruta (path) donde nosotros hemos ejecutado el comando, y donde se encuentra el archivo config, viendo esto, podemos decir que en mi caso (una ejecucion de 25 segundos aproximadamente), el archivo crecio de 0 a 157 Mb., osea a una velocidad increible.

Espero que esto le sirva a todos los novatos, y a los que estan un poco mas avanzados, que no sean tan estúpidos de hacerles ejecutar esto, ya que asi, los alejan cada vez mas del software libre.

Un Saludo, Eric.

Enlaces de interés:

ERICLINUX

Vía Braianet llega éste post "yes > config &", gracias Braian, como siempre colaborando y mostrando tu conocimiento con el publico.

Este sera un post muy breve orientado a los principiantes en los sistemas GNU/Linux.
¿Alguna vez en un IRC alguien les dijo que tipeen yes > config &?, ¿qué es esto?.

Bien paso a explicar, este es un parecido a una fork bomb (aunque no tiene nada que ver con la funcion fork), se basa de tres partes, el comando en si (yes), la redireccion (>) y la ejecución en el background (&).

  • yes: produce una secuencia infinita de yes (si)
  • >: redirecciona la salida estándar (la terminal, en este caso)
  • config: la redirección va a parar a un archivo llamado config
  • &: ejecuta el proceso en el background (segundo plano, invisible a nuestros ojos).

Bien, como hemos visto yes, al producir una secuencia inifita de si mismo, sera redireccionado a un archivo llamado config, el cual sera ejecutado en el background invisible a los ojos del usuario. Este archivo, comenzara a crecer inmediatamente hasta colapsar la capacidad de almacenamiento quoteada para el usuario, y peor aun (si no estuviera quoteada), de la partición, en la cual fue ejecutada. No quedandole otro remedio, al usuario inexperto que reiniciar.

Veamos:

$: yes > config &
[1] 20711

Vemos que la consola nos devuelve la siguiente información, [ 1 ], este es el numero de job del proceso, osea, es un número natural, que identifica a el proceso que se esta ejecutando en el background, y el siguiente número 20711 es el PID, (Identificador del proceso), esta información es muy util, ya que al no poder enviarle una señal de interrupción desde el teclado, deberemos interrumpilo desde la línea de comandos. Para esto, en otra terminal escribimos:

$: pgrep yes
20711

Lo que hemos hecho es buscar el proceso yes, y este nos devuelve el numero de PID<, necesario para poder matarlo, y asi evitar que siga ejecutandose, asi que rapídamente en la shell escribimos:

$: kill 20711

Y listo!, ya hemos matado al proceso yes y detenido la ejecución de esta forkbomb.
Ahora, un dato extra para saber la cantidad que ocupo el archivo generado (config) y conocer realmente lo rapido que se propaga esta secuencia infinita de yes escribimos:

$: du -h /home/usuario/config
157M /home/usuario/config

Por supuesto, que debemos cambiar por la ruta (path) donde nosotros hemos ejecutado el comando, y donde se encuentra el archivo config, viendo esto, podemos decir que en mi caso (una ejecucion de 25 segundos aproximadamente), el archivo crecio de 0 a 157 Mb., osea a una velocidad increible.

Espero que esto le sirva a todos los novatos, y a los que estan un poco mas avanzados, que no sean tan estúpidos de hacerles ejecutar esto, ya que asi, los alejan cada vez mas del software libre.

Un Saludo, Eric.

Enlaces de interés:

0 COMENTARIOS:

Publicar un comentario

Bienvenido a ERICLINUX.
Gracias por tu comentario.

Nota: solo los miembros de este blog pueden publicar comentarios.

Tu comentario será moderado la primera vez que lo hagas al igual que si incluyes enlaces. A partir de ahi no ser necesario si usas los mismos datos y mantienes la cordura. No se publicarán insultos, difamaciones o faltas de respeto hacia los lectores y comentaristas de este blog.