实验:实现基于MYSQL的FTP虚拟用户

来源:互联网 发布:数字化校园软件 编辑:程序博客网 时间:2024/06/14 05:37

说明:本实验在两台centos主机上实现,一台作为FTP服务器,一台做mysql数据库服务器。
注意:须把selinux跟防火墙关闭。
1.在FTP服务器安装所需要的包组。

  [root@anuuy ~]# yum install vsftpd   [root@anuuy ~]# yum groupinstall "development tools"  [root@anuuy ~]# yum install mariadb-devel   [root@anuuy ~]# yum install pam-devel    #顺序无所谓。  [root@anuuy ~]# yum install openssl-devel   [root@anuuy ~]# yum install mariadb  [root@anuuy ~]# systemctl start vsftpd  #启动服务  [root@anuuy ~]# systemcrl start mariadb  #启动数据库服务

2.在FTP服务器编译pam_mysql 安装包地址http://pam-mysql.sourceforge.net/

[root@anuuy ~]# tar xvf pam_mysql-0.7RC1.tar.gz  #yum安装也可以,本机没有所以编译安装的,yum可以安装请忽略此步骤。[root@anuuy ~]# cd pam_mysql-0.7RC1/  #进入解压缩目录执行以下操作[root@anuuy ~]# ./configure  --with-mysql=/usr --with-pam=/usr  --with-pam-mods-dir=/lib64/security[root@anuuy ~]# make && make install #安装

3.在ftp服务器,准备虚拟用户映射的系统用户

[root@anuuy ~]# useradd -s /sbin/nologin -d /app/ftpsite ftpvuser  #创建系统账户[root@anuuy ~]# chmod 555 /app/ftpsite/  #给ftpsite文件读和执行权限[root@anuuy ~]# cd /app/ftpsite/ #进入创建upload文件[root@anuuy ~]# mkdir upload #创建文件[root@anuuy ~]# chown ftpvuser upload  #更改upload文件的属主为ftpvuser

4.在mysql 服务器,准备用户和数据表

[root@sunny ~]# yum install mariadb-server  #安装数据库[root@sunny ~]# systemctl start mariadb   #启动数据库[root@sunny ~]# mysql #进入数据库MariaDB [(none)]> create database ftpdb; #创建名称为ftpdb的数据库MariaDB [(none)]> grant all on ftpdb.* to ftpuser@'172.18.19.%' identified by 'centos';   #授权MariaDB [(none)]> create table ftpvusers (id int unsigned  auto_increment primary key,username char(30),password char(48)); #创建表  MariaDB [(none)]> insert ftpvusers (username,password) values ('ftpuser1',password('centos')),('ftpuser2',password('centos'));  #添加记录MariaDB [ftpdb]> flush privileges;   #刷新策略

5.在ftp服务器,创建PAM配置文件

[root@anuuy ~]# vim /etc/pam.d/ftp.mysqlauth required pam_mysql.so user=ftpuser passwd=centos host=192.168.25.108 db=ftpdb table=ftpvusers usercolumn=username passwdcolumn=password crypt=2account required pam_mysql.so user=ftpuser passwd=centos host=192.168.25.108 db=ftpdb table=ftpvusers usercolumn=username passwdcolumn=password crypt=2

6.在FTP服务器调用ftp.mysql文件。

[root@anuuy ~]# vim /etc/vsftpd/vsftpd.confpam_service_name=ftp.mysql   #更改为ftp.mysqlguest_enable=YES   #添加guest_username=ftpvuser    #操作系统账号映射成虚拟账号user_config_dir=/etc/vsftpd/vusers.conf.d/  #指定虚拟用户权限配置文件的所在的目录

7.在FTP服务器上创建虚拟用户权限配置文件

[root@anuuy ~]# mkdir /etc/vsftpd/vusers.conf.d/[root@anuuy ~]# vim /etc/vsftpd/vusers.conf.d/ftpuser1  #创建文件anon_upload_enable=YES  #写入此代码,代码意思:打开匿名上传文件[root@anuuy ~]# vim /etc/vsftpd/vusers.conf.d/ftpuser2local_root=/app/ftpsite2/   #指定默认访问家目录anon_upload_enable=YES      #允许匿名用户上传文件[root@anuuy ~]# mkdir -pv /app/ftpsite2/upload[root@anuuy ~]# chown ftpvuser /app/ftpsite2/upload

完成!如有错误,请留言.^_^.

原创粉丝点击