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

重启机器即可

 

posted on 2018-05-11 10:14  肖建锋  阅读(8683)  评论(0编辑  收藏  举报