缺点,ftp密码是和系统密码是一致的,并不安全安全
先设置两个测试用户测试
test1 123123spa
test2 1231233d
基本用户基础配置blog
一、本地用户基本配置it
local_enable-YES #容许本地用户登陆test
write_enable=YES #容许本地用户上传登录
local_umask=022 #本地用户上传umask值基础
关闭防火墙,关闭SELinux,直接修改配置文件ftp
重启系统,重启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用户就能够访问全部文件