linux下ftp服务器ARM移植

 

  linux下ftp服务器ARM移植

 

操作系统:ubuntu 14.04 + VMware 10

交叉编译器:arm-linux-gcc 4.8.3

ftp服务器文件包:vsftpd-2.0.4.tar.gz

 

一、准备源文件

  解压缩ftp服务器压缩包:

  tar xf vsftpd-2.0.4.tar.gz

  进入解压出来的目录:

  cd vsftpd-2.0.4

二、交叉编译

  1、修改Makefile中的交叉编译器路径

  CC = /home/zhanglm/tools/arm-linux-gcc4.8.3/bin/arm-linux-gcc

  2、修改服务器源文件目录中的脚本文件vsf_findlibs.sh

  将这两行注释掉:

  #locate_library /lib/libcap.so.1 && echo “/lib/libcap.so.1”

  #locate_library /usr/lib/libcap.so && echo ”-lcap”

  3、执行 make

三、处理动态库依赖

  在源文件的根目录中 查看make生成的可执行文件vsftpd的属性信息:

  file vsftpd

 

 vsftpd: ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3,stripped

 

  使用交叉编译器来查看这个文件运行时需要的动态库:

  /home/zhanglm/tools/arm-linux-readelf -d vsftpd

  会看到类似下面的信息:(前六项便是要准备的动态库)

  Dynamic section at offset 0x130e4 contains 25 entries:   Tag Type Name/Value  0x00000001 (NEEDED) Shared library: [libcrypt.so.1]  0x00000001 (NEEDED) Shared library: [libdl.so.2]  0x00000001 (NEEDED) Shared library: [libnsl.so.1]  0x00000001 (NEEDED) Shared library: [libresolv.so.2]  0x00000001 (NEEDED) Shared library: [libutil.so.1]  0x00000001 (NEEDED) Shared library: [libc.so.6]  0x0000000c (INIT) 0x97b4  0x0000000d (FINI) 0x17efc  0x00000004 (HASH) 0x8128  0x00000005 (STRTAB) 0x8d78  0x00000006 (SYMTAB) 0x8548  0x0000000a (STRSZ) 1245 (bytes)  0x0000000b (SYMENT) 16 (bytes)  0x00000015 (DEBUG) 0x0  0x00000003 (PLTGOT) 0x231d4  0x00000002 (PLTRELSZ) 952 (bytes)  0x00000014 (PLTREL) REL  0x00000017 (JMPREL) 0x93fc  0x00000011 (REL) 0x93cc  0x00000012 (RELSZ) 48 (bytes)  0x00000013 (RELENT) 8 (bytes)  0x6ffffffe (VERNEED) 0x935c  0x6fffffff (VERNEEDNUM) 2  0x6ffffff0 (VERSYM) 0x9256  0x00000000 (NULL) 0x0

 

  把需要的动态库文件(在交叉编译器中)拷贝到rootfs下的lib中。

 

四、更改配置文件vsftpd.conf

  更改之前可以将vsftpd拷贝到rootfs/usr/sbin中,并改属性。

  cp ./vsftpd /roofs/usr/sbin/

  chmod 777 /rootfs/usr/sbin/vsftpd

  chown root:root /rootfs/usr/sbin/vsftpd

  更改vsftpd.conf文件:(更改完拷贝到rootfs/etc/)

  根据此网址,根据需求自行选自配置

  http://www.aiezu.com/system/linux/linux_vsftpd_install_configure.html

  (附录在最后)

 

 

五、创建vsftpd用户

  adduser -g user ftp

  (执行完这句命令后会出现提示输入密码,输入两次即可)

  接下来将目录ftp更改属性:

     chmod 755 ftp

  chown root:root ftp

  然后创建一个目录:(别人说需要,自己没有实测)

  mkdir /usr/share/empty

六、启动ftp

  根据需求可以编写在脚本里执行 vsftpd &

 

 

 

  linux vsftpd的配置参数很多,我们可以通过man5 vsftpd.conf命令获取到vsftpd.conf配置文件的详细帮助信息。下面介绍一些vsftpd常用的参数。

 

  附录:

vsftpd 相关文件和目录介绍

 

1. 与服务器相关的设置参数

connect_from_port_20=YES|NO

是否使用20号端口做为ftp-data的端口号

listen_port=21

设置ftp命令通道的端口号

dirmessange_enable=YES|NO

message_file=.message

上面两个参数用来配置用户进入到目录时显示某个文件中的内容。

listen=YES|NO

设置vsftpd是否stand alone方式启动。

pasv_enable=YES|NO

是否开启被动模式。

write_enable=YES|NO

用来设置是否允许用户上传文件。

idle_session_timeout=300

如果用户300秒内没有命令操作,则强制离线。

max_Clients=0

当vsftpd以stand alone运行时,用来设置最大同时在线数。

max_per_ip=0 用于设置同一IP允许的同时最大连接数。

pasv_max_port=0

pasv_min_port=0

用来设置被动模式(passive mode)使用的端口范围,为0时不受限制。

ftpd_banner="欢迎语句"

banner_file=/path/file

设置当用户连接到vsftpd服务器时显示的欢迎信息。

 

2. 与用户相关的参数

guest_username=ftp

指定来宾用户身份的用户名

guest_enable=YES|NO

是否将非匿名用户映射成来宾用户。

local_enable=YES|NO

是否允许/etc/passwd中的用户以实体用户的身份登录到ftp服务器。

local_max_rate=0 设置实体用户的传输速度,单位为bytes/s。

chroot_local_user=YES|NO

chroot_list_enable=YES|NO

chroot_list_file=/etc/vsftpd/chroot_list

用来设置哪些用户被限制在自己的目录内无法离开。

userlist_enable=YES|NO

userlist_deny=YES|NO

userlist_file=/etc/vsftpd/user_list

用来阻止相关用户登录到vsftpd服务器。

 

  3. 匿名用户相关的参数

 

anonymous_enable=YES|NO

是否允许anonymouns用户登录到vsftpd服务器,下面的设置仅在此参数为YES时才有效。

anon_world_readable_only=YES|NO

仅仅允许下载可读的文件。

anon_mkdir_write_enable=YES|NO

anon_upload_enable=YES|NO

anon_other_write_enable=YES|NO

用于设置相关可写权限。

no_anon_password=YES|NO

anonymous登录时是否可以省略密码。

anon_max_rate=0

设置anonymous的最大传输速度。

anon_umask=077

anonymous用户上传文件的权限掩码。

 

4. 与安全相关的参数:

 

ascii_download_enable=YES|NO

ascii_upload_enable=YES|NO

是否允许ascii方式传输。

xferlog_enable=YES|NO

xferlog_file=/var/log/vsftpd.log

是否记录用户下载上传的文件。

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值