pureftpd+mysql+pureftpd_php_manager实现磁盘配额

原创 2007年10月10日 10:48:00
一,这里我选用的操作系统是Red hat AS4.2,安装的时候检查是否选择以下这些软件。
   Apache, or another web server.
   A MySQL server.
   PHP, with the extensions: MYSQL,PCRE,POSIX and SESSION.
   以上软件只要在安装操作系统的时候,软件安装的默认选项就可以满足。   

   二,从http://www.pureftpd.org下载最新的pure-ftpd软件,这里的版本是1.0.21,编译安装pure-ftpd.
   #tar zxvf pure-ftpd-1.0.21.tar.gz
   #cd pure-ftpd-1.0.21
   #./configure /
--prefix=/usr/local/pureftpd /
--with-ldap /
--with-pgsql /
--with-mysql /
--with-puredb /
--with-shadow /
--with-pam /
--with-paranoidmsg /
--with-welcomemsg /
--with-uploadscript /
--with-cookie /
--with-virtualchroot /
--with-virtualhosts /
--with-virtualroot /
--with-diraliases /
--with-quotas /
--with-sysquotas /
--with-ratios /
--with-ftpwho /
--with-throttling /
--with-language=simplified-chinese

上面是比较完整的编译选项,根据需要我们可以减少一些编译选项,在这里我们不需要整合ldap以及postgresql,所以我们可以去掉这两项,只选择从
'--with-mysql /'以下选项就足够了。
'--with-language=simplified-chinese' 是只在Socket 会话显示出来的信息的语言.缺省为英语,simplified-chinese 简体中文,traditional-chinese BIG5繁体中文。
在完成后,看到如下的信息,就说明当前选项的编译配置没有问题,可以进行下一步了。
configure: +--------------------------------------------------------+
configure: | You can subscribe to the Pure-FTPd users mailing-list  |
configure: | to ask for help and to stay informed of new releases.  |
configure: | Go to http://www.pureftpd.org/ml/ now!                 |
configure: +--------------------------------------------------------+

在当前目录下执行,
#make
#make check
#make install
#cd configuration-file
#chmod u+x pure-config.pl
#cp pure-config.pl /usr/local/sbin/
#cp pure-ftpd.conf /usr/local/etc/
#mkdir -p /usr/local/pureftpd/etc
etc这个目录在pureftpd安装完的路径下是没有的,需要我们手工创建。

三,安装pureftpd_php_manager
从http://machiel.generaal.net下载最新的安装文件ftp_v2.1.tar.gz
#tar zxvf ftp_v2.1.tar.gz
#cp -r ftp /var/www/html (/var/www/html 是apache的默认主目录)
改变/var/www/html/ftp/config.php的用户权限属性,
#chown apache config.php
剩下的过程就是我们按照pureftpd_php_manager这个web程序的安装向导一步一步傻瓜完成就可以了。在此之前,我们需要先设置一下mysql的root密码,如果没有的话,有2种方法,
方法一:
格式:mysqladmin -u用户名 -p旧密码 password 新密码
方法二:

    1. 用空密码方式使用root用户登录 MySQL;

    mysql -u root

    2. 修改root用户的密码;

    mysql> update mysql.user set passWord=PASSWORD('新密码') where User='root';mysql> flush privileges;mysql> quit

四,配置pureftpd_php_manager web应用程序
启动apache web服务器,启动mysql
#apachectl start
#service mysqld start
使用浏览器访问http://<server name>/ftp/install.php,
第一步是应用环境检测看是否条件齐全,如果全部显示OK,可以进行下一步,否则就要检查以下是否软件安装正确,mysql服务是否正常启动了,php的一些扩展是否启用。
第二步,选择是全新安装还是更新,选择全新安装.
第三步,配置访问mysql的用户和密码,继续,会创建需要的数据库,用户,表等。
第四步,有个Quota support,Ratio support,这两个是磁盘配额和速度限制的选项,如果需要就选择上,保存配置。
第五步,配置一个pureftpd_php_manager web应用程序的访问密码。
第六步,创建一个pureftpd需要的pureftpd-mysql.conf配置文件,编辑/usr/local/pureftpd/etc/pure-ftpd.conf,找到MySQLConfigFile,这行,修改后面文件路径为/usr/local/pureftpd/etc/pureftpd-mysql.conf,然后在/usr/local/etc/下创建pureftpd-mysql.conf,内容从当前步骤页面里Step B)拷贝粘贴,然后保存。
为了支持pureftpd的虚拟用户功能,我们还需要编辑一下/usr/local/pureftpd/etc/pure-ftpd.conf,找到PureDB这行,修改如下
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
以上就完成了对pureftpd的配置工作,下面我们创建一些用户来验证一下。

五,启动pureftpd服务
pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf

六,用户设置
我们需要为pureftpd添加一个用户和一个用户组,这个用户和用户组的ID将用于虚拟用户和pureftpd_php_manager添加用户。
#groupadd ftpusers
#useradd ftpusers -g ftpusers
这样我们便建立一个ftpusers组和一个ftpusers 用户

通过pure-pw来增加一个虚拟用户
#cd /usr/local/pureftpd/bin
#./pure-pw useradd user1 -u ftpusers -d /home/ftpusers
生成pureftpd.pdb
#./pure-pw mkdb

用户创建完,我么可以用user1来访问ftp了,主目录用的就是 /home/ftpusers。

通过pureftpd_php_manager来增加用户
在浏览器打开http://<server name>/ftp/index.php
创建用户的时候,选择UID和GID我们可以选择前面创建的ftpusers的UID和GID,然后选择Homedir,我们可以通过右边有个下拉按钮完成,点击它,出现系统目录,我们只能选择有ftpusers的主目录,因为我们创建的用户和它使用的同一个UID和GID,它们也就具有同样的权限,如果选择别的目录我们创建的用户将不能顺利登录。使用刚创建的用户登录系统,测试一下结果。

小结
使用pureftpd_php_manager和Mysql我们可以完成对用户的磁盘配额,传输速率进行控制,但是这个限制只能是对基于系统用户ID的基础上创建的虚拟用户,不能脱离系统的用户存在而实现,就是说无论是pureftpd自己支持的虚拟用户还是pureftpd_php_manager在mysql创建的用户,都是对已经存在的系统用户进行补充,用户名可以不同,但是只是对系统用户的资源的重新分配而已。例如上面创建的虚拟用户user1和mysql用户user2,都是使用的ftpusers的目录,对ftpusers的目录进行不同权限的分配和限制。

创建自启动脚本pureftpd在/etc/init.d/:

#!/bin/bash
#
#pureftpd       This shell script takes care of starting and stopping
#               the Pure-Ftp subsystem (pureftpd).
#
# description:  pureftpd server.
# processname: pureftpd
# config: /usr/local/etc/pure-ftpd.conf
# pidfile: /var/run/pure-ftpd/pure-ftpd.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network


prog="PureFtpd"

start(){
        echo -n $"Starting PureFtpd:"
        /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf >/dev/null 2>&1 &
        ret=$?
        if [ $ret -eq 0 ]; then
            sleep 2
            action $"Starting $prog: " /bin/true
        else
            action $"Starting $prog: " /bin/false
        fi
        return $ret
}

stop(){
        echo -n $"Stopping PureFtpd:"
        /bin/kill -HUP `cat "/var/run/pure-ftpd/pure-ftpd.pid"` >/dev/null 2>&1
        ret=$?
        if [ $ret -eq 0 ]; then
            sleep 2
            action $"Stopping $prog: " /bin/true
        else
            action $"Stopping $prog: " /bin/false
        fi
        return $ret
}

restart(){
    stop
    start
}

# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status pureftpd
    ;;
  restart)
    restart
    ;;
  *)
    echo $"Usage: $0 {start|stop|status|restart}"
    exit 1
esac

exit $?

在/etc/rc.d/rc3.d/下创建系统启动脚本,系统在引导的时候会自动启动
ln -s S65pureftpd ../init.d/pureftpd
现在可以使用 service pureftpd start启动pureftpd的服务了。

此文我已在chinaunix上我的blog发表过。

使用Pure-ftpd和Pure-ftpd-mysql进行FTP权限和磁盘配额管理

安装 Pure-ftpd是一个成熟的ftp工具,apt-get已经有打好的包了.我们直接通过apt-get就能很方便的安装. apt-get install pure-ftpd-mysql...
  • white__cat
  • white__cat
  • 2014年05月27日 17:01
  • 2934

Linux下实现磁盘配额的两种方法

http://bbs.51cto.com/thread-561048-1.html Linux下实现磁盘配额的两种方法                     用q...
  • jajavaja
  • jajavaja
  • 2015年11月13日 10:34
  • 2604

容易被忽视的Linux磁盘配额设置

容易被忽视的Linux磁盘配额设置 转自http://yuan2.blog.51cto.com/446689/1695356 1.          实验需求: 1)  ...
  • laughing_cui
  • laughing_cui
  • 2015年09月18日 20:56
  • 1385

PureFTPd+Mysql+PHP_Manager实现虚拟用户磁盘限额

前几天为了让公司内的FTP,决定在centos5下装支持虚拟用户带磁盘限额的FTP软件。 在安装PureFTPd以前,要做好以下准备工作: 二、 安装PureFTPd 1.下面我们开始安装Pur...
  • chen19921212
  • chen19921212
  • 2014年03月04日 17:55
  • 549

【转】ubuntu实现磁盘配额限制步骤

实现磁盘配额限制步骤: 1. 内核里面打开了配额的支持,绝大部分发行版都打开的 2. 以配额方式加载文件系统 3.安装配额软件: 4.配置配额 原/etc/fstab的一项: /dev/hda1 /h...
  • hjd03132301
  • hjd03132301
  • 2012年05月17日 09:19
  • 537

CentOS7上对文件,目录和分区实现磁盘配额

设定文件系统配额vim /etc/fstab 挂载选项中添加usrquota(针对用户),grpquota(针对组) mount -o remount,rw /home cd /home #创建磁盘配...
  • yonggeit
  • yonggeit
  • 2017年04月29日 14:10
  • 2431

Quota就是在Red Hat linux下实现磁盘配额的工具

Quota的安装 在正式的RHLinux的光盘的/RedHat/RPMS目录下,都有相应不同版本的quota软件包 ,可以用ls quota*查看相关的信息,如版本号。当然你可以方便的通过Tab键获得...
  • sflsgfs
  • sflsgfs
  • 2011年03月15日 18:42
  • 695

linux实现磁盘配额设置

磁盘配额限制
  • daobin543
  • daobin543
  • 2017年05月25日 18:10
  • 205

PureFTPd-Manager-1.8

  • 2016年09月24日 13:20
  • 4.38MB
  • 下载

Linux磁盘配额

  • 2011年11月12日 14:28
  • 335KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:pureftpd+mysql+pureftpd_php_manager实现磁盘配额
举报原因:
原因补充:

(最多只允许输入30个字)