0004 vsftp移植

vsftp

编译

tar -vxzf vsftpd-3.0.3.tar.gz
cd cd vsftpd-3.0.3
vim build_vsftp.sh 

build_vsftp.sh

#! /bin/sh
make CC=arm-linux-gnueabihf-gcc 

移植

拷贝 vsftpd–>/rootfs/usr/sbin/
拷贝 vsftpd.conf–>/rootfs/etc/

chmod +x  vsftpd
sudo cp vsftpd /home/li/linux/share/rootfs/usr/sbin/
sudo cp vsftpd.conf /home/li/linux/share/rootfs/etc/ 

配置 vsftpd.conf

开发板操作

cd  /etc
vi vsftpd.conf

local_enable=YES //取消前面的“#”
write_enable=YES //取消前面的“#”

创建文件

mkdir /home
mkdir /usr/share/empty -p
mkdir /var/log -p
touch /var/log/vsftpd.log

vsftpd 创建用户
vsftpd 默认需要两个用户,这两个用户名分别为:“ftp”和“nobody”。

adduser ftp 
adduser nobody 

启动ftp

vsftpd &
//开机自启动
vi /etc/init.d/rcS 
vsftpd &

报错1 frp软件连接报错
capability: warning: `vsftpd’ uses 32-bit capabilities (legacy support in use)
解决方法
可以使用不收影响,移植 libcap库

报错2 frp软件连接报错
响应: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

原因:
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

解决方法:
用命令chmod a-w /home/ftp去除用户主目录的写权限,注意把目录替换成你自己的。或者

 vi vsftpd.conf
allow_writeable_chroot=YES //添加
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
安装步骤: 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目录

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值