一. 创建虚拟用户
(1).创建文本文件virtual_suer.txt 用户账号和口令分别为一行记录
如下所示
Zhangsan //账号
123456 //口令
Lisi
111111
Wangwu
000000
(2)检查系统中是否安装db4的所有软件包。尤其是db4-devel-*
(3)使用db_load –T –t hash –f ./virtual_user.txt(账号文件的路径) /etc/vsftpd/virtual_user.db(生成的数据库文件)
还要修改该数据文件的权限 chmod 600 /etc/vsftpd/virtual_user.db
(4)新建一个虚拟用户的PAM文件
Vi /etc/pam.d/virtual_user.vu
内容如下
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_user -- 看你的操作系统是32还是64
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_user
(5)建立虚拟用户设置该用户所要访问的目录。并设置虚拟用户的访问权限
useradd -d /home/ftpsite virtualsuer
chmod 700/home/ftpsite
(6) 编辑vsftpd.conf配置文件进行如下修改。
guest _enable=YES
guest_username=virtualuser
pam_service_name=virtual_user.vu
(7)重新启动服务,使配置生效。
(8)即可登录。
本人遇到的问题在配置过程中有:
(1).当本地用户登陆时出现不能打开/home,一般都是selinux的问题 一般是使用命令setenforce 0.
视情况而定
(2)当匿名用户需要下载或者删除某个文件的一系列的动作时。因为匿名用户的根目录在/var/ftp/pub,所以需要把pub 的权限改成777或者555.也就是要有r和x。
(3)一般本地用户登录显示login failed了。有两个地方可以查一下。第一是local_enable这个值是不是YES,第二个就是pam_service _name=vsftpd是不是这个值
(4)就是在配置虚拟用户时。我配置好些遍,始终登录不成功。因为我配置的书上的一样。最后查看了登录日志。原来是认证文件没有认证成功。查找原因是操作系统是64位的。在PAM文件中的lib 我一直写是lib,其实应该写成lib64,重启服务后,就显示login successfully。
(5)当需要添加虚拟用户时,直接在文件中添加即可.别忘记再执行一遍:db_load –T –t hash–f ./virtual_user.txt /etc/vsftpd/virtual_user.db
再次强调在修改配置文件前一定要备份,修改完后一定要重启服务。要认真查阅日志文件,他会告诉你的错误原因。