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>

猜你喜欢

转载自carvin.iteye.com/blog/758305
今日推荐