1、安装所需软件yum -y install vsftpd mysql-server mysql-devel pam_mysql,注意的是pam_mysql在epel源中。
2、登录mysql服务器创建一个vsftpd库,库中有users表,表中插入的name字段有tom和jerry。然后新建一个数据库登录用户vsftpd并授权select权限。
3、在/etc/pam.d/目录下单独创建vsftpd.mysql文件,内容如下。注意的是user=“数据库的登录用户名”,passwd=“数据库的登录用户密码”,host=“数据库所在的主机IP”,db=“数据库中的库名”,table=“库中的表名”,usercolumn=“表中的虚弥用户名字段”,passwdcolumn=“表中的虚弥用户登录密码字段”,crypt值为2表明在插入数据时候密码通过password( )函数进行加密、值为0是表明密码没有加密的方式。
4、创建虚拟用户映射的本地用户。
5、修改vsftpd配置文件/etc/vsftpd/vsftpd.conf如下:
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
guest_enable=YES 启动虚弥用户模式
guest_username=virtual 映射到本地的用户名(用在数据库中定义的用户登录vsftpd服务器时候,会映射到此用户)
6、重启vsftpd服务后使用虚拟用户tom登录成功。
7、为tom和jerry这两个虚拟账户分别配置各自的配置文件,在/etc/vsftpd/vsftpd.conf配置文件中定义虚拟用户配置文件的路径如下。并在此路径下分别创建以用户名命名的用户配置文件,各自用户的配置文件的内容如下。
8、重启服务后,进行测试。使用tom登录后能够上传文件,而jerry登录后不能上传文件。
vsftpd.conf配置文件说明:
anonymous_enable=YES 允许匿名用户登录
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建文件
anon_other_write_enable=YES 允许匿名用户删除文件
local_enable=YES 允许本地用户登录
write_enable=YES 允许本地用户有写权限
chroot_local_user=YES 锁定所有用户在其家目录
chroot_list_enable=YES
chroot_list_file=/PATH/TO/FILE 锁定特定的用户在其家目录
/etc/vsftpd/ftpusers 此文件里的用户被禁止登录(通过pam自身的方式进行限制)
userlist_enable=YES
userlist_deny=YES | NO
/etc/vsftpd/user_list 如果userlist_deny 为YES,则此文件里的用户被禁止登录(默认是禁止)