标签 proftpd 下的文章

proftpd看似很简单、很强的ftp服务器,但是想快速配置、运行起来,却不太直观。

我的两个使用场景:
1.Mac开发 FTP代码同步到Linux开发机,在服务器中运行程序
2.给其他人共享一些文件

./configure
make
make install
三步骤完成后,怎么配置,才能正常跑起来?
这里分享一个同事写的shell脚本,命名为init.sh

#!/bin/sh

CURPATH=`cd $(dirname $0);pwd`

authmsg=$(id)

#uid=506(quanjing)
suid=$(echo $authmsg|awk -F' ' '{print $1}')
#gid=505(map)
sgid=$(echo $authmsg|awk -F' ' '{print $2}')

uid=$(echo $suid | awk -F'=' '{print $2}' | awk -F'(' '{print $1}')
gid=$(echo $sgid | awk -F'=' '{print $2}' | awk -F'(' '{print $1}')

uname=$(echo $suid | awk -F'(' '{print $2}' | awk -F')' '{print $1}')
gname=$(echo $sgid | awk -F'(' '{print $2}' | awk -F')' '{print $1}')


echo "uid $uid uname $uname gid $gid gname $gname";

proconf="$CURPATH/etc/proftpd.conf"

## 替换配置文件
function editconf()
{
opt="$1"
#sed -i "s/^.$opt[[:space:]]*.*/$opt     $2/" $proconf
sed -i "s#^\s*[#]*\s*$opt\s.*#$opt      $2#" $proconf
#echo "sed -i \"s/^\s*[#]*\s*$opt\s*.*/$opt $2/\" $proconf"
}

editconf "User"   "$uname"
editconf "Group"  "$gname"

editconf "DefaultRoot"  "$HOME"

editconf "AuthUserFile"        "$CURPATH/var/ftpd.passwd"
editconf "AuthGroupFile"       "$CURPATH/var/ftpd.group"
editconf "UserAlias"           "anonymous ftp $uname"

# 处理UID
bin/ftpasswd --home $HOME --name $uname --group $gname --shell /bin/bash --file $CURPATH/var/ftpd.group --uid $uid --gid $gid
bin/ftpasswd --home $HOME --name $uname --passwd $uname --shell /bin/bash --file $CURPATH/var/ftpd.passwd --uid $uid --gid $gid

我们执行 sh init.sh 它做的事儿是:
通过调用ftpasswd命令、替换默认配置文件,以当前用户作为ftp的用户

最后 sh start.sh启动服务

#!/bin/sh
CURDIR=`cd $(dirname $0);pwd`
export LD_LIBRARY_PATH=$CURDIR/lib:$LD_LIBRARY_PATH
nohup sbin/proftpd -c $CURDIR/etc/proftpd.conf -n &

附件 proftpd.tar.gz.zip 是已编译好的proftpd,先后执行init.sh start.sh 可快速运行起来。

参考 http://ftp.proftpd.org/docs/