配置基于mysql的虚拟用户认证vsftp服务器

1.安装vsftp、mysql、epel_release(epel源,后面要安装的pam_mysql认证模块需要这个源)、pam_mysql

2.刚装的mysql运行一下/usr/bin/mysql_secure_installation

3.建立数据库vsftpd,建表user,

    create database vsftpd;

    use vsftpd;

    create users(id int auto_increment primary key,name char(20) binary,passwd char(41) binary);

4.插入两条测试用户数据

    insert into users(name,passwd) values(t1,password('t1'));

    insert into users(name,passwd) values(t2,password('t2'));

5.添加连接数据库的用户(vsftpd)以及密码(vsftpdp@ssword)

    grant select on vsftpd.* to 'vsftpd'@'127.0.0.1' identified by 'vsftpdp@ssword'; 

6.添加pam配置文件并修改vsftpd.conf

  在/etc/pam.d/下建立文件 vsftpd.mysql

 添加内容:

    auth required pam_mysql.so user=vsftpd passwd=cztvu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2 

    account required pam_mysql.so user=vsftpd passwd=cztvu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2

修改vsftpd.conf添加 

    guest_enable=yes

    guest_username=vuser (虚拟用户映射到系统的vuser本地用户,我们需要等下在后面添加一下vuser本地用户)

    user_config_dir=/etc/vsftpd/vuser_conf/ (这个目录里面可以添加对应的虚拟用户名称的配置文件,可以给不同的虚拟用户配置不同的权限)

    pam_service_name=vsftpd.mysql

7.添加vuser本地用户

    useradd -s /sbin/nologin vuser -d /var/ftproot  (这个目录/var/ftproot可以自己定,最终你可以通过配置虚拟用户的配置文件,指定虚拟用户的根目录)

8.本例虚拟用户是t1、t2所以你需要在/etc/vsftpd/vuser_conf/这个目录下建立同名的t1 t2配置文件,具体配置根据实际需求而定。

调试配置的时候要注意文件夹权限。

原创文章,作者:duiduifei,如若转载,请注明出处:http://www.178linux.com/19123

(0)
duiduifeiduiduifei
上一篇 2016-06-22 15:28
下一篇 2016-06-22 15:35

相关推荐

  • 通过Nginx来安装一个Discuz

    这次由于时间有限,所以我就没有用编译安装来启动LMP,只有Nginx 是编译安装的 因为是在centos7上面安装的Nginx所以我们这里由于能力有限,暂时不能将其加入开机启动,日后我会进行改进,将其加入开机启动。这里我们给出Nginxd的编译选项及环境   yum groupinstall "Development&…

    Linux干货 2016-10-30
  • 11文件查找find和locate

    有些时候我们是想要在系统中查找某个具体的文件,却不知道路径在哪里,只是知道其中的某些特性,比如大小或者名字什么的。这时候就要用到查找工具啦。 在文件系统上查找符合条件的文件命令有两个,locate和find,其中locate是非实时查找即数据库查找。而find是实时查找 locate: 用法:locate [OPTION]… [PATTERN]&…

    Linux干货 2016-11-27
  • PHP运行模式

    PHP运行模式有4钟: 1)cgi 通用网关接口(Common Gateway Interface))2) fast-cgi 常驻 (long-live) 型的 CGI3) cli  命令行运行   (Command Line Interface)4)web模块模式 (apache等web服务器运行的模块模式) 1.  CGI(…

    Linux干货 2015-04-10
  • 马哥教育第一天

    来到马哥教育第一天,初步接触IT,第一次写博客,不知道写点啥,记几个地址吧。

    2018-03-26
  • 获取Linux命令帮助信息及man的用法

    经常在使用Linux命令时不清楚命令都有哪些参数,命令和参数的具体含义,我们根据命令的不同来源大致可以分为内部命令和外部命令。 内部命令帮助信息的获取:command help 那我不知道这个命令是不是内部命令,使用type command来确认是一个内部的还是一个外部的命令 外部命令帮助信息的获取:常用的有–help,man,info,还有一些…

    Linux干货 2016-09-17
  • 马哥教育网络班21期-第六周课程练习

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;  # :%s@^[[:space:]]\+@#&@g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; &nb…

    Linux干货 2016-08-15