创建vsftpd的基于pam_mysql的虚拟用户机制

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

在centos7系统上实现搭建vsftp服务,基于pam_mysql的虚拟用户机制:

编译安装pam_mysql

准备环境:

]# yum -y groupinstall "Development Tools" "server Platform Development"

]# yum -y install pam-devel openssl-devel mariadb-devel mariadb-server

]# yum -y install vsftpd


解压pam_mysql-0.7RC1.tar.gz源码包

]# cd pam_mysql-0.7RC1/

]# ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security

]# make && make install


启动服务

]# systemctl start mariadb.service


]# mv vsftpd.conf{,.test}

]# cp vsftpd.conf.bak vsftpd.conf 在复制的配置文件中修改,把原配置文件保留;


登录mysql数据库,创建库、表、用户并授权

]# mysql

> CREATE DATABASE vsftpd;

> use vsftpd;

> CREATE TABLE users (

id int AUTO_INCREMENT NOT NULL PRIMARY KEY,

name char(30) NOT NULL,

password char(48) binary NOT NULL  );


> INSERT INTO users(name,password) VALUES ('tom',password('mageedu'));

> INSERT INTO users(name,password) VALUES ('jerry',password('mageedu'));


> GRANT ALL ON vsftpd.* TO vsftpd@localhost IDENTIFIED BY 'mageedu';

> GRANT ALL ON vsftpd.* TO vsftpd@'127.0.0.1' IDENTIFIED BY 'mageedu';

> FLUSH PRIVILEGES;


测试用户是否能登录mysql

]# mysql -uvsftpd -pmageeud

> exit

数据库配置完毕。


配置vsftpd,通过pam-mysql模块链接mysql服务器,来检索出用户和密码:

]# less /pam_mysql-0.7RC1/README 查看源码包中的配置文件说明

]# man vsftpd.conf 查看配置文件说明


]# vim /etc/pam.d/vsftpd.mysql

wKioL1cgqwaQPzuIAAAxtqgGjq0426.png

创建一个系统用户,为虚拟用户映射使用的用户及授权

]# useradd -s /sbin/nologin -d /ftproot vusre


配置vsftpd,确保匿名用户有哪些权限,可根据需要开启或禁用相关权限

]# vim /etc/vsftpd/vsftpd.conf

wKioL1cfYf2T_nc7AAAxBhtaEvw333.png


]# mkdir -pv /ftproot/{pub,upload}

确保用户的家目录,让其它远程访问的用户能读、执行权限,这样才能cd进此目录;但不能有写权限,否则远程ftp登录失败;

]# chmod go+rx /ftproot/

]# chmod u-w /ftproot/


启动服务

]# systemctl start vsftpd.service


此时虚拟用户创建成功,可在本地另一主机上测试访问ftp服务器了。











本文转自 crystaleone 51CTO博客,原文链接:http://blog.51cto.com/linsj/1768047,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
存储 关系型数据库 MySQL
MySQL MVCC全面解读:掌握并发控制的核心机制
【10月更文挑战第15天】 在数据库管理系统中,MySQL的InnoDB存储引擎采用了一种称为MVCC(Multi-Version Concurrency Control,多版本并发控制)的技术来处理事务的并发访问。MVCC不仅提高了数据库的并发性能,还保证了事务的隔离性。本文将深入探讨MySQL中的MVCC机制,为你在面试中遇到的相关问题提供全面的解答。
370 2
|
4月前
|
缓存 关系型数据库 MySQL
MySQL并发支撑底层Buffer Pool机制详解
【10月更文挑战第18天】在数据库系统中,磁盘IO操作是性能瓶颈之一。为了提高数据访问速度,减少磁盘IO,MySQL引入了缓存机制。其中,Buffer Pool是InnoDB存储引擎中用于缓存磁盘上的数据页和索引页的内存区域。通过缓存频繁访问的数据和索引,Buffer Pool能够显著提高数据库的读写性能。
276 2
|
5月前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
983 4
|
8月前
|
存储 SQL 关系型数据库
MYSQL--锁机制*
MYSQL--锁机制*
|
4月前
|
存储 关系型数据库 MySQL
优化 MySQL 的锁机制以提高并发性能
【10月更文挑战第16天】优化 MySQL 锁机制需要综合考虑多个因素,根据具体的应用场景和需求进行针对性的调整。通过不断地优化和改进,可以提高数据库的并发性能,提升系统的整体效率。
245 1
|
5月前
|
监控 关系型数据库 MySQL
MySQL锁机制与解决死锁问题
MySQL锁机制与解决死锁问题
414 5
|
5月前
|
存储 关系型数据库 MySQL
深入解析MySQL数据存储机制:从表结构到物理存储
深入解析MySQL数据存储机制:从表结构到物理存储
567 1
|
5月前
|
存储 SQL 关系型数据库
MySQL 的锁机制,那么多的锁,该怎么区分?
MySQL 的锁机制,那么多的锁,该怎么区分?
62 0
|
6月前
|
存储 SQL 关系型数据库
深入解析MySQL事务机制和锁机制
深入解析MySQL事务机制和锁机制
|
6月前
|
存储 SQL 关系型数据库
深入MySQL锁机制:原理、死锁解决及Java防范技巧
深入MySQL锁机制:原理、死锁解决及Java防范技巧