yum -y install vsftpd
2,设置开机启动
systemctl enable vsftpd
3,启动FTP服务
systemctl start vsftpd.service
如图4所示,打开防火墙,开放21端口(centos7.4以后默认关闭防火墙防火墙)
- 1 firewall-cmd --zone=public --add-port=21/tcp --permanent
- 2 firewall-cmd --permanent --zone=public --add-service=ftp
- 3 firewall-cmd --reload
5,添加FTP用户
useradd -g root -d /home/wwwroot/asite -s /sbin/nologin ftpuser
注:表示新增一个名为ftpuser(用户名),且指定上传目录在/家庭/ wwwroot文件/ asite下
如果后期想变更此用户的上传目录到(/run/media/root/xxx/wwwroot/xxx.org),请使用下面的命令:
usermod -d /run/media/root/xxx/wwwroot/xxx.org ftpuser
如图6所示,设置用户密码
passwd ftpuser
7,配置selinux允许ftp访问home和外网访问(默认关闭centos7.4)
- 1 setsebool -P allow_ftpd_full_access on
- 2 setsebool -P ftp_home_dir on
如图8所示,设置权限(此用户可以访问整个主机目录,后面备注设置权限问题)
chown -R ftpuser:root /home/wwwroot/asite
9,修改VSFTP配置文件,禁用匿名登录
- 路径:vi /etc/vsftpd/vsftpd.conf
-
- anonymous_enable=YES 改为: anonymous_enable=NO
其他命令:
- 重启 service vsftpd restart
-
- 启动/停止service vsftpd start/stop
-
- 状态 service vsftpd status
以下是权限配置:
修改vi /etc/vsftpd/vsftpd.conf如下:(去掉注释!!!)
- chroot_local_user=NO
- chroot_list_enable=YES
- # (default follows)
- chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
编辑上面的内容
第一行:chroot_local_user = NO
第二行:chroot_list_enable = YES //限制访问自身目录
第四行:。编辑vsftpd.chroot_list根据第三行说指定的目录,找到chroot_list文件(因主机不同,文件名也许略有不同)
编辑vsftpd.chroot_list,将受限制的用户添加进去,每个用户名一行
说明:chroot_local_user = NO则所有用户不被限定在主目录内,chroot_list_enable = YES表示要启用chroot_list_file,因为chroot_local_user = NO,即全体用户都“不被限定在主目录内”,所以总是作为“例外列表” “的chroot_list_file这时列出的是那些‘会被限制在主目录下’的用户。
重启服务器
改完配置文件,不要忘记重启的vsFTPd服务器
运行命令:service vsftpd restart
ps重点:
当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列一项:
allow_writeable_chroot=YES
配置完成!
来源:CSDN
作者:欧嗨哟
链接:https://blog.csdn.net/weixin_39334848/article/details/103711246