[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Servidor FTP (vsftpd) y enlaces simbólicos



Hola,

No estoy seguro de haverlo entendido bien y además me parece que mi solución es tan evidente que supongo ya la habrás probado, pero... ala voy:


El 24/05/2014 19:21, José Miguel (sio2) escribió:
El Sat, 24 de May de 2014, a las 04:25:42PM +0000, Camaleón dijo:

Antes de nada, quiero aclarar que este no es el típico problema de tener
enjaulado el servidor FTP y un directorio que apunta fuera de la jaula.
Hum... "excusatio non petita..." :-)

Bueno, porsiaca... La verdad es que al intentar averiguar esto, me
saltaba siempre la misma explicación del mount -o bind, etc...

Preguntonta... ¿por qué no trabajas con enlaces duros en lugar de dejar
punteros a rutas que están fuera del alcance del servidor ftp? Se te
lleva más espacio en disco pero puedes verlo como una copia de seguridad.

También se me ocurrió eso (porque el almacen está en el mismo sistema de
ficheros), pero no me convence del todo porque dificulta la limpieza. A
veces alguno se dedica a meter ahí imágenes de máquinas virtuales, o
hasta software pirata (aunque esté terminantemente prohibido). Cuando
toca limpieza, si se usan enlaces simbólicos sé que me basta con
brujulear en el "Almacen", si se usan enlaces duros, no.

Tal y como lo interpreto, no es que no exista el archivo, es que el
servidor ftp no tiene acceso por estar enjaulado.

No, también se tiene acceso al fichero enlazado, el problema como he
dicho es el cambio en la raíz. Lo explico con un ejemplo. Imagina esta
situación muy simple:

/srv/ftp/Almacen/fichero.txt
/srv/ftp/Curso2013-2014/fichero.txt -> /srv/ftp/Almacen/fichero.txt

Los usuarios están enjaulados bajo /srv/ftp (o sea, / para el FTP es
/srv/ftp para el sistema); así que, aunque se tiene acceso al directorio
Almacen, el enlace simbólico a /srv/ftp/Almacen/fichero.txt no funciona.
No lo he probado, la verdad, pero supongo que /Almacen/fichero.txt sí
que funcionaría dentro del ftp (aunque no en el sistema) .

1. Crea /Almacen en la raíz. De esta manera los nuevos enlaces simbólicos tendrán la ruta /Almacen (que corresponde con la ruta dentro del chroot).

2. Monta con --o bind el directorio /Almacen en /srv/ftp/Almacen.



He brujuleado por internet pero sin éxito y sospecho que el problema es
irresoluble[1], pero por si acaso lo pregunto: ¿hay algún modo de hacer
que al subir un fichero, vsftpd sustitutuya el enlace simbólico, en vez
de seguir la ruta y cambiar el fichero enlazado?
Usando enlaces duros o permitiendo el flujo convencional de acceso a los
enlaces simbólicos a través de montajes con "--bind".

Lo primero ya te he dicho por qué no me convence. Lo segundo no
funciona, y la tercera solución (enlaces con ruta relativa) también
tiene su pega. Lo suyo es que hubiera forma de decirle al FTP que no
siguiera los enlaces simbólicos, sino que los machacara; pero no he dado
con la forma; quizás, porque, simplemente, no se puede.


Espero haberme explicado.

Gracias.


Saludos.



--
Francesc Guitart


Reply to: