VSFtpd编译配置说明

1 篇文章 0 订阅
1 篇文章 0 订阅

说明:使用vsftpd版本vsftpd-3.0.3,网上下载的源码。这里是初步配置,交叉编译配置虚拟用户时,需要的各种库交叉编译时需要各种依赖,所以这个版本没有配置虚拟用户,感兴趣的朋友可以自行研究。

  • gcc编译

  1. 解压vsftpd-3.0.3.tar.gz,解压命令tar –zxvf vsftpd-3.0.3.tar.gz 。
  2. cd进入解压的目录vsftpd-3.0.3中。
  3. 编译:make clean && make。
  4. 报错:
  5. 通过find / -name libcap.so.2命令查找到/lib64/libcap.so.2和/lib/libcap.so.2下均有这个库。再看vsf_findlibs.sh中关于这个库,如下图选中的地方,若编译不通过,换/lib64/ libcap.so.2,再不行,注释关于libcap.so.2这个库的内容。
  6. 重新编译:make clean && make。
  7. 编译通过后在当前目录生成vsftpd执行文件,关于vsftpd运行除该可执行程序外还需要配置文件vsftpd.conf。
  • 交叉编译

  1. 解压vsftpd-3.0.3.tar.gz,解压命令tar –zxvf vsftpd-3.0.3.tar.gz 。
  2. cd进入解压的目录vsftpd-3.0.3中。
  3. vi Makefile修改CC = gcc 为CC = arm-xilinx-linux-gnueabi-gcc(这里是我的交叉编译工具链)。
  4. 编译:make clean && make。
  5. 报错:
  6. 这里可以通过find / -name libcap.so.2命令查找交叉编译工具链中是否有libcap.so.2这个库,如果有修改下图选中的地方,目录指向交叉编译工具链。否则,注释所有关于libcap.so.2的内容。
  7. 重新编译:make clean && make。
  8. 编译通过后在当前目录生成vsftpd执行文件,关于vsftpd运行除该可执行程序外还需要配置文件vsftpd.conf。
  • 配置

  1. 将vsftpd和vsftpd.conf文件拷贝出来,放入创建好的执行目录,chmod 777 vsftpd修改权限。
  2. 修改配置文件:
  3. # add config
    userlist_file=/etc/vsftpd.user_list
    userlist_enable=YES
    userlist_deny=NO
    
    # set config
    listen=YES
    anonymous_enable=NO 
    local_enable=YES
    write_enable=YES
    secure_chroot_dir=/var/run/vsftpd/empty

 4.配置文件添加内容部分说明,

vsftpd.user_list:本地用户列表,用于登录的用户名列表。

write_enable:本地用户读写权限。

secure_chroot_dir=/var/run/vsftpd/empty:必要配置。

local_root=/mnt/:本地用户登录默认指向目录,且无法跳出该目录。

注意一定不要配置“local_umask=777”,否则你会发现文件怎样都上传不了。其他配置请自行研究。

  • 目录和本地用户配置

  1. adduser nobody,创建本地用户的前提是添加nobody用户,即匿名用户。
  2. adduser uftp 创建用户,用户名可以修改为其他名字,密码记住,那是你登录时要使用的密码。查看/home/目录下是否存在uftp文件夹,若不存在请手动创建一个mkdir –p /home/uftp 。
  3. mkdir -p /var/run/vsftpd/empty/ 必须。
  4. vi /etc/vsftpd.user_list 在这里添加uftp用户名。多个用户添加格式如下图所示:
  5. 配置文件归属用户:chown –R uftp /home/uftp。这一步的配置是防止后面上传文件提示没有权限的时候使用。后面跟的文件目录为本地用户上传的文件目录,与配置文件local_root后面跟的配置有关。默认指向用户本身所在,uftp用户默认目录为/home/uftp。
  • 程序运行

  1. 运行程序:./vsftpd vsftpd.conf。
  2. 说明:vsftpd和配置文件存放位置可以自行选择。如果vsftpd.conf在环境变量指向的目录,则可以直接运行./vsftpd。
  • filezilla使用

  1. 根据运行vsftpd的平台IP地址登录,用户名uftp,密码是刚刚创建uftp用户时的密码,端口不用填,点击连接按钮,开始连接。
  2. 遇到提示框,直接点确定按钮。
  3. 连接成功如下图所示:
  4. 此时就可以直接使用鼠标拖拽文件互传了。

  5. 如果无法上传,请查看上传的目录读写权限,命令ls –l查看,更改文件夹读写权限命令“chmod 777 dir”,dir指文件夹,如/mnt/home/uftp/。另外一个就是更改文件归属,chown –R uftp /home/uftp

安装步骤: 0、交叉编译环境配置 在/etc/profiel 和 .bashrc 文件中增加以下内容 export PTAH=$PATH://root/compile/arm-none-linux-gnueabi/bin source .bashrc 1、解压 tar -zxvf vsftpd-3.0.3.tar.gz.tar 2、修改Makefile文件 vim Makefile CC=arm-none-linux-gnueabi-gcc 3、执行make,已修复以下错误 make (1)错误提示:/bin/sh:./vsf_findlibs.sh: Permission denied 解决措施:chmod 775 ./vsf_findlibs.sh (2)错误提示:/lib/libcap.so.2:could not read symbols: File in wrong format 解决措施:修改vsffindlibs.sh,屏蔽掉50-60行 (3)错误提示:sysdeputil.c:(.text+0xdcc):undefined reference to `crypt' 解决措施:arm-none-linux-gnueabi/libc/lib/下的libcrypt.so.1复制到开发板根文件系统/lib目录下 4、拷贝文件到开发板中 make成功之后有在当前目录生成了vsftpd文件,通过以下命令查找对应的依赖性 arm-linux-readelf -d vsftpd   Tag        Type                        Name/Value 0x00000001 (NEEDED)                    Shared library: [libcrypt.so.1] 0x00000001(NEEDED)                     Shared library: [libc.so.6] 把vsftpd、libcrypt.so.1及这两个连接所指向的源文件拷贝开发板系统根目录/lib中。 把生成的vsftpd拷贝到根文件系统的sbin目录,vsftpd.conf文件拷贝到开发板系统根文件系统的etc目录下。 5、配置vsftpd.conf #使vsftpd处于独立启动模式 listen=YES listen_port=21 anon_other_write_enable=YES 6、开发板根文件系统创建必要的目录: mkdir-p /var/ftp/pub mkdir -p /usr/share/empty chown root:root/var/ftp chmod 755 /var/ftp cd /var/ftp chmod 777 pub pub这个目录是用来供匿名用户上传文件的,上传的文件存放在此处,故其属性为777,而其他目录无此属性,不能用来作为上传目录。 7、开发板执行以下命令启动 vsftpd/etc/vsftpd.conf& 8、启动ftp登录 用户名root密码空,可访问开发板任意目录; 用户名anonymous密码空,可访问/var/ftp/pub目录 用户名ftp密码空,可访问/var/ftp/pub目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值