Solución 1:
Respuesta completa que resolvió mi pregunta para cualquier otra que busque un tutorial paso a paso...
Instalar vsftpd
usando esto como una guía.
- Crear usuario con
useradd [user_name]
. - Crear contraseña de usuario con
passwd [user_name]
. (Se le pedirá que especifique la contraseña). - Crear directorio FTP en
/var/ftp
y luego enlace al directorio 'inicio' que desea especificar para este usuario conmount --bind /var/www/vhosts/domain.com/ /var/ftp/custom_name/
. -
Cambie el directorio de inicio del usuario con
usermod -d /var/ftp/custom_name/ user_name
En
/etc/vsftpd/vsftpd.conf
, asegúrese de que todos los siguientes estén configurados:-- chroot_local_user=SÍ
- chroot_list_enable=SÍ
- chroot_list_file=/etc/vsftpd.chroot_list
Enumere solo los usuarios en el vsftpd.chroot_list
archivo si desea que tengan acceso completo a cualquier parte del servidor. Al no incluirlos en este archivo, está diciendo que restrinja todos los vsftpd
usuarios a su directorio de inicio especificado.
En otras palabras (para referencia):-
- significa que, de forma predeterminada, TODOS los usuarios se chrootean excepto los usuarios en el archivo...
- chroot_local_user=SÍ
- chroot_list_enable=SÍ
- significa que, de forma predeterminada, SÓLO los usuarios del archivo se chrootean...
- chroot_local_user=NO
- chroot_list_enable=SÍ
Solución 2:
Para mí no funcionó incluso después de lo anterior. Ya había un local_root configurado en un directorio, y haga lo que haga, el directorio del usuario no se ha encarcelado. Finalmente, funcionó después de solo cambiar
chroot_local_user=SÍ
Y siguiendo el procedimiento
- vi /etc/vsftpd.conf
- Agregue la línea 'user_config_dir=/etc/vsftpd_user_conf' (sin comillas)
- mkdir /etc/vsftpd_user_conf;
- cd /etc/vsftpd_user_conf
- vi nombre_usuario;
- Ingrese la línea 'local_root=/srv/ftp/user_name'
Solo mis dos centavos si alguien más tuvo el mismo problema.