1、创建一个虚拟用户对应的那个系统用户:# useradd virftp -s /sbin/nologin
2、创建一个虚拟用户存放用户名密码的文件:
# vim /etc/vsftpd/vusers.list
test #用户
123456 #密码
3、将vusers.list这个文件生成一个vsftpd这个服务能识别的一个二进制的库文件: # yum installdb4 –y #安装db4工具
# db_load -T -t hash -f /etc/vsftpd/vusers.list /etc/vsftpd/vusers.db
然后更改其权限:# chmod 600 vusers.* #修改权限,保证密码文件安全
4、创建虚拟用户: (1)创建一个虚拟用户配置文件存放的一个目录:# mkdir /etc/vsftpd/vsftpd_user_conf (2)进入到这个目录下进行配置文件的创建: # cd /etc/vsftpd/vsftpd_user_conf (3)创建一个跟第2步配置文件中用户名同名的一个配置文件:# vim test 写入内容: local_root=/home/virftp/test anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=50000 (4)既然在上面配置文件中我们有限制test的家目录到/home/vsftpd/test下,我们自然要去创建这个目录: # mkdir /home/virftp/test1 然后更改其属主以及属组为我们的系统用户: # chown -R virftp:virftp /home/virftp/test # chmod +rx /home/virftp
Centos7 还需要执行以下操作: [iyunv@localhost ~]# chmod –w /var/ftproot [iyunv@localhost ~]# mkdir/var/ftproot/upload [iyunv@localhost ~]# setfacl -m u:vuser:rwx /var/ftproot/upload
(5)编辑认证相关的一个配置文件:(告诉配置文件你得用哪种方式去认证,要不然会用系统默认的用户名和密码,现在我们要用虚拟用户的来认证,这时候就需要告诉配置文件他的这些密码库文件这些在哪里,要去用它) # vim /etc/pam.d/vsftpd 添加两行信息,放在最上面 即可: [iyunv@localhost vsftpd]# vim /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
保存之前我们要先去确认下/lib/security/pam_userdb.so这个文件存在不存在 (因为这个关系到系统是32位还是64位的问题,32位的系统是存放在上面所说的路径下的,但是如果是64位操作系统的话是存放在/lib64/security/pam_userdb.so里的) 可以用uname -a查看系统是多少位的操作系统 (6)编辑vsftpd的配置文件: # vim /etc/vsftpd/vsftpd.conf (将一些关于匿名用户信息行的选项打开并将其改成NO;注:local_enable=YES这一行就是默认的YES别去改) 并在配置文件最底下添加一些配置信息: guest_enable=YES guest_username=virftp virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf 配置文件示例: [iyunv@localhost vsftpd]# grep -v ^# vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
use_localtime=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd #设置 PAM 外挂模块提供的认证服务所使用的配置文件名
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES #开启虚拟用户
guest_username=virftp #指定虚拟用户映射的系统用户
virtual_use_local_privs=YES #虚拟用户和本地用户有相同的权限;
user_config_dir=/etc/vsftpd/vsftpd_user_conf #不同的虚拟用户创建独立的配置文件分别管理
(7)重启vsftpd服务:/etc/init.d/vsftpd restart 注意:selinux :可以禁用selinux 或者 执行setsebool –P ftpd_full_access 1
5、接下来就是登陆测试了 (1)可以在本服务器上进行测试:
6、错误排查 用户登陆失败 可以查看日志 [iyunv@localhost log]# tail -f /var/log/secure 其他问题可以查看 这个日志:[iyunv@localhost log]# tail -f /var/log/vsftpd.log
|