新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM搭建FTP服務器

ARM搭建FTP服務器

作者: 時間:2016-11-26 來源:網絡 收藏
ftp的使用使得我們可以快速的上傳到ftp所在服務器或者下載文件,對于嵌入式開發(fā)來說,ftp無疑使很好地選擇,使得pc用戶方便快捷的便可訪問arm板的文件,下面我就講述一下如何在arm上搭建ftp服務器:
ftp移植(默認端口號21)

一、下載軟件包:vsftpd-2.1.2.tar.gz,解壓(tar –zxvf vsftpd-2.1.2.tar.gz)

本文引用地址:http://butianyuan.cn/article/201611/321879.htm

二、交叉編譯:

1、修改Makefile:修改CC=gcc為CC=arm-linux-gcc

2、修改vsf_findlibs.sh文件,去掉#Look for libcap部分,因為源碼版本的不同,語句可能不同,2.1.2版本去掉的代碼如下:

# Look for libcap (capabilities)

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

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

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

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

#else

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

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

#fi

3、#make,之后會生成幾個可執(zhí)行文件,其中vsftpd就是我們需要的,查看vsftpd的類型

#file vsftpd

#arm-linux-readelf–d vsftpd,查看vsftpd文件的依賴庫

拷貝相應庫到板子的/usr/lib目錄下(此步驟可省略不添加庫時運行也正常)

三、文件下載和配置:

1、將vsftpd拷貝到/usr/sbin目錄下

2、拷貝vsftpd.conf到/etc目錄下,修改配置如下:

anonymous_enable=YES //允許匿名用戶

local_enable=YES//本地訪問

write_enable=YES//可修改

local_umask=077//創(chuàng)建的文件權限

anon_upload_enable=YES//允許匿名用戶上傳

anon_mkdir_write_enable=YES//可創(chuàng)建文件夾和修改文件夾內的文件

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

pam_service_name=vsftpd//服務名稱

ftp_username=ftp

no_anon_password=YES//匿名用戶登錄不需要密碼

anon_root=/home/ftp//匿名用戶根目錄

anon_world_readable_only=YES

tcp_wrappers=NO

3、創(chuàng)建用戶,可根據(jù)需要創(chuàng)建和設置用戶權限

4、創(chuàng)建文件夾:

i.mkdir /var/ftp

ii.mkdir /var/ftp/pub

iii.chmod 777 /var/ftp/pub

注:所有的都必須跟/etc/vsftpd.conf中的完全一致才行

5、與配置相關的:

/usr/sbin/vsftpd----VSFTPD的主程序(必需)
/etc/rc.d/init.d/vsftpd----啟動腳本
/etc/vsftpd.conf----主配置文件(必需)
/etc/pam.d/vsftpd----PAM認證文件
/etc/vsftpd.ftpusers----禁止使用VSFTPD的用戶列表文件
/etc/vsftpd.user_list----禁止或允許使用VSFTPD的用戶列表文件(如果在配置文件中指定了,則不能用匿名用戶登錄)
/etc/userconf------指定用戶個人配置文件所在的目錄
/var/ftp----匿名用戶主目錄
/var/ftp/pub----匿名用戶的上傳目錄
/var/log/vsftpd.log-------日志文件
除vsftpd、vsftpd.conf兩個文件外,其他文件的需要具體看主配置文件的配置

6、用戶設置:一般只要剛啟動root用戶是可以登錄的,而且權限很高,如果向增加用戶,可以用如下命令:a

#dduser–G ftp–h/根目錄 用戶名

#passwd 用戶名

#chown 用戶名.ftp /目錄–R

#chmod 755 /目錄–R

之后重啟vsftpd服務,就可以用新的用戶名登錄了

7、測試的時候一定要保證板子是能夠ping通的!

8、具體配置:Vsftpd.conf配置:
anonymous_enable=YES
#允許匿名訪問
local_enable=YES
#允許本地用戶訪問(/etc/passwd中的用戶)
write_enable=YES
#允許寫入權限,包括修改,刪除
local_umask=022
#本地用戶文件上傳后的權限是-rw-r-r
#anon_umask=077
#匿名用戶上傳后權限是-rw----
anon_world_readable_only=YES
#允許匿名用戶瀏覽,下載文件
anon_upload_enable=YES
#允許匿名用戶上傳
#anon_mkdir_write_enable=YES
#允許匿名用戶建立目錄
anon_other_write_enable=YES
#允許匿名用戶具有建立目錄,上傳之外的權限,如重命名,刪除
dirmessage_enable=YES
#當使用者轉換目錄,則會顯示該目錄下的.message信息
xferlog_enable=YES
#記錄s使用者所有上傳下載信息
xferlog_file=/var/log/vsftpd.log
#將上傳下載信息記錄到/var/log/vsftpd.log中
connect_from_port_20=YES
#確保ftp-datad數(shù)據(jù)傳送使用port20
idle_session_timeout=600
#如果使用者600秒沒有動作,則踢出

chroot_list_enable=YES
#限制使用者不能離開家目錄,例如blue登陸后位于/home/blue下,設置該選項后,他不可以轉到/home/blue的上層目錄,如/bin,/usr,/opt...etc。
chroot_list_file=/etc/vsftpd.chroot_list
#與上條同時使用,設置限制使用者的存放文件為/etc/vsftpd.chroot_list
#建立文本文件/etc/vsftpd.chroot_list,寫入要限制的用戶,一行一個。
#如果希望限制所有用戶,則可以設置chroot_local_user=YES代替上面兩行
tcp_wrappers=YES
#支持tcp_wrappers,限制訪問(/etc/hosts.allow,/etc/hosts.deny)
listen=YES

#使用standalone啟動vsftpd,而不是superdaemon(xinetd)控制它(vsftpd推薦使用standalone方式)
listen_port=21
#ftp監(jiān)聽端口
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
#以上三條設定不允許登陸的用戶,用戶列表存放在/etc/vsftpd.user_list中,一行一個帳號
pam_service_name=vsftpd
#PAM所 使用的名稱.同userlist_*一樣限制用戶登陸,不同的是userlist_*在進行密碼驗證之前拒絕用戶登陸,pam是在密碼驗證之后拒絕登陸. (提示密碼錯誤)用戶列表默認存放在/etc/ftpusers中,一行一個.(可通過/etc/pam.d/vsftpd重定向用戶列表存放文件)
#獲得/etc/pam.d/vsftpd:
#[root@LFSvsftpd-2.0.1]#cpRedHat/vsftpd.pam/etc/pam.d/vsftpd

max_clients=100
#最大用戶在線數(shù)量
max_per_ip=2
#每ip最大線程
anon_max_rate=30000
#匿名用戶最大傳輸速度單位:bytes/秒
local_max_rate=50000
#本地用戶最大傳輸速度單位:bytes/秒
user_config_dir=/etc/userconf
#個別用戶配置目錄(用來設定特殊帳號),例如我想讓blue這個用戶的傳輸速度是100KB
就可以在/etc/userconf/下創(chuàng)建文本文件blue(與用戶名相同),加入local_max_rate=100000即可
anon_root=/var/ftp
#設定匿名用戶登陸后所在的目錄
local_root=/var/local_user
#設定所有本地用戶登陸后的目錄,如不設置此項,則本地用戶登陸后位于各自家目錄下。
use_localtime=YES
#使用本地時間而不是GMT

nopriv_user=vsftpd
#設定服務執(zhí)行者為vsftpd,默認使用的是nobody,vsftpd推薦使用一個權限很低的用戶.這里用vsftpd代替nobody,創(chuàng)建vsftpd用戶:

9、創(chuàng)建ftp虛擬用戶:

a)安裝db_load:apt-get install db4.6-util

10、




關鍵詞: ARMFTP服務

評論


技術專區(qū)

關閉