首先此文章针对其他博友写的方法配置虚拟用户不成功【http://blog.youkuaiyun.com/lsc_000/article/details/49964877】的补充。
一、安装
1. 查看是否安装vsftpd
rpm -qa | grep vsftpd
2. 安装
yum -y install vsftpd
3. 设置开机启用
systemctl enable vsftpd
二、配置vsftpd
打开vsftpd配置文件
# vi /etc/vsftpd/vftpd.conf
anonymous_enable=NO #禁用匿名用户
local_enable=YES #启用本地用户
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
chroot_local_user=YES
listen=YES
chroot_local_user=YES
listen=YES #监听ipv4地址的进程模式
listen_ipv6=NO
userlist_enable=YES #是否启用名单访问控制
userlist_deny=NO #这个名单上的用户是允许还是拒绝登陆【这个名单作为黑名单还是白名单的意思】
userlist_file=/etc/vsftpd/user_list #这个名单到底在哪
tcp_wrappers=YES
guest_enable=YES #开启虚拟用户登陆方式
guest_username=userone #虚拟用户登陆时的身份【此用户要在系统中创建,不用设置密码】
user_config_dir=/etc/vsftpd/vconf #虚拟用户配置文件存放目录
pam_service_name=vsftpd #虚拟用户的加密配置文件名:指的是/etc/pam.d/下的文件名。
local_enable=YES #启用本地用户
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
chroot_local_user=YES
listen=YES
chroot_local_user=YES
listen=YES #监听ipv4地址的进程模式
listen_ipv6=NO
userlist_enable=YES #是否启用名单访问控制
userlist_deny=NO #这个名单上的用户是允许还是拒绝登陆【这个名单作为黑名单还是白名单的意思】
userlist_file=/etc/vsftpd/user_list #这个名单到底在哪
tcp_wrappers=YES
guest_enable=YES #开启虚拟用户登陆方式
guest_username=userone #虚拟用户登陆时的身份【此用户要在系统中创建,不用设置密码】
user_config_dir=/etc/vsftpd/vconf #虚拟用户配置文件存放目录
pam_service_name=vsftpd #虚拟用户的加密配置文件名:指的是/etc/pam.d/下的文件名。
三、创建虚拟用户用户名和密码明文文件,放在/etc/vsftpd/下即可,我取名vuser.txt
vim /etc/vsftpd/vusers.txt
web1
123456
web2
1234567
web3
12345678
123456
web2
1234567
web3
12345678
四、创建用户密码密文文件
如果没有db4需要先进行安装。安装Berkeley DB工具:# yum install db4 db4-utils生成虚拟用户认证的db文件:# db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
五、编辑认证文件:
# vi /etc/pam.d/vsftpd
全部注释掉原来语句再增加以下两句【或者直接放到第一行】:
##查看系统版本号
# getconf LONG_BIT
#系统为32位的
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
#系统为64位的
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
六、创建虚拟用户配置文件
# mkdir /etc/vsftpd/vconf
vim /etc/vsftpd/vconf/web2
local_root=/ftpuser/web2/ #虚拟用户根目录,根据实际情况修改(如果没有需要创建)。该目录必须无写权限 chmod -R 555 目录。
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
七、重点来了!!!必须创建本地用户并且设置密码【密码必须同vuser.txt中的相同,否则虚拟用户登陆不成功】
useradd -s /sbin/nologin -M web1
echo 123456 | passwd --stdin web1
然后就登陆OK了,不要问我为什么!!!具体看该版本FTP的虚拟用户配置指导,今天没空了,明天我也去看看,睡觉!!!
英文指导位置:/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README.configuration