入门
最简单运行vsftpd
允许本地用户访问
允许root用户登录
用户不可以改变主目录

入门

最简单运行vsftpd

通常的linux发行版只要运行 /etc/init.d/vsftpd 脚本就可以启动 vsftpd ,然后把想要放到ftp服务器上的文件拷贝到系统的 /var/ftp/pub 里面,在修改 /var/ftp/pub 下面的文件属主和用户组为 ftp,访问权限至少可读。

# /etc/init.d/vsftpd start
# chown -R ftp.ftp /var/ftp/pub/*
# find /var/ftp/pub/ -type f | xargs -i chmod 644 {}
# find /var/ftp/pub/ -type d | xargs -i chmod 755 {}

现在就可访问这台ftp服务器了。访问中可能会出现下面问题:

  1. 访问拒绝:如果通过工具访问总是被拒绝,需要查看启动vsftpd服 务机器的iptables设置。如果不会配置防火墙,可以简单的关闭防 火墙(“ /etc/init.d/iptables stop")
  2. 查看文件不能出现全部:比如我就出现过只能看见目录,不能看见 任何文件的情况,这一般是权限问题。需要查看 /var/ftp/pub 目 录下文件的访问权限,如果这些确信没有问题,在查看系统的 selinux 是否开启。如果不会配置selinux可以关闭。或者运行如下 命令赋予权限:
setsebool -P ftpd_disable_trans=1

允许本地用户访问

默认不允许root访问,这里只是让其他系统用户访问。

  1. 创建本地用户的FTP服务器目录
mkdir -p /wwwroot
  1. 创建本地用户和组
groupadd vsftp
useradd -G vsftp -d /wwwroot -M turbo
  1. 设置用户口令
passwd turbo
  1. 修改目录的属主和权限
chown vsftp.user01 /wwwroot
chmod 750 /wwwroot
  1. 修改vsftpd.conf
/etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
chroot_local_user=YES

允许root用户登录

在redhat的服务器vsftpd版本里面,通常/etc/vsftpd目录里面还有另 外两个文件:

# ls /etc/vsftpd/
ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh

把ftpusers和user_list里面的root字符去掉就可以在允许本地用户登 录的情况下允许root登录了。

用户不可以改变主目录

这就是让vsftpd在处理一个用户交互的时候chroot到设定好的目录, 这样ftp用户就不可以改变自己的主目录了。

#在vsftpd.conf配置文件中加上一句就可以
chroot_local_user=YES