#安装 yum install -y vsftpd #设置开机启动 systemctl enable vsftpd.service #启动 systemctl start vsftpd.service #中止 systemctl stop vsftpd.service #查看状态 systemctl status vsftpd.service
useradd -s /sbin/nologin -d /var/www/html ftpuser passwd ftpuser
参数说明 :
useradd
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-s:指定用户登入后所使用的shell。默认值为/bin/bash。
参考地址:# Linux命令---useraddhtml
passwd 是修改用户密码linux
相关命令:
usermod -s /sbin/nologin ftpuser 修改用户登入后所使用的shell
usermod -d /var/www/html ftpuser 修改用户登入时的主目录
userdel -r ftpuser 删除指定用户 -r 参数是指删除用户所有文件shell
#打开配置文件 vi /etc/vsftpd/vsftpd.conf
这里要关注的几个配置项
1.不容许匿名访问安全
anonymous_enable=NO
2.是否容许使用本地账户进行FTP用户登陆验证bash
local_enable=YES/NO
本地帐号和虚拟帐号区别主要在于可否登陆系统,帐号有权限能够登陆操做系统的为本地帐号,而不能登陆操做系统只能使用某些服务登陆的为虚拟系统。服务器
userlist_enable=YES userlist_deny=NO
当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:全部出如今名单中的用户都会被拒绝登入;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出如今名单中的用户才会被准许登入(user_list以外的用户都被拒绝登入);ide
参考:vsftpd中关于ftpusers和user_list两个文件的说明以及vsftpd.conf中的userlist_enable和userlist_deny两个配置项的解释测试
按上面得设置,则须要在名单文件 /etc/vsftpd/user_list中添加ftpuser(一行一个用户名),ftpuser才能够登录。阿里云
4.用户不能离开主目录spa
chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user
是否将全部用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不作配置的话,ftp用户是能够向上切换到要目录以外的)
chroot_list_enable
是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
chroot_list_file=/etc/vsftpd/chroot_list
是否限制在主目录下的用户名单,至因而限制名单仍是排除名单,这取决于chroot_local_user的值。
参考:vsftpd 配置:chroot_local_user与chroot_list_enable详解
按上面得设置,则须要在名单文件 /etc/vsftpd/chroot_list中添加ftpuser(一行一个用户名),ftpuser才会被如今在主目录中,不容许离开。
5.用户的主目录写权限
从2.3.5以后,vsftpd加强了安全检查,若是用户被限定在了其主目录下,则该用户的主目录不能再具备写权限了!若是检查发现还有写权限,就会报该错误。
要修复这个错误,你能够在vsftpd的配置文件中增长下列项:
allow_writeable_chroot=YES
还有一种方法:能够用命令 chmod a-w /var/www/html 去除用户主目录的写权限
6.基本配置以上选项便可了,也能够查看详细配置介绍
1.500 OOPS: vsftpd: refusing to run with writable root inside chroot() 错误,解决请参考配置第5项;
2.530 Login incorrect错误 :