Tuesday, October 28, 2008

Linux下 Proftpd 的安装配置 记录

作者:白东(Albert Ding)

由于更换服务器,因此尝试了一下Proftpd,先到 Proftpd 看了文档,之前也听说Proftpd比较容易设置。

如下安装:

1. 下载 Proftpd,在网站首页就有链接,如果网站打不开,那就直接上它的ftp吧 ftp://ftp.proftpd.org;
2. 配置 Proftpd:
1. 由于习惯分散管理进行了这样的配置 (./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/run)
2. 将这些内容分散安装,如果 (./configure)什么参数也不要,那默认安装位置是:/usr/local,其他的也会分散到 /usr/local 中的相应目录中。
3. 编译和安装 (make / make install)
4. 设定开机自动启动文件 /etc/init.d/proftpd (具体内容见文后附录,同时注意修改 proftpd 文件的属性 chmod 755 /etc/init.d/proftpd )
5. 配置 Proftpd (/etc/proftpd.conf) (这里有非常详细的说明:http://www.proftpd.org/docs/directives/linked/configuration.html)



=========
附录:
=========

参考配置片断:
=========

ServerIdent off #不向客户端发送proftpd的版本信息,默认是打开的
DefaultRoot ~ #系统用户登陆后,以他们自己的目录为根,这样安全
DisplayLogin welcome.msg #显示登陆消息,需要在用户名的根目录中设定welcome.msg文件
DefaultChdir public_html #用户登陆后的默认文件夹,如果不设定这个,则是用户的根目录
AllowRetrieveRestart on #允许断点续传
AllowStoreRestart on

/etc/proftpd.conf 的脚本内容:
======================
(注意,如果你安装的位置不同,要记得修改下面的路径,主要是:FTPD_BIN 和 FTPD_CONF)
(注意,修改 proftpd 文件的属性: chmod 755 /etc/init.d/proftpd )

#!/bin/sh

# ProFTPD files
FTPD_BIN=/usr/sbin/proftpd
FTPD_CONF=/usr/etc/proftpd.conf
PIDFILE=/var/run/proftpd.pid

# If PIDFILE exists, does it point to a proftpd process?

if [ -f $PIDFILE ]; then
pid=`cat $PIDFILE`
fi

if [ ! -x $FTPD_BIN ]; then
echo "$0: $FTPD_BIN: cannot execute"
exit 1
fi

case $1 in

start)
if [ -n "$pid" ]; then
echo "$0: proftpd [PID $pid] already running"
exit
fi

if [ -r $FTPD_CONF ]; then
echo "Starting proftpd..."

$FTPD_BIN -c $FTPD_CONF

else
echo "$0: cannot start proftpd -- $FTPD_CONF missing"
fi
;;

stop)
if [ -n "$pid" ]; then
echo "Stopping proftpd..."
kill -TERM $pid

else
echo "$0: proftpd not running"
exit 1
fi
;;

restart)
if [ -n "$pid" ]; then
echo "Rehashing proftpd configuration"
kill -HUP $pid

else
echo "$0: proftpd not running"
exit 1
fi
;;

*)
echo "usage: $0 {startstoprestart}"
exit 1
;;

esac

exit 0

消息文件中能够使用的转义字符:
======================
(呵呵,顺手翻译了这个。)

%C 当前工作目录
%E 服务器管理员的邮箱地址
%F 文件系统剩余空间(bytes)
%f 文件系统剩余空间(units)
%i 本次上传的文件数量
%L 本机的主机名
%M 最大的连接数
%N 当前的连接数
%o 本次下载的文件数量
%R 客户端的主机名
%T 当前系统时间
%t 本次的文件交换数量(包括上传和下载)
%U 登陆的用户名
%u 通过 ident 协议识别的用户名
%V 虚拟主机的名称(如果有)
%x 用户组的名称
%y 当前连接中该用户组的数量
%z 当前连接中该用户组允许的最大数量