`

Gentoo安装配置pure-ftpd结合Mysql权限验证全过程

阅读更多

一、安装pure-ftpd服务端

# echo 'net-ftp/pure-ftpd mysql'>>/etc/portage/package.use

Gentoo会自动把本机的mysql装上。

# emerge pure-ftpd

配置mysql数据库root的密码,以及安装初始化目录。 我配置的root密码为root,如果设置为其它的则下面的密码也需要跟着改

# ebuild /var/db/pkg/dev-db/mysql-5.5.28/mysql-5.5.28.ebuild config

把client这个段的内容修改成如下 ,这是为了方便我们进入mysql数据库

# vim /etc/mysql/my.cnf

[client]

user            = root

password        = root

host            = 127.0.0.1

port            = 3306

socket          = /var/run/mysqld/mysqld.sock

 

[mysqld]

server-id                                       = 220

skip-name-resolve

# /etc/init.d/mysql start

 

二、在Mysql中创建相应的库和表来存储用户权限

 

# mysql –A (之前配置my.cnf里的用户和密码就是为了这儿)

mysql> CREATE DATABASE IF NOT EXISTS pureftpd;

mysql> USE pureftpd;

mysql>

CREATE TABLE IF NOT EXISTS `ftpd` (

  `User` varchar(16) NOT NULL DEFAULT '' COMMENT '用户名',

  `status` enum('0','1') NOT NULL DEFAULT '0' COMMENT '可用状态:0 - 不可用;1 - 正在使用',

  `Password` varchar(64) NOT NULL DEFAULT '' COMMENT '密码',

  `Uid` varchar(11) NOT NULL DEFAULT '-1' COMMENT '用户ID',

  `Gid` varchar(11) NOT NULL DEFAULT '-1' COMMENT '组ID',

  `Dir` varchar(128) NOT NULL DEFAULT '' COMMENT '拥有的权限路径',

  `ULBandwidth` smallint(5) NOT NULL DEFAULT '0' COMMENT '上传带宽',

  `DLBandwidth` smallint(5) NOT NULL DEFAULT '0' COMMENT '下载带宽',

  `comment` tinytext NOT NULL COMMENT '备注',

  `ipaccess` varchar(15) NOT NULL DEFAULT '*' COMMENT 'IP地址',

  `QuotaSize` smallint(5) NOT NULL DEFAULT '0' COMMENT '大小配额',

  `QuotaFiles` int(11) NOT NULL DEFAULT '0' COMMENT '文件类型配额',

  PRIMARY KEY (`User`)

) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='ftp用户名密码表';

mysql > 添加用户ftpduser让它对pureftpd下面的库有select权限

grant select on pureftpd.* to ftpduser@'%' identified by 'ftpdpassword';

mysql > 添加一条测试数据,等会儿用来登录

INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('testuser', '1', md5('testpassword'), '1002', '81', '/var/www', 0, 0, '备注', '*', 0, 0);

 

三、修改配置文件,使用MYSQL进行权限验证

 

# vim /etc/conf.d/pure-ftpd

IS_CONFIGURED="yes"

SERVER="-S 10.36.32.220,21"

MAX_CONN="-c 50"

MAX_CONN_IP="-C 20"

AUTH="-l mysql:/etc/pureftpd-mysql.conf"

MISC_OTHER="-A -H -x -j -R -Z -E -p 50001:59999 -O clf:/var/log/pureftpd/pureftpd.log"

# mkdir –p /var/log/pureftpd/

 

 

这里的MYSQL配置与我们PHP连接MYSQL雷同,需要注意的是MYSQLCrypt 这是指的咱们对用户密码的加密方式。

# vim /etc/pureftpd-mysql.conf

MYSQLServer 127.0.0.1

MYSQLPort 3306

MYSQLUser ftpduser

MYSQLPassword ftpdpassword

MYSQLDatabase pureftpd

MYSQLCrypt md5

MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

 

四、添加nfsuser用户,并修改web目录的权限,如果没有就先创建吧

# groupadd apache; useradd nfsuser -u 1002 -g apache -d /dev/null -s /sbin/nologin

# mkdir -p /var/www

# chown -R nfsuser:apache /var/www

 

五、启动pureftpd并用客户端连接测试

# /etc/init.d/pure-ftpd start

分享到:
评论

相关推荐

    Gentoo Linux文档 -- Gentoo Linux x86手册

    Gentoo Linux文档 -- Gentoo Linux x86手册

    gentoo安装配置使用手册 gentoo配置文档.doc.rar

    本文详细讲述gentoo桌面环境gnome-light的安装过程,如何配置主机网络,如何让gentoo支持中文,如何挂载windows下的NTFS文件系统,如何使gentoo支持声音 的输入输出,让你的emerge极大地加快下载速度,并安装音视频...

    gentoo-portage-rsync-mirror, Gentoo库的镜像镜像,使用 https.zip

    gentoo-portage-rsync-mirror, Gentoo库的镜像镜像,使用 https 以前的Gentoo rsync-to-git镜像用于包含打包到git存储库中的Gentoo树的存储库。 然而,在 2015-08-09,Gentoo正式切换到了 git,这使得。新资源:cgit...

    Gentoo Linux 安装手册

    - **网络配置的重要性**:网络配置是 Gentoo 安装过程中非常关键的一步,因为它允许用户访问互联网以下载必需的文件和更新。 #### 四、准备磁盘 - **磁盘分区**:为了安装 Gentoo,需要创建所需的分区。这部分内容...

    gentoo安装文档.doc.rar

    这个名为"gentoo安装文档.doc.rar"的压缩包文件包含了一份详细的Gentoo安装指南,旨在帮助用户,尤其是新手,顺利地完成Gentoo系统的安装过程。以下是Gentoo安装过程中的一些关键知识点: 1. **认识Gentoo**: ...

    在vmware上安装gentoo-上

    Gentoo 的安装过程相对复杂,但提供了极大的灵活性和性能优化的可能性。 首先,了解一些基本概念。源码编译是 Gentoo 的核心特点之一,意味着用户需要从源代码构建操作系统的所有软件。这种方式允许用户根据硬件...

    Gentoo安装手册

    《Gentoo安装手册》是针对Gentoo Linux操作系统的一份详尽指南,旨在帮助用户完成从下载到安装,再到配置的全过程。这份手册由Gentoo官方提供,经过整理,适合打印以便线下查阅。 在Gentoo Handbook中,首先介绍了...

    gentoo下源码安装postfix+courier-imap+extmail

    4. **数据库设置**:Courier-IMAP可能需要MySQL或SQLite支持,确保相关库已安装并正确配置。 5. **启动与启用服务**:`rc-service courier-imap start`启动服务,`rc-update add courier-imap default`使其开机启动...

    gentoo安装指导手册

    本节将详细介绍如何通过 gentoo-mini 和 stage3 光盘来安装 Gentoo Linux。 ##### 1.2 选择合适的安装方式 - **gentoo-mini**:这是一个极简的安装介质,通常用于网络连接良好的环境中,因为它需要下载额外的组件...

    Gentoo Linux 安装文档

    在安装Gentoo Linux的过程中,你需要遵循以下步骤: 1. **选择安装方式**:Gentoo提供了多种安装方法,通常推荐使用最小安装光盘开始。 2. **配置网络**:安装前,确保网络设置正确,以便下载最新源代码。 3. **...

    GenToo虚拟机安装

    ### GenToo虚拟机安装知识点详解 #### 一、GenToo简介与应用场景 - **GenToo Linux**:一种高度可定制的Linux发行版,以其灵活性和强大的包管理系统**Portage**而闻名。 - **应用场景**:适合对Linux系统有深入了解...

    Gentoo 下安装与配置Nginx+ MySQL + PHP (fastcgi) 环境步骤分享

    ### Gentoo 下安装与配置Nginx+ MySQL + PHP (fastcgi) 环境步骤详解 #### 一、概述 在 Gentoo Linux 操作系统上构建一个完整的 Web 开发环境,通常涉及到 Nginx(作为 Web 服务器)、MySQL(数据库管理系统)以及 ...

    gentoo-vmware-modules-patch-kernel4.0.4:修补程序文件,用于在Linux内核4.0.4上构建Gentoo的vmware-modules-279.3-r1软件包

    修补程序文件,用于在Linux内核4.0.4上构建Gentoo的vmware-modules-279.3软件包。 使程序包编译无误,并允许vmware-player运行。 使用风险自负。 指示: 手动克隆存储库或单独下载文件。 在终端中,将补丁文件放在...

    Gentoo手册

    - **安装过程复杂**:与大多数Linux发行版相比,Gentoo的安装过程较为复杂,需要手动配置许多细节。 - **初始配置**:在安装完成后,用户还需要进行大量的配置工作,包括设置内核参数、安装必要的软件包、配置网络...

    PyPI 官网下载 | binary_gentoo-5.0.0-py3-none-any.whl

    标题提到的“PyPI官网下载 | binary_gentoo-5.0.0-py3-none-any.whl”正是来源于PyPI的一个特定软件包。这个包名为“binary_gentoo”,版本号为5.0.0,是针对Python 3编译的,其格式为.whl,这是一种预编译的Python...

    Gentoo-linux-入门.pdf

    通过以上步骤,我们不仅了解了 Gentoo Linux 的基本安装流程,还掌握了如何准备启动环境、检查硬件配置、配置网络连接、创建和挂载分区以及设置系统时间等关键操作。这些步骤是成功安装 Gentoo Linux 的基础,对于...

    gentoolinux安装教程

    安装Gentoo Linux可能对于初学者来说较为复杂,但一旦熟悉了其Portage包管理系统和配置过程,用户将能够深度理解和掌控系统的每一个细节。以下是一个详细的Gentoo Linux安装教程概览。 1. **准备工作** - **硬件...

    Gentoo Linux 安装 笔记

    以上是关于Gentoo Linux安装过程中的关键知识点,希望能帮助到想要深入了解Gentoo Linux的用户。需要注意的是,Gentoo Linux的安装相对复杂,对于初学者来说可能较为困难,因此建议具备一定Linux基础知识后再尝试...

Global site tag (gtag.js) - Google Analytics