源码安装vsftpd

系统环境
RHEL6.8
vsftpd-3.0.3.tar.gz
下载地址:
http://fossies.org/linux/misc/vsftpd-3.0.3.tar.gz
安装依赖包
yum install gcc libcap-devel pam-devel tcp_wrappers-devel
备份相应文件
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
mv /etc/init.d/vsftpd /etc/init.d/vsftpd.bak 
mv /var/ftp  /var/ftp.bak
mv /etc/vsftpd /etc/vsftpd.bak
卸载原有rpm包
rpm -e vsftpd --nodeps
安装源码ftp
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
启动服务
mv /etc/vsftpd/user_list /etc/vsftpd.user_list
/etc/init.d/vsftpd restart
查看版本
vsftpd -version
vsftpd: version 3.0.3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
安装步骤: 0、交叉编译环境配置 在/etc/profiel 和 .bashrc 文件中增加以下内容 export PTAH=$PATH://root/compile/arm-none-linux-gnueabi/bin source .bashrc 1、解压 tar -zxvf vsftpd-3.0.3.tar.gz.tar 2、修改Makefile文件 vim Makefile CC=arm-none-linux-gnueabi-gcc 3、执行make,已修复以下错误 make (1)错误提示:/bin/sh:./vsf_findlibs.sh: Permission denied 解决措施:chmod 775 ./vsf_findlibs.sh (2)错误提示:/lib/libcap.so.2:could not read symbols: File in wrong format 解决措施:修改vsffindlibs.sh,屏蔽掉50-60行 (3)错误提示:sysdeputil.c:(.text+0xdcc):undefined reference to `crypt' 解决措施:arm-none-linux-gnueabi/libc/lib/下的libcrypt.so.1复制到开发板根文件系统/lib目录下 4、拷贝文件到开发板中 make成功之后有在当前目录生成了vsftpd文件,通过以下命令查找对应的依赖性 arm-linux-readelf -d vsftpd   Tag        Type                        Name/Value 0x00000001 (NEEDED)                    Shared library: [libcrypt.so.1] 0x00000001(NEEDED)                     Shared library: [libc.so.6] 把vsftpd、libcrypt.so.1及这两个连接所指向的源文件拷贝开发板系统根目录/lib中。 把生成的vsftpd拷贝到根文件系统的sbin目录,vsftpd.conf文件拷贝到开发板系统根文件系统的etc目录下。 5、配置vsftpd.conf #使vsftpd处于独立启动模式 listen=YES listen_port=21 anon_other_write_enable=YES 6、开发板根文件系统创建必要的目录: mkdir-p /var/ftp/pub mkdir -p /usr/share/empty chown root:root/var/ftp chmod 755 /var/ftp cd /var/ftp chmod 777 pub pub这个目录是用来供匿名用户上传文件的,上传的文件存放在此处,故其属性为777,而其他目录无此属性,不能用来作为上传目录。 7、开发板执行以下命令启动 vsftpd/etc/vsftpd.conf& 8、启动ftp登录 用户名root密码空,可访问开发板任意目录; 用户名anonymous密码空,可访问/var/ftp/pub目录 用户名ftp密码空,可访问/var/ftp/pub目录

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值