新聞中心

ARM搭建FTP服務(wù)器

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
ftp的使用使得我們可以快速的上傳到ftp所在服務(wù)器或者下載文件,對(duì)于嵌入式開(kāi)發(fā)來(lái)說(shuō),ftp無(wú)疑使很好地選擇,使得pc用戶方便快捷的便可訪問(wèn)arm板的文件,下面我就講述一下如何在arm上搭建ftp服務(wù)器:
ftp移植(默認(rèn)端口號(hào)21)

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

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

二、交叉編譯:

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

2、修改vsf_findlibs.sh文件,去掉#Look for libcap部分,因?yàn)樵创a版本的不同,語(yǔ)句可能不同,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,之后會(huì)生成幾個(gè)可執(zhí)行文件,其中vsftpd就是我們需要的,查看vsftpd的類型

#file vsftpd

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

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

三、文件下載和配置:

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

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

anonymous_enable=YES //允許匿名用戶

local_enable=YES//本地訪問(wèn)

write_enable=YES//可修改

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

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

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

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

pam_service_name=vsftpd//服務(wù)名稱

ftp_username=ftp

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

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

anon_world_readable_only=YES

tcp_wrappers=NO

3、創(chuàng)建用戶,可根據(jù)需要?jiǎng)?chuàng)建和設(shè)置用戶權(quán)限

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

i.mkdir /var/ftp

ii.mkdir /var/ftp/pub

iii.chmod 777 /var/ftp/pub

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

5、與配置相關(guān)的:

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

6、用戶設(shè)置:一般只要?jiǎng)倖?dòng)root用戶是可以登錄的,而且權(quán)限很高,如果向增加用戶,可以用如下命令:a

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

#passwd 用戶名

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

#chmod 755 /目錄–R

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

7、測(cè)試的時(shí)候一定要保證板子是能夠ping通的!

8、具體配置:Vsftpd.conf配置:
anonymous_enable=YES
#允許匿名訪問(wèn)
local_enable=YES
#允許本地用戶訪問(wèn)(/etc/passwd中的用戶)
write_enable=YES
#允許寫(xiě)入權(quán)限,包括修改,刪除
local_umask=022
#本地用戶文件上傳后的權(quán)限是-rw-r-r
#anon_umask=077
#匿名用戶上傳后權(quán)限是-rw----
anon_world_readable_only=YES
#允許匿名用戶瀏覽,下載文件
anon_upload_enable=YES
#允許匿名用戶上傳
#anon_mkdir_write_enable=YES
#允許匿名用戶建立目錄
anon_other_write_enable=YES
#允許匿名用戶具有建立目錄,上傳之外的權(quán)限,如重命名,刪除
dirmessage_enable=YES
#當(dāng)使用者轉(zhuǎn)換目錄,則會(huì)顯示該目錄下的.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秒沒(méi)有動(dòng)作,則踢出

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

#使用standalone啟動(dòng)vsftpd,而不是superdaemon(xinetd)控制它(vsftpd推薦使用standalone方式)
listen_port=21
#ftp監(jiān)聽(tīng)端口
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
#以上三條設(shè)定不允許登陸的用戶,用戶列表存放在/etc/vsftpd.user_list中,一行一個(gè)帳號(hào)
pam_service_name=vsftpd
#PAM所 使用的名稱.同userlist_*一樣限制用戶登陸,不同的是userlist_*在進(jìn)行密碼驗(yàn)證之前拒絕用戶登陸,pam是在密碼驗(yàn)證之后拒絕登陸. (提示密碼錯(cuò)誤)用戶列表默認(rèn)存放在/etc/ftpusers中,一行一個(gè).(可通過(guò)/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
#個(gè)別用戶配置目錄(用來(lái)設(shè)定特殊帳號(hào)),例如我想讓blue這個(gè)用戶的傳輸速度是100KB
就可以在/etc/userconf/下創(chuàng)建文本文件blue(與用戶名相同),加入local_max_rate=100000即可
anon_root=/var/ftp
#設(shè)定匿名用戶登陸后所在的目錄
local_root=/var/local_user
#設(shè)定所有本地用戶登陸后的目錄,如不設(shè)置此項(xiàng),則本地用戶登陸后位于各自家目錄下。
use_localtime=YES
#使用本地時(shí)間而不是GMT

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

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

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

10、




關(guān)鍵詞: ARMFTP服務(wù)

評(píng)論


技術(shù)專區(qū)

關(guān)閉