我的 vsftpd 设置允许本地用户使用他们通常的密码登录,并允许另一组用户通过 passwd 文件登录。
我现在遇到的问题是,当使用本地用户登录时,任何密码都会被接受并可以让用户登录(使用 passwd 文件登录是可以的)。
这是 vsftpd.conf:
$ cat /etc/vsftpd.conf | grep -v ^#
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=066
anon_umask=066
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chmod_enable=YES
chroot_list_enable=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/ftp/$USER
guest_enable=YES
guest_username=ftp
以及 /etc/pam.d/vsftpd 文件:
$ cat vsftpd | grep -v ^#
auth sufficient /lib/security/pam_pwdfile.so pwdfile /home/ftp/passwd
auth required pam_shells.so
account required pam_permit.so
不确定是否还有其他相关文件我应该发布(?)
答案1
我的 vsftpd 工作正常,不允许使用任何随机密码。这是我的配置文件的输出。
# cat /etc/vsftpd.conf | grep -ve "^#.*"
listen=YES
anonymous_enable=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
local_enable=YES
# cat /etc/pam.d/vsftpd | grep -ve "^#.*"
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
@include common-account
@include common-session
@include common-auth
auth required pam_shells.so
希望这能有所帮助。