ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

实现FTP+PAM+MySQL环境,批量配置虚拟用户

2019-12-23 20:55:53  阅读:249  来源: 互联网

标签:FTP ftp MySQL PAM mysql YES root pam localhost


实现FTP+PAM+MySQL环境,批量配置虚拟用户

搭建环境: CentOS6.5或CentOS6.7

 [root@vhost3 ~]# uname -a
 Linux vhost3 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

yum安装MySQL、vsftpd

 yum install -y vsftpd mysql-server mysql-devel mysql-libs

安装pam

安装依赖包

 yum install -y pam-devel fprintd-pam pam_passwdqc pam

编译安装pam,适用于yum安装的MySQL

 [root@localhost]#wget http://www.huzs.net/soft/vsftpd/pam_mysql-0.7RC1.tar.gz
 [root@localhost]#tar xvf pam_mysql-0.7RC1.tar.gz
 [root@localhost]#cd pam_mysql-0.7RC1
 [root@localhost]# ./configure --with-openssl --with-pam-mods-dir=/lib/security/
 [root@localhost]# make && make install

安装完成后,会生成如下两个文件

 /lib/security/pam_mysql.la  /lib/security/pam_mysql.so

修改vsftpd配置文件(参考)

 anonymous_enable=NO
 local_enable=YES
 write_enable=YES
 local_umask=022
 dirmessage_enable=YES
 xferlog_enable=YES
 connect_from_port_20=YES
 xferlog_std_format=YES
 listen=YES
 pam_service_name=kdui_ftp        # pam认证的配置文件
 userlist_enable=YES
 tcp_wrappers=YES
 guest_enable=YES    # 启用虚拟用户
 guest_username=kdui_ftp        # 虚拟用户的权限是寄宿在操作系统的kdui_ftp这个用户上的,这个用户必须真实存在
 local_root=/home/dms/kdui/dmsdata/userBase/$USER    #指定用户登录的家目录,$USER是内置变量,表示用户名
 user_sub_token=$USER
 virtual_use_local_privs=YES
 xferlog_file=/var/log/xferlog
 dual_log_enable=YES
 vsftpd_log_file=/var/log/vsftpd
 user_config_dir=/etc/vsftpd/user_config        #每个虚拟用户的独立配置文件目录,配置文件和用户同名

根据vsftpd配置文件配置系统环境

创建宿主账号的家目录

 [root@localhost]#mkdir -p /home/dms/kdui/dmsdata/

创建虚拟用户宿主账号

 [root@localhost]# useradd -s /sbin/nologin -d /home/dms/kdui/dmsdata/userBase/ kdui_ftp

创建虚拟用户配置文件目录,(按上述配置文件可以不创建)

[root@localhost]# mkdir -p /etc/vsftpd/user_config

修改pam认证文件

[root@localhost]# vim /etc/pam.d/kdui_ftp 
 #%PAM-1.0
 session       optional        pam_keyinit.so       force revoke
 auth required /lib/security/pam_mysql.so user=ftp passwd=123456 host=localhost db=ftp table=ftpuser usercolumn=username passwdcolumn=password crypt=0
 account required /lib/security/pam_mysql.so user=ftp passwd=123456 host=localhost db=ftp table=ftpuser usercolumn=username passwdcolumn=password crypt=0
 #            调用的模块        数据库用户名    密码      IP         库名    表名      哪个字段作为用户名   哪个字段作为密码
 # crypt表示密码是否加密以及加密方式,0表示明文,1表示使用UNIX的DES加密,2表示使用MySQL的password()函数,3表示口令使用MD5加密

配置MySQL数据库

启动数据库

[root@localhost]# /etc/init.d/mysqld start

#连接数据库

[root@localhost]# mysql -uroot

#建库

 mysql> CREATE DATABASE IF NOT EXISTS `ftp` ;
  mysql> use ftp;

#建表

 mysql> CREATE TABLE IF NOT EXISTS `ftpuser` (
   `id` int(6) NOT NULL AUTO_INCREMENT,
   `username` varchar(20) NOT NULL,
   `password` varchar(20) NOT NULL,
   `status` int(1) NOT NULL DEFAULT '1',
   `level` int(1) NOT NULL DEFAULT '1',
   PRIMARY KEY (`id`)
   ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

插入两条数据即ftp虚拟用户

mysql> INSERT INTO `ftpuser` (`username`, `password`) VALUES ( 'aaa', '123');
mysql> INSERT INTO `ftpuser` (`username`, `password`) VALUES ( 'bbb', '456');

授权pam验证用的mysql账号

mysql>  grant select on ftp.ftpuser to ftp@localhost identified by '123456';
 mysql> FLUSH PRIVILEGES;
mysql>  quit;

启动ftp

[root@loaclhost]#/etc/init.d/vsftpd start

标签:FTP,ftp,MySQL,PAM,mysql,YES,root,pam,localhost
来源: https://www.cnblogs.com/passzhang/p/12088251.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有