其实在linuxFTP服务器中使用最多的方式就是虚拟用户方式,这种方式与系统账户无关,更加安全。
一、使用pureDB来认证
自从 0.99.2 版本开始, pure-ftpd 就开始支持虚拟用户。为了使 pure-ftpd 支持虚拟用户,需要在编译的时候加入选项 –
with-puredb,或是和我们测试一样,用–with-everything,当然这个是随各用户使用而定。
我们新建一个账户用来对应FTP虚拟账户,如果用linux系统自带的Ftp用户,在用虚拟用户登陆时会出现不被信任的提示。建立
方法如下:
# groupadd ftpgroup
# useradd -g ftpgroup -d /dev/null -s /sbin/nologin ftpuser
系统帐号建立好后,我们就开始着手准备虚拟用户了。
./pure-pw useradd wtest -u ftpuser -d /data/
这条命令用来生成pureftpd.passwd文件,注意生成文件位置,可以用-f指定
wtest是FTP服务器用户,ftpuser是Linux系统用户
./pure-pw mkdb
把 pureftpd.passwd转变成pureftpd.pdb
生成的虚拟用户,拥有对该目录的所有权限,但可以通过更改目录权限,来控制ftp用户。
chown ftpuser:ftpgroup data/
查看用户信息,可以通过./pure-pw修改各项信息
./pure-pw show wtest
Login : wtest
Password : $1$7t2Pfbd0$El0hiZX4InvY9tmpY/nrs0
UID : 501 (ftpuser)
GID : 501 (ftpgroup)
Directory : /data/./
Full name :
Download bandwidth : 0 Kb (unlimited)
Upload bandwidth : 0 Kb (unlimited)
Max files : 0 (unlimited)
Max size : 0 Mb (unlimited)
Ratio : 0:0 (unlimited:unlimited)
Allowed local IPs :
Denied local IPs :
Allowed client IPs :
Denied client IPs :
Time restrictions : 0000-0000 (unlimited)
Max sim sessions : 0 (unlimited)
二、使用MySQL来认证
关键参数都是写在 pureftpd-mysql.conf 中了,安装目录下有此文件。
生成数据库表结构
mysql -p //登陆mysql服务器
> CREATE DATABASE pureftpd;
> grant all on pureftpd.* to pureftp@localhost identified by ‘********’;
> use pureftpd
> CREATE TABLE `users` (
`id` int(32) unsigned NOT NULL auto_increment,
`User` varchar(16) NOT NULL default ”,
`Password` varchar(64) NOT NULL default ”,
`Uid` varchar(11) NOT NULL default ‘-1′,
`Gid` varchar(11) NOT NULL default ‘-1′,
`Dir` varchar(128) NOT NULL default ”,
`QuotaSize` smallint(5) NOT NULL default ’0′,
`QuotaFiles` int(11) NOT NULL default ’0′,
`ULBandwidth` smallint(5) NOT NULL default ’0′,
`DLBandwidth` smallint(5) NOT NULL default ’0′,
`ULRatio` smallint(6) NOT NULL default ’0′,
`DLRatio` smallint(6) NOT NULL default ’0′,
`comment` tinytext NOT NULL,
`ipaccess` varchar(15) NOT NULL default ‘*’,
`status` enum(’0′,’1′) NOT NULL default ’0′,
`create_date` datetime NOT NULL default ’0000-00-00 00:00:00′,
`modify_date` datetime NOT NULL default ’0000-00-00 00:00:00′,
PRIMARY KEY (`id`,`User`),
UNIQUE KEY `User` (`User`)
) TYPE=MyISAM AUTO_INCREMENT=5 ; //建立pureftpd数据库
INSERT INTO `users` VALUES (1, ‘test’, encrypt(‘test’), ’2000′, ’2000′, ‘/var/ftp/test’, 0, 0, 0, 0, 0, 0,
”, ‘*’, ’1′, ’2006-11-27 10:10:00′, ’2006-11-27 10:10:00′); //建立ftp用户
配额 0 不限制 MB
限速 kb为单位
uid gid来控制属于的用户组,目录权限来控制用户权限
参考资料:
http://g.51cto.com/linux/966
http://symfony.net.cn/?p=160
http://www.crazylemon.net/linux/77.html
http://ftqq.com/2010/01/27/use-pure-ftpd-and-pure-ftpd-mysql-manage-quota/
http://www.zouqingshui.net/headingto3/add-pureftpd-to-sysv/
http://blog.chinaunix.net/u1/50497/showart_397699.html
http://bbs.linuxtone.org/thread-846-1-1.html
转载请注明:IPCPU-网络之路 » Linux学习笔记之pureftp(四)虚拟用户