Linux系统学习 十八、VSFTP服务—虚拟用户访问—配置虚拟用户访问
配置虚拟用户访问
首先至少要关闭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服务—虚拟用户访问—配置虚拟用户访问的更多相关文章
- Linux系统学习 十三、VSFTP服务—相关文件
常见的FTP服务器程序 IIS.Serv-U (windwards中) wu-ftpd(淘汰了).Proftpd (Linux中) vsftpd(Very Secure ...
- Linux系统学习 十七、VSFTP服务—本地用户访问—用户访问控制
FTP相关文件中用户控制列表文件 /etc/vsftpd/ftpusers #该文件永远都是黑名单(针对访问ftp服务,一般不做修改) /etc/vsftpd/user_list ...
- Linux系统学习 十六、VSFTP服务—本地用户访问—基本用户基础配置
缺点,ftp密码是和系统密码是一致的,并不安全 先设置两个测试用户 test1 123123 test2 123123 基本用户基础配置 1.本地用户基本配置 local_enab ...
- Linux系统学习 十九、VSFTP服务—虚拟用户访问—为每个虚拟用户建立自己的配置文件,单独定义权限
为每个虚拟用户建立自己的配置文件,单独定义权限 可以给每个虚拟用户单独建立目录,并建立自己的配置文件.这样方便单独配置权限,并可以单独指定上传目录 1.修改配置文件 vi /etc/vsftpd/vs ...
- Linux系统学习 十四、VSFTP服务—配置文件解析、客户端使用
3.配置文件解析 默认配置选项: 一般情况下不允许匿名用户登录 全局配置选项:(手工添加) listen_address=192.168.4.1 #设置监听地址 listen_ ...
- Linux系统学习 十五、VSFTP服务—匿名用户访问(不推荐使用,不安全)
匿名用户访问 基本配置: anonymous_enable #允许匿名用户访问 anon_upload_enable #允许匿名用户上传 anon_mkdir_write ...
- Linux系统学习 十二、VSFTP服务—简介与原理
1.简介与原理 互联网诞生之初就存在三大服务:WWW.FTP.邮件 FTP主要针对企业级,可以设置权限,对不同等级的资料针对不同权限人员显示. 但是像网盘这样的基本没有权限划分. 简介: FTP(Fi ...
- Linux系统学习 十、DHCP服务器—介绍和原理
介绍: DHCP服务作用(动态主机配置协议) 为大量客户机自动分配地址.提供几种管理 减轻管理和维护成本.提高网络配置效率 可分配的地址信息主要包括: 网卡的IP地址.子网掩码 对应的网路地址.广播地 ...
- Linux系统学习笔记:文件I/O
Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...
随机推荐
- BZOJ3110[Zjoi2013]K大数查询(树状数组+整体二分)
3110 [Zjoi2013]K大数查询 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a ...
- 支付宝支付功能(使用支付宝sdk)
1.准备参数 新建一个公共参数配置类NewAlipayconfig (可将参数存放到config配置文件中读取) public class NewAlipayconfi ...
- Python文件头注释的含义,你肯定不懂
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:冰火梦幻 本文档描述了Python语言文件头里典型注释的含义. 1. ...
- Django开发登录功能实战
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:凡夫俗子66 Django 如果是定义函数写登录路由,需要判断请求方法 ...
- git 多仓库源 配置
在后台配好ssh公匙后 在C:\Users\Administrator\.ssh 下修改config文件 就叫config不带后缀 若没有则新建 配置SSH 密匙 # 配置github.com Ho ...
- Oracle 12C CDB、PDB常用管理命令
Oracle 12C CDB.PDB常用管理命令 --查看PDB信息(在CDB模式下) show pdbs --查看所有pdbselect name,open_mode from v$pdbs; ...
- 深入探索Java设计模式(三)之装饰器模式
装饰器模式使你可以在运行时使用类似于对象组成的技术来装饰类.这在我们希望实例化具有新职责的对象而无需对基础类进行任何代码更改的情况下尤其有用.本文是在学习完优锐课JAVA架构VIP课程—[框架源码专题 ...
- COCI 2012 Inspektor
coci 2012 inspektor 街道由左到右分布着\(N\)个办公室,编号为\(1\)到\(N\),最开始,每个办公室都是空的,一些公司将入住,并赶走办公室里面现有的公司.一人每天会路过一些连 ...
- CCF-CSP题解 201512-3 画图
画图时思路应该清晰一点.我是将坐标\((x,y)\)映射到\(canvas[y][x]\)上. 连线注意\(+\)号的情况,填充写好\(dfs\)就好了. #include <bits/stdc ...
- 《Java基础知识》Java super关键字
super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类. super也有三种用法: 1.普通的直接引用 与this类似,super相当于是指向当前对象的父类,这样 ...