mysql管理ftp的虚拟用户

 VSFTPD是linux平台上一款以安全、高效、稳定而著称的ftp服务器软件。软件配置灵活,使用方便,支持多种认证方式包括:匿名用户认证;本地用户认证;虚拟用户认证方式。  前两种很好理解,其中第三种虚拟用户认证方式又分两种,一种为使用文件文件方式创建虚拟用户表后使用db_load转换为佰克利数据库格式使用。还有一种是使用mysql数据库时行管理。 今天写的是如何使用mysql来管理虚拟用户。     1、安装vsftpd  软件 ,启动对应的服务 

       yum -y  install  vsftpd 

       service vsftpd  start

       chkconfig  vsftpd  on  

     2、安装mysql  软件 ,启动对应的服务

        yum  -y  install   mysql-devel  mysql-server

         service  mysqld start

         chkconfig  mysqld  on 

     3、配置mysql数据库 

            3.1 首先设置mysql管理员密码  

                   mysqladmin  -u root  password   test123

            3.2  进入mysql数据。建立相应的数据库和密码认证表。 

                  #mysql  -u root -ptest123

                 mysql> create database  vftp;

                 mysql> use  vftp;

                 mysql> create table  userinfo(name  char(16),pwd  char(32));

                 mysql> insert into  userinfo(name,pwd) value ('jack','123456');

                 mysql> insert into  userinfo(name,pwd)  value  ('lili','654321');

                创建一个vftp的数据库,在其中创件一个userinfo的表文件,插入两条数据

             3.3  为安全考虑,可以创建一个用户专门读取此表。

                 mysql>create user ftpuser;

                 mysql>grant select on vftp.userinfo to ftpuser@localhost identified by 'test123';

                 mysql>flush privileges;

     4、下载安装专门用于验证mysql的pam 认证程序 。 

                4.1  猛击这里下载文件  

                4.2   tar  -xzvf  pam_mysql-0.7RC1.tar.gz    

                4.3   cd pam_mysql-0.7RC1 

                4.4   ./configure   

                4.5    make;make install  

               网上有些教程说的是安装到/lib/security 目录下,不知怎么搞的,我的pam认证文件会安装到/usr/lib/security 目录下,加了--perfix  等参数都不可以。郁闷。  不过大家不用太纠结于此,不管安装到什么位置,只要在/etc/pam.d/vsftpd 中指定文件正确的路径即可。

       5、  添加虚拟用记所对应的系统用户

               mkdir   /var/ftp/ftproot

                useradd   -d  /var/ftp/ftproot   -s /sbin/nologin   virtual

                chown   virtual.  /var/ftp/ftproot 

       6、  配置 /etc/vsftpd/vsftpd.conf 文件 

               在文件底部添加如下两行:

               guest_enable=yes                

               guest_username=virtual  

               pam_service_name=vsftpd

               user_config_dir=/etc/vsftpd_user_conf

               local_root=/var/ftp/ftproot

               chroot_local_user=YES

                并修改原文件中的 anonymous_enable=yes 改为no 

             

       7 、编辑vsftpd 的pam 认证文件。

                /etc/pam.d/vsftpd文件,将原文件中所有内容注释掉,并添加如下两行。

              auth    required   /usr/lib/security/pam_mysql.so user=ftpuser passwd=test123 host=localhost db=vftp table=userinfo usercolumn=name passwdcolumn=pwd  crypt=0

              account    required   /usr/lib/security/pam_mysql.so user=ftpuser passwd=test123 host=localhost db=vftp table=userinfo usercolumn=name passwdcolumn=pwd  crypt=0


8、配置用户单独的配置文件

mkdir /etc/vsftpd_user_conf 创建用户单独配置文件的目录。

cd  /etc/vsftp_user_conf

mkdir user1 创建与用户同名的文件在文件里面写入:local_root=/ftp/user1 指定用户的登录目录。

        

9、创建用户登录目录。

mkdir -p /ftp/user1

chown -R virtual.virtual /ftp


cat user1

local_root=/ftp/usr1

write_enable=YES                允许在文件系统写入权限

anon_upload_enable=YES            开启匿名帐号创建文件功能

anon_mkdir_write_enable=YES        允许创建文件

anon_world_readable_only=NO    允许匿名用户浏览器整个服务器的文件系统

download_enable=YES            运行下载


10、        重启FTP服务器进行测试。

 service  vsftpd  restart 

[root@appServer vsftpd_user_conf]# ftp localhost

Connected to localhost.localdomain.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (localhost:root): use1

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

227 Entering Passive Mode (127,0,0,1,116,204)

150 Here comes the directory listing.

-rw-r--r--    1 1004     1005          489 Aug 02 05:58 ConnectUtil.log

drwxr-xr-x   10 1004     1005         4096 Jul 31 01:56 apache-tomcat-6.0.32

drwxr-xr-x    3 1004     1005         4096 Aug 09 07:04 app

drwxrwxr-x   11 1004     1005         4096 Jul 26 09:26 bjhbstatv3-tomcat

-rw-r--r--    1 1004     1005        63630 Aug 09 07:19 bjhbstatv3.out

drwxrwxr-x   11 1004     1005         4096 Aug 09 06:09 nihastats-tomcat

drwxrwxr-x   23 1004     1005         4096 Aug 10 09:50 oldwar

drwxrwxr-x   11 1004     1005         4096 Aug 09 06:11 other-tomcat

-rw-r--r--    1 1004     1005        18659 Aug 09 07:18 stat.out

drwxrwxr-x   11 1004     1005         4096 Aug 09 05:59 v3test-tomcat

drwxr-xr-x    2 1004     1005         4096 Aug 13 02:50 war

226 Directory send OK.



注解:

            不能登陆的常见问题:  

         1、检查是否开启了selinux  

              getenforc      若开启后请关闭或者是请允许FTP服务连接数据库

               setsebool   ftpd_connect_db=1

        2、检查是否开启了iptable 防火墙。 

              若开启了请关闭或者添加一条规则到规则库里

              iptables  -I  INPUT  2  -p tcp  - -dport 21 -j ACCEPT

         3、若还是有问题,请仔细检查配置文件,看有没有错误的地方。


pam_service_name=vsftpd

user_config_dir=/etc/vsftpd_user_conf

local_root=/home/tomcat

chroot_local_user=YES

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值