如果你在一个大公司工作可能你的ftp服务器要为许多的员工每人分配一个ftp帐号如果我们使用本地帐号的话无疑是很麻烦的并且也是不安全的那么我们可以使用虚拟帐户来管理但是大量的用户信息会让管理员花费大量的精力且管理很麻烦这时我们可以使用数据库mysql来分类存放用户信息并且还可以使用web界面为员工分配虚拟帐户这里我们使用pureftpmysqlPureAdminphp的方法来实现。
1.安装mysql数据库因为图形界面pureadmin需要php的支持所以我们把php与apache也一起安装
[rootlocalhost ~]# yum install mysql mysql-devel mysql-server php-mysql httpd php
安装之后对php与mysql的连接进行测试测试结果要正确之后才能进行下面的实验
2.源码安装pureftp
下载pureftp主文件pure-ftpd-1.0.36.tar.gz 并且解压缩到/usr/local/src/下。
[rootlocalhost pureftp]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src/
进入目录对pureftp进行安装请自行安装开发库
[rootlocalhost pureftp]# cd /usr/local/src/pure-ftpd-1.0.36/
[rootlocalhost pure-ftpd-1.0.36]# ./configure \
--prefix/usr/local/pureftpd \
--with-mysql \
--with-shadow \
--with-pam \
--with-welcomemsg \
--with-uploadscript \
--with-COOKIE \
--with-virtualchroot \
--with-virtualhosts \
--with-diraliases \
--with-quotas \
--with-puredb \
--with-sysquotas \
--with-ratios \
--with-ftpwho \
--with-throttling
[rootlocalhost pure-ftpd-1.0.36]# make
[rootlocalhost pure-ftpd-1.0.36]# make install
3.生成pureftpd的服务脚本
查看sbin文件
[rootlocalhost pure-ftpd-1.0.36]# ll /usr/local/pureftpd/sbin
总计 588
-rwxr-xr-x 1 root root 16934 12-20 06:07 pure-authd
-rwxr-xr-x 1 root root 429262 12-20 06:07 pure-ftpd
-rwxr-xr-x 1 root root 48418 12-20 06:07 pure-ftpwho
-rwxr-xr-x 1 root root 21457 12-20 06:07 pure-mrtginfo
-rwxr-xr-x 1 root root 33332 12-20 06:07 pure-quotacheck
-rwxr-xr-x 1 root root 34881 12-20 06:07 pure-uploadscript
修改
[rootlocalhost configuration-file]# chmod ax pure-config.pl
[rootlocalhost configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/
4.我们查看一下安装文件的目录
[rootlocalhost configuration-file]# ll /usr/local/pureftpd/
总计 12
drwxr-xr-x 2 root root 4096 12-20 06:07 bin
drwxr-xr-x 2 root root 4096 12-20 06:11 sbin
drwxr-xr-x 3 root root 4096 12-20 06:07 share
可以发现并没有etc目录在出于习惯我们经常把配置文件放在etc目录下我们也建立一个etc目录
5.[rootlocalhost configuration-file]# mkdir /usr/local/pureftpd/etc
为了方便启动pureftp我们可以让pureftp加入启动服务可以直接使用service pureftpd start来启动
[rootlocalhost configuration-file]# cd ..
[rootlocalhost pure-ftpd-1.0.36]# cp contrib/redhat.init /etc/init.d/pureftpd
并修改其中内容
为此服务添加可执行权限
[rootlocalhost pure-ftpd-1.0.36]# chmod 755 /etc/init.d/pureftpd
配置虚拟用户登录
[rootlocalhost html]# mkdir /ftproot
[rootlocalhost html]# chmod -R 777 /ftproot
[rootlocalhost html]# useradd virtualftp -d /ftproot -s /sbin/nologin -M
设置环境变量
[rootlocalhost html]# echo PATH$PATH:/usr/local/pureftpd/bin/ >> /etc/profile
[rootlocalhost html]# source /etc/profile
6.配置mysql 认证
创建配置文件
[rootlocalhost html]# cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-ftpd.conf /usr/local/pureftpd/etc/
修改配置文件
[rootlocalhost html]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
导入pureftp.sql 这个文件需要自己下载
在导入时会出现这个错误[rootlocalhost pureftp]# mysql -u root -p < pureftp.sql
Enter password:
ERROR 1064 (42000) at line 15: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near -------------------------------------------------------
可以如下修改[rootlocalhost pureftvim pureftp.sql .sql
再次进行导入操作就可导入成功,导入成功之后对ftp用户进行授权操作让ftp用户密码为”abc”
mysql> grant all privileges on ftpusers.* to ftplocalhost identified by abc;
Query OK, 0 rows affected (0.08 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
在导入之后最好看一下这个文件内容它里面包含进入web页面的帐号与密码
[rootlocalhost pureftp]# vim pureftp.sql 可以找到下面一行内容
admin就是登录web界面的用户名,passwd为密码
7.配置web界面程序
[rootlocalhost pureftp]# tar -zxvf PureAdmin-0.3.tar.gz -C /var/www/html
[rootlocalhost html]# cd /var/www/html
[rootlocalhost html]# mv PureAdmin-0.3 pureadmin
修改pureadmin的配置文件
[rootlocalhost html]# cd /var/www/html/pureadmin/
[rootlocalhost pureadmin]# vim config.php
8.下载pureftpd-mysql.conf文件并对其进行修改
[rootlocalhost pureftp]# cd /usr/local/pureftpd/etc/
[rootlocalhost etc]# vim pureftpd-mysql.conf
27 MYSQLUser ftp
32 MYSQLPassword abc
37 MYSQLDatabase ftpusers
45 MYSQLCrypt md5
9.现在可以在浏览器中输入ip地址与目录进行对web界面的访问
进入后台再创建一个用户
虽然现在已经创建了一个用户但是你如果查看/ftproot目录时你是不能看到生成的user目录的这需要我们使用这个用户登录一次FTP才能够生成这个目录
C:\Users\guodong>ftp 192.168.2.10
连接到 192.168.2.10。
220---------- Welcome to Pure-FTPd [privsep] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 23:15. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
用户(192.168.2.10:(none)): user //用户名
331 User user OK. Password required
密码: //输入密码
230-OK. Current restricted directory is /
230 0 Kbytes used (0%) - authorized: 102400 Kb
ftp>
现在可以查看一下/ftproot目录
[rootlocalhost sbin]# ll /ftproot/
总计 4
drwxr-xr-x 2 1000 1000 4096 12-20 23:15 user
虚拟目录创建成功。
本文转自 guodong810 51CTO博客原文链接http://blog.51cto.com/guodong810/1094601如需转载请自行联系原作者