Linux 下vsftpd 虚拟用户配置说明
Vsftpd虚拟用户配置步骤如下:
1、创建虚拟用户数据库
1.1、准备用户名、密码文件
此文件为文本文件,格式为用户名一行、密码紧随其下一行,依次类推。下面是一个样例文件logins.txt
tom
foo
fred
bar
用户“tom”的密码为“foo”,用户“fred”的密码为“bar”。
1.2、创建用户库
我们要使用pam_userdb来验证虚拟用户登录,创建用户库命令如下:
#db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/login.db
2、创建PAM验证文件
在vsftpd的doc目录中有样例文件,只需要将其复制到/etc/pam.d下即可:
#cat /usr/share/doc/vsftpd-$VERSION/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login
#cp /usr/share/doc/vsftpd-$VERSION/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/ftp
3、创建虚拟用户所映射的本地用户
要使用虚拟用户访问FTP,并不是说就不需要在系统中创建系统用户。我们需要创建一个系统用户用于映射虚拟用户。
#useradd -d /home/ftpsite virtual
4、创建vsftp.conf配置文件
要使用虚拟用户访问FTP,需要在vsftpd.conf中有一些特殊配置:
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
listen=YES
listen_port=21
pam_service_name=ftp
pasv_min_port=30000
pasv_max_port=30999
5、重新启动FTP服务
# /etc/init.d/vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
6、测试
# ftp localhost
Connected to localhost.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): tom
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>