vsftpd移植到ARM Linux教程

應用移植 10638瀏覽 10評論

vsftpd移植vsftpdvery secure FTP daemon(非常安全的FTP進程),是一個基于GPL發布的類UNIX類操作系統上運行的服務器的名字(是一種守護進程),可以運行在諸如Linux、BSD、Solaris、HP-UX以及Irix等系統上面。vsftpd支持很多其他傳統的FTP服務器不支持的良好特性。使用 vsftpd 可以在?Linux/Unix?系統上搭建一個安全、高性能、穩定性好的輕量級FTP服務器。

1 下載

下載最新版本源碼包,下載地址:https://security.appspot.com/vsftpd.html#download。本文以?vsftpd-3.0.2.tar.gz 版本為例。

如果以上下載地址無法訪問,也可以本地下載 vsftpd-3.0.2.tar.gz

2 解壓

$ mkdir ~/vsftpd
$ cp?vsftpd-3.0.2.tar.gz ~/vsftpd
$ cd ~/vsftpd
$ tar xzf vsftpd-3.0.2.tar.gz
$ cd vsftpd-3.0.2/

命令中的“~”表示當前用戶目錄,比如在Linux主機上面工作的用戶是:veryarm,那么命令中的“~”就代表路徑:/home/veryarm/目錄。

3 配置

$ export PATH=$PATH:/usr/local/arm-2010q1/bin  #交叉編譯工具路徑加入系統環境變量!
$ vi Makefile

打開Makefile文件后,修改 CC 變量的值,修改后如下:

CC = arm-none-linux-gnueabi-gcc

其中,

  • CC: 指定交叉編譯工具,一般為arm-none-linux-gnueabi-gcc、arm-linux-gnueabihf-gcc、arm-linux-gcc等,具體要和目標板用的交叉編譯工具對應。

4 編譯

$ make                  # 編譯,如果電腦是多核CPU,如四核,使用make -j4可提高編譯速度

make 后,當前目錄下會生成兩個文件:vsftpdvsftpd.conf,這兩個文件是我們要用的。

?5 復制文件

將生成的 vsftpd 復制到目標板 /usr/sbin 目錄,vsftpd.conf 復制到目標板 /etc 目錄,并添加?vsftpd 為可執行:

$ cp vsftpd /usr/sbin                       # 復制執行文件到目標板
$ cp vsftpd.conf /etc/                      # 復制配置文件到目標板
$ chmod +x /usr/sbin/vsftpd                 # 添加可執行權限

 

6 配置

使用 vi 打開 vsftpd.conf 文件,并進行配置,如下配置可實現正常上傳下載功能:

anonymous_enable=NO                 # 默認的 YES 改為 NO
local_enable=YES                    # 刪除前面的#號注釋符號
write_enable=YES                    # 刪除前面的#號注釋符號
anon_upload_enable=NO               # 刪除前面的#號注釋符號,并將 YES 改為 NO
anon_mkdir_write_enable=NO          # 刪除前面的#號注釋符號,并將 YES 改為 NO
anon_other_write_enable=NO          # 刪除前面的#號注釋符號,并將 YES 改為 NO(這一項新版本中可能沒有) 
chroot_local_user=YES               # 刪除前面的#號注釋符號,改行表示把FTP用戶都限制在家目錄中

allow_writeable_chroot=YES          # 添加本行到文件最后

再在目標版上使用命令配置:

$ adduser nobody                    # vsftpd默認配置需要
$ mkdir /usr/share/empty            # vsftpd默認配置需要

創建一個本地用戶,并設置密碼:

$ adduser ftpadmin
Changing password for ftpadmin
New password: 
Retype password: 
Password for ftpadmin changed by root

 

7 打開vsftp

配置完之后,在目標板上打開vsftp,命令:

$ vsftpd &

注意,后面還有一個 &。如果要讓 vsftpd 開機啟動,可以將該命令添加到 /etc/profile 或者 rc.local 文件最后。

8 客戶端測試

配置目標板 IP,使其能夠與電腦ping通,然后在電腦上打開客戶端,輸入目標板IP、用戶名、密碼,就可以連接上去了。

vsftpd移植

如上,連接后可以看到用戶目錄 /home/ftpadmin 下的所有文件,此時可以新建、上傳、下載文件了。

發表我的評論
取消評論

表情

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

網友最新評論 (10)

  1. 按這個步驟做的,vsftpd服務可以運行起來。在windows端用軟件連接顯示“無法顯示遠程文件夾” 在linux用ftp命令可以連接上,ls命令時200 PORT command successful. Consider using PASV. 500 OOPS: socket 弄了一天了,沒解決,博主知道什么原因嗎
    一夜黑了發 5年前 (2014-12-24) 回復 編輯
    • 試試: 1、關閉xinetd進程:service xinetd stop,重啟vsftpd 2、查看是否有其他進程占用21端口,kill掉。 3、kill掉所有vsftpd進程,在重啟 4、把listen=YES關閉,即把“listen=YES”修改為“#listen=YES”
      VeryARM 5年前 (2014-12-25) 回復 編輯
  2. 編譯了個linux的可以,同樣的配置arm上不行。
    一夜黑了發 5年前 (2014-12-25) 回復 編輯
  3. 博主 用了以上方法還是出現 200 PORT command successful. Consider using PASV. 500 OOPS: socket
    4年前 (2015-08-24) 回復 編輯
  4. 編譯出錯 arm-xiaomi-linux-uclibcgnueabi-gcc -c seccompsandbox.c -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wall -W -Wshadow -Werror -Wformat-security -D_FORTIFY_SOURCE=2 -idirafter dummyinc arm-xiaomi-linux-uclibcgnueabi-gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o seccompsandbox.o -Wl,-s -fPIE -pie -Wl,-z,relro -Wl,-z,now `./vsf_findlibs.sh` /lib/libcap.so.2: file not recognized: File format not recognized collect2: error: ld returned 1 exit status Makefile:29: recipe for target 'vsftpd' failed make: *** [vsftpd] Error 1
    heln 4年前 (2015-09-04) 回復 編輯
  5. 樓主 我按照這個方式移植vsftp到arm上,不報錯。但是ps后沒有vsftp進程出現。不知道是什么情況。
    羽落 4年前 (2016-06-27) 回復 編輯
  6. 謝謝分享
七星彩走势图2元网官网