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用户就可以访问所有文件