Me gustaría usar vsftpd con usuarios virtuales y pam_pwdfile.so. Instalé vsftpd y agregué dos usuarios (ramon y dragon) a través de htpasswd a mi archivo /etc/vsftpd.passwd. El /etc/pam.d/vsftpd está configurado para usar este archivo.
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required pam_pwdfile.so pwdfile /etc/vsftpd.passwd
account required pam_permit.so
@include common-account
@include common-session
El usuario "ramon" también está disponible en formato /etc/passwd
. Un inicio de sesión en ftp con el usuario "ramon" funciona como se esperaba. Pero iniciar sesión usando "dragon" no :/ El resultado siempre es
Login failed: 530 Login incorrect.
Como es posible que haya cometido un error, intenté exactamente la forma documentada en /usr/share/doc/vsftpd/examples/VIRTUAL_USERS/README
. Todavía no hubo suerte. Puedo iniciar sesión con el usuario "ramon", pero no con el usuario "dragon".
¿Algunas ideas?
Respuesta1
Tuve el mismo problema, peroeste hiloayudó.
Aparentemente vsftpd tiene problemas con los hashes MD5. Cuando le pedí a htpasswd que usara crypt() (la opción -d), de repente funcionó:
sudo htpasswd -c -d -b /etc/ftpd.passwd twilight sparkle
Respuesta2
Utilice a continuación para configurar.
http://en.gentoo-wiki.com/wiki/Vsftpd#b.29_pam_pwdfile
Probé esto en mi configuración y funciona como se esperaba.
Respuesta3
Agregar la opción -d a htpasswd funcionó en mi configuración de Rackspace/Ubuntu: htpasswd -c -d passwd username
.
Respuesta4
Instalar:
apt install vsftpd libpam-pwdfile
Hacer usuario:
useradd -N -s /bin/false -d /home/vsftpd vsftpd
Editar/Crear archivos:
# /apt/pam.d/vsftpd
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
# /etc/vsftpd.conf
listen=YES
#listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
nopriv_user=vsftpd
chroot_local_user=YES
pam_service_name=vsftpd
utf8_filesystem=YES
hide_ids=YES
user_config_dir=/etc/vsftpd_user_conf
guest_enable=YES
virtual_use_local_privs=YES
pam_service_name=vsftpd
guest_username=vsftpd
# /etc/vsftpd/ftpd.passwd
# user names without passwords
# user name 'upload' has a password.
# if real password is 'MyPassword' then hash created with command:
# openssl passwd MyPassword
programming:
videos:
documents:
furnitures:
sound:
engineer:
games:
programs:
shits:
upload:X7nyBRuyuJVyg
# /etc/vsftpd_user_conf/documents
local_root=/media/nas/Έγγραφα
# /etc/vsftpd_user_conf/engineer
local_root=/media/nas/Μηχανικός
hide_file={/_unsorted_,/personal}
# /etc/vsftpd_user_conf/upload
local_root=/media/nas/downloads/FTP upload
download_enable=NO
write_enable=YES
allow_writeable_chroot=YES