实现基于文件验证的vsftpd虚拟用户

实验目的:实现基于文件验证的vsftpd虚拟用户
环境准备;
服务器端:10.0.0.8
客户端: 10.0.0.150

第一步 在服务器端8上设置

yum -y install vsftpd       #安装vsftpd
vim /etc/vsftpd/users.txt   #建立users.txt
alang                       #文
123456                      #本
alei                        #内
654321                      #容
chmod 600 users.txt        #设置权限

文件内容说明:创建文本文件,奇数行为用户名,偶数行为密码,再被编码为hash 格式Berkeley DB**

db_load -T -t hash -f users.txt users.db   #将文件设置成数据库文件
file users.db                              #查看属性
chmod 600 users.db                         #将设置的db文件也设置权限

在这里插入图片描述
创建用户和访问FTP目录

useradd -d /data/ftproot -s /sbin/nologin -r vuser  #创建用户
mkdir -pv /data/ftproot/upload                      #创建访问FTP目录
setfacl -m u:vuser:rwx /data/ftproot/upload         #为了后续可以让用户上传数据,更改vuser;

创建pam配置文件

vim /etc/pam.d/vsftpd.db                #文件名
auth required pam_userdb.so db=/etc/vsftpd/users    
account required pam_userdb.so db=/etc/vsftpd/users    #两行文件内容   验证身份和账户的有效性;

在这里插入图片描述
指定pam配置文件

vim /etc/vsftpd/vsftpd.conf      #文本名称
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.db       #启用验证的三行内容  这三行设置后,所有用户都可以进行下载和上传
systemctl restart vsftpd         #设置完成后重新启动 

在这里插入图片描述

第二步:验证

在Ubuntu 上验证是否可以登录系统 用两个账号都可以登录 默认权限是可以下载,但是无法上传;
ftp 10.0.0.8

root@Ubuntu:~# ftp 10.0.0.8            #在客户端用ftp访问
Connected to 10.0.0.8.
220 (vsFTPd 3.0.3)
Name (10.0.0.8:root): lang             #输入用户名 lang
331 Please specify the password.
Password:                              #输入密码后回车  
230 Login successful.                  #显示登录成功
Remote system type is UNIX.

root@Ubuntu:~# ftp 10.0.0.8
Connected to 10.0.0.8.
220 (vsFTPd 3.0.3)
Name (10.0.0.8:root): alei            #输入用户名 alei
331 Please specify the password.
Password:
230 Login successful.                 #输入密码后也可以成功登录

第三步:再次设置

要使用户有上传的权限,要设置匿名写;
创建各个用户配置文件存放的路径
打开:

[root@Centos8 ~]#vim /etc/vsftpd/vsftpd.conf    #打开文本写入
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@Centos8 vsftpd]#systemctl restart vsftpd  #重新启动服务

目前可以上传文件;
在这里插入图片描述
虚拟用户建立独立的配置文件
#指定各个用户配置文件存放的路径
目前该设置,所有用户都可以使用下载和上传权限
区分设置(让每个用户有自己独有的权限)
user_config_dir=/etc/vsftpd/conf.d/ #加上这行让每个用户有自己独有的配置文件
同时去掉这三行

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

这三行是默认谁都有权限 设置如图:
在这里插入图片描述
#创建各个用户配置文件存放的路径

[root@Centos8 vsftpd]#mkdir /etc/vsftpd/conf.d/
[root@Centos8 vsftpd]#vim conf.d/lang            #单独写一个lang的配置内容
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@Centos8 vsftpd]#systemctl restart vsftpd   #重启服务

目前状态只有lang有上传权限 但是必须切换到upload下
在这里插入图片描述
目前lang可以上传 alei无法上传

设置不同账号登录看到的文件不一样
创建各用户自已的配置文件

mkdir /data/ftproot1
mkdir /data/ftproot2

在这里插入图片描述

[root@Centos8 vsftpd]#touch /data/ftproot1/1.txt
[root@Centos8 vsftpd]#touch /data/ftproot2/2.txt
[root@Centos8 vsftpd]#ls /data/ftproot1/
1.txt
[root@Centos8 vsftpd]#ls /data/ftproot2/
2.txt

接着设置lang

[root@Centos8 vsftpd]#vim conf.d/lang
local_root=/data/ftproot1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

而设置alei

[root@Centos8 vsftpd]#vim conf.d/alei
local_root=/data/ftproot2
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

设置完成后重启服务:systemctl restart vsftpd
测试如图
在这里插入图片描述
#如果要增加用户

vim /etc/vsftpd/users.txt

在这里插入图片描述
添加后还需要重新设置db

db_load -T -t hash -f user.txt users.db

验证可以登录了:
在这里插入图片描述
如果需要其他权限,需要重新设置

至此设置完成

谢谢观赏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值