Linux系统学习 十六、VSFTP服务—本地用户访问—基本用户基础配置

缺点,ftp密码是和系统密码是一致的,并不安全

先设置两个测试用户

test1      123123

test2      123123

基本用户基础配置

1、本地用户基本配置

local_enable-YES                 #允许本地用户登录

write_enable=YES                 #允许本地用户上传

local_umask=022              #本地用户上传umask值

关闭防火墙,关闭SELinux,直接修改配置文件

重启系统,重启vsftp服务

在test1的家目录下创建一个目录

登陆的默认位置

上传:

从本地的E盘上传一个文本文件

可以看到在/home/test1/目录下就有了1.txt文件

下载:

local_root=/var/ftp               #设置本地用户的ftp根目录(注意目录权限;不能针对不同用户,是对所有登陆者都生效的)

local_max_rate=0                 #限制最大传输速率(字节/秒)

需要自行添加

创建目录,重启ftp服务(只要修改了配置文件)

客户端退出重新登录

但是用test2连接时也是在相同的路径下了(在后面的虚拟用户访问中会有解决)

此时如果上传文件的话会出现以下问题

此时在配置文件中是允许写操作的,但是并不能上传,这是因为test1_root目录test1用户没有权限,只有root权限(所有者是root,所有组也是root)

解决方法:

创建一个用户组,将test1和test2添加到该组内

然后修改该目录的所属组和权限

重新上传:

此时就可以啦

这种其实存在一个很大的缺陷,可以往上级目录翻,有就是说,我可以访问整个系统的所有文件,虽然有些地方不能上传,但是我都可以下载,此时就可以下载出用户密码文件,很不安全

此时就要进行设置限制用户只能在特定目录下操作

把用户限制在家目录下:

chroot_local_user=YES             #开启用户目录限制(如果只开启此行,把所有用户都限制在用户主目录中)

重启服务

重新登录后,会显示直接在根目录下

但是ls后,看到的是1.txt也就是/tmp/test1_root/目录下的内容,也就是说ftp将/tmp/test1_root/目录就当做是根目录

开启以下三项,就可以将不同的用户做不同的限制了

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list          #写入/etc/vsftpd/chroot_list文件中的用户可以访问任何目录,其他用户限制在哪用户主目录

文件chroot_list默认是不存在的需要手工添加,然后直接将用户名写进去就好了

重启

我将用户test2写入该文件

此时test1就只能访问/tmp/test1_root/而test2用户就可以访问所有文件

(0)

相关推荐