一、基本安装

  1.安装服务

yum -y install vsftpd  //centos Redhat
apt-get install vsftpd //debian ubuntu

  2.开启服务

service vsftpd status  //查看状态,默认是关闭的
service vsftpd start

  3.开机随操作系统启动

chkconfig vsftpd on

  4.添加账号

useradd -d /data/www/wwwroot -s /sbin/nologin vsftp
passwd vsftp //设置密码
chown -R vsftp.vsftp /data/www/wwwroot //设置指向目录

  其中,/demo指的是指向目录,vsftp是要添加的用户名,也可以使用usermod设置已有用户。

二、基本设置

  1.打开配置文件

vi /etc/vsftpd/vsftpd.conf

  2.参照如下设置

userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
anonymous_enable=NO  //禁止匿名访问
local_enable=YES
write_enable=YES

  3.修改shell配置

vi /etc/shells  //如果该文件里没有/usr/sbin/nologin或者/sbin/nologin(具体看当前系统配置)则追加进去

  4.重启服务

service vsftpd start  //修改配置之后要重启服务

  

三、vsftp无法连接

service iptables stop //关闭防火墙

  或者修改配置文件

vi /etc/sysconfig/iptables-config
IPTABLES_MODULES="ip_conntrack_ftp"

  并添加规则

iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
service iptables save
service iptables restart

  

四、限制用户不能访问上级目录

  修改vsftp的配置文件vsftpd.conf

vi etc/vsftpd/vsftpd.conf

  修改下面的配置:  

chroot_local_user=YES
chroot_list_enable=YES //这行可以没有, 也可以有
chroot_list_file=/etc/vsftpd/chroot_list

  那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户,即可以浏览其主目录的上级目录。

  如果不希望指定的用户浏览其主目录上级目录中的内容,可以如下设置,然后在文件vsftpd/chroot_list中去掉或不添加该用户即可。

chroot_local_user=NO
chroot_list_enable=YES //这行必须要有, 否则文件vsftpd/chroot_list不会起作用
chroot_list_file=/etc/vsftpd/chroot_list

  

五、无法上传文件、创建文件/文件夹,或无法看到子目录

  这是由于selinux的机制,可以执行如下命令查看

getsebool -a|grep ftp

  使用如下命令重置权限

setsebool allow_ftpd_full_access=1

  修改目录权限

chmod  -R /var/ftp/pub

六、用户无法验证问题

VSFTP的使用-LMLPHPVSFTP的使用-LMLPHP

  当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误。从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

  方法1:修改配置文件vi /etc/vsftpd/vsftpd.conf,添加allow_writeable_chroot=YES

  方法2:用命令chmod a-w /home/user去除用户主目录的写权限

sudo chown -R root:root /home/ftp
cd /home/ftp
sudo mkdir FTPFILES
sudo chown -R vsftpuser:vsftpuser FTPFILES

  

05-11 20:19