proftpdѧϰ�ʼǣ��ģ�
�������ǽ�proftp��mysql��quota��Ӧ�ã������������ڴ��ľ��������˰�
1.�������ǽ�����Ӧ���û����û���
groupadd -g 5500 ftpgroup
adduser -u 5500 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser
2.�������ݿ�
mysql mysql -uroot -ppassword
create database ftpdb
grant select, update on ftpdb.* to proftpd@localhost identified by 'password'use ftpdb
CREATE TABLE `ftpgroup` (
`groupname` varchar(16) NOT NULL default '',
`gid` smallint(6) NOT NULL default '5500',
`members` varchar(16) NOT NULL default '',
KEY `groupname` (`groupname`)
) TYPE=MyISAM COMMENT='ProFTP group table';INSERT INTO `ftpgroup` VALUES ('ftpgroup', 5500, 'ftpuser');
CREATE TABLE `ftpquotalimits` (
`name` varchar(30) default NULL,
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`per_session` enum('false','true') NOT NULL default 'false',
`limit_type` enum('soft','hard') NOT NULL default 'soft',
`bytes_in_avail` float NOT NULL default '0',
`bytes_out_avail` float NOT NULL default '0',
`bytes_xfer_avail` float NOT NULL default '0',
`files_in_avail` int(10) unsigned NOT NULL default '0',
`files_out_avail` int(10) unsigned NOT NULL default '0',
`files_xfer_avail` int(10) unsigned NOT NULL default '0'
) TYPE=MyISAM;CREATE TABLE `ftpquotatallies` (
`name` varchar(30) NOT NULL default '',
`quota_type` enum('user','group','class','all') NOT NULL default 'user',
`bytes_in_used` float NOT NULL default '0',
`bytes_out_used` float NOT NULL default '0',
`bytes_xfer_used` float NOT NULL default '0',
`files_in_used` int(10) unsigned NOT NULL default '0',
`files_out_used` int(10) unsigned NOT NULL default '0',
`files_xfer_used` int(10) unsigned NOT NULL default '0'
) TYPE=MyISAM;CREATE TABLE `ftpuser` (
`id` int(10) unsigned NOT NULL auto_increment,
`userid` varchar(32) NOT NULL default '',
`passwd` varchar(32) NOT NULL default '',
`uid` smallint(6) NOT NULL default '5500',
`gid` smallint(6) NOT NULL default '5500',
`homedir` varchar(255) NOT NULL default '',
`shell` varchar(16) NOT NULL default '/sbin/nologin',
`count` int(11) NOT NULL default '0',
`accessed` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT='ProFTP user table' ;
ע���������Ҹ���ʵ��������д�Լ����ݿ����û��������룬�������Ҷ����ݿ���������Ϥ�Ļ�������������phpmyadmin��������
3.����proftp�ļ�
ServerName "Frank's FTP Server" ServerType standalone DefaultServer onPort 21
Umask 022
MaxInstances 30
MaxLoginAttempts 3User nobody
Group nobodyMaxHostsPerUser 1 "Sorry, you may not connect more than one time."
MaxClientsPerUser 2 "Only one such user at a time."
MaxClientsPerHost 3 "Sorry, you may not connect more than one time."RootLogin off
RequireValidShell off
TimeoutStalled 10
MaxClients 10
AllowForeignAddress on
AllowStoreRestart on
ServerIdent off
DefaultRoot ~ ftpgroupSQLAuthTypes Backend Plaintext
#Backend��ʾ�û���֤��ʽΪMySQL���ݿ�����֤��ʽ
#Plaintext��ʾ������֤��ʽ��������ǰ����Ϊ����ʹ�õķ�ʽ
SQLAuthenticate users* groups*# databasename@host database_user user_password
SQLConnectInfo ftpdb@localhost proftpd password
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLGroupInfo ftpgroup groupname gid members
SQLHomedirOnDemand on
#�����û���Ŀ¼�����ڣ���ϵͳ�����ݴ��û����û����ݱ��е�homedir�ֶε�ֵ�½�һ��Ŀ¼
# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1,accessed=now() WHERE userid='%u'" ftpuser
# Update modified everytime user uploads or deletes a file
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuserQuotaEngine on
QuotaDirectoryTally on
QuotaDisplayUnits Mb
QuotaShowQuotas on
QuotaLog "/var/log/quota"
SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avai
l, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}'
AND quota_type = '%{1}'"SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_i
n_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used
+ %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_
out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquota
talliesSQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies
QuotaLimitTable sql:/get-quota-limit
QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
ok,����ô������һ��proftp�������Ѿ���ʹ��proftp��mysql��quota�Ĺ���
���ǿ��������ݿ�ftpuser����һ�������û���
INSERT INTO `ftpuser` VALUES (1, 'test', 'ftppasswd', 5500, 5500, '/home/test', '/sbin/nologin');
���ҿ�����phpmyadmin��ֱ�Ӳ�������һ���û������Ų����ҽ̴�����ô���Ӱɣ���
������������quota��ֻҪ��ftpquotalimits��������һ�¾����ˣ����������ĸ��������ֱ�������
quotalimits��name�� - �û��ʺ�
quota type�� - user, group, class, all (we use user)
per_session�� - true or false (we use true)
limit_type�� - Ӳ���� or ������ (����һ����Ӳ����)
bytes_in_avail�� - �����ϴ����ֽ���
bytes_out_avail�� - �������ص��ֽ���
bytes_xfer_avail�� - �����������ֽ����������ϴ�/���أ�
files_in_avail�� - �����ϴ����ļ���
files_out_avail�� - �������ص��ļ���
files_xfer_avail�� - �����������ļ����������ϴ�/���أ�
��ʵ˵��mysql��quotaģ������֤�û������ô���������ܾ��û��Dz������ƣ���Ϊ�����������У����ݿ����ﻹû����Ӧ��Ȩ���ֶΣ�����˵��Ӧ�û���Ȩ���ǵ���ʵ�ʵ��û���mysql��Ӧ��uid��gid������Ȩ�ޣ�����Ҫ��mysql���ݿ�Ҳ����ȫ����Ȩ�ͺ��ˡ�
�����������ø�ʽ������ʱ�����ܻ������Ļ�������ֱ�������ҵ������ļ������ݿ���
����proftpd.conf
����ftpdb.sql
ֻ���ҵ����ݿ�������Ӧ��uid��gid����5500�����ҿɸ����Լ��������ģ���ע������Ŷ��
��������һֱ��ѧϰproftp�����ڿ����ɿ����ˣ�ϣ���ҵ�ѧϰ�ʼǿ��Զ�һЩ��ѧϰproftp�������������������ཻ��
�������£�
proftpdѧϰ�ʼǣ�һ��
proftpdѧϰ�ʼǣ�����
proftpdѧϰ�ʼǣ�����
�ο��ĵ���
Mandrake 9.2 + Proftpd + MySQL authentication + Quotas Howto
proftpd + mysql + quota������ȫָ��
Proftpd Configuration Docs
- ת����ע����Դ��ITѧϰ�� ��ַ��http://www.t086.com/ �����������Ƽ�������
- �ر������� ��վ�������ر�������ֹת�ص�ר�������������¿�������ת�أ���������ע��������ԭʼ���ߡ����°�Ȩ������ԭʼ�������С����ڱ���վת�����µĸ��˺���վ�����DZ�ʾ������л�⡣������վת�ص������а�Ȩ��������ϵ���ǣ����ǻᾡ�����Ը�����
- �������е���ɫ
- �������ж�IP��ַ��A��B���C��
- ������ϵ��Ц�� (ʷ����ȫ��
- ��Google���������ŵ���ͨv4.0
- ���ٶ�ͳ��URL��hm������utm�����Ķ�Ӧ��ϵ
- ���������ԡ���װ Windows XP ����ϵͳ��ͼ��ȫ����
- ��ƻ������MACbook Air���ݼ���ȫ
- ��Linux��ʹ��host��dig��nslookup��ѯDNS
- �����Լ���VPS�Google��������
- ��С�ڴ�VPS֮Nginx+PHP-fpm�߸����Ż���ѹ�����Է���