安裝 ftp server - Proftpd

#apt-get install proftpd-basic proftpd-mod-mysql

/etc/proftpd/proftpd.conf

uncomment following

Include /etc/proftpd/sql.conf
DefaultRoot ~
RequireValidShell off


Use phpmyadmin to create new database ftpd

Create user, group and quota table

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';

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 int(10) unsigned NOT NULL default '0',
bytes_out_avail int(10) unsigned NOT NULL default '0',
bytes_xfer_avail int(10) unsigned 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 int(10) unsigned NOT NULL default '0',
bytes_out_used int(10) unsigned NOT NULL default '0',
bytes_xfer_used int(10) unsigned 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),
UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT='ProFTP user table';


/etc/proftpd/sql.conf

< IfModule mod_sql.c>
SQLBackend mysql
SQLEngine on
SQLAuthenticate on
SQLAuthTypes Crypt Plaintext
SQLConnectInfo ftpd@localhost user password
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLGroupInfo ftpgroup groupname gid members
SQLDefaultUID 5500
SQLDefaultGID 5500
< /IfModule>


Upload or Download Only Directory

< Directory /home/ftp/*>
Umask 022 022
AllowOverwrite off
< Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>
DenyAll
< /Limit>
< /Directory>

< Directory /home/ftp/upload>
Umask 022 022
AllowOverwrite on
< Limit READ RMD DELE>
DenyAll
< /Limit>
< Limit STOR CWD MKD>
AllowAll
< /Limit>
< /Directory>


Link:
Mandrake 10.1 - Proftpd + MySQL authentication + Quotas Howto
HOWTO : Create a FTP server with user access (proftpd)
Proftpd Mini howto - Configuring Limits

Comments

Popular Posts