| 
 
贡献94 
飞刀27 FD
注册时间2018-9-13
在线时间2 小时积分14 
 
 
 扫一扫,手机访问本帖  | 
 
| 环境: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”,断开了。
 这个问题我网上查了很多资料尝试了,但是一直没解决。希望技术支持和各位大牛帮忙指导。先谢谢了。期待你们的回复。谢谢!
 
 
 
 
 
 
 
 
 
 | 
 |