ftp服务端移植到aarch64-linux
github搜索下载ftp源码包:https://github.com/dagwieers/vsftpd
源码包中有INSTALL安装说明,本下涉及的操作依赖安装说明书写
1.解压源码包
不会的话建议百度。
2.修改Makefile文件,并编译
保证主机中已经有交叉编译工具,并且已经添加到环境变量中,修改Makefile中的CC变量,我是这样的:
aarch64是我交叉编译工具的名字,改完直接在目录下make即可,如果报错就百度看看吧,反正我是没报错。
3.将编译好的文件手动安装到目标设备中
查看Makefile的install选项,如下:
if是条件判断开始,fi是结束,先来看第一个:
if [ -x /usr/local/sbin ]; then \ $(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \ else \ $(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi
大致是判断目标设备上有没有 /usr/local/sbin文件夹,有的话就复制vsftpd进去,并且给了运行权限,没有的话就复制到/usr/sbin/。
第二跟第三个判断是复制man手册的,对于运行来说没多大必要,不管他。
第四个判断语句是把xinetd.d/vsftpd 复制到目标设备的/etc/xinetd.d/目录下,没有的话自己创建路径,并且给运行权限。
4.根据INSTALL说明,复制跟设置vsftpd服务的必要文件跟参数
4.1 先创建个nobody用户;
[root@localhost root]# adduser nobody
4.2 创建个空文件夹 /usr/share/empty;
4.3 创建个ftp用户,提供家路径,修改权限,这个是只读的文件夹,一般用不到他,但是手册写了,就勉为其难按照他说的来
[root@localhost root]# mkdir /var/ftp/ [root@localhost root]# adduser -d -h /var/ftp ftp [root@localhost root]# chown root.root /var/ftp [root@localhost root]# chmod og-w /var/ftp
4.4 拷贝源码包里的 vsftpd.conf 到目标设备的 /etc 目录下;
4.5修改vsftpd.conf部分内容,如下:
5.运行vsftpd程序并测试
在目标设备中,输入:
sudo vsftpd&
找一个ftp客户端,测试:
用户名按照目标设备能登陆的用户区写,不要抄我喔!