LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1043|回复: 7

pureftpd+mysql+pureftpd_php_manager 安装笔记

[复制链接]
发表于 2003-10-8 13:51:16 | 显示全部楼层 |阅读模式
这几日我一直在配自己的rh9
在安装pureftpd+mysql遇到了不少困难
今天总算大致让pureftpd工作了
因此就写下这个笔记
权当灌水
欢迎各位朋友与我共同探讨论linux
my email:iamroot@21cn.com

声明:
一:我是linux新手,对很多最基本的东西也不是很懂,所以在文中如果有错误之处,请多包涵,并请指出
二:在安装过程,我参考了很多网上极好的文章,给予了我很大大的帮助,在此向这些前辈表示感谢。
三:我在文中最后稍微谈了下在pureftpd中如何设置文件权限的,方法很菜,那位朋友对在pureftpd中设置权限有什么好的方法请指点下,我现在用的方法我感觉台蠢了,;)

正文
在安装过程中我主要参考了
nicosoft 兄的 《pureftpd+mysql+quota+pureftpd_php_manager实例安装》一文

一:首先你要安装好mysql apache php
   这一步网上有大量的文章可以参考,我也就不说了

二:安装 pure ftpd 1.0.16a
#tar pure-ftpd-1.0.16a.tar.gz
#cd pure-ftpd-1.0.16a
#./configure \
--prefix=/usr/local/pureftpd \
--with-mysql=/server/mysql \        --------->> 我的mysql安装在 /server/mysql/
--with-puredb \                    ---------->>这个可别忘记了,我就是因为忘记了这个,结果浪费了很多时间
--with-paranoidmsg \
--with-shadow \
--with-welcomemsg \
--with-uploadscript \
--with-quotas \
--with-cookie \
--with-pam \
--with-virtualhosts \
--with-virtualroot \
--with-diraliases \
--with-sysquotas \
--with-ratios \
--with-ftpwho \
--with-throttling \
--with-language=simplified-chinese  --------------->>Socket 会话显示出来的信息的语言.缺省为英语,simplified-chinese   简体中文,traditional-chinese BIG5繁体中文
                                                    
#make
#make check
#make install
#cd configuration-file
#chmod u+x pure-config.pl
#cp pure-config.pl /usr/local/sbin/
#cp pure-ftpd.conf /usr/local/etc/
#cd /usr/local/pureftpd
#mkdir etc                         ---------------->>我安装后,在/usr/local/pureftpd目录下面并没有etc目录,我自己建立了一个,后面会用到

至此,pureftpd安装基本完成


三:安装pureftpd_php_manager
#unzip pureftpd_php_manager.zip
#cd pureftpd_php_manager
#mv pureftpd-mysql.conf.sample /usr/local/etc/pureftpd-mysql.conf
#cd ..
#cp -R pureftpd_php_manager /www/roby/pureftpd_php_manager  --------->>/www/roby/是我的apache DocumentRoot

四:建库
#mysql -p
mysql>create database pureftpd;
mysql>use pureftpd;
mysql> CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
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 '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;

ok 已经建立完毕
我们再来建立一个帐号
mysql>grant all on pureftpd.* to pureftpd@localhost identified by '123456';

ok 我建立了一个帐号为pureftpd 密码为123456


五:编辑
1.首先我们来编辑 /www/roby/pureftpd_php_manager/pureftp.config.php
我只说最关键的几项
$PUREFTP_CONFIG_FILE    = '/usr/local/etc/pureftpd-mysql.conf';
$FTP_WHO                                = "/usr/local/sbin/pure-ftpwho";

其他的暂时别管

2.我们来编辑最重要的文件 /usr/local/etc/pure-ftpd.conf
这里我暂时只改最重要的几项,详细介绍请看文中最后所提到的参考资料,那里会有详细的介绍
毕竟我们现在最需要的只是让pureftpd工作起来


MySQLConfigFile               /usr/local/pureftpd/etc/pureftpd-mysql.conf
PureDB                        /usr/local/pureftpd/etc/pureftpd.pdb

3.我们来编辑 /usr/local/etc/pureftpd-mysql.conf

MYSQLUser       pureftpd
MYSQLPassword   123456
MYSQLDatabase   pureftpd

关键是上面这三项

六:再系统中增加一个用户合组,为后面的 Virtual-Users 做准备
#groupadd ftpusers
#useradd ftpusers -g ftpusers
这样我们便建立一个ftpusers组和一个ftpusers 用户

七:通过pure-pw来增加用户
#cd /usr/local/pureftpd/bin
#./pure-pw useradd user1 -u ftpusers -d /home/ftpusers

ok 这样一个ftp帐号 user1就建立好了
现在只要启动pureftpd就可以通过帐号 user1来访问ftp了,主目录我这里用的就是 /home/ftpusers



八:启动
#/usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf

现在已经用在 七和九建立的帐号来访问ftp了


九:通过pureftpd_php_manager来增加用户
再mozilla中
打开
http://localhost/pureftpd_php_manager/index.php
下面就很简单了
记得要active哟
注意:由于我在编辑 /usr/local/etc/pureftpd-mysql.conf的时候
并没有指定
$DefaultUid
$DefaultGid
$DefaultDir
因此在建立帐号的时候就自己指定吧

整个过程就大致如此了,欢迎各位朋友指正


  
下面我来简单谈下如何在pureftpd中设置权限的问题(方法很菜也很笨,期待各位指点)
如果设置多个帐号对同一个目录有不同的权限
1:首先在自己的linux系统中有两个帐号和组,分别为roby1 roby2
#groupadd roby1
#useradd roby1 -g roby1
#useradd roby12 -g roby1
建立了一个组roby1 两个用户roby1 roby12

#groupadd roby2
#useradd roby2 -g roby2
建立了一个组roby2 一个用户roby2
2:在/home下建立一个目录ftp
#mkdir /home/ftp
3:通过http://localhost/pureftpd_php_manager/index.php 来建立三个帐号 ftp1 ftp2 ftp3
让ftp1有可下载可上传的权限
让ftp2有可下载的权限
让ftp3无下载权限
在建立帐号的时候
ftp1  uid 为 roby1  gid 为roby1 dir 为 /home/ftp
ftp2  uid 为 roby12 gid 为roby1 dir 为 /home/ftp
ftp3  uid 为 roby2  gid 为roby2 dir 为 /home/ftp

4:设置权限
其实要让ftp1 ftp2 ftp3有不同的权限,就是让 roby1 roby12 roby2对/home/ftp有不同的权限
首先 #chown -R roby1:roby1 /home/ftp  -------->>这样 /home/ftp 的拥有者为 roby1
    #chmod 755 /home/ftp
    #cd /home/ftp
    #chmod -R 751 *
    ok,现在一切搞定
    注意:如果说在/home/ftp下面还有目录,那么由于在 #chmod -R 751 * 这个命令中,会导致 roby2 对 下面的子目录没有 r权限,而一个用户对一个目录没有r权限那么是看不到目录下面的文件的,此时就需要你自己手工让roby2对这个目录付予r权限

补充一点:大家可以结合chattr +i 来设置文件目录属性
   
   
后话:感觉pureftpd是个非常不错的软件,就是在文件权限设置上稍微有点不足,当然我对pureftpd也才刚刚接触,还没有完全了解它的强大功能,期待着与大家多多交流
   
参考资料
1:Netkiller(陈景峰)兄的大作 Pure-FTPd + LDAP + MySQL + PGSQL + Virtual-Users + Quota How To (第二版)  写的很详细,强烈推荐
  http://home.9812.net/linux/article/pureftpd/pureftpd_II.htm

2:nicosoft兄的 pureftpd+mysql+quota+pureftpd_php_manager实例安装 (整个安装过程主要参考此文,在此表示感谢)
  http://www.chinaunix.net/jh/15/89642.html
发表于 2003-10-10 07:36:14 | 显示全部楼层
非常好!
精华!!!!!!!!!!!
发表于 2003-10-10 07:51:50 | 显示全部楼层
那那些虚拟用户,怎样做才能让他们每个人都有自己的目录呢?就是每个人都有自己的主目录,其他虚拟用户对这个用户没有读写权限。
发表于 2004-10-16 22:45:48 | 显示全部楼层
既然用了mysql做用户验证了 就完全可以通过mysql做每一个用户的设置,不用再用pure-pw添加用户了 用mysql也可以让每个人都有自己的目录啊
发表于 2004-10-20 14:39:16 | 显示全部楼层
楼主,我已经用你的方法成功安装了。
但是我想让系统启动的时候能自动启动pureftp,我该怎么做呢?
发表于 2004-10-22 21:31:10 | 显示全部楼层
#!/bin/sh

case "$1" in

start)
        /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf
        ;;

stop)
        killall pure-ftpd
        echo "Killing pure-ftpd"
              ;;

*)
        echo "usage: `basename $0` { start | stop }"
        exit 64
        ;;

esac
一个简单的不能再简单的script :)把你的pure-config.pl 和pure-ftpd.conf路径设好 把这个script放在/etc/init.d/下 然后rcconf把它加到开机start里就ok了
也可以用sysv-rc-conf这个东西 在debian下装一个很方便的:)
发表于 2004-10-23 13:28:55 | 显示全部楼层
Debian下装完后可以自动启动(我用apt装的)。
RedHat下是不是也一样呢?
把它放在/etc/init.d/后,运行ntsysv,是不是这样?
发表于 2004-11-6 23:24:36 | 显示全部楼层
发现一个使用mysql的问题..

就是无法实现限制IP...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表