说明:使用vsftpd版本vsftpd-3.0.3,网上下载的源码。这里是初步配置,交叉编译配置虚拟用户时,需要的各种库交叉编译时需要各种依赖,所以这个版本没有配置虚拟用户,感兴趣的朋友可以自行研究。
-
gcc编译
- 解压vsftpd-3.0.3.tar.gz,解压命令tar –zxvf vsftpd-3.0.3.tar.gz 。
- cd进入解压的目录vsftpd-3.0.3中。
- 编译:make clean && make。
- 报错:
- 通过find / -name libcap.so.2命令查找到/lib64/libcap.so.2和/lib/libcap.so.2下均有这个库。再看vsf_findlibs.sh中关于这个库,如下图选中的地方,若编译不通过,换/lib64/ libcap.so.2,再不行,注释关于libcap.so.2这个库的内容。
- 重新编译:make clean && make。
- 编译通过后在当前目录生成vsftpd执行文件,关于vsftpd运行除该可执行程序外还需要配置文件vsftpd.conf。
-
交叉编译
- 解压vsftpd-3.0.3.tar.gz,解压命令tar –zxvf vsftpd-3.0.3.tar.gz 。
- cd进入解压的目录vsftpd-3.0.3中。
- vi Makefile修改CC = gcc 为CC = arm-xilinx-linux-gnueabi-gcc(这里是我的交叉编译工具链)。
- 编译:make clean && make。
- 报错:
- 这里可以通过find / -name libcap.so.2命令查找交叉编译工具链中是否有libcap.so.2这个库,如果有修改下图选中的地方,目录指向交叉编译工具链。否则,注释所有关于libcap.so.2的内容。
- 重新编译:make clean && make。
- 编译通过后在当前目录生成vsftpd执行文件,关于vsftpd运行除该可执行程序外还需要配置文件vsftpd.conf。
-
配置
- 将vsftpd和vsftpd.conf文件拷贝出来,放入创建好的执行目录,chmod 777 vsftpd修改权限。
- 修改配置文件:
-
# 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”,否则你会发现文件怎样都上传不了。其他配置请自行研究。
-
目录和本地用户配置
- adduser nobody,创建本地用户的前提是添加nobody用户,即匿名用户。
- adduser uftp 创建用户,用户名可以修改为其他名字,密码记住,那是你登录时要使用的密码。查看/home/目录下是否存在uftp文件夹,若不存在请手动创建一个mkdir –p /home/uftp 。
- mkdir -p /var/run/vsftpd/empty/ 必须。
- vi /etc/vsftpd.user_list 在这里添加uftp用户名。多个用户添加格式如下图所示:
- 配置文件归属用户:chown –R uftp /home/uftp。这一步的配置是防止后面上传文件提示没有权限的时候使用。后面跟的文件目录为本地用户上传的文件目录,与配置文件local_root后面跟的配置有关。默认指向用户本身所在,uftp用户默认目录为/home/uftp。
-
程序运行
- 运行程序:./vsftpd vsftpd.conf。
- 说明:vsftpd和配置文件存放位置可以自行选择。如果vsftpd.conf在环境变量指向的目录,则可以直接运行./vsftpd。
-
filezilla使用
- 根据运行vsftpd的平台IP地址登录,用户名uftp,密码是刚刚创建uftp用户时的密码,端口不用填,点击连接按钮,开始连接。
- 遇到提示框,直接点确定按钮。
- 连接成功如下图所示:
-
此时就可以直接使用鼠标拖拽文件互传了。
- 如果无法上传,请查看上传的目录读写权限,命令ls –l查看,更改文件夹读写权限命令“chmod 777 dir”,dir指文件夹,如/mnt、/home/uftp/。另外一个就是更改文件归属,chown –R uftp /home/uftp。