tar xf vsftpd-3.0.3.tar.gz
cd vsftpd-3.0.3
修改builddefs.h把""#nodef VSF_BUILD_TCPWRAPPERS"改成“#define VSF_BUILD_TCPWRAPPERS”,用来支持tcp交互
make
make install
恢复备份文件
cp -a /etc/pam.d/vsftpd.bak /etc/pam.d/vsftpd
cp -a /etc/init.d/vsftpd.bak /etc/init.d/vsftpd
cp -a /var/ftp.bak /var/ftp
cp -a /etc/vsftpd.bak /etc/vsftpd
cp -a /etc/vsftpd/user_list /etc/vsftpd.user_list
启动脚本
cat >/etc/init.d/vsftpd <<'EOF'
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: vsftpd
# Required-Start: $local_fs $network $named $remote_fs $syslog
# Required-Stop: $local_fs $network $named $remote_fs $syslog
# Short-Description: Very Secure Ftp Daemon
# Description: vsftpd is a Very Secure FTP daemon. It was written completely from
# scratch
### END INIT INFO
# vsftpd This shell script takes care of starting and stopping
# standalone vsftpd.
#
# chkconfig: - 60 50
# description: Vsftpd is a ftp daemon, which is the program \
# that answers incoming ftp service requests.
# processname: vsftpd
# config: /etc/vsftpd/vsftpd.conf
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
RETVAL=0
prog="vsftpd"
start() {
# Start daemons.
if [ -d /etc ] ; then
for i in `ls /etc/vsftpd/vsftpd.conf`; do
site=`basename $i .conf`
echo -n $"Starting $prog for $site: "
/usr/local/sbin/vsftpd $i &
RETVAL=$?
[ $RETVAL -eq 0 ] && {
touch /var/lock/subsys/$prog
success $"$prog $site"
}
echo
done
else
RETVAL=1
fi
return $RETVAL
}
stop() {
# Stop daemons.
echo -n $"Shutting down $prog: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
RETVAL=$?
fi
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
exit $RETVAL
EOF
chmod 755 /etc/init.d/vsftpd
开机启动
chkcofig vsftpd on
修改配置文件
vi /etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES