一、查看是否已经安装了vsftpdlinux
vsftpd -version
二、安装vsftpd(CentOS7)shell
yum install -y vsftpd
三、新建FTP目录centos
建立的FTP目录以下:bash
/data/KodServer/data/User/tomas/home
四、建立新用户服务器
ftpname为你为该ftp建立的用户名,/data/KodServer/data/User/tomas/home 为登陆进去后的位置ssh
useradd -d /data/KodServer/data/User/tomas/home -s /bin/bash ftpname
五、为新建的用户设置密码centos7
passwd ftpname
【备注:用cat etc/passwd能够查看当前系统用户】rest
六、设置主目录(更改登陆时看到的目录,看我的须要更改,若是第4步已设置好,此步可忽略)code
usermod -d /data/KodServer/data/User/tomas/home ftpname
七、添加用户组(这步可忽略)ci
groupadd ftpgroup
八、防火墙添加FTP服务
firewall-cmd --permanent --zone=public --add-service=ftp firewall-cmd --reload
解决办法:
①、查看ftp的Selinux状态:sestatus -b | grep ftp
②、在结果中能够看到: ftp_home_dir off
③、将状态改成on:setsebool -P ftp_home_dir on
④、重启vsftp服务:systemctl restart vsftpd.service
setsebool -P ftpd_full_access on systemctl restart firewalld.service
九、配置只能访问自身目录(/data/KodServer/data/User/tomas/home),不能访问其余路径
修改/etc/vsftpd.conf
cd /etc/vsftpd/ vi vsftpd.conf #去掉前面的注释 chroot_local_user=YES ascii_upload_enable=YES ascii_download_enable=YES #文件末尾添加 allow_writeable_chroot=YES
保存,重启vsftpd
设置开机启动:
systemctl enable vsftpd.service
启动vsftpd服务
systemctl start vsftpd.service
禁止ftp用户经过22端口登陆ftp服务器:
因为须要限制ftp用户在本身的目录,在21端口下没有问题,但当ftp用户用sftp登陆时,仍是能够访问上级目录,因而禁止ftp用户ssh登陆,切断22端口的通讯。
首先,执行以下命令,找到nologin的shell:
vi /etc/shells
能够看到禁止登陆的shell文件为/usr/sbin/nologin,而后执行以下命令:
usermod -s /usr/sbin/nologin tomas
若是要恢复tomas的ssh登陆,执行以下命令:
usermod -s /bin/bash tomas