我想使用带有虚拟用户和 pam_pwdfile.so 的 vsftpd。我安装了 vsftpd,并通过 htpasswd 将两个用户(ramon 和 dragon)添加到我的文件 /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
。使用用户“ramon”登录 ftp 可以正常工作。但使用“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
答案3
在我的 Rackspace / Ubuntu 设置中,向 htpasswd 添加 -d 选项有效: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