¿Es seguro rm -rf un directorio que no es de confianza?

3

Hay muchas herramientas de enlace (enlaces simbólicos, enlaces duros, montaje, etc.) disponibles. Supongamos que un empleado descontento tiene la idea de que va a ocultar un enlace al directorio raíz o algún directorio de misión crítica, de modo que un administrador de sistemas perezoso que ejecuta "rm -rf / home / joe" después de ser despedido termina destruyendo algo importante.

¿Cuáles son las formas en que Joe puede causar problemas con los enlaces? ¿Hay algún ajuste de configuración para proteger al administrador de sistemas perezoso? ¿Cómo debe un administrador de sistemas paranoico eliminar de forma segura un directorio que pueda contener enlaces sospechosos?

    
pregunta Michael Burge 06.06.2017 - 04:11
fuente

1 respuesta

3

El enlace duro a los directorios se ha incluido en los comentarios. Nominalmente no pueden pasar; Los sistemas similares a Unix los han rechazado durante mucho tiempo porque permitirían la creación de bucles. Dado que la asignación de espacio en dicho sistema de archivos se basa en el recuento de referencias , un archivo que realmente se desasigna cuando desaparece el último enlace, un bucle de directorio podría inducir a un montón de archivos inaccesibles que no se reclaman.

Sin embargo, ser rechazado no significa que no se pueda hacer; solo que el supuesto empleado disgustado tendría que jugar con la estructura del disco, lo que implicaría acceso de root o físico (acceso de root para hacerlo de forma remota; si el empleado tenía acceso físico, simplemente podría reiniciar en un CD en vivo o USB para jugar con el disco). En la estructura del sistema de archivos, se hace referencia a los subdirectorios desde el directorio principal, y detectar un caso en el que se haga referencia al mismo directorio desde dos directorios principales distintos requeriría, en general, una visión completa de todo el árbol de directorios. El kernel no intenta mantener una visión de este tipo, ya que potencialmente podría utilizar más memoria RAM que la disponible. Por lo tanto, si las estructuras del directorio se modifican para incluir varios enlaces al mismo directorio, el sistema en vivo no lo notará.

fsck detecta bucles, pero solo lo hace cuando se ejecuta, es decir, solo durante el inicio, y luego solo una vez cada N reinicios, para algún valor (configurable) de N. puede Detectar algunos otros casos de enlaces múltiples al mismo directorio (sin hacer un ciclo), pero no puedo responder por eso, por la misma razón explicada anteriormente: para detectar de forma confiable todos los casos de enlaces múltiples, el árbol de directorios completo debe caber en la RAM. del proceso de detección. Los bucles se detectan fácilmente con un recorrido por el árbol primero en profundidad, pero la estructura acíclica no de árbol requiere más recursos.

Pero, más generalmente, si el Joe malo tenía acceso de raíz o equivalente, y se supone que potencialmente lo usó con una intención nefasta, entonces toda la máquina debe tocarse solo con púas, y solo para empujarla a algunos trituradora de grado industrial.

Los enlaces simbólicos, por otro lado, no causan daño aquí. rm no seguirá los enlaces simbólicos.

Evil Joe podría haber montado otra partición en un subdirectorio de su propio directorio de inicio, pero, de nuevo, requeriría acceso de root, y volvemos al párrafo anterior.

En general, cuando un empleado abandona la empresa, el proceso debe implicar una limpieza / reimpresión de su estación de trabajo o computadora portátil. Si se considera que el empleado es capaz de hacer travesuras y se supone que se ha involucrado en un sabotaje activo, la eliminación no sería lo correcto de todas formas: usted quiere hacer algunos análisis forenses y guardar pruebas.

    
respondido por el Thomas Pornin 09.06.2017 - 21:20
fuente

Lea otras preguntas en las etiquetas