http://www.5ilinux.com/blog/archives/000091.html

转载地址

proftpd学习笔记(一)

这几天,公司终于放假了,终于能够安下心来好好学些proftp mysql quota。

安装proftp之前,必须先做一个工作,假如您的mysql是自己编译的,那就必须先修改/etc/ld.so.conf,否则后面运行proftp会报错。
vi /etc/ld.so.conf

添加下面一行:

/usr/local/mysql/lib/mysql

注意大家假如mysql的安装路径于我不相同,则填写相应的路径,有关mysql的编译安装请参考《Linux Apache Mysql PHP典型配置》。

1。下载相关软件

wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz
下载proftp的最新版本1.2.9
wget http://www.castaglia.org/proftpd/modules/proftpd-mod-quotatab-1.2.11.tar.gz
这是配合proftp的磁盘限额的模块

2。解压编译

tar zvxf proftpd-1.2.9.tar.gz

tar zvxf proftpd-mod-quotatab-1.2.11.tar.gz

cp mod_quotatab/*.c proftpd-1.2.9/contrib/

cp mod_quotatab/*.h proftpd-1.2.9/contrib/

vi proftpd-1.2.9/contrib/mod_sql_mysql.c
找到#include 这一行,将mysql.h改成您的系统中此文档所在的路径,如/usr/local/mysql/include/mysql/mysql.h

编译:

./configure \
--prefix=/usr/local/proftpd \
--with-modules=mod_sql:mod_sql_mysql:mod_quotatab\
:mod_quotatab_sql:mod_ratio \
--with-includes=/usr/local/mysql/include/mysql \
--with-libraries=/usr/local/mysql/lib/mysql
make

make install

这里我们编译的时候已加进了mysql,quota,ratio等模块的支持,我会在后面讲他们的应用

ok, 现在我们能够来启动proftp了,只要

/usr/local/proftpd/sbin/proftpd

用您的ftp客户端试验以下,应该能够正常登陆,包括匿名和linux用户名能够。

其实默认的proftp满足日常的服务器管理用还是绰绰有余的,有个地方还是要修改一下,就是默认proftp的配置文档不支持ftp续传,所以我们只要

vi /usr/local/proftpd/etc/proftpd.conf

添加以下两行

AllowRetrieveRestart on
AllowStoreRestart on

重新启动以下proftp,就能够正常续传文档了。

创建proftpd脚本

只要在proftp的源代码目录

cp proftpd-1.2.9/contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd

记得修改proftpd文档,一般要修改proftpd的实际路径

chmod 755 /etc/rc.d/init.d/proftpd

ok

以后就能够用这个教本来启动,停止,重启proftp

呵呵,今天就讲这些,明天讲些proftp的一些基础配置:)

proftpd学习笔记(二)

上次我们讲了proftp的基本安装,由于我们后面有关于mysql和quota的配置,所以编译的时候把相应的模块都编译进去了,假如您无需mysql和磁盘限额的功能,完万能够无需这么编译。

这里要讲一个很实用的命令,

/usr/local/proftpd/sbin/ftpshut

这个命令还是比较实用的,因为您可能需要不断的调整您的服务器,而这个命令就很灵活,能够在不停止proftpd进程的前提下,定时停止ftp连接,这里将会周详说他是怎么使用的。

ftpshut [ -l min ] [ -d min ] time [ warning-message ... ]

-l min: 在ftp关闭服务之前的几分钟内,尝试建立新的ftp连接均不被接受
-d min: 在ftp关闭服务之前的几分钟内,已建立的ftp连接将被中止
time: 在多少时间后,服务器将关闭ftp服务,格式有两种
+number 经过number分钟后关闭
MMHH 在今天MM:HH服务器将关闭

注意,这里我们用这个命令是把ftp服务给停了,但实际的proftpd进程还没停止,所以一般调试ftp会使用到这个命令。

举例:
再经过30分钟后,FTP服务将关闭,在这之前的20分钟不可接受任何新的ftp连接,已建立的在服务关闭前10分钟强制断线,并在客户端显示“FTP Server Will shutdown at time”

ftpshut -l 20 -d 10 30 "FTP Server Will shutdown at time"

其实ftpshut就是产生/etc/shutmsg ,您只要删除这个文档ftp又能够重新服务,或
直接

ftpshut -R

好了,开始讲一些proftpd的基本配置吧,其实大家假如熟悉apache的配置的话,您会发现proftpd的配置基本都是类似的,他的配置基本格式是

#全局配置
配置项目1 参数1
配置项目2 参数2

#某个目录的配置
<Directory "路径名">
...
...
</Directory>

#关于匿名用户的配置
<Anonymous "匿名登陆的目录">
...
...
<Limit 限制动作>
...
...
</Limit>
</Anonymous>

我们用到的比较多的可能是Limit的使用,Limit大致有以下动作,基本能覆盖全部的权限了,大家灵活使用就是了。

CMD:Change Working Directory 改变目录
MKD:MaKe Directory 建立目录的权限
RNFR: ReName FRom 更改目录名的权限
DELE:DELEte 删除文档的权限
RMD:ReMove Directory 删除目录的权限
RETR:RETRieve 从服务端下载到客户端的权限
STOR:STORe 从客户端上传到服务端的权限
READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等
WRITE:写文档或目录的权限,包括MKD和RMD
DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的
ALL:任何权限

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!