• 【转】Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板


    Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板

    开发板:mini2440(2011.04.21)环境:ubuntu9.10

    为方便的将文件上传到开发板,采用vsftpd,移植过程如下:

    1.       获取源码,地址:ftp://vsftpd.beasts.org/users/cevans/

    2.       修改Makefile文件,按实际情况填写,请仔细查看路径,我的是

    CC =     /opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc

    3.       修改vsf_findlibs.sh

    屏蔽535457

    50 # Look for libcap (capabilities)

     51 if locate_library /lib/libcap.so.1; then

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

     53 #elif locate_library /lib/libcap.so.2; then

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

     55 else

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

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

     58   locate_library /lib64/libcap.so && echo "-lcap";

     59 fi

    4.  make

    5.  把动态链接库从编译器的lib下拷贝到跟文件系统的lib目录下,进入vsftpd-3.0.2目录,执行

    $ arm-none-linux-gnueabi-readelf -d vsftpd

     

    Dynamic section at offset 0x1caa0 contains 35 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]

     0x00000001 (NEEDED)                     Shared library: [ld-linux.so.3]

     0x0000000c (INIT)                       0x44c8

     0x0000000d (FINI)                       0x19180

     0x00000019 (INIT_ARRAY)                 0x24a94

     0x0000001b (INIT_ARRAYSZ)               4 (bytes)

     0x0000001a (FINI_ARRAY)                 0x24a98

     0x0000001c (FINI_ARRAYSZ)               4 (bytes)

    ….

    将上面的7个共享库拷贝过去,库路径是

    /opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/lib

    cp –advfr libcrypt.so.1 libdl.so.2 libnsl.so.1 libresolv.so.2 libutil.so.1 libc.so.6 ld-linux.so.3 /rootfs/lib

    6. 把生成的vsftpd 拷贝到跟文件系统的sbin目录下,把vsftpd.conf文件拷贝到 根文件系统的/rootfs/etc目录下。
    至此,arm-linux环境下的ftp服务器移植完成,下面开始对服务器进行配置。以下为一个简单的配置,不考虑安全性。

    anonymous_enable=YES
    local_enable=YES
    write_enable=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
    async_abor_enable=YES
    nopriv_user=ftp
    ascii_upload_enable=YES
    ascii_download_enable=YES
    ftpd_banner=Welcome to blah FTP service.
    ls_recurse_enable=YES
    listen_port=21
    anon_other_write_enable=YES

    7. 将文件系统镜像烧写,启动后在开发板上创建必要的账号、目录

    addusr nobody   //vsftpd 默认配置需要
    mkdir /usr/share/empty  //vsftpd 默认配置需要
    #adduser –D  ftp
    #chown root:root /home/ftp //注意不是/var/ftp
    #chmod 755 /home/ftp
    8. 创建一个本地账户michael,创建好之后可以用michael登录
    addusr michael
    #passwd 123456
    9. 添加一个只能从ftp登录,而不能从本地的登录的用户yaho
    addusr -G ftp -S yaho  //-G -S 如果用-g -s 客户将不能登录:530 Login incorrect
    #passwd 12345

    10. 服务器端执行 vsftpd /etc/vsftpd.conf ,客户端执行ftp YOUR_IP_ADDR ,输入帐号名yaho和密码即登入。
    11. cat /etc/passwd cat /etc/group 命令查看yahoftp是否是同一组

    12.测试

    Ubuntu

    $ ftp 板子IP

    Connected toXX.

    220 Welcome to blah FTP service.

    Name (XX:XX): yaho

    331 Please specify the password.

    Password:

    230 Login successful.

    Remote system type is UNIX.

    Using binary mode to transfer files.

    测试一般操作

    ftp> cd ..

    250 Directory successfully changed.

    ftp> ls

    200 PORT command successful. Consider using PASV.

    150 Here comes the directory listing.

    -rwxr-xr-x    1 1000     1000       584718 Nov 16  2011 Server

    drwxr-xr-x    1 0        0            2048 Aug 31 11:23 ftp

    drwxr-sr-x    1 1001     1001         2048 Aug 31 12:19 yaho

    可见远程登录后会进入/home/yaho目录下

    ftp> cd yaho

    ftp> mkdir work //在开发板上创建也可以,开放权限chmod 777

    ftp> cd work

    250 Directory successfully changed.

    测试上传文件

    ftp> put filename

    local: epaServer remote: epaServer

    200 PORT command successful. Consider using PASV.

    150 Ok to send data.

    226 Transfer complete.

    11541 bytes sent in 0.06 secs (189.1 kB/s)

    注意:ftp本身好像不支持这种绝对路径文件的上传,要上传,先进入要上传文件的目录中及FTP服务器具有写权限的目录中。

    Windows XP下用Cuteftp测试也是可以的。登录时用户名和密码同上,端口21,其他置空即可。

    结果如下

     

    =============================================================================

    vsftpd移植比较麻烦些,可以使用另外一个程序 stupid-ftpd, 这个移植起来很快,百度下就可以找到了

  • 相关阅读:
    Vue 项目运行 npm run dev 命令时会报错:“'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序” 的解决办法
    百度地图 操作步骤
    返回数据-----数组处理
    Echarts折线图,适配可移动
    jq checkbox的操作——全选、反选
    jquery 时间戳与日期转换
    Flex 布局
    iphone遇到INPUT标签BUG
    点击复制粘贴
    Python数据类型的可变与不可变
  • 原文地址:https://www.cnblogs.com/zhangbing12304/p/11051349.html
Copyright © 2020-2023  润新知