一、安装所需要程序
1、事先安装好开发环境和mysql数据库;

首先配置好yum的server.repo文件
  1. [root@localhost yum.repos.d]# cd

  2. [root@localhost ~]# mkdir /mnt/cdrom

  3. [root@localhost ~]# mount /dev/cdrom /mnt/cdrom/

  4. //上边是挂载镜像,以便使用yum

  5. [root@localhost ~]# cd /etc/yum.repos.d/

  6. [root@localhost yum.repos.d]# vim server.repo

  7. //添加内容

  8. [base]

  9. name=Instructor Server Repository

  10. baseurl=file:///mnt/cdrom/Server //这里的镜像为本地挂载的

  11. gpgcheck=0

  12. [root@localhost ~]# yum -y install mysql-server mysql-devel

  13. [root@localhost ~]# service mysqld start

  14. [root@localhost ~]# yum -y groupinstall "Development Tools" "Development Libraries"

2.安装pam_mysql-0.7RC1
这里笔者在事先准备好的压缩包拉近linux中,大家可以到网上下载这个压缩包。来按照下面的步骤实行:

然后关掉。回到linux中。ls查看可以看到文件已经在家目录中了。
  1. [root@localhost ~]# tar zxvf pam_mysql-0.7RC1.tar.gz

  2. [root@localhost ~]# cd pam_mysql-0.7RC1

  3. [root@localhost pam_mysql-0.7RC1] # ./configure --with-mysql=/usr --with-openssl

  4. [root@localhost pam_mysql-0.7RC1] # make

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

3.安装vsftpd
  1. [root@localhost pam_mysql-0.7RC1]# yum -y install vsftpd

  2. // 注:这个时候需要查看下selinux服务是否开启,因为他的开启会对后边的服务产生影响

  3. [root@localhost ~]# getenforceEnforcing

  4. [root@localhost ~]# setenforce 0

  5. [root@localhost ~]# getenforcePermissive

  6. //当然。这里也需要到vim /etc/selinux/config将其中的SELINUX=enforcing替换为SELINUX=permissive

二、创建虚拟用户账号
1.准备数据库及相关表
首先请确保mysql服务已经正常启动。而后,按需要建立存储虚拟用户的数据库即可,这里将其创建为vsftpd数据库。
  1. mysql> create database vsftpd;

  2. mysql> grant select on vsftpd.* to vsftpd@localhost identified by 'doubao';

  3. mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'doubao';

  4. mysql> flush privileges;

  5. mysql> use vsftpd;

  6. mysql> create table users (

  7. -> id int AUTO_INCREMENT NOT NULL,

  8. -> name char(20) binary NOT NULL,

  9. -> password char(48) binary NOT NULL,

  10. -> primary key(id)

  11. -> );

2、添加测试的虚拟用户
根据需要添加所需要的用户,需要说明的是,这里将其密码采用明文格式存储,原因是pam_mysql的password()函数与MySQL的password()函数可能会有所不同。
  1. mysql> insert into users(name,password) values('tom','magedu');

  2. mysql> insert into users(name,password) values('jerry','magedu');

  3. mysql>\q

三、配置vsftpd
1.建立pam认证所需文件
  1. [root@localhost ~]# vi /etc/pam.d/vsftpd.mysql

  2. 添加如下两行

  3. auth required /lib/security/pam_mysql.so user=vsftpdpasswd=doubaohost=localhostdb=vsftpdtable=usersusercolumn=namepasswdcolumn=passwordcrypt=0

  4. account required /lib/security/pam_mysql.so user=vsftpdpasswd=doubaohost=localhostdb=vsftpdtable=usersusercolumn=namepasswdcolumn=passwordcrypt=0

2.修改vsftpd的配置文件,使其适应mysql认证
建立虚拟用户映射的系统用户及对应的目录
  1. [root@localhost ~]#useradd -s /sbin/nologin -d /var/ftproot vuser

  2. [root@localhost ~]#chmod go+rx /var/ftproot

  3. //请确保/etc/vsftpd/vsftpd.conf中已经启用了以下选项

  4. anonymous_enable=YES

  5. local_enable=YES

  6. write_enable=YES

  7. anon_upload_enable=NO

  8. anon_mkdir_write_enable=NO

  9. chroot_local_user=YES

  10. //而后添加以下选项

  11. guest_enable=YES

  12. guest_username=vuser

  13. //并确保pam_service_name选项的值如下所示

  14. pam_service_name=vsftpd.mysql

四、启动vsftpd服务
  1. [root@localhost ~]# service vsftpd start

  2. Starting vsftpd for vsftpd:                                [ OK ]

  3. [root@localhost ~]# chkconfig vsftpd on

  4. //查看端口开启情况

  5. [root@localhost ~]# netstat -tnlp |grep :21

  6. tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      11336/vsftpd

使用虚拟用户登录,验正配置结果,以下为本机的命令方式测试,你也可以在其它Win Box上用IE或者FTP客户端工具登录验正

  1. [root@localhost ~]# ftp localhost

五、配置虚拟用户具有不同的访问权限
vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可。
1、配置vsftpd为虚拟用户使用配置文件目录
  1. [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

  2. //添加如下选项

  3. user_config_dir=/etc/vsftpd/vusers_dir

2、创建所需要目录,并为虚拟用户提供配置文件
  1. [root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/

  2. [root@localhost ~]# cd /etc/vsftpd/vusers_dir/

  3. [root@localhost ~]# touch tom jerry

3、配置虚拟用户的访问权限
虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让tom用户具有上传文件的权限,可以修改/etc/vsftpd/vusers/tom文件,在里面添加如下选项即可。
anon_upload_enable=YES

转载于:https://blog.51cto.com/liyanxin/1342805

vsftpd+pam+mysql实现ftp构建相关推荐

  1. vsftpd pam mysql_vsftpd+mysql+pam实现基于数据库的安全的ftp服务

    1.方案分析 mysql:存储用户信息的,可以放vsftpd用户的信息 pam:可插入用户认证模块 VSFTPD:安全的ftp服务 2涉及到的知识点: vsftp 软件安装.启动服务,监听端口,配置文 ...

  2. vsftpd pam_mysql_vsftpd+mysql+pam虚拟用户无法登录ftp服务器,请给位大侠帮忙!

    "/etc/pam.d/vsftpd文件配置如下: #%PAM-1.0 auth sufficient /lib/security/pam_mysql.so user=vuser passw ...

  3. vsftpd+pam_mysql+mysql

    vsftpd+pam_mysql+mysql RH5.0enterprise上实现,转载marion的异样足迹. 一.安装相关软件包 mysql-5.0.41 pam_mysql-0.7RC1 vsf ...

  4. vsftpd mysql_虚拟主机与vsftpd和MySQL在Debian Etch

    虚拟主机与vsftpd和MySQL在Debian Etch 版本1.0 作者:Falko Timme Vsftpd是Linux最安全最快的FTP服务器之一. 通常,vsftpd配置为与系统用户一起工作 ...

  5. 安装ftp连接linux服务器配置,Linux下FTP安装及配置(VSFTPD服务器安装配置、FTP客户端安装配置)...

    安装说明 安装环境:CentOS-6.3 安装方式:yum安装.rpm源码安装 软件:ftp-0.17-51.1.el6.x86_64.rpm 下载地址:http://pan.baidu.com/s/ ...

  6. 简单vsftpd安装配置和 ftp客户端操作笔记

    #安装vsftpd yum install vsftpd #创建要登录ftp的本地用户 useradd -s /bin/false   用户名         #创建禁止ssh登录的用户 passwd ...

  7. myftpadmin+proftpd+mysql架设ftp服务器_linux下用Proftpd搭建ftp服务器及配置方法

    首先proftpd是一个开源软件,其官方地址是http://www.proftpd.org,目前最高版本是:1.3.1(非稳定版),稳定的版本是1.3.0,下载文件为proftpd-1.3.0a.ta ...

  8. mysql的dockerfile_dockerfile构建mysql镜像

    使用dockerfile构建mysql,镜像构建完成后,运行容器后,启动mysql服务总是报错 Fatal error: Can't open and lock privilege tables: T ...

  9. mysql按照列构建索引_列存储索引增强功能–在线和离线(重新)构建

    mysql按照列构建索引 In this article, we will explore ' Clustered columnstore online index build and rebuild ...

最新文章

  1. 计算机视觉专业术语总结:构建计算机视觉的知识体系
  2. Redis在windows实现将数据缓存起来定时更新读取
  3. empire-web可视化
  4. bl小说里面有个机器人管家_5G无人扫地机器人+进口吸扫一体机 杭州环卫工装备升级了...
  5. 使用计算机正确开机方法,电脑开关机的正确步骤
  6. pgpool-II的master-slave模式的分析
  7. Oracle rac11g 安装报INS41112
  8. 手动修改美化7zip图标 - 附替换文件
  9. 安装北京极通EWebs作为企业虚拟化平台突然出现应用程序无法访问的现象
  10. R语言绘制差异火山图示例
  11. GO分析(cytoscape)
  12. 【3ds Max】 - 如何使用分布式渲染?
  13. Interactive Sketch-Based Normal Map Generation with Deep Neural Networks
  14. Snappy Ubuntu Core 登陆 Bubblegum-96 单板机
  15. java 中的todo_详解在TodoController中引用TodoRepository
  16. Chrome安装程序遇到错误 0xe0000008解决办法
  17. 巴西龟饲养日志----野外捉鱼
  18. nomad 服务编排_Nomad微服务的容器模式
  19. google海底光缆图_海底10万公里,原来谷歌建了这么多光缆
  20. 征信报告有误可以修改吗?

热门文章

  1. 头条丨2017年人工智能年报
  2. python安装Pyro报错:SyntaxError: Missing parentheses in call to ‘exec‘
  3. 数字孪生等前沿技术,将如何解码未来交通?
  4. AI领域五年引用量最高的10大论文:Adam登顶,AlphaGo、Transfromer上榜
  5. 科学家打造全套人工神经系统 帮助瘫痪病人重新控制身体
  6. 数字孪生:连结现实与数字世界
  7. 骁龙855在AI性能上真的秒杀麒麟980?噱头而已
  8. 一文看懂芯片测试产业
  9. 一条推文卖出 290 万美元天价?网友:我竟是隐藏的富翁
  10. Flask框架从入门到精通之转换器(四)