Posteado por: Gabriel en: Marzo 28, 2008
Para todos aquellos que leyeron el manual sobre el servicio ftp del post anterior, en este post voy a anexar una configuración que me habían consultado, que consiste en cambiar el root_local(directorio raíz) original (/srv/ftp) para todos los usuarios virtuales a otro lugar, específicamente a un directorio de un usuario local como por ejemplo /home/gabriel/descargas.
Tomando en cuenta la configuración de usuarios virtuales que comenté en el manual, tuve que modificar y agregar unas cositas al archivo vsftpd.conf que muestro a continuación:
Primeramente cambie la directiva guest_username para colocarle el usuario local que manejará los usuarios virtuales y en cuyo home estará la carpeta raíz para los mismos, después le comenté con “#” la línea de la directiva user_config_dir para que ya no busque las configuraciones específicas de cada usuario virtual y por último le agregué dos nuevas líneas, una para especificar el directorio raíz con la directiva local_root y la otra para que le otorgue a los usuarios virtuales los mismos privilegios que tienen los usuarios locales con la directiva virtual_use_local_privs=YES. El archivo vsftpd.conf en la sección de usuarios virtuales me quedó como sigue:
# Usuarios Virtuales
#
# Activamos el uso de usuarios virtuales.
guest_enable=YES
#
# Esta directiva permite especificar el usuario que
# se encargará de manejar los usuarios Virtuales.
guest_username=gabriel
#
# Especificamos el directorio de donde el servicio obtendrá
# la configuración personal de cada usuario virtual que
# agregamos a la tabla “vsftpd_login.db”. ESTA LINEA
# LA COMENTE PARA QUE NO SEA INTERPRETADA.
#user_config_dir=/etc/vsftpd/config_por_usuario
#
# Directorio raíz para usuarios registrados en vsftpd_login.db
# a partir del home de tu usuario local, en mi caso la carpeta
# estará en “/home/gabriel/descargas”
local_root=descargas
#
# Esta directiva ya es conocida y supone indicar que los usuarios
# virtuales tendrán los mismos privilegios que los usuarios locales.
virtual_use_local_privs=YES
Con eso el archivo vsftpd.conf ya tiene todo lo que necesita, solo resta verificar que exista el directorio descargas, en mi caso lo tuve que crear sin necesidad de asignarle ningún permiso (por defecto 755 está ok) ni cambiarle de dueño:
gabriel@superserver:~> mkdir descargas
Por último hay que reiniciar el servicio y la nueva configuración debería funcionar sin problemas.
También se puede redirigir el directorio raíz para las conexiones anónimo al mismo directorio en donde los usuarios locales o virtuales suben sus archivos modificando la directiva anon_root:
anon_root=/home/gabriel/descargas
Así los usuarios anónimos podrán descargar los archivos que subieron los demás.
Saludos.
PD: La nueva versión del Manual en Formato PDF que tiene adjunto este anexo puede ser descargado en la sección de archivo o directamente desde AQUÍ!
Gracias por la información, es de gran utilidad, tengo unas dudas pero tengo unas dudas;
- Como puedo cambiar el directorio publico de ftp.
- Como asignar a los usuarios locales no root que pudan subir archivos, pero que no puedan eliminar los de otros usuarios.
Esperando su respuesta se despide
Alexis
Octubre 28, 2008 a 12:23 pm
Muchas Gracias por Tus aportes realmente son muy buenos, y he aprendido mucho de ello, pero hay una duda que me asiste, necesito configurar vsftpd para 16 usuarios (los cuales deberán logearse), independientemente si son externos o internos, y deben tener una única carpeta en común, de donde todos descarguen lo que el administrador suba.
como seria con cuentas reales ?
hay dos archivos que me confunden y son :
- ftpusers
- user_list
muy aparte del chrrot-list
ojala puedas ayudarme, saludosss.