linux系统上搭建FTP服务,使用MYSQL验证用户
来源:互联网 发布:求解最短路径的算法 编辑:程序博客网 时间:2024/05/18 03:50
Linux的FTP的三种登录方式: 匿名登录、本地用户登录和虚拟用户登录。
- 匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。
- 本地用户登录:使用系统用户登录,在/etc/passwd中。
- 虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。
FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。本文就是使用此种登陆方式。
一、系统基础要求和配置。
查看是否开启selinux。
cat /etc/selinux/config
如果SELINUX=enforcing,则改成SELINUX=disabled。即关闭selinux。
vi /etc/selinux/config
查看防火墙是否存在规则,如果规则有用,则不要自行下面清空操作。
iptables -L -n
清空防火墙规则列表。
iptables -Fiptables -X
保存防火墙配置。
service iptables save
重启系统。
reboot
二、vsftpd的安装和配置。
安装vsftpd。
yum install vsftpd -y
添加一个运行vsftpd的系统用户。
useradd -s /sbin/nologin www
创建自定义用户配置目录。
mkdir -p /etc/vsftpd/vsftpd_user_conf
创建测试站点aaa的目录和一个aaa的文件夹,供区分账户以测试。
mkdir -p /www/web/www.aaa.com/aaa
创建测试站点bbb的目录和一个bbb的文件夹,供区分账户以测试。
mkdir -p /www/web/www.bbb.net/bbb
设置ftp根目录的权限为700。
chmod -R 700 /www
设置ftp根目录的所有者为www。
chown -R www:www /www
备份vsftpd的主配置文件。
mv -f /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default
创建一个新的vsftpd配置文件。
wget http://www.huzs.net/soft/vsftpd/vsftpd.conf -O /etc/vsftpd/vsftpd.conf
三、mysql的安装和配置。
安装mysql-server和客户端开发包。注意:pam_mysql不支持yum安装的mysql5.5版本以上。请不要使用第三方源安装mysql5.5。
yum install mysql mysql-server mysql-devel -y
设置mysql开机自动开启服务。
chkconfig mysqld on
启动mssql服务。
service mysqld start
用root身份登录mysql。
mysql -uroot
CREATE DATABASE IF NOT EXISTS `ftp` ;use ftp;CREATE TABLE IF NOT EXISTS `ftpuser` ( `id` int(6) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(20) NOT NULL, `status` int(1) NOT NULL DEFAULT '1', `level` int(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;INSERT INTO `ftpuser` (`username`, `password`) VALUES ( aaa, '123');INSERT INTO `ftpuser` (`username`, `password`) VALUES ( bbb, '456');grant select on ftp.ftpuser to ftp@localhost identified by '123456';FLUSH PRIVILEGES;quit;
验证mysql的设置是否正确。
mysql -u ftp -p
填入刚设置的密码123456
mysql>show databases;use ftp;show tables;select * from ftpuser;quit;
四、pam-mysql的安装和配置。
安装编译开发工具
yum install wget cpp gcc gcc-c++ make automake autoconf pam-devel -y
进入src目录。
cd /usr/local/src
下载并安装pam_mysql。
wget http://www.huzs.net/soft/vsftpd/pam_mysql-0.7RC1.tar.gztar xvf pam_mysql-0.7RC1.tar.gzcd pam_mysql-0.7RC1./configure --with-openssl --with-pam-mods-dir=/lib/security/ --with-mysql=/var/lib/mysql/makemake install
查看文件是否存在。
ls /lib/security/pam_mysql.so
备份vsftpd的默认pam配置文件
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.default
创建新的pam配置文件
vi /etc/pam.d/vsftpd
复制粘贴如下内容:
auth required /lib/security/pam_mysql.so user=ftp passwd=123456 host=localhost db=ftp table=ftpuser usercolumn=username passwdcolumn=password crypt=0account required /lib/security/pam_mysql.so user=ftp passwd=123456 host=localhost db=ftp table=ftpuser usercolumn=username passwdcolumn=password crypt=0
crypt=0:表示口令使用明文方式保存在数据库中
crypt=1:表示口令使用UNIX的DES加密方式加密后保存在数据库中
crypt=2:表示口令使用MySQL的password()函数加密后保存在数据库中
crypt=3:表示口令使用MD5散列值的方式保存在数据库中
五、添加测试站点测试。
为测试站点aaa添加自定义配置。注意加粗位置!
echo "local_root=/www/web/www.aaa.com/">/etc/vsftpd/vsftpd_user_conf/aaa
为测试站点bbb添加自定义配置。
echo "local_root=/www/web/www.bbb.com/">/etc/vsftpd/vsftpd_user_conf/bbb
六、设置并启动vsftpd
设置vsftpd开机自动启动。
chkconfig vsftpd on
现在启动vsftpd。
service vsftpd start
七、在客户端登录并测试。
打开我的电脑,输入ftp://你服务器的IP
输入用户名:aaa,密码123,应该可以看到aaa目录。看是否可以改名、创建子目录和删除。
输入用户名:bbb,密码456,应该可以看到bbb目录。看是否可以改名、创建子目录和删除。
并且具有完全权限。
八、异常处理
如果你在安装pam_mysql之前就yum安装了mysql5.5,那么你需要先卸载之
yum remove mysql mysql-server mysql-devel mysql-libs php-mysql mysqlclient16 mysqlclient15
然后移除第三方源
mv /etc/yum.repos.d/atomic.repo /home/
再安装mysql的默认版本
yum install mysql mysql-server mysql-devel
最后重新编译安装pam-mysql
./configuremakemake install
如果你使用php5.4、mysql5.1、nginx最新稳定版,那么你在使用yum升级的时候会自动把mysql升级到5.5.这样又会出现ftp无法登陆的情况。那么我们可以添加yum更新排除,来使mysql不更新。
具体操作为:
vi /etc/yum.conf
添加:
exclude=mysql*
好了,基本完成了。
- linux系统上搭建FTP服务,使用MYSQL验证用户
- Android系统上使用ANMPP搭建Nginx+PHP+MySQL+FTP服务(以天猫魔盒TMB100A为例)搭建网站
- Linux服务器上搭建FTP服务
- 搭建Linux/Ubuntu下的ProFTPd Ftp文件服务器 及其 MySQL虚拟用户验证、Quotatab磁盘限额
- linux系统上FTP使用
- linux系统安装ftp服务并配置ftp用户
- Linux搭建FTP服务
- linux 搭建FTP服务
- CentOS (Linux) 上开启FTP服务并配置用户
- CentOS (Linux) 上开启FTP服务并配置用户
- centos上搭建ftp服务
- linux上搭建ftp服务器,并设置本地用户登陆。
- linux上搭建ftp服务器,并配置虚拟用户。
- Linux系统ftp服务
- Ubuntu14.10系列Linux系统用vsftpd搭建ftp服务
- CentOS7 FTP服务搭建(虚拟用户访问FTP服务)
- Linux下FTP服务搭建
- Linux下搭建ftp服务
- ViewPager动态加载本地图片
- 对程序员非常重要的24个软技能
- Eclipse快捷键
- C++字符输入getchar()和字符输出putchar()
- java读取xml文档之sax方式
- linux系统上搭建FTP服务,使用MYSQL验证用户
- 事件处理-事件流
- 所有的浏览器
- substring和substr的区别
- WINDBG本地调试WIN7
- 【elasticsearch】初识es搜索引擎,单节点安装
- Mat-获取指定行列数据
- OpenGL
- C# Show()跟ShowDialog()