linux-vsftp虚拟多用户

目录

1.安装vsftp

2.安装DB工具,能转化普通文件为vsftpd识别数据库加密文件

3.创建登录虚拟用户的名单

4.加密文件

6.需要修改vsftpd的配置文件

7.修改vsftp的配置文件,加载支持虚拟用户模式

8.针对不同用户开启不同权限

9.重启服务

10.测试


安装vsftp,并设置虚拟用户登录

1.安装vsftp

yum install vsftpd


2.安装DB工具,能转化普通文件为vsftpd识别数据库加密文件

yum install db4 db4-utils -y

3.创建登录虚拟用户的名单

cd /etc/vsftpd/ 
vim ftp_user.txt

切换到etc目录里,创建密码文件(必须在/etc/里)

查看创建的密码文件(奇数是用户,偶数是密码)


4.加密文件

由于这样普通文件很不安全,vsftpd也无法识别改txt的文件数据,因此还得用db_load命令

对于我们刚刚创建的ftp_user.txt文件进行加密

db_load -T -t hash -f /etc/vsftpd/ftp_user.txt /etc/vsftpd/ftp_user.db
chmod 600 ftp_user.db

删除一下源明文文件,防止安全问题

[root@localhost vsftpd]# rm ftp_user.txt 
rm: remove regular file ‘ftp_user.txt’? y

5.真实用户映射

创建当虚拟用户登录ftp之后进入文件夹的路径,且和linux中的用户做一个映射关系,防止虚拟用户登录有,创建了文件夹,但是系统没有此用户会报错一个问题。

创建一个系统用户和虚拟用户做映射,且不需要家目录,禁止用户登录shell

useradd -d /var/ftpdir/ -s /sbin/nologin virtual_user

检查一下用户的家目录

ll -ld /var/ftpdir/

这个用户需要做ftp虚用户的映射,所以如果家目录只允许这个真实用户访问,那么会有权限问题,我们把他的家目录权限修改一下

[root@localhost vsftpd]# chmod -Rf 755 /var/ftpdir/
[root@localhost vsftpd]# ll -ld /var/ftpdir/
drwxr-xr-x 3 virtual_user virtual_user 78 Oct 15 17:33 /var/ftpdir/

修改virtual_user用户添加到ftpsuer文中,增大系统安全,该操作不会影响虚拟用户的操作

echo "virtual_user" >> /etc/vsftpd/ftpusers

6.需要修改vsftpd的配置文件

添加一个支持虚拟用户验证的pam文件,pam是一组安全机制的模块,认证文件路径在/etrc/pam.d/vsftp

[root@localhost vsftpd]# echo "virtual_user" >> /etc/vsftpd/ftpusers 
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd 
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd 
[root@localhost vsftpd]# cat /etc/vsftpd/ftp_user.db 
ftp_user.db             ftpusers                user_list               vsftpd.conf             vsftpd_conf_migrate.sh
[root@localhost vsftpd]# cat /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/ftp_user
account required pam_userdb.so db=/etc/vsftpd/ftp_user

7.修改vsftp的配置文件,加载支持虚拟用户模式

我们看下改之前的配置

配置vsftp文件

anonymous_enable=NO— (不允许匿名用户访问)

local_root— (设置ftp主目录)

pasv_enable=YES— (开启被动数据传输模式)

guest_enable=YES—(开启虚拟用户模式)

guest_username— (虚拟用户实体名称)

user_config_dir— (虚拟用户权限文件目录位置)

allow_writeable_chroot=YES—(centos7必须添加)

anonymous_enable=NO

local_root=/var/ftpdir

pasv_enable=YES

guest_enable=YES

guest_username

user_config_dir

allow_writeable_chroot=YES

添加后

vim /etc/vsftpd/vsftpd.conf 
grep -Ev "^#|^$" /etc/vsftpd/vsftpd.conf 


8.针对不同用户开启不同权限

anon_world_readable_only=NO

write_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

anon_upload_enable=YES

local_root=/home/CodeTiger

write_enable=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_world_readable_only=NO

download_enable=NO

local_root=/home/CodeTiger

ou : 该用户,允许他能够上传,新建,修改,查看,删除等权限

ftpuser:只读权限

需要修改vsftpd文件,定义user_config_dir参数即可

mkdir /etc/vsftpd/virtual_user_dir
cd /etc/vsftpd/virtual_user_dir
vim ou

添加

local_root=/home/ftpuser/ou  # 目录修改成ou需要设置ftp的目录
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

给ftpuser添加只读权限

[root@localhost ~]# cat /etc/vsftpd/virtual_user_dir/ftpuser local_root=/var/ftpdir/ftpuser  # 目录修改成ftpuser需要设置ftp的目录
write_enable=NO
anon_world_readable_only=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

记得要创建用户的家目录

mkdir -p /var/ftpdir/ou
mkdir -p /var/ftpdir/ftpuser
chown -R virtual_user:virtual_user /var/ftpdir

修改下配置文件

vim /etc/vsftpd/vsftpd.conf

添加这个

user_config_dir=/etc/vsftpd/virtual_user_dir

9.重启服务

[root@localhost virtual_user_dir]# systemctl restart vsftpd
[root@localhost virtual_user_dir]# systemctl status vsftpd.
Unit vsftpd..service could not be found.
[root@localhost virtual_user_dir]# systemctl status vsftpd.service 
● vsftpd.service - Vsftpd ftp daemonLoaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)Active: active (running) since Sun 2023-10-15 19:54:31 CST; 11s agoProcess: 36959 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)Main PID: 36961 (vsftpd)Tasks: 1CGroup: /system.slice/vsftpd.service└─36961 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.confOct 15 19:54:30 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
Oct 15 19:54:31 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
[root@localhost virtual_user_dir]# 

10.测试

ou用户以创建文件和文件夹

ftpuser不可以创建文件和文件夹

他只有读取的权限没办法创建和删除文件和目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/172785.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】STL容器——探究List与Vector在使用sort函数排序的区别(14)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一、Sort函数介绍1.Sort函数接口2.Sort…

buuctf_练[CISCN2019 华东南赛区]Web4

[CISCN2019 华东南赛区]Web4 文章目录 [CISCN2019 华东南赛区]Web4掌握知识解题思路代码分析正式解题 关键paylaod 掌握知识 ​ 根据url地址传参结构来判断php后端还是python后端;uuid.getnode()函数的了解,可以返回主机MAC地址十六进制;pyt…

替换所有的问号

这篇也是凑数的 哈哈.... 稍后会整合到算法通关第三关白银挑战 . 描述 : 给你一个仅包含小写英文字母和 ? 字符的字符串 s,请你将所有的 ? 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。 注意 : 不能 修改非 ? 字符 . 题目 : …

【Linux】第五站:Linux权限

文章目录 一、shell命令以及运行原理二、Linux下用户的分类1.root用户和普通用户的切换2.对一条指令的提权 三、什么叫做权限1.权限2.文件的属性3.文件类型4.权限属性 四、更改权限1. chmod 更改文件的属性2. chown 更改拥有者3. chgrp更改所属组4.chown一次性更改拥有者和所属…

我的创作纪念日 - 2048

机缘 昨天刚刚收到 C 站的 1024 勋章: 今天爬山途中就又收到了 CSDN 的创作 2048 天纪念推送: 虽然 1024、2048 这些数字对普通人来说可能没有意义,但对于程序员来说却有不一样的情结。感谢 C 站这波细心的操作,替程序员的我们记…

接口返回响应,统一封装(ResponseBodyAdvice + Result)(SpringBoot)

需求 接口的返回响应&#xff0c;封装成统一的数据格式&#xff0c;再返回给前端。 依赖 对于SpringBoot项目&#xff0c;接口层基于 SpringWeb&#xff0c;也就是 SpringMVC。 <dependency><groupId>org.springframework.boot</groupId><artifactId&g…

Camtasia mac版怎么加字幕 Camtasia mac版怎么打马赛克

在视频制作过程中&#xff0c;字幕和马赛克是两项非常常用的编辑功能&#xff0c;添加字幕可以提高观众的观看体验&#xff0c;添加马赛克可以保护视频创作者不想公开的画面内容。Camtasia作为一款知名的视频制作软件&#xff0c;在具备基本的录制和视频编辑功能的同时&#xf…

Oracle (7)Online Redo Log Files

目录 一、Oracle Online Redo Log Files及其相关内容介绍 1、Online Redo Log Files简介 2、Online Redo Log Files特点 3、Online Redo Log Files文件组 4、多路复用文件 5、联机重做日志文件工作方式 6、LGWR什么时候写重做 7、LS和LSN 8、删除Redo文件成员 9、删除…

Linux对网络通信的实现

一、NIO为什么很少注册OP_WRITE事件 1、OP_WRITE触发条件&#xff1a;当操作系统写缓冲区有空闲时就绪。一般情况下写缓冲区都有空闲空间&#xff0c;小块数据直接写入即可&#xff0c;没必要注册该操作类型&#xff0c;否则该条件不断就绪浪费cpu&#xff1b;但如果是写密集型…

虚拟技术和容器技术的对比

1.概念 容器技术是一种内核轻量级的操作系统层虚拟化技术&#xff0c;能隔离进程和资源。 虚拟机&#xff08;VM&#xff09;技术是一种创建于物理硬件系统&#xff0c;充当虚拟计算机系统的虚拟环境&#xff0c;该虚拟机可以独 立运行在一个完全隔离的环境中&#xff0c;向本…

华为NAT配置实例(含dhcp、ospf配置)

一、网络拓朴如下&#xff1a; 二、要求&#xff1a;PC1 能访问到Server1 三、思路&#xff1a; R2配置DHCP&#xff0c;R2和R1配OSPF&#xff0c;R1出NAT 四、主要配置&#xff1a; R2的DHCP和OSPF&#xff1a; ip pool 1gateway-list 10.1.1.1 network 10.1.1.0 mask 25…

Android数据对象序列化原理与应用

序列化与反序列化 序列化是将对象转换为可以存储或传输的格式的过程。在计算机科学中&#xff0c;对象通常是指内存中的数据结构&#xff0c;如数组、列表、字典等。通过序列化&#xff0c;可以将这些对象转换为字节流或文本格式&#xff0c;以便在不同的系统之间进行传输或存…

设计模式【Iterator 模式】

Iterator 模式 1.什么是 Iterator 模式 Iterator 模式就是按照顺序遍历数据集合。 2.示例程序 1.Aggregate 接口 Aggregate 接口是要遍历的集合的接口&#xff0c;声明方法 iterator &#xff0c;实现了该接口的类可以通过 iterator 方法遍历数据集合的元素。 public int…

pycharm运行R语言脚本(win10环境下安装)

文章目录 简介1. pycharm安装插件2. 安装R语言解释器2.1下载安装包2.2具体安装过程 3.编辑环境变量4 检验是否安装成功&#xff1a;5.安装需要的library6.pycharm中配置安装好的R语言解释器 简介 pycharm 安装 R language for Intellij R language for Intellij 是一个插件&am…

Java集合类--List集合,Set集合,Map集合

集合可以看作一个容器&#xff0c;Java中提供了不同的集合类&#xff0c;这些类具有不同的存储对象的方式&#xff0c;同时提供了相应的方法&#xff0c;以便用户对集合进行遍历、添加、删除、查找指定的对象。 1.集合类概述&#xff1a; 集合类类似于数组&#xff0c;与数组不…

策略路由和路由策略

目录 策略路由 路由策略 策略路由和路由策略 策略路由 Step1:配置ACL&#xff0c;匹配流量 acl number 2010 rule 10 permit source 192.168.10.0 0.0.0.255 acl number 2020 rule 10 permit source 192.168.20.0 0.0.0.255 Step2:流分类traffic classifier jiaoxue //匹配…

C/C++晶晶赴约会 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C晶晶赴约会 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C晶晶赴约会 2020年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 晶晶的朋友贝贝约晶晶下周一起去看展览&#xff0…

如何查看多开的逍遥模拟器的adb连接端口号

逍遥模拟器默认端口号为&#xff1a;21503。 不过&#xff0c;使用多开器多开的时候&#xff0c;端口就不一定是21503了。 如何查看&#xff1f; 进入G:\xiaoyao\Microvirt\MEmu\MemuHyperv VMs路径中 每多开一个模拟器&#xff0c;就会多出一个文件夹。 进入你要查找端口号…

简述JVM

文章目录 JVM简介JVM运行时数据区堆(线程共享)方法区/元空间/元数据区(线程共享)栈程序计数器 JVM类加载类加载过程双亲委派模型 垃圾回收机制(GC)判断对象是否为垃圾判断是否被引用指向 如何清理垃圾, 释放对象? JVM简介 JVM 是 Java Virtual Machine 的简称, 意为Java虚拟机…

图解Kafka高性能之谜(五)

高性能网络模型NIO 简单架构设计&#xff1a; 详细架构设计&#xff1a; 高性能的磁盘写技术 高性能的消息查找设计 索引文件定位使用跳表的设计 偏移量定位消息时使用稀疏索引&#xff1a; 高响应的磁盘拷贝技术 批处理设计 请求亲和性设计 内存池高效、安全设计 高性能…