虚拟化容器,大数据,DBA,中间件,监控。

CENTOS安装pureftp及其图形化管理界面ftp_v2

03 09月
作者:admin|分类:应用管理
CENTOS安装pureftp及其图形化管理界面ftp_v2


周未放弃了学jq的时间,学习按装pureftp及其图形化管理界面
其中ubuntu用的是alternative硬盘按装的,按装后选择LAMP包装上apache+php+mysql等,在pureftp配置过程中说少了一个文件,用synaptic查找,装上就OK
实际是centos也适应

pureftp1.0.21是最新的版本,下载地址:http://download.pureftpd.org/pub/pure-ftpd/releases/
ftp_v2.1 下载地址:http://machiel.generaal.net/index.php?subject=user_manager_pureftpd&button=download

按装
#./configure \
–prefix=/usr/local/pureftpd \
–with-mysql \
–with-virtualchroot \
–with-virtualhosts \
–with-diraliases \
–with-uploadscript \
–with-quotas \
–with-cookie \
–with-sysquotas \
–with-ratios \
–with-throttling \
–with-largefile \
–with-peruserlimits \
–with-paranoidmsg \
–with-welcomemsg \
–with-language=simplified-chinese
#如果提示libmyqlclient不存在ubuntu下直接查找,在fedora,centos等版本中按装mysql-devel
#make
#make install
其它的我觉得不可能比下边这篇文章描述的更好,带原文连接,感谢作者:
在添加虚的ftp用户的时候,可以随便选择系统已经有帐号,如果你建立了terry 就可以选择这个,那么建立帐号的权限与terry的权限相关.匿名用户上传的文件不能马上下载,如果想改成可以马上下载修改

强烈推荐看下:

http://www.phpchina.com/1220/viewspace_2300.html(详细的说明的各种参数)

可以配置某个组的用户可以跳出自己的目录,及如何只允许匿名用户登陆中设置,对是pure-ftpd.conf的翻译

AntiWarez yes 为no,否则只有修改上传文件的所属,这样的好处是可以让管理员检查上传文件的内容才决定是否其他人可以下载

来源博客:http://blog.csdn.net/xuchenguang/
编写整理:徐晨光 MSN:xuchenguang@msn.com
参考资料:http://wiki.ubuntu.org.cn论坛中的贴子,
以及从互联网“摆渡”出来的资料。
===============================================================
1.准备工作:请先装好Ubuntu、MySQL5、Apache2、PHP5,具体请看我的博客。
下载:ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz
假设下载到桌面上。建议你在用户文件夹下建一个down,下载的软件放到那里去。不过这次为了说明方便,就先放到桌面上吧。

2、打开终端
$cd Desktop
$tar zxvf pure-ftpd-1.0.21.tar.gz
$cd pure-ftpd-1.0.21
$sudo cp /opt/mysql/lib/mysql/*.* /usr/lib
$./configure \
–with-mysql=/opt/mysql \
–with-rfc2640

$sudo make //编译
$sudo make install //安装

3.拷贝两个基本的配置文件:
对于 pure-ftpd来说,如果用MySQL认证,那么最重要的2个文件分别是 pure-ftpd.conf 和 pureftpd-mysql.conf,用源码安装,这2个文件是在安装的目标上找不到的。他在我们的源码里,只是个样本。
我们把他们2个复制到 /etc 目录下,你也可复制到别处,但是在配置时又有所变动哦
$sudo cp pureftpd-mysql.conf /etc
$sudo cp configuration-file/pure-ftpd.conf /etc

4.修改 /etc/pure-ftpd.conf
$sudo gedit /etc/pure-ftpd.conf
这里列出一部分重要的,注意前面有#号的,如果想起用请去掉。
ChrootEveryone yes # 锁定用户在主目录中,你不会希望,a1用户能进到a2目录里吧
CreateHomeDir yes # 自动建立用户主目录,根据数据里的记录,自动建立用户目录
AnonymousCanCreateDirs yes # 允许匿名用户创建新目录?
MaxClientsNumber   200 # 最大可连接的用户数,自己决定吧
MaxLoad 100 #系统连接数超此值,禁止匿名下载
MaxClientsPerIP 8 # 来自一个IP的最大连接数,知道有的站点,为什么只能一个线程了吧
MaxIdleTime # 客户端连接后的最大闲置时间
AntiWarez yes #不接受所有者为 “ftp” 的文件的下载。例如:那些匿名用户上传后未被本地管理员验证的文件。
MySQLConfigFile /etc/pureftpd-mysql.conf # 关键部分,去#号,你整合mysql就靠它了
ProhibitDotFilesWrite yes # 禁止修改隐藏文件
ProhibitDotFilesRead yes # 禁止读取隐藏文件,这2项建议用yes,不然你不小心把某个.开头的(隐藏文件)弄没了,或改了,可能你的用户会有问题哦。
FileSystemCharset UTF-8 #服务器端UTF-8
ClientCharset GB2312 #客户端见到的是GB2312
根据自己的要求来设定,但注意一定要把注掉的MySQLConfigFile打开,还有注掉的CreateHomeDir打开。

5、修改/etc/pureftpd-mysql.conf
$sudo gedit /etc/pureftpd-mysql.conf
这里列出一部分重要的,注意前面有#号的,如果想起用请去掉。
# Optional : MySQL server name or IP. Don’t define this for unix sockets.
MYSQLServer localhost #SQL运行在本机,当然是 localhost了
# Optional : MySQL port. Don’t define this if a local unix socket is used.
MYSQLPort 3306 #原来是注销掉的我们打开它,其实不打开也行,系统默认就OK
# Mandatory : user to bind the server as.
MYSQLUser root #这里的 MYSQLUser和MYSQLPassword是 pureftpd查询帐号数据库用的,我就用root得了,你也可指定,但是必须在 mysql.user表里有指定
MYSQLPassword 123456
MYSQLDatabase ftpusers #这个是我们要在MySQL里建立的一个认证数据库
配置完成。  

6、建立ftp用户目录
$sudo groupadd ftpgroup -g 10000 #建立一个ftpgroup组,gid为10000,这里的10000要记住哦,等下要用到。
$sudo useradd ftpuser -g ftpgroup -u 10000 #建立一个ftpuser用户,属于ftpgroup组,uid为10000。
$sudo mkdir /var/ftpdir
$sudo chown -R ftpuser.ftpgroup /var/ftpdir #把 /var/ftpdir目录及同以下的目录,设置所属用户和群组。

7.pureftp管理:
Pureftp的管理软件很多,我们在这里选择这个:
下载地址http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz
假设下到桌面,
$cd
$cd Desktop
$sudo tar zxvf ftp_v2.1.tar.gz #解压展开,桌面上多了一个文件夹,名为ftp
$sudo mv ftp /var/www/ftp #把ftp文件夹移动到Apache服务器主目录,本文中是/var/www。
下面配置安装,如果有什么问题,请http://localhost/phpmyadmin/,把数据库ftpusers删除,再重新下面的操作。
打开浏览器,输入http://localhost/ftp/install.php
step1)按step2 #这一步如果出现config.php权限不够的提示,用chmod开权限。
step2)按“New installation,”链接;
step3)”Hostname”中填写127.0.0.1,“Username”填写root,Password填写123456,按connect,全部OK了按”continue”。又出来一个对话框,除了上面的三项要一模一样外,“Database”要填写”ftpusers”,按 refresh,全部OK了按“step4”。有问题修正后按”refresh”验证。
step4)语言选中文,FTP Address改成你的IP:21,“Default user ID”和”Default group ID”都是10000,要想流量控制和上传下载比率,把最后两项选中。按”Save”按钮,保存到config.php中。按step5。
step5)管理员密码,改一下,按”step6″.出来一个选择,要你选择一个有足够权限的用户,用来使本次的管理员密码更改生效,我选root。
step6)没什么好说的,按step7。完成了。
$sudo gedit /var/www/ftp/index.php
找到下面这行,把前面的//去了。
// echo (“<input type=\”text\” name=\”dir_box\” size=\”40\” maxlength=\”128\” value=\”$dir\”>\n”);
找到下面这行,把前面加上//
echo (“<input type=\”hidden\” name=\”dir_box\” value=\”$dir\”>\n”);
找到两处.md5($_POST['password_box']).”‘
全都改成.$_POST['password_box'].”‘

打开浏览器,输入http://localhost/ftp/
新建个帐号,名a密码a,主目录/var/ftpdir/a(它怎么会叫家目录,都是home惹得祸!)。有兴趣你可以看一下,a目录是不存在的,用ftp登录一下,a就自动建好了。

8.运行测试:
我们得要把 pureftp运行起来再说,我们可以利用 pureftp源码解压目录/configuration-file/pure-config.pl这个脚本来控制,注意,这是用perl语言写的。如果没有安装perl就安装一个吧。输入:
$cd
$cd Desktop
$cd pure-ftpd-1.0.21 #先进入你解压的文件夹
$sudo chmod u+x configuration-file/pure-config.pl
$sudo cp configuration-file/pure-config.pl /etc #放这里好找
$sudo /etc/pure-config.pl /etc/pure-ftpd.conf #运行pureftpd服务器
看到如果下信息,就说明成功了
Running: /usr/local/sbin/pure-ftpd -A -c200 -B -C8 -D -fftp -H -I15 -lmysql:/etc/pureftpd-mysql.conf -L2000:8 -M -m100 -s -U133:022 -u100 -x -X -j -k99 -Z -8UTF-8 -9UTF-8
接着:
$ftp localhost
Connected to localhost.localdomain.
220———- Welcome to Pure-FTPd ———-
220-You are user number 1 of 200 allowed.
220-Local time is now 15:03. Server port: 21.
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (localhost:xcg1688): a #用户名
331 User a OK. Password required
Password: #密码
230-User a has group access to: ftpgroup
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.

9.设置pure-ftpd为系统服务:
$sudo gedit /etc/init.d/pure-ftpd
内容:
#!/bin/sh
/etc/pure-config.pl /etc/pure-ftpd.conf
然后:
$sudo chmod 755 /etc/init.d/pure-ftpd
$sudo chmod +x /etc/init.d/pure-ftpd
最后,到服务中选中它。重启系统(要设置匿名,先不重启,进入第10步)。

10.匿名上传下载:
$sudo mkdir /var/ftpdir/anonymous #建立一个目录,名字随意,下面要用,记住统一即可。
$sudo useradd ftp -g ftpgroup #添加一个用户“ftp”必须是这个名,它与其它ftp用户都从属于上面的ftpgroup。
$sudo usermod -d /var/ftpdir/anonymous ftp #更改“ftp”这个用户的主目录。
$sudo chmod +777 /var/ftpdir/anonymous #使具有匿名上层目录的用户可以删除匿名目录anonymous内的文件。
$sudo chown ftp:ftpgroup /var/ftpdir/anonymous

修改 /etc/pure-ftpd.conf终端:$sudo gedit /etc/pure-ftpd.conf
找到: AnonymousCantUpload no,不接受匿名用户上传新文件( no = 允许上传)

还是要重启才好用。
其它:
ftp客户端可选gftp,在终端输入:sudo apt-get install gftp

五、Pure-FTPD用户权限分配策略:
======================================================
来源博客:http://blog.csdn.net/xuchenguang/
编写整理:徐晨光 MSN:xuchenguang@msn.com
参考资料:http://wiki.ubuntu.org.cn论坛中的贴子,
以及从互联网“摆渡”出来的资料。
======================================================
按照前面的设置好后,权限情况是:注册用户各自对自已的文件夹有全权,互相不能看。匿名用户对anonymous文件夹有上传权限、建文件夹权限,没有删除权限。在实际工作中,这种分配方案不能满足需求,下面来改进一下:

1,需求分析:
ftpmanager:对ftp内所有的文件有全权。
注册用户:权限不变,仍然对各自的文件有全权,相互隔离。
匿名用户:对anonymous内文件有下载权限,对anonymous/upload下有上传、建目录权限,没有删除权限。

2、实现办法:
http://localhost/ftp/index.php
新建用户ftpmanager,输入密码,更改主目录为/var/ftpdir。其它的上传下载速率也改一下吧。
$sudo chmod +755 /var/ftpdir/anonymous #匿名目录写入权限限制在属主(也叫所有者)。
$sudo chown ftpuser:ftpgroup /var/ftpdir/anonymous #匿名目录属主改为ftpuser。
$sudo usermod -d /var/ftpdir/anonymous ftp #匿名用户主目录在anonymous,如果你是一步一步按前面来的,这一步不必做。
$sudo mkdir /var/ftpdir/anonymous/upload
$sudo chmod +755 /var/ftpdir/anonymous/upload #upload目录写入权限限制在属主和群组。
$sudo chown ftp:ftpgroup /var/ftpdir/anonymous/upload #upload目录属主改为ftp(即匿名帐号)。

==============================================

以下为参考资料
http://blog.csdn.net/freebyu/archive/2004/09/08/97933.aspx 另一个新手的文章,值的参考

http://me.flashlm.com/html_data/article/art-164.shtml(就是复制的文章)

http://www.phpchina.com/1220/viewspace_2300.html(详细的说明的各种参数)
浏览4393 评论0
返回
目录
返回
首页
Squid 2.6 反向代理配置 Linux 的 Out-of-Memory (OOM) Killer