- 论坛徽章:
- 0
|
WEB服务器中实现PROFTP服务
要求:
a. 用户可以上传到WEB指定目录
b. 每个用户只能访问自己数据
c. 每个用户不能登录系统
条件:已安装MYSQL并启用服务 (service mysqld start)
配置过程:
#groupadd -g 1000 ftpgroup
#useradd -u 1000 -s /bin/false -d /bin/null -c "proftp user" -g ftpgroup ftpuser
#tat xzvf proftpd-1.3.0a.tar.gz
#cd proftpd-1.3.0a
#./configure --prefix=/usr/local/proftpd --with-
modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql:mod_ratio --
with-includes=/usr/include/mysql --with-libraries=/usr/lib/mysql
#make && make install
#mysql
> create database ftpdb;
> use ftpdb;
> CREATE TABLE `ftpgroup` (`groupname` varchar(16) NOT NULL default '',
`gid` smallint(6) NOT NULL default '5000',`members` varchar(16) NOT NULL default '',KEY `groupname` (`groupname`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
> INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES("ftpgroup", "5000", "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'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
> INSERT INTO `ftpquotalimits` (`name`, `quota_type`, `per_session`,
`limit_type`, `bytes_in_avail`, `bytes_out_avail`, `bytes_xfer_avail`,
`files_in_avail`, `files_out_avail`, `files_xfer_avail`) VALUES("test",
"user", "false", "soft", "1.024e+06", "0", "0", "0", "0", "0");
> 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'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
> INSERT INTO `ftpquotatallies` (`name`, `quota_type`, `bytes_in_used`,
`bytes_out_used`, `bytes_xfer_used`, `files_in_used`, `files_out_used`,
`files_xfer_used`) VALUES("test", "user", "809781", "0", "809781", "0", "0", "0");
> 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 '5000',
`gid` smallint(6) NOT NULL default '5000',
`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`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
> INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`,
`shell`, `count`, `accessed`, `modified`) VALUES("1", "test", "test", "5000",
"5000", "/tmp", "/sbin/nologin", "0", "0000-00-00 00:00:00", "0000-00-00 00:00:00");
> INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`,
`shell`, `count`, `accessed`, `modified`) VALUES("2", "admin", "admin", "5000",
"5000", "/var/www/html", "/sbin/nologin", "0", "0000-00-00 00:00:00", "0000-00-00 00:00:00");
>grant all on ftpdb.* to
[email=ftpuser@localhost]ftpuser@localhost[/email]
identified by "ftpgroup";
#mv /usr/local/proftpd/etc/proftpd.conf /usr/local/proftpd/etc/proftpd.conf.bak
#touch /var/log/proftp/ftp.syslog
#chown ftpuser.ftpgroup /var/www/html -R
#mysql
>use ftpdb;
>show tables;
>select * from ftpuser;
>INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`,
`homedir`, `shell`, `count`, `accessed`, `modified`) VALUES("3", "www","www",
"5000", "5000", "/var/www/html", "/sbin/nologin", "0", "0000-00-00 00:00:00",
"0000-00-00 00:00:00");
#/usr/local/proftpd/sbin/proftpd &
#ps -ef|grep proftp
ftp://IP
地址 (输入用户与密码进行登录)
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/70208/showart_730076.html |
|