ftp下实现文件和mysql验证虚拟用户

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
运维安全中心(堡垒机),免费版 6个月
简介:

  一、基于文件验证虚拟用户

  ①创建虚拟用户数据库文件。

  命令:vim /etc/vsftpd/viruser

  327cf87fecda172d1fbabe943fefd138.png

  把文件转化为数据库格式。

  命令:db_load -T -t hash -f viruser  viruser.db

  bbb8133dbef2dcc619778ffdf6cfaf33.png

  ②创建系统用户和访问FTP目录。

  a6cb4e294ab6f8bd84ffaa0f9b3fb5ef.png

  ③创建pam配置文件。

  命令:vim /etc/vsftpd/viruser.db

  ed8b4ecb9c8307b5f6bfc97c5140857d.png

  ④指定pam配置文件

  d7dfa43a0cc8051e736889ab4f5a91e9.png

  ⑤关闭防火墙和selinux

  bb5d913b75156e982e4f6612870486a8.png

  ⑥给虚拟用户设置各自的权限。

  创建配置文件存放的目录

  命令:mkdir /etc/vsftpd/viruser.d/

  修改ftp配置文件

  命令:vim /etc/vsftpd/vsftpd.conf

      user_config_dir=/etc/vsftpd/viruser.d/

  进入虚拟用户配置目录下,创建各自虚拟用户的权限。

  命令:cd /etc/vsftpd/viruser.d/

  ftp1虚拟用户可读可写可上传。

  命令:vim ftp1

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

  anon_other_write_enable=YES

  85a69c1d76dcdb5011659c2dfbdca5f0.png

  ftp2只可读。

  命令:anon_upload_enable=NO

  anon_mkdir_write_enable=NO

  anon_other_write_enable=NO

  e74465c92d777b978a282f851edf061e.png

  二、基于mysql实现验证虚拟账户。  【就不贴照片了】

  A机器:mysql服务器

  B机器:ftp服务器

  A机器:

  ①A安装数据库,运行安全脚本,创建数据库用户(存放虚拟账户)。

  yum install mariadb

  mysql_seure_installation 【运行安全脚本】

  create database vsftpd; 【创建数据库】

  use vsftpd 【进入vsftpd数据库里面】

  create table ftpusers(name char(30),passwd char(50));  【在数据库vsftpdb创建表】

  grant all on vsftpd.* to 'ftp'@'host' identified by 'centos';  【创建vsftpd数据库管理员】

  insert into ftpusers values ('ftp1',password('centos')), ('ftp2',password('magedu'));  【对ftpusers表插入用户

  select * from ftpusers; 【查看创建的用户】

  B主机:

  ②安装vsftpd包,编译安装pam_mysql【centos6光盘有】

  yum install mariadb-devel  pam-devel

  ./configure --with-pam-mods-dir=/lib64/security --with-pam=/usr/

  make && make install

  在FTP服务器上建立pam认证所需文件

  vim /etc/pam.d/vsftpd.mysql 添加如下两行

  auth required pam_mysql.so user=ftpd  【远程数据库用户名】passwd=centos host=远程主机 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=password crypt=2

  account required pam_mysql.so user=vsftpd passwd=magedu host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

  修改ftpd主配置文件

  vim /etc/ftpd/ftpd.conf

  anonymous_enable=YES

  guest_enable=YES

  guest_username=vuser

  pam_service_name=vsftpd.mysql

  user_config_dir=/etc/vsftpd/vusers_config   【配置vsftpd为虚拟用户使用配置文件目录】

  创建账户:在/etc/vsftpd/vusers_config下创建账户(文件)

  创建所需要目录,并为虚拟用户提供配置文件

  mkdir /etc/vsftpd/vusers_config/

  cd /etc/vsftpd/vusers_config/

  创建文件:

  vim ftp1

  anon_upload_enable=yes    【允许ftp1修改文件】

  vim ftp2

  local_root=/app/ftpdir2          【非匿名用户登录所在目录】

   


本文转自 LUksl 51CTO博客,原文链接:http://blog.51cto.com/19940919/1977204

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
344
分享
相关文章
MySQL底层概述—4.InnoDB数据文件
本文介绍了InnoDB表空间文件结构及其组成部分,包括表空间、段、区、页和行。表空间是最高逻辑层,包含多个段;段由若干个区组成,每个区包含64个连续的页,页用于存储多条行记录。文章还详细解析了Page结构,分为通用部分(文件头与文件尾)、数据记录部分和页目录部分。此外,文中探讨了行记录格式,包括四种行格式(Redundant、Compact、Dynamic和Compressed),重点介绍了Compact行记录格式及其溢出机制。最后,文章解释了不同行格式的特点及应用场景,帮助理解InnoDB存储引擎的工作原理。
MySQL底层概述—4.InnoDB数据文件
MySQL补充性文件
通过以上内容,您可以全面了解和掌握 MySQL 补充性文件的配置、查看及其作用,从而提升数据库管理的效率和质量。
80 36
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
62 20
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
238 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
解决MySQL删除/var/lib/mysql下的所有文件后无法启动的问题
删除 `/var/lib/mysql` 下的所有文件后,需要重新初始化数据目录,确保正确的权限设置,并重新启动 MySQL 服务。通过按照上述步骤操作,可以解决 MySQL 无法启动的问题,并恢复数据库的正常运行。初始化数据目录后,别忘了配置安全设置,并根据需要恢复备份数据。这些步骤不仅能够恢复 MySQL 的正常运行,还能确保数据库的安全性和完整性。
257 2
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
【赵渝强老师】MySQL的参数文件
MySQL启动时会读取配置文件my.cnf来确定数据库文件位置及初始化参数。该文件分为Server和Client两部分,包含动态与静态参数。动态参数可在运行中通过命令修改,而静态参数需修改my.cnf并重启服务生效。文中还提供了相关代码示例和视频教程。
169 6
【赵渝强老师】MySQL的全量日志文件
MySQL全量日志记录所有操作的SQL语句,默认禁用。启用后,可通过`show variables like %general_log%检查状态,使用`set global general_log=ON`临时开启,执行查询并查看日志文件以追踪SQL执行详情。
101 4
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。