如何进行基于am335的vsftpd移植?
在之前的文章中我们已经讲解过如何基于am335进行boa移植,相信大家在看过后一定都掌握啦,那么在此基础上,vsftpd移植又需要我们如何做呢?接下来我们一起看看吧!
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 配置
$ exportPATH=$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 后,当前目录下会生成两个文件:vsftpd 和 vsftpd.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用户都限制在家目录中
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES #添加本行到文件最后
将需要限制用户放置到/etc/vsftpd.chroot_list,一行一个用户。
再在目标版上使用命令配置:
$ 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、用户名、密码,就可以连接上去了。
两种移植方式既有相似也有不同,希望大家能够有所区分,有所掌握。期待在评论中看到大家的身影。我们,下一篇博文见!
- 我们应该如何基于容器来进行软件的持续交付(二)?
- 如何基于TCP/IP协议进行MFC Socket网络通讯编程
- elasticsearch核心知识--18.图解Elasticsearch内部如何基于_version进行乐观锁并发控制
- 如何基于TeaFramework进行web开发
- 转载好文:如何进行基于情境数据的个性化EDM数据营销
- 基于非阻塞socket的多线程服务器的实现------一个服务器如何与多个客户端进行通信?
- 如何基于学习策略对机器学习进行分类?
- 如何将Win2003里面的基于MMC控制台的远程桌面移植到XP中
- 如何基于Winform开发框架或混合框架基础上进行项目的快速开发
- 基于金字塔结构的设计逻辑学:设计师如何进行理性、全面的逻辑思考?
- 如何进行电力行业的大数据预测,基于什么算法
- 基于WDF的PCI/PCIe接口卡Windows驱动程序(5)-如何为硬件移植驱动程序
- 如何进行“基于示例”的搜索
- 如何进行vsftpd的虚拟用户建立
- 使用USART接口进行STM32F0的在线升级(AN4065)-基于标准库的STM32F070的IAP移植手记
- .Net平台如何基于wsdl文件搭建虚拟WebService服务器进行跨平台服务调试?
- Android如何基于坐标对View进行模拟点击事件详解
- 如何实现基于tcp进行http交互
- 如何用深度学习进行CT影像肺结节探测(附有基于Intel Extended Caffe的3D Faster RCNN代码开源)
- [原创]WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿