移植vsftpd至OK335XS开发板遇到问题请技术支持和大牛们帮忙指导

fightinghui1121 2019-08-14 12:38:05
环境:vsftpd-3.0.2, 硬件:OK335XS,虚拟机:ubuntu12.04(32位开发板自带)

(1) 修改vsf_findlibs.sh

屏蔽53、54、57行

50 # Look for libcap (capabilities)

51 if locate_library /lib/libcap.so.1; then

52 echo "/lib/libcap.so.1";

53 #elif locate_library /lib/libcap.so.2; then

54 # echo "/lib/libcap.so.2";

55 else

56 locate_library /usr/lib/libcap.so && echo "-lcap";

57 # locate_library /lib/libcap.so && echo "-lcap";

58 locate_library /lib64/libcap.so && echo "-lcap";

59 fi
(2) 修改Makefile

# Makefile for systems with GNU tools
#CC = gcc
CC = /usr/local/arm/cross/am335xt3/devkit/bin/arm-arago-linux-gnueabi-gcc
INSTALL = install
IFLAGS = -idirafter dummyinc
#CFLAGS = -g
CFLAGS = -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 \
-Wall -W -Wshadow -Werror -Wformat-security \
-D_FORTIFY_SOURCE=2 \
#-pedantic -Wconversion

LIBS = `./vsf_findlibs.sh`-lcap -lpam
LINK = -Wl,-s
LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now
保存后退出执行make

(3)执行 arm-arago-linux-gnueabi-readelf -d vsftpd 显示需要哪些库

0x00000001 (NEEDED) Shared library: [libcap.so.2]
0x00000001 (NEEDED) Shared library: [libpam.so.0]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [ld-linux.so.3]

拷贝共享库至/rootfs/lib,把生成的vsftpd 拷贝到跟文件系统的sbin目录下,把vsftpd.conf文件拷贝到 根文件系统的/rootfs/etc目录下。

(4)修改配置文件vsftpd.conf
修改内容为:

anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftp
xferlog_std_format=YES
#nopriv_user=ftp
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ls_recurse_enable=YES
listen=YES
listen_port=21
anon_other_write_enable=YES

(5)开发板根文件系统创建必要的目录:
mkdir-p /var/ftp/pub
mkdir -p /usr/share/empty
chown root:root/var/ftp
chmod 755 /home/rootfs/var/ftp
cd /var/ftp
chmod 777 pub

(6)创建用户
/etc/group文件至少要有root:
root:*:0:
/etc/passwd文件增加ftp和nobody用户:
root::0:0:root:/:/bin/sh
ftp::14:50:FTPUser:/var/ftp:
nobody:*:99:99:Nobody:/:

(7)缺少libattr.so.1共享库,需拷贝至/lib;
(8)开发板执行vsftpd /etc/vsftpd.conf &

遇到问题:
(1)虚拟机ubuntu执行ftp 192.168.0.232显示信息:

root@ubuntu:~# ftp 192.168.0.232
Connected to 192.168.0.232.
220 (vsFTPd 3.0.2)
Name (192.168.0.232:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp>
ftp>
ftp>
ftp> ls
200 PORT command successful. Consider using PASV.
500 OOPS: socket

在我输入ls命令时出现“200 PORT command successful. Consider using PASV.500 OOPS: socket”。无法连接arm了。在xshell尝试也是出现“500 OOPS: socket”,断开了。
这个问题我网上查了很多资料尝试了,但是一直没解决。希望技术支持和各位大牛帮忙指导。先谢谢了。期待你们的回复。谢谢!
...全文
63 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧