proftpd看似很简单、很强的ftp服务器，但是想快速配置、运行起来，却不太直观。我的两个使用场景：1.Mac开发 FTP代码同步到Linux开发机，在服务器中运行程序2.给其他人共享一些文件./configuremakemake 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/