Я хотел бы использовать vsftpd с виртуальными пользователями и pam_pwdfile.so. Я установил vsftpd и добавил двух пользователей (ramon и dragon) через htpasswd в мой файл /etc/vsftpd.passwd. /etc/pam.d/vsftpd настроен на использование этого файла.
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
Пользователь "ramon" также доступен в /etc/passwd
. Вход на ftp с пользователем "ramon" работает как и ожидалось. Но вход с использованием "dragon" - нет :/ Результат всегда
Login failed: 530 Login incorrect.
Поскольку возможно, что я допустил ошибку, я попробовал именно так, как описано в /usr/share/doc/vsftpd/examples/VIRTUAL_USERS/README
. Все равно безуспешно. Я могу войти под пользователем "ramon", но не под пользователем "dragon".
Есть идеи?
решение1
У меня была та же проблема, ноэта темапомогло.
Видимо, vsftpd имеет проблемы с хэшами MD5. Когда я указал htpasswd использовать crypt() (опция -d), это внезапно сработало:
sudo htpasswd -c -d -b /etc/ftpd.passwd twilight sparkle
решение2
Используйте для настройки ниже.
http://en.gentoo-wiki.com/wiki/Vsftpd#b.29_pam_pwdfile
Я попробовал это на своей установке, и все работает так, как и ожидалось.
решение3
Добавление параметра -d к htpasswd сработало в моей настройке Rackspace / Ubuntu: htpasswd -c -d passwd username
.
решение4
Установить:
apt install vsftpd libpam-pwdfile
Сделать пользователем:
useradd -N -s /bin/false -d /home/vsftpd vsftpd
Редактировать/Создать файлы:
# /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