armlinux移植vsftp

参考博客

ToToSun的博客

移植安装

下载vsftp源码

$wget http://fossies.org/linux/misc/vsftpd-3.0.5.tar.gz
$tar -xvzf vsftpd-3.0.5.tar.gz
$cd vsftpd-3.0.5

CC = gcc
改为
CC = arm-linux-gnueabihf-gcc
#如果未设置环境变量,需要编译器的绝对路径

修改交叉编译工具
$vim Makefile

$make

将目录下生成的的vsftpd移植到开发板的/usr/sbin目录下
对vsftpd进行修改,然后移植到开发板的/etc目录下

#以下为一个简单的配置。vsftpd.conf文件。
anonymous_enable=YES
#是否允许匿名访问
local_enable=YES
#允许本地用户访问(/etc/passwd中的用户)
write_enable=YES
#允许写入权限,包括修改,删除
local_umask=777
#本地用户文件上传后的权限
local_root=/vat/ftp
#设定所有本地用户登陆后的目录。
#如不设此项,则本地用户登陆后位于各自家目录下(如/home/yaho)。
anon_umask=777
#匿名用户上传后权限
anon_upload_enable=YES
#允许匿名用户上传
anon_mkdir_write_enable=YES
#允许匿名用户建立目录
anon_other_write_enable=YES
#允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
anon_world_readable_only=YES
#允许匿名用户浏览,下载文件
no_anon_password=YES
#匿名用户登录是不需要密码,YES不需要密码;NO需要密码
anon_root=/var/ftp
#设定匿名用户登陆后所在的目录
dirmessage_enable=YES
#当使用者转换目录,则会显示该目录下的.message信息
connect_from_port_20=YES
#确保ftp-datad 数据传送使用port 20
pam_service_name=vsftpd
#PAM所使用的名称.同userlist_*一样限制用户登陆,
#不同的是userlist_*在进行密码验证之前拒绝用户登陆,
#pam是在密码验证之后拒绝登陆.(提示密码错误)
#用户列表默认存放在/etc/ftpusers中,一行一个.
#(可通过/etc/pam.d/vsftpd重定向用户列表存放文件)
ftp_username=ftp
#定义匿名登入的使用者名称。默认值为ftp。
tcp_wrappers=NO
#支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny),
#NO是可以访问
listen_port=21
#ftp监听端口,注意是21
allow_writeable_chroot=YES

创建相关文件夹

  1. #mkdir /var/ftp
  2. #mkdir /var/ftp/pub //改文件夹可以拉取,上传和删除操作
  3. #chmod 777 /var/ftp //会导致问题1,chmod 555 /var/ftp
  4. #chmod 777 /var/ftp/pub

添加用户

  1. #adduser nobody //vsftpd匿名用户登陆,必需
  2. #mkdir /usr/share/empty //必需
  3. #adduser -d /home/ftp ftp //若该指令无效,请尝试adduser -h /home/ftp ftp
  4. #chown root:root /home/ftp //注意不是/var/ftp
  5. #chmod 755 /home/ftp

运行测试

#vsftpd /etc/vsftpd.conf &

问题

问题1

500 OOPS: vsftpd: refusing to run with writable root inside chroot()
解决操作#chmod a-w /var/ftp
网上推荐的方法二 配置文件添加allow_writeable_chroot=YES,本人测试无效

上一篇:本机搭建FTP服务器


下一篇:Linux安装Node.js