domingo, 27 de enero de 2013

chroot unix que es

Hablando un poco sobre la temática oficial de este sitio(tutoriales para os tipo unix,derivados de unix),vamos a darle un repaso a chroot,un comando que nos puede servir en mas de una ocasión:

Wikipedia :


chroot en los sistemas operativos derivados de Unix, es una operación que invoca un proceso, cambiando para este y sus hijos el directorio raíz del sistema. "chroot" puede referirse a la llamada de sistema chroot(2) o al programa ejecutable chroot(8). Comúnmente, el entorno virtual creado por chroot a partir de la nueva raíz del sistema se conoce como "jaula chroot".

El sistema chroot fue introducido por Bill Joy el 18 de marzo de 1982 (17 meses antes de que BSD 4.2 fuera publicado) para probar su sistema de instalación y construcción.

Bill Joy:

Considerado uno de los mejores desarrolladores de la historia de la computación, según afirma Eric Schmidt, el actual director general de Google, llegó a reescribir el núcleo BSD en un fin de semana. Bill Joy en abril del año 2000 mostró su preocupación por los efectos de las tecnologías emergentes en su artículo de Why the future doesn't need us,1 publicado en la revista Wired. Esto tras quedar impactado por la lectura de un fragmento escrito por el primitivista Theodore Kaczynski. Posteriormente formaría un fondo de capital riesgo destinado a invertir en dichas tecnologías desde un enfoque de prevención securitaria.

Al usar "chroot" para invocar un proceso, se impedirá al mismo y a sus procesos hijos acceder por su nombre a ningún fichero que esté por encima del nuevo directorio raíz. Esto es entendido a menudo como un dispositivo de seguridad, ya que en teoría crea una zona segura para ejecutar un programa que provoca desconfianza, no está probado, o de alguna forma puede presentar un comportamiento peligroso para la integridad del sistema. Sin embargo, cabe señalar que las jaulas chroot no son tan seguras como otro tipo de jaulas o la virtualización.

Debido a que los programas esperan encontrar en lugares determinados su espacio de almacenamiento, los archivos de configuración o sus bibliotecas de enlace dinámico, entre otros, preparar una jaula chroot implica también incluir dichos recursos dentro de ella.

Los programas tienen permitido llevarse descriptores de archivos abiertos (sean archivos físicos, tuberías, o conexiones de red) dentro de la jaula, lo cual puede simplificar el diseño haciendo innecesario dejar archivos funcionales dentro del directorio chroot. Esto también funciona como un sistema de capacidades simple, en el cual, al programa se le otorga acceso explícito a los recursos externos del chroot basado en los descriptores que puede llevar a su interior.

Fuente : es.wikipedia.org

En el uso mas común que le damos a chroot es para acceder a una nueva raiz (/),por ejemplo desde un livecd o desde otra partición acceder a una raíz de otro sistema derivado de Unix.

Por ejemplo en distintas particiones o discos duros tenemos una jerarquía de carpetas:


Imagen via : Linux gnu blog

Y podemos hacer chroot a estas desde el usuario root:

Primero montamos nuestra partición en una carpeta de la raíz actual

Por ejemplo:

mount /dev/sda4 /mnt

Después montamos nuestro

mount --bind  /dev /mnt/dev

El parámetro --bind concede únicamente (parte de) un único sistema de archivos)

También podemos usar otros parámetros como --rbind , mas información;

man mount

Y por ultimo hacemos el chroot:

chroot /mnt 

También podemos  definir una shell de trabajo

chroot /mnt /bin/bash

Ahora estando en el entorno enjaulado podemos usar ese sistema,por ejemplo si estas en Debian y tienes una partición de ubuntu donde tenias links,ahora puedes usar links desde el entorno enjaulado,mas que nada el uso que le damos es para acceder a una raiz en modo enjaulado,sea una partición un disco duro o hasta por ssh :D

Les dejo unos links para mas información :

Ejecución de servicios en un entorno chroot
Jaula chroot ssh
 Y por supuesto en terminal :

man chroot

No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.