返回顶部
首页 > 资讯 > 数据库 >mysql+pam模块实现vsftp虚拟用户统一管理
  • 189
分享到

mysql+pam模块实现vsftp虚拟用户统一管理

2024-04-02 19:04:59 189人浏览 泡泡鱼
摘要

Mysql+pam模块实现vsftp虚拟用户统一管理最近开始学mysql,自己做一个小实验,来个总结,比较容易理解,没什么太多理论性的东西。一、实验环境的准备1. 先下载需要用到的软件和依赖包[root@l

Mysql+pam模块实现vsftp虚拟用户统一管理


最近开始学mysql,自己做一个小实验,来个总结,比较容易理解,没什么太多理论性的东西。


一、实验环境的准备


1. 先下载需要用到的软件和依赖包

[root@localhost ~]# yum -y install mariadb-server mariadb-devel pam-devel GCc-c++ vsftpd


2. 安装pam_mysql模块(Plugable Authentication Module 插件式认证模块)

[root@localhost ~]# tar zxf pam_mysql-0.7RC1.tar.gz
[root@localhost ~]# cd pam_mysql-0.7RC1
[root@localhost pam_mysql-0.7RC1]# ./configure --with-mysql=/usr --with-openssl --with-pam-mods-dir=/lib/pam_mysql/

[root@localhost pam_mysql-0.7RC1]# make

[root@localhost pam_mysql-0.7RC1]# make install


3. 启动相关服务

[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# systemctl enable vsftpd


4.数据库安全设置

[root@localhost ~]# mysql_secure_installation

Set root passWord? [Y/n] Y

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y


二、创建虚拟用户


1.创建数据库和表(用于存储虚拟用户的信息)

[root@localhost ~]# mysql -u root -p
Enter password:


MariaDB [(none)]> create database testdb;       #创建测试数据库

MariaDB [(none)]> grant select on testdb.* to linos@localhost identified by 'linux';   #创建用户

MariaDB [(none)]> flush privileges;


MariaDB [(none)]> use testdb;
Database changed
MariaDB [testdb]> create table users(id int AUTO_INCREMENT NOT NULL,name char(20) binary NOT NULL,password char(20) binary NOT NULL,primary key(id));    #创建存储用户的表


2.添加虚拟用户

MariaDB [testdb]> insert into users(name,password) values('tom','linux');    #创建用户

MariaDB [testdb]> insert into users(name,password) values('sam','linux');    #创建用户

MariaDB [testdb]> flush privileges;


三、配置vsftp服务


1.创建pam认证文件

[root@localhost ~]# cat /etc/pam.d/vsftpd.mysql
auth required /lib/pam_mysql/pam_mysql.so user=linos passwd=linux host=localhost db=testdb table=users usercolumn=name passwdcolumn=password crypt=0
account required /lib/pam_mysql/pam_mysql.so user=linos passwd=linux host=localhost db=testdb table=users usercolumn=name passwdcolumn=password crypt=0


2.修改vsftp配置文件,主要需要修改下面的配置

anonymous_enable=NO     #不允许匿名用户登录
local_enable=YES       #允许系统用户登录
write_enable=YES      #允许系统用户有写权限
anon_upload_enable=NO     #不允许匿名用户上传文件
anon_mkdir_write_enable=NO    #不允许匿名用户创建目录
chroot_local_user=YES     #默认情况下用系统用户登录ftp之后,用户可以cd到任何目录,这样会有一定的安全隐患,启用这个选项可以把用户禁锢在自己的家目录

guest_enable=YES    #启用这个选项可以开启非匿名用户重映射为系统用户的功能
guest_username=virtuser    #映射的系统用户
allow_writeable_chroot=YES    #从2.3.5版本之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。 要修复这个错误,可以用命令chmod a-w /home/username去除用户主目录的写权限,或者你可以在vsftpd的配置文件中增加下列一项:allow_writeable_chroot=YES
pam_service_name=vsftpd.mysql    #指定插件pam模块的配置文件


四、验证


1.重启服务

[root@localhost ~]# systemctl restart mariadb
[root@localhost ~]# systemctl restart vsftpd


2.添加虚拟用户映射到的系统用户

[root@localhost ~]# useradd -s /sbin/nologin virtuser    #指定shell为/sbin/nologin,禁止用户登录系统


3.登录虚拟用户验证

mysql+pam模块实现vsftp虚拟用户统一管理


4.验证用户映射

[root@localhost virtuser]# pwd
/home/virtuser
[root@localhost virtuser]# mkdir pub
[root@localhost virtuser]# touch pub/test  #virtuser家目录下创建test文件,然后用sam用户登录ftp,可以看到映射到了virtuser用户的家目录
mysql+pam模块实现vsftp虚拟用户统一管理


5.配置授权权限

有时候我们需要针对不同的虚拟用户设置不同的权限

[root@localhost ~]# tail -1 /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/users_permission/
[root@localhost ~]# mkdir /etc/vsftpd/users_permission/
[root@localhost ~]# cd /etc/vsftpd/users_permission/
[root@localhost users_permission]# echo #anon_upload_enable=YES >> sam

[root@localhost home]# chmod -R 777 virtuser/

在启用匿名用户上传权限之前可以看到是禁止上传的,使用sam用户

mysql+pam模块实现vsftp虚拟用户统一管理

开启匿名用户上传功能,使用sam用户上传一个文件

mysql+pam模块实现vsftp虚拟用户统一管理

其他的权限可以使用同样的方式赋予给用户。




如有纰漏,欢迎指正。




您可能感兴趣的文档:

--结束END--

本文标题: mysql+pam模块实现vsftp虚拟用户统一管理

本文链接: https://lsjlt.com/news/36551.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql+pam模块实现vsftp虚拟用户统一管理
    mysql+pam模块实现vsftp虚拟用户统一管理最近开始学mysql,自己做一个小实验,来个总结,比较容易理解,没什么太多理论性的东西。一、实验环境的准备1. 先下载需要用到的软件和依赖包[root@l...
    99+
    2024-04-02
  • 整合vsftp+pam+mysql—集中管理ftp的虚拟帐号
    整合vsftp+pam+mysql—集中管理ftp的虚拟帐号首先简单介绍下基本原理:vsftp的用户有三种类型,分别是匿名用户、系统用户、虚拟用户某种意义上来说,匿名用户也是系统用户,只系统用户的一个映射。...
    99+
    2024-04-02
  • mysql实现vsftp虚拟用户访问
    使用MYSQL实现VSFTP虚拟用户访问1、查看是否安装 mysql 安装包,没有就使用yum安装一下            ...
    99+
    2024-04-02
  • MySQL中怎么利用pam_mysql模块实现vsftpd虚拟用户
    MySQL中怎么利用pam_mysql模块实现vsftpd虚拟用户,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、实验环境的...
    99+
    2024-04-02
  • 安装vsftpd+pam+mysql实现对虚拟用户身份认证详细步骤
    下文主要给大家带来安装vsftpd+pam+mysql实现对虚拟用户身份认证详细步骤,希望这些内容能够带给大家实际用处,这也是我编辑安装vsftpd+pam+mysql实现对虚拟用户身份认证详细步骤这篇文章...
    99+
    2024-04-02
  • python模拟实现图书管理系统
    本文实例为大家分享了python实现图书管理系统的具体代码,供大家参考,具体内容如下 软件python 事先用代码写一个存储数据的数据库,也就是,.txt文件这是我模拟的一个数据 d...
    99+
    2024-04-02
  • Java实现用户管理系统
    基于Java的简单的用户管理系统,供大家参考,具体内容如下 此系统功能和方法都比较简单 本次系统通过控制台输入商品的基本信息,加入管理员的登录与对是否为管理员进行操作 对于功能的实现...
    99+
    2024-04-02
  • javascript实现用户管理系统
    本文实例为大家分享了javascript实现用户管理系统的具体代码,供大家参考,具体内容如下 一些知识点梳理: 1.获取ta1表格中的某行某列的元素 document.getElem...
    99+
    2024-04-02
  • JS实现用户管理系统
    本文实例为大家分享了JS实现用户管理系统的具体代码,供大家参考,具体内容如下 效果图: html代码:   <h1>新增学员</h1> ...
    99+
    2024-04-02
  • 使用ajax实现一个用户注册模块
    使用ajax实现一个用户注册模块?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。check.php<phpheader("Content-Type:text/ht...
    99+
    2023-06-08
  • MySQL如何实现用户账户管理
    这篇文章主要为大家展示了“MySQL如何实现用户账户管理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL如何实现用户账户管理”这篇文章吧。 MySQL...
    99+
    2024-04-02
  • Mysql 用户权限管理实现
    1. MySQL 权限介绍 mysql中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表,我当前的版本mysql 5.7.22 。 mysql权限表的验证过程为: ...
    99+
    2022-05-25
    Mysql 用户权限管理
  • 利用java实现一个客户信息管理系统
    用博客记录我自学的点点滴滴 类图: Customer类: public class Customer { private String name; ...
    99+
    2024-04-02
  • MySQL中怎么实现用户账户管理和权限管理
    MySQL中怎么实现用户账户管理和权限管理,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。mysql 的权限体系大致分为5个层级:全局层级全局权...
    99+
    2024-04-02
  • MySQL如何实现用户管理与权限管理
    这篇文章主要为大家展示了“MySQL如何实现用户管理与权限管理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL如何实现用户管理与权限管理”这篇文章吧。 ...
    99+
    2024-04-02
  • Python实现学生管理系统的代码(JSON模块)
    构思 学生管理系统 应该包含老师注册登录 管理学生信息(增删改查)还有数据持久化 因为数据存入JSON文件 增删改查都需要读取和修改文件 所以需要一个读写文件的方法文件 file_m...
    99+
    2024-04-02
  • java实现航空用户管理系统
    本文实例为大家分享了java实现航空用户管理系统的具体代码,供大家参考,具体内容如下 题目内容: 某航空公司在其航班到达的不同的国家的不同地方设有不同的办事处,这个项目要求开发一个自...
    99+
    2024-04-02
  • Java怎么实现用户管理系统
    这篇文章给大家分享的是有关Java怎么实现用户管理系统的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下此系统功能和方法都比较简单本次系统通过控制台输入商品的基本信息,加入管理员的登录与对是否为管理员进行...
    99+
    2023-06-29
  • 统一用户管理系统实现企业信息化的关键
    统一用户管理系统是一种集成化、智能化的管理工具,旨在帮助企业实现用户信息的集中管理、身份认证和权限控制。通过统一用户管理系统,企业可以提高员工的工作效率,降低管理成本,同时增强企业的信息安全。1. 用户信息的集中管理传统的用户信息管理方式...
    99+
    2024-01-01
    企业信息化 系统实现 关键
  • java中怎么实现一个航空用户管理系统
    这期内容当中小编将会给大家带来有关java中怎么实现一个航空用户管理系统,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。用户模块: 用户添加2. 密码修改3. 个人信息查看4. 账号状态修改(禁用0、启用1...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作