嵌入式ftp服务器移植

嵌入式FTP服务器(vsftpd)移植说明

  

   FTP软件版本

    vsftpd-2.1.2

    操作系统

    ubuntu-10.04

    交叉编译工具

    arm-none-linux-gnueabi-gcc (4.4.3)

 

   一. 交叉编译vsftpd

   

1. tar –xvzfvsftpd-2.12.tar.gz

cd vsftpd-2.12

2. 修改makefile

#CC =   gcc

CC   =   arm-none-linux-gnueabi-gcc

3. 修改vsf_findlibs.sh

#iflocate_library /lib/libcap.so.1; then

#  echo "/lib/libcap.so.1";

#eliflocate_library /lib/libcap.so.2; then

#  echo "/lib/libcap.so.2";

#else

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

#  locate_library /lib/libcap.so && echo"-lcap";

#fi

4. make

 

     最后生成了vsftpd ,放在根文件系统目录/usr/sbin目录下,或者制定的程序运行目录下均可

 

二. 配置vsftpd服务器 

 

    1.主要是修改vsftpd.conf文件

    最后文件中的配置设置为如下:

anonymous_enable=YES                 //使能匿名登录

anon_umask=022

no_anon_password=YES                //匿名登录是不需要口令

ftp_username=ftp                    //必须设置,匿名登录时会寻找这个账户,找 不到会失败,因此系统必须有有此ftp的账户,匿名登录和使用ftp登录的效果是一     样的

 

local_enable=YES

write_enable=YES

local_umask=022

 

local_root=/home/root/dm816x-evm/ftp/FtpRoot/   //设置本地用户登陆根目录

anon_root=/home/root/dm816x-evm/ftp/FtpRoot/    //设置匿名登录根目录

chroot_local_user=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

chown_uploads=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

ascii_upload_enable=YES

ascii_download_enable=YES

ftpd_banner=Welcome to blah FTP service.

ls_recurse_enable=YES

listen=YES

listen_port=21

 

重要的设置如上图所示

 

 2. 建立必要的文件夹

mkdir –p/usr/share/empty

不创建的话,ftp客户端访问会出现问题

 

mkdir-p /etc/vsftpd

将配置文件vsftpd.conf放到此目录下,vsftpd程序执行时,会读取此配置文件

 

创建ftp传输根目录

mkdir –p/home/root/dm816x-evm/ftp/FtpRoot/

chownroot:root /home/root/dm816x-evm/ftp/FtpRoot/

chmod755 /home/root/dm816x-evm/ftp/FtpRoot/

mkdir –p/home/root/dm816x-evm/ftp/FtpRoot/pub

chmod777 /home/root/dm816x-evm/ftp/FtpRoot/pub

 

在这里本地用户登陆和匿名登录都使用/home/root/dm816x-evm/ftp/FtpRoot/作为根目录,本地用户和匿名用户登陆会有一些区别

利用root用户登陆服务器的话,/home/root/dm816x-evm/ftp/FtpRoot/文件目录是可读和可写的;

匿名登陆/home/root/dm816x-evm/ftp/FtpRoot/是不可写的,vsftpd处于安全性的考虑,匿名登陆登陆根目录必须是不可写的,所以/home/root/dm816x-evm/ftp/FtpRoot/设置权限为755;因此为了匿名登录也是可读可写,可以在根目录下建立可读可写的目录,如/home/root/dm816x-evm/ftp/FtpRoot/pub

 

 

3. 添加必要的账户用来登陆,匿名登录时需要转向此账户

   adduser ftp //供匿名登录使用,ftp登录和匿名登录的效果是一样的

 

5. 添加其他的账户

adduserzslf 此账户的登陆效果和root一样,但是不可写,因此也需要在本地用户根目录下新建一个可读和可写的目录来供其他的账户使用;

 

 

三.命令执行

./vsftpd/etc/vsftpd/vsftpd.conf  &

 

 

四.静止匿名登录

 

500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp

   取消匿名模式。

      vsftpd.conf中将anonymous_enable设置为NO,

      anonymous_enable=NO

 

      以上步骤经过实验,是完全可行的;


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值