微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM搭建FTP服务器

ARM搭建FTP服务器

时间:11-26 来源:互联网 点击:
ftp的使用使得我们可以快速的上传到ftp所在服务器或者下载文件,对于嵌入式开发来说,ftp无疑使很好地选择,使得pc用户方便快捷的便可访问arm板的文件,下面我就讲述一下如何在arm上搭建ftp服务器:

ftp移植(默认端口号21)

一、下载软件包:vsftpd-2.1.2.tar.gz,解压(tar –zxvf vsftpd-2.1.2.tar.gz)

二、交叉编译:

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,之后会生成几个可执行文件,其中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//创建的文件权限

anon_upload_enable=YES//允许匿名用户上传

anon_mkdir_write_enable=YES//可创建文件夹和修改文件夹内的文件

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、创建用户,可根据需要创建和设置用户权限

4、创建文件夹:

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数据传送使用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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top