vsftp安装 创建用户 并限定用户在自己的目录
1、查看是否已经安装了vsftpd
vsftpd -version
2、安装vsftpd(CentOS7)
yum install -y vsftpd
3、新建FTP目录
创建的FTP目录如下:
mkdir -p /data/KodServer/data/User/tomas/home
4、创建新用户
ftpname为你为该ftp创建的用户名,/data/KodServer/data/User/tomas/home 为登录进去后的位置
useradd -d /data/KodServer/data/User/tomas/home -s /bin/bash ftpname
5、为新建的用户设置密码
passwd ftpname
【备注:用cat etc/passwd可以查看当前系统用户】
6、设置主目录(更改登录时看到的目录,看个人需要更改,如果第4步已设置好,此步可忽略)
usermod -d /data/KodServer/data/User/tomas/home ftpname
7、添加用户组(这步可忽略)
groupadd ftpgroup
这里如果三root用户创建的文件夹,要把文件夹的全线给新建的用户, 否则能访问但是不能上传
chmod ftpname:ftpgroup /data/KodServer/data/User/tomas/home
8、防火墙添加FTP服务
firewall-cmd --permanent --zone=public --add-service=ftp firewall-cmd --reload
解决办法:
重启vsftpd进程报错 failed to start vsftpd ftp daemon,手动杀死 进程。
ps auxf | grep vsftpd systemctl restart firewalld.service
9、配置只能访问自身目录(/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
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
/etc/vsftpd/chroot_list 这个文件不存在,就要自己手动创建!!!
保存,重启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
如果看不到文件列表,关闭 SELinux
解决方法:关闭SELinux 查看SELinux状态:/usr/sbin/sestatus -v #如果SELinux status参数为enabled即为开启状态 方法一:临时关闭(不用重启机器) setenforce 0 #设置SELinux 成为permissive模式 #setenforce 1 设置SELinux 成为enforcing模式 方法二:修改配置文件需要重启机器 修改/etc/selinux/config 文件 将SELINUX=enforcing改为SELINUX=disabled 重启机器即可
来源:https://www.cnblogs.com/xiaojf/p/9023222.html