实现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+PAM+MySQL环境,批量配置虚拟用户的更多相关文章

  1. 搭建FTP+PAM+MySQL环境

    搭建FTP+PAM+MySQL环境 1 搭建环境: CentOS6.5或CentOS6.7 [root@vhost3 ~]# uname -a Linux vhost3 -.el6.x86_64 # ...

  2. Centos 7.5 搭建FTP配置虚拟用户

    Centos 7.5 搭建FTP配置虚拟用户 1.安装vsftpd #vsftpd下载地址 http://mirror.centos.org/centos/7/os/x86_64/Packages/v ...

  3. linux环境下配置虚拟主机域名

    linux环境下面配置虚拟主机域名 第一步:在root目录下面(即根目录)ls(查看文件)cd进入etc目录find hosts文件vi hosts 打开hosts文件并进行编辑在打开的文件最下面添加 ...

  4. Linux上FTP部署:基于mariadb管理虚拟用户

    FTP原理 FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序.图1 FTP 的基本模型 FTP 是基于客户---服务器(C/ ...

  5. vsftpd配置虚拟用户

    #安装vsftpd yum -y install vsftpd #创建本地ftp账户 groupadd ftpuser useradd -g ftpuser -s /sbin/nologin ftpu ...

  6. vsftpd配置虚拟用户为登录用户02

    1.安装vsftpd 安装依赖包: yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl 新建vsftpd系统用户: #建立Vsft ...

  7. Linux系统学习 十八、VSFTP服务—虚拟用户访问—配置虚拟用户访问

    配置虚拟用户访问 首先至少要关闭userlist 改完配置文件是要重启服务来使它生效 其实在刚装好vsftp的时候的配置文件不用修改的情况下配置虚拟用户访问控制是最好的 local_root选项不影响 ...

  8. Linux基础入门之vsFTP+MySQL/MariaDB认证实现虚拟用户配置详解

    https://www.dwhd.org/20150603_144841.html 摘要 VSFTP可以使用系统账户或者匿名账户登录,但是出于安全的考虑,通常建议使用vsftp虚拟账户来登录ftp服务 ...

  9. LAMP环境搭建+配置虚拟域名

    Centos下PHP,Apache,Mysql 的安装 安装Apache yum -y install httpd systemctl start httpd 添加防火墙 firewall-cmd - ...

随机推荐

  1. google advanced search operators

    google advanced search operators https://www.google.com/advanced_search js es6 site:xgqfrms.xyz http ...

  2. 召回 & 召回算法

    召回 & 召回算法 recall https://developers.google.com/machine-learning/crash-course/classification/prec ...

  3. css picture

    css picture https://github.com/cyanharlow https://diana-adrianne.com/ demo https://github.com/cyanha ...

  4. Vue SSR in Action

    Vue SSR in Action https://ssr.vuejs.org/ https://ssr.vuejs.org/api/ https://ssr.vuejs.org/guide/data ...

  5. React Hooks & React v16.8.6

    React Hooks Hooks are a new addition in React 16.8 const [state, setState] = useState(initialState); ...

  6. Taro Next

    Taro Next Taro 2.0 https://aotu.io/notes/2020/02/03/taro-next-alpha/index.html Taro Next 的迁移指南 https ...

  7. HTML5 stream video player

    HTML5 stream video player Aliplayer https://player.alicdn.com/aliplayer/index.html https://help.aliy ...

  8. js 检测浏览器开发者控制台是否被打开

    var element = new Image(); Object.defineProperty(element, "id", { get: function () { debug ...

  9. [转]基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动

    原文出处: https://blog.csdn.net/Forrest_Z/article/details/55002484 准备工作 1.下载串口通信的ROS包 (1)cd ~/catkin_ws/ ...

  10. Hyperf-事件机制+异常处理

    Hyperf-事件机制+异常处理 标签(空格分隔): php, hyperf 异常处理器 在 Hyperf 里,业务代码都运行在 Worker 进程 上,也就意味着一旦任意一个请求的业务存在没有捕获处 ...