快捷搜索:   nginx

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


} else {
//    die(530, LOG_DEBUG, MSG_NO_ANONYMOUS_LOGIN);   // 注释掉该行
addreply(331, MSG_USER_OK, account);           // 修改为这行
}
发现一个PureFTPd的缺点,就是使用了磁盘限额后,虽然已起作用了,但是会有以下情况发生。
在连接后只能看到限的文档数,无法正常显示用了多少磁盘空间。
解决方法:
修改源代码
/src/quotas.c
在第71行有一条语句为:
*bufpnt=0;这一条语句会将用户根目录下的.ftpquota文档中得到的第二个使用空间数清为0,将该语句注释掉,不影响使用。
在第73行有一条语句为:
old_quota.size = quota->size = strtoull(bufpnt + 1, NULL, 10);
读出并传给quota->size的值有错误,不应该是bufpnt+1,而应该是buf+1,或是bufpnt,修改好后,重新编译安装即可。
当然在网页上传时还是看不到,但是用命令行或是FTP工具能够正常看到显示磁盘配额信息。
为了对访问

限制,我们做如下修改:
前提条件是我们安装了:
#rpm –ivh auth_mysql…..
在mysql中运行:
    CREATE DATABASE auth;
    USE auth;
    CREATE TABLE users (
      user_name CHAR(30) NOT NULL,
      user_passwd CHAR(20) NOT NULL,
      PRIMARY KEY (user_name)
    );
    CREATE TABLE groups (
      user_name CHAR(30) NOT NULL,
      user_group CHAR(20) NOT NULL,
      PRIMARY KEY (user_name, user_group)
    );
    GRANT SELECT
      ON auth.users
      TO
[email=authuser@localhost]authuser@localhost[/email]
      IDENTIFIED BY 'PaSsW0Rd';
    GRANT SELECT
      ON auth.groups
      TO
[email=authuser@localhost]authuser@localhost[/email]
      IDENTIFIED BY 'PaSsW0Rd';
    INSERT INTO users VALUES ('testuser', ENCRYPT('testpass'));
    INSERT INTO groups VALUES ('testuser', 'user');
    INSERT INTO users VALUES ('testadmin', ENCRYPT('testpass'));
    INSERT INTO groups VALUES ('testadmin', 'admin');
    INSERT INTO groups VALUES ('testadmin', 'user');
#vi /etc/httpd/conf.d/pureftpdadmin.conf
内容变为:
pureftpdadminAlias /ftpadmin /var/www/pureftpd_manager
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
    Allow from 192.168.8.0/24
Allow from 192.168.9.0/24
#加入对mysql的认证
AuthName "MySQL group authenticated zone"
    AuthType Basic
    AuthMYSQLEnable on
    AuthMySQLUser authuser
    AuthMySQLPassword PaSsW0Rd
    AuthMySQLDB auth
    AuthMySQLUserTable users
    AuthMySQLNameField user_name
    AuthMySQLPasswordField user_passwd
    AuthMySQLGroupTable groups
    AuthMySQLGroupField user_group
#
    require group user
我们再次输入

时就会弹出对话框,输入用户和密码后才可登入。

文件:
pureftpd_php_manager.zip
大小:
17KB
下载:
下载

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论