免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 746 | 回复: 0
打印 上一主题 下一主题

WEB服务器中实现PROFTP服务 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-08 18:41 |只看该作者 |倒序浏览
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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP