bitscn.com
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中创建相应的库和表来存储用户权限
www.bitscn.com
# 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=/land status=1 and (ipaccess = * or ipaccess like /r)
mysqlgetdir select dir from ftpd where user=/land status=1 and (ipaccess = * or ipaccess like /r)
mysqlgetbandwidthul select ulbandwidth from ftpd where user=/land status=1 and (ipaccess = * or ipaccess like /r)
mysqlgetbandwidthdl select dlbandwidth from ftpd where user=/land status=1 and (ipaccess = * or ipaccess like /r)
mysqlgetqtasz select quotasize from ftpd where user=/land status=1 and (ipaccess = * or ipaccess like /r)
mysqlgetqtafs select quotafiles from ftpd where user=/land 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
bitscn.com