環境: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”,斷開了。
這個問題我網上查了很多資料嘗試了,但是一直沒解決。希望技術支持和各位大牛幫忙指導。先謝謝了。期待你們的回復。謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/104633.html
標籤:應用程序開發區
