CentOS系统版本:CentOS-7-x86_64-Minimal
对于匿名的根路径/var/ftp/pub,本地用户的根路径/home/dunhanson的权限中不能有写的权限,不然会出现无法登录的情况,因为配置文件的注释中规定开启chroot_local_user=YES后,根路径不能有写的权限(所以说看注释很重要,之前因为登录不上的问题困惑了很久,为啥之前不看注释?英文呗。。。)。
再闲谈一下,关于关闭SELINUX我其实是很抵触的,它的作用就是安全,就像Windows自带的防火墙一样,很多关于Tomcat配置的文章会叫你把防火墙关闭,而不是添加到例外。
不过看了一篇介绍是这么描述的:
SElinux对于Linux新手来说可能是一个比较难于理解的工具,对于一般的新手系统管理员来说,你可以先跳过这个工具,简单的disable掉它。
SElinux很大程度上解决了简单的权限认证不能够保证系统真正安全的问题,是美国军方提出的。所以对于系统复杂,分工详细,安全要求比较高的系统来说,这是一个好东西,不过同时带来的是较为复杂的设置(一般非常强大的可定制工具都是这样),要求管理员对系统和程序比较了解,否则可能把自己希望的服务挡掉继而出现本文提到的类似问题。
1、安装vsftpd
[root@localhost ~]# yum -y install vsftpd
2、启动vsftpd
[root@localhost ~]# systemctl enable vsftpd
[root@localhost ~]# systemctl start vsftpd
3、关闭selinux
[root@localhost ~]# vi /etc/selinux/config
SELINUX=disabled
[root@localhost ~]# shutdown -r now
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
[root@localhost ~]# mkdir /var/ftp/pub/upload
[root@localhost ~]# chmod -R 666 /var/ftp/pub/upload
[root@localhost ~]# systemctl restart vsftpd
[root@localhost dunhanson]# user add dunhanson
[root@localhost dunhanson]# passwd dunhanson
Changing password for user dunhanson.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.[root@localhost ~]# mkdir /home/dunhanson/upload
[root@localhost ~]# chmod -R 666 /var/ftp/pub/upload
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
#禁止匿名访问
anonymous_enable=NO
#无须开启chroot_list_enable和chroot_list_file
chroot_local_user=YES
[root@localhost ~]# systemctl restart vsftpd