miércoles, 22 de diciembre de 2010

Configurar vsftpd para que el directorio de inicio de un usuario no sea /home/usuario

He tenido que configurar un servidor FTP con unos pocos usuarios. Como precisamente son muy pocos, no me he complicado en hacer usuarios virtuales, sino que estoy utilizando usuarios locales.

El problema me ha surgido cuando he necesitado que uno de esos usuarios, cuando acceda por ftp, lo haga a un directorio diferente al "home". De hecho, es un usuario que no podrá iniciar sesión en el equipo: se crea sólo para ftp.

Lo primero es crear el usuario:
sudo useradd nombre_usuario -s /bin/false
sudo passwd nombre_usuario

Ahora creamos el siguiente directorio:
sudo mkdir -p /etc/vsftpd/users

Ahora, editamos /etc/vsftpd.conf y añadimos las siguientes líneas:
# Configuraciones de usuarios
user_config_dir=/etc/vsftpd/users



Eso significa que las configuraciones que se encuentren en /etc/vsftpd/users se aplicarán por encima de las opciones por defecto.

Entonces, sólo nos queda crear el fichero: /etc/vsftpd/users/nombre_usuario e introducir en él lo siguiente:

dirlist_enable=YES
download_enable=YES
local_root=/directorio/deseado/para/el/usuario
write_enable=NO
anon_upload_enable=NO