zoukankan      html  css  js  c++  java
  • AM335X 开发板安装vsftpd操作流程

    1.首先要获取源码
    可以在网上下载vsftpd-2.3.4,或者其他的版本,解压之后进入vsftpd-2.3.4目录,主要修改两个文件Makefile和vsf_findlibs.sh两个文件;
    第一个文件Makefile

    CC      =       gcc
    INSTALL =       install
    IFLAGS  = -idirafter dummyinc
    #CFLAGS = -g
    CFLAGS  =       -O2 -Wall -W -Wshadow #-pedantic -Werror -Wconversion
    
    LIBS    =       `./vsf_findlibs.sh`
    LINK    =       -Wl,-s
    

    这里gcc是对应的编译器修改为arm-arago-linux-gnueabi-gcc即可,这样编译时就会调用交叉编译工具;
    第二个文件vsf_findlibs.sh,这个文件主要修改lib库,因为Makefile已经被我们修改,交叉编译需要用到的lib库的路径需要在sh里面进行修改,这里需要修改的lib路径主要有三个,第一个是主要关于cap库的 需要修改

    # Look for libcap (capabilities)
    if locate_library /lib/libcap.so.1; then
      echo "/lib/libcap.so.1";
    elif locate_library /lib/libcap.so.2; then
      echo "/lib/libcap.so.2";
    # add by zlb start 2015-2-10
    elif
      locate_library /home/ftploop/arm-arago-linux-gnueabi/arm-arago-linux-gnueabi/usr/lib/libcap.so.2;then
      echo "/home/ftploop/arm-arago-linux-gnueabi/arm-arago-linux-gnueabi/usr/lib/libcap.so.2";
    # add by zlb end
    else
      locate_library /usr/lib/libcap.so && echo "-lcap";
      locate_library /lib/libcap.so && echo "-lcap";
    fi
    

    其中add by zlb部分是我自己添加,这里添加的是交叉编译工具的lib路径,该路径修改之后再编译的话就不会出现关于lcap之类的错误了,这时候会出现pam方面的错误,就需要修改接下来一段库的路径地址,

    # Look for PAM (done weirdly due to distribution bugs (e.g. Debian) or the
    # crypt library.
    if find_func pam_start sysdeputil.o; then
      locate_library /home/ftploop/arm-arago-linux-gnueabi/arm-arago-linux-gnueabi/usr/lib/libpam.so.0 && echo "/home/ftploop/arm-arago-linux-gnueabi/arm-arago-linux-gnueabi/usr/lib/libpam.so.0";
      locate_library /home/ftploop/arm-arago-linux-gnueabi/arm-arago-linux-gnueabi/usr/lib/libpam.so && echo "-lpam";
      # HP-UX ends shared libraries with .sl
      locate_library /usr/lib/libpam.sl && echo "-lpam";
      # AIX ends shared libraries with .a
      locate_library /usr/lib/libpam.a && echo "-lpam";
    else
      locate_library /lib/libcrypt.so && echo "-lcrypt";
      locate_library /usr/lib/libcrypt.so && echo "-lcrypt";
    fi
    

    上面是我已经修改好的,可以对照着原始文件比较,这里我是添加的自己交叉编一起lib文件所在的路径,主要是libpam.so.0和libpam.so两个库的路径,
    以上是两个文件的修改,通过修改就能够将vsftpd进行编译,在vsftpd-2.3.4目录中执行make命令,编译之后就生成了vsftpd文件,编译完成之后执行命令查看vsftpd版本;

    命令:filvsftpd

    vsftpd:ELF32bitLSBexecutable,ARM,version1(SYSV),dynamicallylinked(usessharedlibs),forGNU/Linux2.6.16,stripped

    件 arm-linux-gnueabihf-readelf -d vsftpd 

    NEED为所要依赖的库文件

    上面就是执行之后的依赖项,NEEDED是需要的lib库,由于开发板上已经包含这些lib库,因此不需要添加相应的库文件;
    把vsftpd拷贝到rootfs的/usr/sbin或者是/usr/local/sbin下面,
    2设置vsftpd.conf文件
    最终vsftpd.conf为
    anonymous_enable=YES //允许匿名登录
    write_enable=YES //允许写权限
    local_umask=022 //本地用户的文件掩码
    anon_upload_enable=YES //允许匿名用户上传文件
    anon_mkdir_write_enable=YES//允许匿名用户创建文件夹
    dirmessage_enable=YES //自定义欢迎信息
    xferlog_enable=YES //系统自动维护上传和下载日志文件
    xferlog_file=/var/log/vsftpd.log//日志文件位置
    xferlog_std_format=YES //以标准xferlog的格式书写传输日志文件
    connect_from_port_20=YES //设定FTP服务器将启用FTP数据端口的连接请求
    ftpd_banner=Welcome to blah FTP service.By -zlb-//欢迎信息
    listen=YES //vsftpd自己监听和处理IPv4端口的连接请求
    以上就是需要设置的配置文件,然后将配置文件放置到/etc/目录下
    cp vsftpd.conf /etc
    3.开发板添加用户
    在开发板上创建必要的帐号、目录
    #addusr nobody //vsftpd默认配置需要
    #mkdir /usr/share/empty //vsftpd默认配置需要
    #adduser -D ftp
    #chown root:root /home/ftp //注意不是/var/ftp
    #chmod 755 /home/ftp 修改目录权限
    创建一个本地账户think,创建好之后可以用think登录
    #addusr think
    #passwd 123456
    然后运行vsftpd就可以进行愉快的上传下载了,通过ftp用户和匿名用户是不能够上传和下载的,尽管配置里面已经允许匿名这些功能,但是还是不能很好的实现,这是因为vsftpd.conf文件中没有放开权限;
    vsftpd 为了安全需要,/home/ftp目录不能把所有的权限打开,打开ftp目录的写权限后会显示“500 OOPS: vsftpd: refusing to run with writable anonymous root”,无法登陆ftp,所以我们这时要建一个目录pub,当然也还是需要继续修改配置文件的;
    # mkdir /home/ftp/pub
    # chmod -R 777 /home/ftp/pub
    匿名服务器配置文件:
    anonymous_enable=YES //允许匿名访问,
    write_enable=YES //全局配置可写,一定要加上这个,没有这个选项pub目录即便开了写权限也无法创建目录,上传文件
    anon_umask=077 //匿名用户上传的文件权限是-rw—-
    anon_upload_enable=YES //允许匿名用户上传文件
    anon_mkdir_write_enable=YES //允许匿名用户建立目录
    anon_other_write_enable=YES //允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
    dirmessage_enable=YES //当使用者转换目录,则会显示该目录下的.message信息
    以上操作之后就已经能够与开发板进行数据传输了。
    4.开机启动

  • 相关阅读:
    flv网页视频播放
    Select显示多级分类列表
    DateTime获取一个月的第一天和最后一天
    服务器不装Excel读取Excel并转换DataTable
    ScriptX使用
    CheckBoxList 全选(jquery版本)
    div绝对定位针对手机浏览器的区别
    JAVA 基础编程练习题22 【程序 22 递归求阶乘】
    JAVA 基础编程练习题21 【程序 21 求阶乘】
    JAVA 基础编程练习题20 【程序 20 求前 20 项之和】
  • 原文地址:https://www.cnblogs.com/longbiao831/p/4556243.html
Copyright © 2011-2022 走看看