主要利用Host上的配置,得到相应的依赖关系。

环境:

Linux-2.6.20

arm-linux-gcc-3.4.1

vsftpd_2.0.6

本来感觉很简单的事,可是做的时候却发现很烦!因为不太明白原理,在网上找了个例子就做,结果按照例子做,一会就做不下去了,有问题,还是自己找原因,这个移植我就遇到点很气人的问题,刚开始没注意交叉编译工具的版本,我用我自己原来用的arm-linux-gcc 4.0.0;交叉编译就是过不去,出好多的问题,开始我还改呢!可是越来越觉得不对劲,错越改越多,一天都没点头绪,后来无聊的难受,就换了个交叉编译环境,一看错误不一样了,开始有点怀疑是交叉编译环境的问题,继续换终于找到了个能编译过的!做嵌入式移植一定要把相关的工具的版本弄清楚,很重要的!

开始工作,红色的是重要的操作:

(1)解压vsftpd-2.0.6.tar.gz

当前的版本是:vsftpd-2.0.6,压缩包只有155k。

#tar xvzf vsftpd_2.0.6.tar.gz

(2)交叉编译(使用交叉编译工具3.4.1,高版本编译可能会出问题);

需要修改的地方有两处。

第一处是Makefile的CC:

# Makefile for systems with GNU tools
CC = /usr/local/arm/3.4.1/bin/arm-linux-gcc

就是修改为你自己的交叉编译器的地址。

第二处是脚本vsf_findlibs.sh。这里主要是牵扯到库libcap的问题。(网上的修改都是更改到交叉编译器的lib文件夹下,发现即使在lib文件夹下面没有,也不影响。判断,这个库是没有必要,直接把这两行注释就可以了。)

# Look for libcap (capabilities)
# locate_library /lib/libcap.so.1 && echo "/lib/libcap.so.1";
# locate_library /usr/lib/libcap.so && echo "-lcap";

改完后,执行make,动态编译就成功了。如下:

[root@lqm vsftpd-2.0.6]# file vsftpd
vsftpd: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.3, dynamically linked (uses shared libs), stripped
[root@lqm vsftpd-2.0.6]# ls -l vsftpd
-rwxr-xr-x 1 root root 81728 Mar 22 16:46 vsftpd

查看相关信息;

由于本文件系统支持这个服务,所以以下蓝色部分可以省略;

第一步工作完成了。

第二步工作,把vsftpd拷贝到rootfs的/usr/sbin或者是/usr/local/sbin下面。

第三步工作就是配置文件vsftpd.conf。

直接修改vsftpd-2.0.6中的vsftpd.conf,修改后拷贝到rootfs的 /etc/vsftpd.conf。

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=077

anon_upload_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

pam_service_name=vsftpd

anon_root=/var/ftp

listen=YES

第四步工作就是牵扯到用户问题了。首先有一个本地用户,这样可以通过本地用户进行访问;其次要匿名用户,这就需要ftp用户;还需要有一个nobody用户。

直接拷贝host的/etc/passwd,/etc/group,/etc/shadow。

将 group中内容替换为如下:

root::0:root:
   ftp:x:50:
   nobody:x:99:
   users:x:100:
   500:x:500:boa:
   501:x:501:armlinux:

这样用户问题就解决了。

第五步工作就是相应的目录需要创建。

支持匿名用户需要创建/var/ftp,在ftp下建立了pub上传目录并设置pub权限为可修改

chmod 777 /ftp/pub。还需要建立/usr/share/empty目录,否则在访问时会出现:

500 OOPS: vsftpd: not found: directory given in ''''secure_chroot_dir'''':/usr/share/empty

这个是与配置选项相关的。

/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两个文件外,其他文件的需要具体看主配置文件的配置

建立了绿色部分。然后制作映象,烧写到目标板上,

通过standalone模式启动。

先要修改目标板的IP地址

Ifconfig eth0 10.10.70.12 netmask 255.255.255.0

然后起用服务:

[root@listentec /usr]#vsftpd &
[root@listentec /usr]# ps

启动,查看是否运行;

在host上测试(hont的IP要和目标板IP在同一网段中):IE中输入ftp://10.10.70.12/

出显FTP服务器共享文件ftp;

FTP服务器的移植成功;

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

#使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
listen_port=21
#ftp监听端口
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
#以上三条设定不允许登陆的用户,用户列表存放在/etc/vsftpd.user_list中,一行一个帐号
pam_service_name=vsftpd
#PAM所使用的名称.同userlist_*一样限制用户登陆,不同的是userlist_*在进行密码验证之前拒绝用户登陆,pam是在密码验证之后拒绝登陆.(提示密码错误) 用户列表默认存放在/etc/ftpusers中,一行一个. (可通过/etc/pam.d/vsftpd重定向用户列表存放文件)
#获得 /etc/pam.d/vsftpd:
#[root@LFS vsftpd-2.0.1]#cp RedHat/vsftpd.pam /etc/pam.d/vsftpd

max_clients=100
#最大用户在线数量
max_per_ip=2
#每ip最大线程
anon_max_rate=30000
#匿名用户最大传输速度  单位: bytes/秒
local_max_rate=50000
#本地用户最大传输速度  单位:bytes/秒
user_config_dir=/etc/userconf
#个别用户配置目录(用来设定特殊帐号),例如我想让blue这个用户的传输速度是100KB
就可以在/etc/userconf/下创建文本文件blue(与用户名相同),加入local_max_rate=100000即可
anon_root=/var/ftp 
#设定匿名用户登陆后所在的目录
local_root=/var/local_user 
#设定所有本地用户登陆后的目录,如不设置此项,则本地用户登陆后位于各自家目录下。
use_localtime=YES
#使用本地时间而不是GMT

nopriv_user=vsftpd
#设定服务执行者为vsftpd,默认使用的是nobody,vsftpd推荐使用一个权限很低的用户.这里用vsftpd代替nobody,创建 vsftpd用户:

1、 #adduser nobody          //VSFTPD默认配置中需要“nobody”用户。可能系统已经存在此帐号,那就不用建立
    #mkdir /usr/share/empty  //VSFTPD默认配置中需要“/usr/share/empty”目录。可能系统已经存在此目录,那就不用建立
  
    #mkdir /var/ftp          //VSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。可能系统已经存在此目录,那就不用建立
    #adduser -D /var/ftp ftp  //可能你的系统已经存在此帐号,那就不用建立
  
    #chown root:root /var/ftp
    #chmod og-w /var/ftp

2、创建一个本地用户,创建好之后就可以用zz登录
    #adduser zz
    #passwd 123456
3、添加一个只能从ftp登录服务器,而不能从本地登录的用户
    #adduser –g ftp –s /sbin/nologin ftpuser
    #passwd 123456

嵌入式FTP服务器的移植与配置:VSF…相关推荐

  1. 嵌入式FTP服务器的移植与配置(1):VSFTPD-2.0.6移植

    据我了解,FTP服务器vsftpd,proftpd,pureftpd等.考虑到我的CentOS4.5上装的是vsftpd,而且vsftpd很小,但功能还是比较强大.从网上搜索资料,发现该ftp服务器的 ...

  2. FTP服务器的安装和配置

    FTP服务器的安装和配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本来是想出一个源码安装ftp的教程,但是想想还是算了,如果你自学python有个10天的话你自己就能写一个f ...

  3. centos FTP服务器的架设和配置

    Ftp搭建 参考资料:centos FTP服务器的架设和配置 2009-06-17 18:08 12119人阅读 评论(0) 收藏 举报 1.yum install vsftpd 2.启动/重启/关闭 ...

  4. FTP服务器的安装与配置

    FTP的安装与配置 安装前准备 vsftpd是linux下的一款小巧轻快,安全易用的FTP服务器软件,是一款在各个Linux发行版中最受推崇的FTP服务器软件. 1.安装vsftpd,直接yum 安装 ...

  5. linux中ftp服务器的搭建和配置

    linux中的ftp服务的搭建及配置 1 ftp概述 2 ftp服务的搭建 2.1 ftp的客户端 2.2 FTP的服务端 2.2.1 服务端软件vsftpd的下载 2.2.2 vsftp的环境配置 ...

  6. FTP服务器的搭建与配置

    一.FTP服务器简介 FTP(File Transfer Protocol):文件传输协议,是一个客户机/服务器系统.使用FTP的用户需要经过验证后才能登录 FTP:文件传输协议,工作模式[客户端/服 ...

  7. FTP服务器创建用户及配置权限

    前言 上一篇中我们创建了FTP 服务器,有疑问可以查看手把手教你Linux下搭建ftp服务 本篇我们看一下用户的创建与分配权限 创建用户 使用useradd命令:useradd username    ...

  8. 3 配置ftp文件服务器,服务器_用Linux架设FTP服务器(3), 配置“/etc/ftpaccess”文件  - phpStudy...

    用Linux架设FTP服务器(3) 配置"/etc/ftpaccess"文件 "/etc/ftpaccess"文件是用来配置"ftpd"的. ...

  9. 配置ftp服务器实现文件传输,配置ftp服务器实现文件传输

    配置ftp服务器实现文件传输 内容精选 换一换 云堡垒机支持文件传输功能,以及审计传输的文件.Linux主机和Windows主机的文件传输方式有所区别.Linux主机上传/下载文件,可选择Web运维和 ...

  10. ftp服务器 vsftpd搭建和配置以及虚拟用户的设置

    tp: File Transfer Protocol应用层协议:tcp, 21/tcpC/S:Client: 程序Server: 程序数据:命令连接:文件管理类命令,始终在线的连接数据连接:数据传输, ...

最新文章

  1. 聊天截图厚码也不安全,大神写了算法分分钟给你还原
  2. 其实,人的核心职场时间是有限的,一定要和高手玩
  3. 力扣——整数反转(Java)
  4. 阿里云飞天洛神2.0:高性能网络软硬一体化技术实践
  5. eclipse项目一直显示有错,但是一直找不到错误在哪里
  6. 沈阳建筑大学c语言真题,沈阳建筑大学C语言复习资料.doc
  7. C++:new分配内存
  8. fiddler修改支付金额_支付漏洞总结
  9. 在一个字符串中找到第一个只出现一次的字符。
  10. python和其它语言混合编程_C++和Python混合编程 - python嵌入C++
  11. memcache php 到期时间,Memcache PHP会话调优:memcache如何过期密钥?
  12. python流水灯程序_单片机流水灯汇编语言源代码大全(六款流水灯汇编语言源代码)...
  13. linux创建文件夹操作步骤,linux如何用命令创建新建文件夹
  14. 用canvas画圆饼图
  15. 旅游网站设计制作方案
  16. 毕业后,重装电脑系统,我的资料备份
  17. LCD显示屏的器件选择和驱动电路设计
  18. Android 获取地理位置的经度和纬度
  19. echarts 直方图加正态_直方图和正态分布图(只需填入待分析数据_自动分析_自动生成图)...
  20. dart sass自学笔记

热门文章

  1. 电路布线问题(迷宫问题)
  2. JavaWeb之servlet详解(转帖)
  3. win7企业版怎么都激活不了,看这里
  4. wince与android USB通信,WinCE全站仪如何与手机通过USB互传数据
  5. 3.7V转5V电路图芯片,3.7V升压5V的升压芯片
  6. 玩家浅谈MID平板电脑主流中端方案
  7. 2022年最新前端面试题(大前端时代来临卷起来吧小伙子们..持续维护走到哪记到哪)
  8. 一篇文章让小白了解什么是软件测试
  9. java技术简介英文_JAVA技术人员英文简历模板
  10. 分享一个Latex一页纸简历模板(中英文)