创建虚拟用户登陆的家目录
[root@mail ~]# mkdir /ftproot
[root@mail ~]# chmod -R 777 /ftproot
[root@mail ~]# useradd virtualftp -d /ftproot -s /sbin/nologin -M
[root@mail ~]# chown virtualftp:virtualftp /ftproot
虚拟账号认证配置。
[root@mail ~]# vim /usr/local/pureftpd/etc/pure-ftpd.conf
建立虚拟账号与服务器本地账号的映射
[root@mail ~]# cd /usr/local/pureftpd/bin
[root@mail bin]# ./pure-pw useradd user1 -u virtualftp -g virtualftp -d /ftproot/user1 -m
说明:
user1是用户名,-u virtualftp是其实际的linux用户,-d指定起始目录,并锁定于该目录。如果不锁定,则用-D;如果需要不同的权限,可以建立新的linux用户与组
如果用的系统自带的ftp用户,这样的话还需修改配置文件pure-ftpd.conf中的MinUID为ftp用户的UID 14,否则登录时会出现530错误;所以这里建议创建另一个非系统自带的用户做映射
建立用户数据库:
[root@mail bin]# ./pure-pw mkdb /usr/local/pureftpd/pureftpd.pdb
[root@mail pureftp]# tar -zxvf PureAdmin-0.3.tar.gz -C /var/www/extsuite/extmail/html/
[root@mail pureftp]# cd /var/www/extsuite/extmail/html/
[root@mail html]# mv PureAdmin-0.3 pureadmin
导入数据文件pureftp.sql到mysql数据库。
-- This mysql script is made by M.Mastenbroek 2002 - 2005
-- For more info look at http://machiel.generaal.net
-- Version 2.0
--
-- mysql -u root -ppassword -h 127.0.0.1
--
--
--
-- Host: localhost Database: ftpusers
-- -------------------------------------------------------
-- Server version 3.23 or 4.x
-- Script version 1.4.0
--
--
--
-- Create MySQL user called 'ftp'
-- Login = ftp
-- Password = tmppasswd
-- Host = 127.0.0.1
--
FLUSH PRIVILEGES;
CREATE DATABASE ftpusers;
USE ftpusers;
--
-- Table structure for table 'admin'
--
CREATE TABLE admin (
Username varchar(35) NOT NULL default '',
Password char(32) binary NOT NULL default '',
PRIMARY KEY (Username)
) ;
--
-- Data for table 'admin'
--
INSERT INTO admin VALUES ('admin',MD5('123456'));
--
-- Table structure for table 'users'
--
CREATE TABLE `users` (
`User` varchar(16) NOT NULL default '',
`Password` varchar(32) binary NOT NULL default '',
`Uid` int(11) NOT NULL default '14',
`Gid` int(11) NOT NULL default '5',
`Dir` varchar(128) NOT NULL default '',
`QuotaFiles` int(10) NOT NULL default '500',
`QuotaSize` int(10) NOT NULL default '30',
`ULBandwidth` int(10) NOT NULL default '80',
`DLBandwidth` int(10) NOT NULL default '80',
`Ipaddress` varchar(15) NOT NULL default '*',
`Comment` tinytext,
`Status` enum('0','1') NOT NULL default '1',
`ULRatio` smallint(5) NOT NULL default '1',
`DLRatio` smallint(5) NOT NULL default '1',
PRIMARY KEY (`User`),
UNIQUE KEY `User` (`User`)
) ;
--
-- Data for table 'users'
--
[root@mail pureftp]# mysql -u root -p
[root@mail pureftp]# mysql -u root -p
mysql> grant all privileges on ftpusers.* to ftp@localhost identified by 'tmppasswd';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
查看导入是否成功
修改pureadmin配置文件,修改数据库参数
[root@mail pureftp]# vim /var/www/extsuite/extmail/html/pureadmin/config.php
[root@mail pureftp]# vim pureftpd-mysql.conf
[root@mail pureftp]# cp pureftpd-mysql.conf /usr/local/pureftpd/etc/
创建匿名账号根目录
[root@mail pureftp]# mkdir /var/ftp