2)安装生成口令认证文件所需的软件包db4-utils
3)使用db_load –T –t hash –f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db命令生成虚拟用户口令认证文件
4)编辑vsftpd的PAM认证文件:
vi /etc/pam.d/vsftpd,将里面的内容全部删除或者注释掉,另外添加下面两句命令:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
5)建立本地映射用户并设置宿主目录权限
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。
useradd –d /home/vftpsite –s /sbin/nologin vsftpuser
chmod 700 /home/vftpsite
6)到主配置文件/etc/vsftpd/vsftpd.conf配置虚拟用户
7)重启该服务
四.测试
1.基于匿名用户的测试:(这里只测试新创建的目录forup1)
1)使用匿名账户ftp登录,密码为空;
2)客户端上传test.txt到已经创建好的目录forup1
3)到ftp服务器查看是否上传成功,如果需要下载已经上传的文件test.txt,可通过修改该文件的权限
使用命令chmod 644 test.txt修改文件的权限:
客户端测试是否能下载:
2.基于系统用户的测试:(这里使用新建的账户user1来测试)
1)使用虚拟用户user1登录到ftp服务器,并创建一个新的文件
2)在服务器上查看/home/user1目录下的文件,是否添加成功
3.基于虚拟用户的测试:
五.可能遇到的问题解决方案
1.如果在服务重启的过程中提示重启失败,用命令 netstat -lnpt 查看各个端口的启用状态,确保21端口侦听的是vsftpd的服务
P.s.一般情况下,wdos系统的21端口被pureftpd服务占用了,这时可以通过命令 service pureftpd stop 来关闭这项服务
2.如果在测试过程中出现530登录失败这样的错误,则通过命令vi /etc/selinux/config 进入该文件查看sellinux是否设置为disable,同时通过命令 service iptables stop 将防火墙关闭,重启vsftpd服务,重新测试即可。
如果有问题,请移步一起讨论