未来需要通过嵌入式Linux系统的ftp服务上传应用程序和下载数据,因此需要先准备好vsftpd移植工作。本工作在Ubuntu虚拟机里完成。
下载
下载vsftpd-3.0.3.tar.gz:https://security.appspot.com/vsftpd.html#download
拷贝到Ubuntu虚拟机工作文件夹
/vsftpd
解压
$ cd /vsftpd
$ tar xzf vsftpd-3.0.3.tar.gz
$ cd vsftpd-3.0.3/
配置
打开Makefile文件,修改CC(交叉编译工具)和LIBS变量的值并保存,如下:
CC = arm-xilinx-linux-gnueabi-gcc
LIBS = `./vsf_findlibs.sh` -lcrypt
编译器PATH路径需要预先设置好,比如:
$ export PATH=$PATH:/Toolchain/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin
编译
$ make # 编译,如果电脑是多核CPU,如四核,使用make -j4可提高编译速度
编译完成,当前目录下会生成两个文件vsftpd和vsftpd.conf,这两个文件是我们要用的
复制
后续需要将生成的vsftpd移动到rootfs/usr/sbin目录,vsftpd.conf复制到rootfs/etc目录,现在先复制到临时文件夹
$ sudo cp vsftpd /tmp/ # 复制执行文件到目标板
$ sudo cp vsftpd.conf /tmp/ # 复制配置文件到目标板
配置
用gedit打开vsftpd.conf文件进行配置,如下配置可实现匿名用户正常上传下载功能,后续再增加指定用户功能:
#下面修改
anonymous_enable=YES #允许匿名用户
local_enable=YES #本地访问
write_enable=YES #可修改
local_umask=022 #创建的文件权限
anon_upload_enable=YES #允许匿名用户上传
anon_mkdir_write_enable=YES #可创建文件夹和修改文件夹内的文件
dirmessage_enable=YES #激活目录消息
xferlog_enable=YES //激活上传/下载的日志
connect_from_port_20=YES #传输连接来自端口20
xferlog_std_format=YES #使用标准ftpd xferlog格式的日志文件
listen=YES #启用监听
#下面添加
listen_port=21
#pam_service_name=vsftpd
no_anon_password=YES
local_root=/
anon_root=/home/ftp
anon_world_readable_only=YES
tcp_wrappers=NO
权限
将vsftpd修改为可执行权限:
$ sudo chmod +x /Filesystem/tmp # 添加可执行权
修改vsftpd和vsftpd.conf文件权限,用户配置文件权限把用户与组都改为root,访问为读写
准备工作完成