配置虚拟用户访问

首先至少要关闭userlist

改完配置文件是要重启服务来使它生效

其实在刚装好vsftp的时候的配置文件不用修改的情况下配置虚拟用户访问控制是最好的

local_root选项不影响

本地用户登录的目录和虚拟用户登录的目录是不产生影响的

为防止有影响,把chroot也注释了

配置虚拟用户登录的步骤:

1、添加虚拟用户口令文件

2、生成虚拟用户口令认证文件

3、编辑vsftp的PAM认证文件

4、建立本地映射用户并设置宿主目录权限

5、修改配置文件

6、重启vsftp服务,并测试

7、调整虚拟用户权限

第一步:添加虚拟用户口令文件(该文件可以叫任何名字也可以放在任何位置)

vi /etc/vsftpd/vuser.txt  #内容如下

  cangls  #用户名

  123   #密码

  bols  #用户名

  123   #密码

以上的用户名密码并不能直接登录系统,所以不怕截取

第二步:生成虚拟用户口令认证文件

yum –y install db4-utils    #如果没有安装口令认证命令,需要安装

db_load –T –t hash –f  /etc/vsftpd/vuser.txt  /etc/vsftpd/vuser.db   #把文本文档转换为认证的数据库

-T:转化

-t:指定转换函数

-f:指定文件

第三步:编辑vsftp的PAM认证文件

vi /etc/pam.d/vsftpd

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

#注释掉其他行,加入这两行即可

#注释其他行,可以禁止本地用户登录,因为本地用户登录时的验证依然依赖这个文件

该文件中本身就有一些规则,定义的是本地用户的验证规则

在vsftp的配置文件最下面有一行设置,就是pam文件

vi中将2~8行添加#号

添加修改完成后,重启服务

此时本地用户就不能登录了

第四步:建立本地映射用户并设置宿主目录权限

useradd –d /home/vftproot –s /sbin/nologin vuser   #此用户不需要登录,只是映射用户

#用户名必须和下一步配置文件中一致

chmod 775 /home/vftproot

创建完成后的vftproot的权限是700,这种权限下是不允许用户上传的,需要改权限为755

第五步:修改配置文件

vi /etc/vsftpd/vsftpd.conf

  guest_enable=YES      #开启虚拟用户

  guest_username=vuser     #FTP虚拟用户对应的系统用户(用户名要和前面的名字一样)

  pam_service_name=vsftpd        #PAM认证文件(默认存在)

第六步:重启vsftpd服务并测试

service vsftpd restart

此时虚拟用户可以登录,查看、下载,不能上传

默认上传文件的位置是宿主用户的家目录

权限使用的是匿名用户权限进行管理

注:正常情况下,此时就可以用前面设置的两个虚拟用户登录ftp了,但是我这里是登陆失败,还没找的是哪里出错了,下面我重新恢复虚拟机,重头再来。

第七步:调整虚拟用户权限(不能上传的问题)

vi /etc/vsftpd/vsftpod.conf

  anonymous_enable=NO     #关闭匿名用户登录,更加安全(不影响虚拟用户登录)

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

  anon_other_write_enable=YES

#给虚拟用户设置权限,允许所有虚拟用户上传

对于虚拟用户的文件目录中上传的权限,除了ftp的权限以外还需要系统对文件的权限设置。

总结:

1、重新安装:yum install –y vsftpd

2、关闭防火墙和SELinux

永久关闭防火墙:

关闭: chkconfig iptables off

开启: chkconfig iptables on

3、永久关闭SELinux:

vi /etc/selinux/config

修改SELINUX=disabled

4、关闭可能影响ftp的防火墙策略

service iptables status    #查看防火墙

iptables -D INPUT 4          #删除与ftp有关的策略

5、重启系统,重启服务

6、注释userlist选项

7、创建虚拟用户口令文件

vi /etc/vsftpd/vuser.txt

里面写入奇数行用户名,偶数行密码

8、生成虚拟用户口令认证文件

db_load -T -t hash -f /etc/vsftpd/vuser.txt  /etc/vsftpd/vuser.db

9、编辑vsftp的PAM文件

注释掉里面所有的内容

输入一下两行

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser

10、建立本地映射用户并设置宿主目录权限

useradd -d /home/vftproot -s /sbin/nologin vuser

chmod 775 /home/vftproot/

11、修改配置文件

添加和开启以下三个选项

guest_enable=YES

guest_username=vuser

pam_service_name=vsftpd

12、重启vsftpd服务,并测试

13、调整虚拟用户权限

注:还是没有登录成功,实在是找不到错在了哪里。(后面再做做,如果能成功会再记录一下)

Linux系统学习 十八、VSFTP服务—虚拟用户访问—配置虚拟用户访问的更多相关文章

  1. Linux系统学习 十三、VSFTP服务—相关文件

    常见的FTP服务器程序 IIS.Serv-U      (windwards中) wu-ftpd(淘汰了).Proftpd           (Linux中) vsftpd(Very Secure ...

  2. Linux系统学习 十七、VSFTP服务—本地用户访问—用户访问控制

    FTP相关文件中用户控制列表文件 /etc/vsftpd/ftpusers        #该文件永远都是黑名单(针对访问ftp服务,一般不做修改) /etc/vsftpd/user_list     ...

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

    缺点,ftp密码是和系统密码是一致的,并不安全 先设置两个测试用户 test1      123123 test2      123123 基本用户基础配置 1.本地用户基本配置 local_enab ...

  4. Linux系统学习 十九、VSFTP服务—虚拟用户访问—为每个虚拟用户建立自己的配置文件,单独定义权限

    为每个虚拟用户建立自己的配置文件,单独定义权限 可以给每个虚拟用户单独建立目录,并建立自己的配置文件.这样方便单独配置权限,并可以单独指定上传目录 1.修改配置文件 vi /etc/vsftpd/vs ...

  5. Linux系统学习 十四、VSFTP服务—配置文件解析、客户端使用

    3.配置文件解析 默认配置选项: 一般情况下不允许匿名用户登录 全局配置选项:(手工添加) listen_address=192.168.4.1             #设置监听地址 listen_ ...

  6. Linux系统学习 十五、VSFTP服务—匿名用户访问(不推荐使用,不安全)

    匿名用户访问 基本配置: anonymous_enable          #允许匿名用户访问 anon_upload_enable       #允许匿名用户上传 anon_mkdir_write ...

  7. Linux系统学习 十二、VSFTP服务—简介与原理

    1.简介与原理 互联网诞生之初就存在三大服务:WWW.FTP.邮件 FTP主要针对企业级,可以设置权限,对不同等级的资料针对不同权限人员显示. 但是像网盘这样的基本没有权限划分. 简介: FTP(Fi ...

  8. Linux系统学习 十、DHCP服务器—介绍和原理

    介绍: DHCP服务作用(动态主机配置协议) 为大量客户机自动分配地址.提供几种管理 减轻管理和维护成本.提高网络配置效率 可分配的地址信息主要包括: 网卡的IP地址.子网掩码 对应的网路地址.广播地 ...

  9. Linux系统学习笔记:文件I/O

    Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...

随机推荐

  1. eviews面板数据的操作

    数据结构: 打开eviews File>new>workfile Object>new object > pool 输入城市名称: _bj 下划线加名称(必须是英文),竖着输入 ...

  2. 如何用Postman做接口测试

    postman介绍&测试准备: postman介绍:postman是一个开源的接口测试工具,无论是做单个接口的测试还是整套测试脚本的拨测都非常方便. 前期准备:测试前,需要安装好postman ...

  3. 关于eclipse码代码时光标自动消失要重新点击输入框的问题

    前几天码代码时在两个电脑都出现了同样的问题,就是在输入的时候,输入法突然从程序框切换到某不可名状的位置,要重新点击输入框才能解决.(后发现不但是eclipse,任何带有输入框的都会出现此问题) 经排查 ...

  4. Oracle常用函数(略微少了点 不过是自己稍微整理的)

    DECODE ​ DECODE(value ,if 1, then 1,if 2,then 2, ....,else) ​ 解析: ​ if 条件=1 ​ return (value 1) ​ if条 ...

  5. CCF-CSP题解 201703-3 Markdown

    要求实现简易的Markdown到Html格式的转换. 主要就是字符串处理.以空行划分各个区块,区块内部字符的输出用一个\(print\_buf\)实现,至于强调和超链接的嵌套,则可以递归实现. 注意用 ...

  6. 《Java算法》贪心算法

    贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法的经典案例: 跳跃游戏: 给定一个非负整 ...

  7. Docker中Nginx服务器相关配置

    工作中经常需要在服务器上来做一下实验,亲自动手看看效果是否与理论描述的相同.用docker可以很方便的配置所需要的环境,以下内容记录了如何用docker配置一个nginx服务器 下载nginx 从默认 ...

  8. 一个小工具帮你搞定实时监控Nginx服务器

    Linux运维工程师的首要职责就是保证业务7 x 24小时稳定的运行,监控Web服务器对于查看网站上发生的情况至关重要.关注最多的便是日志变动,查看实时日志文件变动大家第一反应应该是'tail -f ...

  9. python 正则表达式re使用模块(match()、search()和compile())

    摘录 python核心编程 python的re模块允许多线程共享一个已编译的正则表达式对象,也支持命名子组.下表是常见的正则表达式属性: 函数/方法 描述 仅仅是re模块函数 compile(patt ...

  10. ElasticSearch 7.4.2 Root mapping definition has unsupported parameters

    新建索引 PUT people { "settings":{ "number_of_shards":3, "number_of_replicas&qu ...