A menudo me he preguntado qué tan lejos llegará el sistema si corres rm -rf /
. Dudo que el sistema operativo pueda borrarse solo (?)
Pregunta de bonificación : Después de que se haya ejecutado el comando, ¿se rm
habrá eliminado?
Actualización: He probado esto en un par de las principales distribuciones de Unix usando VirtualBox y las respuestas describen exactamente lo que sucede. Si se le dan los parámetros correctos, rm eliminará cada bit físico de datos en el disco. Sin embargo, me encontré con algunos problemas al usar una versión de rm que no sea GNU. Por ejemplo, creo que BusyBox tiene su propia versión y no le permite eliminar tanto como podría potencialmente.
Esta pregunta fue una pregunta de superusuario de la semana .
Lea la entrada del blog del 7 de julio de 2011 para obtener más detalles o envíe su propia Pregunta de la semana.
fuente
sudo rm -rf /
en tinycore / microcore linux y parece que el sistema operativo protege varios directorios (/ sys y otros) de ser eliminados.rm -f /bin/rm
una vez. Desafortunadamente, funcionó, y pasé la siguiente hora obteniendo la versión correctarm
de GNU coreutils.Respuestas:
Si tiene
rm
Coreutils de GNU (muy probablemente si es una distribución regular de Linux),rm -rf /
la protección incorporada lo rechazará (según la página de manual y Wikipedia, no lo he intentado).Puede anular esta protección con
--no-preserve-root
.rm
luego eliminará todo lo que pueda, sin detenerse después de haber intentado eliminar cada archivo. Por supuesto, no eliminará los sistemas de archivos virtuales como/proc
y/sys
, pero eso es irrelevante: eliminará todo en su disco.Una vez que finalice el comando, su disco se borrará vacío, incluido el sistema operativo. El núcleo y los procesos actuales continuarán ejecutándose desde la memoria, pero muchos procesos morirán porque no podrán acceder a algún archivo. El sistema operativo no se iniciará la próxima vez.
fuente
--no-preserve-root
porque eso generalmente no se menciona.Para aquellos a quienes les gusta hacer cosas como esta visualmente mientras escuchan música techno.
Ejecución de rm- rf en Linux (video)
Puntos de bonificación si puede nombrar los procesos a medida que comienzan a morir.
fuente
¿Configurar una VM e intentar divertirse?
Llegará bastante lejos ... si está usando una interfaz gráfica de usuario, puede divertirse notando que las cosas se degradan de manera más visible. (los iconos en los menús dejan de cargarse, etc.)
Si lo dejas ir, el sistema operativo estará más allá de la recuperación, aunque es posible que puedas recuperar algunos datos fácilmente.
De cualquier manera, querrás volver a instalar el sistema operativo.
fuente
Bueno, probarlo en http://bellard.org/jslinux/ produce:
fuente
Recuerdo que esto se masticaba
alt.sysadmin.recovery
en días anteriores, cuando no existía tal cosa/proc
, y/dev
era solo un directorio normal que contenía entradas para un montón de inodos inusuales ...... pero, en algunas variantes de Unix (mi recuerdo es HP-UX, pero que podría estar totalmente equivocado), podría no eliminar la última entrada de directorio para un programa que se estaba ejecutando. (¿Bibliotecas compartidas? ¿Qué son esas?)
En tales sistemas, si iniciado una en modo de mantenimiento (así que nada estaba funcionando, pero su cáscara, ni siquiera
init
, y se montaron ningún sistema de archivos secundarios) e hizoexec /bin/rm -rf /
, que se quedaría con un sistema de archivos raíz completamente vacía a excepción de que/bin
y/bin/rm
lo harías sobrevivir.Los habitantes del aterrador monasterio del diablo consideraban que esto era apropiado y apropiado.
fuente
rm -rf /
no debería permitirse en implementaciones recientes, ya que se ha sugerido que viola el estándar POSIX:"
rm -rf /
" protección en el blog de Oraclefuente
/foo/..
incluso si no estás dentro/foo
. No , no se especifica que no se le permite eliminar el directorio actual (por ejemplorm -r `pwd`
) o el padre del directorio actual.Un punto que no vi hecho por nadie más: los archivos que están abiertos actualmente (por ejemplo, rm), incluso si se eliminan, en realidad no desaparecerán de la unidad hasta que se cierren.
fuente
rm
se eliminará de la fs - el programa está completamente cargado en la memoria, no el archivoPor haberlo intentado una vez (en un servidor que me molesta), registrado como root, en la terminal, perderá casi todo. Lo único que no se borrará será solo el proceso que fue esencial para el sistema operativo.
fuente
/boot
,/sbin
,/etc
,/bin
,/vmlinuz
? Bam, se fue. Buena suerte arrancando sin ellos; de hecho, buena suerte haciendo cualquier cosa una vez que finalice la eliminación.chmod -fR 777 /
es dañino porque apaga los bits setuid y setgid.Hasta dónde puede llegar, depende básicamente de las distribuciones específicas de Unix / Linux.
Pero para responder a su pregunta básica, sí, el
rm
comando se eliminaría junto con cualquier otro comando estándar en/bin
y otras carpetas.Aquí está la prueba simple que he realizado en Linux Ubuntu 15.04 usando VM.
Inicialice la máquina virtual a través de
vagrant
:Luego, cuando intentas eliminar todos los archivos de la manera estándar, no te permite:
Así que vamos a intentarlo
--no-preserve-root
. Siempre verifique que haya iniciado sesión en la máquina virtual (por lo que está teniendovagrant@vagrant-ubuntu-vivid-64:~$
), luego ejecute (no intente eso en casa):Después de eso, vuelve al indicador de shell como si nada hubiera pasado, pero ya no puede ejecutar ningún comando aparte de los pocos integrados
kill
, por lo que puede terminar su trabajo y matar su sesión :)Por ejemplo:
Por lo que prácticamente elimina todo, incluso
rm
,ls
y todos los otros comandos, pero todavía estás registrado de entrada. Hay algunas carpetas especiales que no se eliminaron, como algunos dispositivos/dev
,/proc
o/sys
que no son directorios / archivos normales, pero es un pseudo sistema de archivos que proporciona interfaces para procesar y datos del núcleo.Si no tiene Vagrant o Linux, puede jugar con algunos emuladores JavaScript Linux x86 .
Si está interesado en las posibilidades de recuperarse de tal desastre, verifique:
fuente