-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hola!
> Bueno he leido un poco sobre el tema, y creo que voy entendiendo, pero de
> que depende el poder poner un proceso en una jaula, de la programacion del
> proceso?? esto no lo tengo muy claro.
>
> Imaginemos que se monta un ftp en una jaula para actualizar pagina en el
> servidor, tambien apache deberia correr en la misma jaula??
>
> Gracias de antemano.

Vale, digamos que sólo quieres el ftp para subir las páginas (o sea, los 
ficheros) al servidor. Vamos a tracear qué es lo que sucede. Voy poniendo a 
modo de ejemplo el PID (nº de proceso en el kernel) de algunos procesos 
interesantes, a cada paso que vamos dando:

Arranca la máquina:
2000 Apache [/]
2001 ftpd [/]

Alguien se conecta por ftp:
2000 Apache [/]
2001 ftpd [/]
2002 ftpd-spawn [/]

El proceso que sirve al usuario de ftp hace chroot:
2000 Apache [/]
2001 ftpd [/]
2003 ftpd-spawn [/home/ftp/usuario/]

El usuario acaba de usar ftp:
2000 Apache [/]
2001 ftpd [/]

O sea, en otras palabras, el chroot sólo afecta al proceso en curso, y a 
ningún otro (al proceso en curso y a sus descendientes). Se resume como hacer 
un "mount /home/ftp/usuario /" para ese proceso y sus descendientes.
Para una información detallada puedes mirarte la documentación de algunas 
llamadas de sistema, como fork chroot execvp exec... etc, y así sabrás qué es 
lo que está haciendo realmente el kernel.
Entre otras cosas, si en el nuevo árbol de directorios (creado con chroot) no 
montas /proc, algunos procesos no pueden funcionar (top, etc).

Y ya por último, un ejemplo de uso del chroot:
Digamos que te quieres instalar una distribución de linux (sea Gentoo, por 
ejemplo), pero sin tocar para nada tu querida debian. Arrancas en debian, 
creas un directorio /mnt/gentoo, montas una partición ahí, montas proc como 
"mount -t proc proc /mnt/gentoo/proc" y haces un CHROOT al directorio: 
"chroot /mnt/gentoo /bin/bash". Desde entonces estarás ejecutando todos los 
programas de tu nueva distribución gentoo, y nunca más los de debian. 
Obviamente en otras terminales que tengas libres sigues accediendo a tu 
debian sin problema.
Bueno, si te lias, olvida el ejemplo de la distribución instalada (el último 
parráfo). Sé que me explico como el culo, por eso me ha salido este peacho de 
emilio, sólo espero que te sirva de ayuda. Recuerda mirar el manual de la 
llamada de sistema (man 2 chroot)
Un saludo,
- -- 
         Juan Ángel
PGP key on pgp.rediris.es (8FAF18B7)
or search on http://www.rediris.es/cert/servicios/keyserver/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE+7GZGaQjbS4+vGLcRAiRlAJ4rLUq50uwr346hVls2R1IpjpMTMQCfSnlq
hJ4J9m6i/NFr3vOV1nE62QQ=
=8l9B
-----END PGP SIGNATURE-----

Responder a