
Estoy usando vsftpd y parece que no puedo obtener el comportamiento que deseo a través de vsftpd.conf. ¿Qué sucede si desea que /carpeta sea la carpeta raíz de cambio para no permitir que los usuarios accedan a una carpeta, pero que el directorio de inicio para todas las sesiones sea /carpeta/$USUARIO?
#vsftpd.conf
user_sub_token=$USER
local_root=/folder
#user_config_dir=/etc/vsftpd/users
passwd_chroot_enable=YES
#hide everything
hide_file={.*}
Si uso passwd_chroot_enable=YES, entonces anula local_root=/folder y realiza un chroot de la sesión en /folder/$USER (la carpeta de inicio especificada en /etc/passwd). ¿No deberían ser chroot y la carpeta de inicio de las sesiones dos cosas diferentes? ¿Por qué los están arrastrando juntos de esa manera? Quiero que los usuarios accedan a su carpeta de inicio, pero que se les restrinja solo una carpeta. De esa manera, la ruta dentro de la sesión ftp será /nombre de usuario en lugar de solo /.
Aquí hay un ejemplo de cómo funciona en sftpd (sshd_config):
Match Group mtlsftpprd001_edi-ftp
ChrootDirectory /folder
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -l INFO -d %u
KerberosAuthentication yes