meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
linux:chroot [2010/02/28 23:39] – creado lclinux:chroot [2023/01/18 14:10] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +{{tag> chroot }}
 ====== Chroot ====== ====== Chroot ======
 El chroot permite ejecutar procesos con la raíz del sistema cambiada. De manera que es posible usar diferentes instalaciones dentro de una misma .  El chroot permite ejecutar procesos con la raíz del sistema cambiada. De manera que es posible usar diferentes instalaciones dentro de una misma . 
Línea 10: Línea 11:
   * Para ver los procesos que se están ejecutando en el chroot:   * Para ver los procesos que se están ejecutando en el chroot:
 <code> fuser –v /home/copia_Seg/grecasadocu/dev/grecasadocu</code> <code> fuser –v /home/copia_Seg/grecasadocu/dev/grecasadocu</code>
-Si al arrancar los servicios no dice ok en la parte derecha, es que estamos arrancado los servicios dentro del chroot +  * Si al arrancar los servicios no dice ok en la parte derecha, es que estamos arrancado los servicios dentro del chroot 
-Montar directorios de fuera  +===== Montar directorios de fuera ===== 
-Algunos programas, como apache, necesitan ciertos directorios del sistema para poder arrancar. Los principales son /proc y /dev. Para hacer que esos directorios se vean dentro del chroot se puede usar bind.  +  
-Para montarlo manualmente  +Algunos programas, como apache, necesitan ciertos directorios del sistema para poder arrancar. Los principales son /proc y /dev. Para hacer que esos directorios se vean dentro del chroot se puede usar bind. 
-mount -o bind /dev /directorio/chroot/dev  +  
-mount -o bind /proc /directorio/chroot/proc +==== Para montarlo manualmente ==== 
 + 
 +  * mount -o bind /dev /directorio/chroot/dev  
 +  mount -o bind /proc /directorio/chroot/proc  
 Para dejarlo permanente (es decir, que se monte él solo cuando la máquina reinicia) hay que meter las líneas en el /etc/fstab  Para dejarlo permanente (es decir, que se monte él solo cuando la máquina reinicia) hay que meter las líneas en el /etc/fstab 
-/proc    /directorio/chroot/proc   none    bind    0    0  +<file>/proc    /directorio/chroot/proc   none    bind    0    0  
-/dev     /directorio/chroot/dev    none    bind    0    0 +/dev     /directorio/chroot/dev    none    bind    0    0</file> 
-Arrancar procesos dentro del chroot + 
 +===== Arrancar procesos dentro del chroot =====
 Para entrar en el chroot con una shell normal, basta poner  Para entrar en el chroot con una shell normal, basta poner 
-    chroot /directorio/chroot+<code>    chroot /directorio/chroot</code> 
 Si queremos arrancar algún proceso dentro del chroot, sin tener que entrar en él (útil para scripts), hay que añadir la orden a ejecutar al final de la orden anterior  Si queremos arrancar algún proceso dentro del chroot, sin tener que entrar en él (útil para scripts), hay que añadir la orden a ejecutar al final de la orden anterior 
-    chroot /directorio/chroot orden_a_ejectucar argumentos +<code>    chroot /directorio/chroot orden_a_ejectucar argumentos</code> 
-Servicios  +Por ejemplo 
-Ahora mismo, los únicos servicios que interesa dentro del chroot son el apache y el postgresql. +<code> 
 +   chroot /directorio/chroot /etc/init.d/apache2 start 
 +   chroot /directorio/chroot /etc/init.d/postgresql start 
 +   chroot /directorio/chroot /etc/init.d/samba start</code> 
 + 
 +==== Servicios  ==== 
 Hay que tener en cuenta que si hay otro postgres o apache ejecutándose en la misma máquina hay que asegurarse de que no se pisan los puertos de escucha.  Hay que tener en cuenta que si hay otro postgres o apache ejecutándose en la misma máquina hay que asegurarse de que no se pisan los puertos de escucha. 
 Para arrancar cualquiera de los servicios  Para arrancar cualquiera de los servicios 
 +<code>
    chroot /directorio/chroot /etc/init.d/apache2 start    chroot /directorio/chroot /etc/init.d/apache2 start
    chroot /directorio/chroot /etc/init.d/postgresql start    chroot /directorio/chroot /etc/init.d/postgresql start
 chroot /directorio/chroot /etc/init.d/samba start chroot /directorio/chroot /etc/init.d/samba start
 +</code>
  
-Arranque automático +=== Arranque automático ===
 Si sólo hacemos esto, no se arrancarán ellos solos cada vez que se reinicie la máquina.  Si sólo hacemos esto, no se arrancarán ellos solos cada vez que se reinicie la máquina. 
 Para conseguir que se arranquen automáticamente hay que:  Para conseguir que se arranquen automáticamente hay que: 
-hacer dos scripts (uno para cada servicio)  +hacer dos scripts (uno para cada servicio) añadirlos al /etc/init.d/  
-añadirlos al /etc/init.d/ + 
 +Por ejemplo
 Los scripts serían /etc/init.d/apache_chroot y /etc/init.d/postgresql_chroot.  Los scripts serían /etc/init.d/apache_chroot y /etc/init.d/postgresql_chroot. 
 apache_chroot  apache_chroot 
 +<file>
    #!/bin/sh    #!/bin/sh
    chroot /directorio/chroot /etc/init.d/apache2 $*    chroot /directorio/chroot /etc/init.d/apache2 $*
-postgresql_chroot  +postgresql_chroot </file> 
-   #!/bin/sh+<file>   #!/bin/sh
    chroot /directorio/chroot /etc/init.d/postgresql $*    chroot /directorio/chroot /etc/init.d/postgresql $*
-samba_chroot  +samba_chroot </file> 
-   #!/bin/sh +<file>   #!/bin/sh 
-   chroot /directorio/chroot /etc/init.d/samba $*+   chroot /directorio/chroot /etc/init.d/samba $*</file> 
 +   
 Lo único que hacen estos scripts es pasarle la orden que le manda el sistema (que puede ser start, stop, restart, etc) al servicio dentro del chroot.  Lo único que hacen estos scripts es pasarle la orden que le manda el sistema (que puede ser start, stop, restart, etc) al servicio dentro del chroot. 
 Una vez que están creados hay que darles permiso de ejecución (chmod +x) y luego añadirlos al sistema de arranque con update-rc.d  Una vez que están creados hay que darles permiso de ejecución (chmod +x) y luego añadirlos al sistema de arranque con update-rc.d 
-   # update-rc.d apache_chroot defaults +<code>   # update-rc.d apache_chroot defaults</code> 
-   # update-rc.d postgresql_chroot defaults +<code>   # update-rc.d postgresql_chroot defaults 
-   # update-rc.d samba_chroot defaults+   # update-rc.d samba_chroot defaults</code> 
 + 
 + 
 +===== JAILKIT ===== 
 +Existe otra forma de hacer un chroot con el paquete jailki 
 + 
 +http://redes-privadas-virtuales.blogspot.com/2010/02/enjaular-usuarios-chroot-por-sshsftpscp.html
  
 +===== Referencias =====
 +Referencia http://administradores.educarex.es/wiki/index.php/Creaci%C3%B3n_de_un_Entorno_chroot