【操作系统安全】任务2:用户与用户组

目录

一、用户与用户组介绍

1.1 用户

1.2 用户组

1.3 用户与用户组的关系

二、用户与用户组管理

2.1 用户管理

2.1.1 创建用户

2.1.2 设置用户密码

2.1.3 删除用户

2.2 用户组管理

2.2.1 创建用户组

2.2.2 删除用户组

2.2.3 将用户添加到用户组

三、影子账户创建

3.1 影子账户介绍

3.2 创建影子账户

四、用户与用户组权限管理

4.1 文件权限概述

4.2 修改文件权限

4.2.1 数字模式

4.2.2 符号模式

4.3 修改文件所有者和所属组

CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?type=blog


一、用户与用户组介绍

1.1 用户

在网络通信安全和操作系统环境中,用户是指能够访问系统资源的个体。每个用户都有唯一的标识符(UID),用于系统识别和区分不同的用户。用户可以通过用户名和密码进行身份验证,从而获得对系统资源的访问权限。

例如,在一个企业网络中,每个员工都有自己的用户名和密码,用于登录公司的办公系统,访问自己的文件和应用程序。

1.2 用户组

用户组是具有相同权限和属性的用户集合。将用户组织成组可以方便系统管理员进行权限管理和资源分配。每个用户组都有唯一的标识符(GID)。

例如,在一个软件开发项目中,可以创建一个 “开发组”,将所有开发人员添加到该组中。然后为 “开发组” 分配特定的权限,如访问项目代码库、使用开发工具等。

1.3 用户与用户组的关系

一个用户可以属于一个或多个用户组。当用户属于多个用户组时,用户将拥有这些组的所有权限的并集。

例如,一个用户既属于 “开发组” 又属于 “测试组”,那么该用户将拥有开发组和测试组的所有权限。

二、用户与用户组管理

2.1 用户管理

2.1.1 创建用户

在 Linux 系统中,可以使用 useradd 命令创建新用户。

命令格式: 

useradd [选项] 用户名

实例创建一个名为 testuser 的用户

useradd testuser

 2.1.2 设置用户密码

使用 passwd 命令为用户设置密码。

命令格式: 

passwd 用户名

实例为 testuser 设置密码

passwd testuser

执行该命令后,系统会提示输入新密码和确认密码。

问题:Linux更改密码报错:密码未通过字典检查 - 过于简单化/系统化

方案一:直接忽略

很容易认为这儿是一个错误,其实可以直接忽略,重新输入密码

(这里恶心了我老大一会,一直以为是操作问题,麻辣炒蛋🙃)

[root@localhost ~]# passwd
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# 

方案二:对密码规则进行设置

这一部分参考"Linux中国"的文章:如何设置 Linux 系统的密码策略

2.1.3 删除用户

使用 userdel 命令删除用户。

命令格式

userdel [选项] 用户名

实例删除 testuser 用户

userdel -r testuser

-r 选项表示在删除用户的同时,删除该用户的主目录和邮件池。

问题:userdel:未找见 testuser主目录“/home/testuser”

在 Linux 系统中,如果你尝试使用 userdel 命令删除一个用户账户,但是遇到了错误消息:“未找见 testuser 主目录“/home/testuser””,这通常意味着在删除用户之前,系统需要先删除或处理该用户的主目录。这里有几种方法可以解决这个问题:

1. 手动删除用户主目录

在尝试删除用户之前,你可以手动删除用户的主目录。这样做可以绕过 userdel 命令的默认行为,即在删除用户账户时尝试删除其主目录。

rm -rf /home/testuser

2. 使用 userdel 命令并强制删除主目录

如果你想要在使用 userdel 命令时同时删除用户主目录,可以使用 -r 选项。这将递归地删除用户的主目录及其内容。

sudo userdel -r testuser

3. 使用 userdel 命令但不删除主目录

如果你不希望删除用户的主目录,只想删除用户的账户配置文件(例如在 /etc/passwd/etc/shadow 中的条目),可以这样做:

sudo userdel testuser

这将只删除用户的账户信息,而不会删除其主目录。

4. 检查并确认用户主目录存在

在尝试上述任何操作之前,确保用户的主目录确实存在。你可以使用 ls 命令来检查:

ls /home/testuser

如果目录不存在,那么你可能需要重新创建它或者确认你正在查看正确的路径。有时候用户的家目录可能位于其他位置,或者在 /etc/passwd 中有误配置的路径。你可以通过查看 /etc/passwd 文件来找到正确的家目录路径:

grep testuser /etc/passwd

5. 权限问题

确保你有足够的权限来删除文件和目录。通常,你需要 root 权限来执行这些操作。使用 sudo 来获取必要的权限。

sudo rm -rf /home/testuser # 如果需要手动删除主目录sudo userdel -r testuser # 如果需要使用 userdel 并删除主目录

以上步骤应该能帮助你解决在删除用户时遇到的问题。

2.2 用户组管理

2.2.1 创建用户组

使用 groupadd 命令创建新的用户组。

命令格式

groupadd [选项] 组名

实例创建一个名为 developers 的用户组

groupadd developers

2.2.2 删除用户组

使用 groupdel 命令删除用户组。

命令格式

groupdel 组名

实例删除 developers 用户组

groupdel developers

2.2.3 将用户添加到用户组

使用 usermod 命令将用户添加到指定的用户组。

命令格式

usermod -aG 组名 用户名

实例将 testuser 用户添加到 developers 用户组

usermod -aG developers testuser

-a 选项表示追加,-G 选项表示指定用户组。

三、影子账户创建

3.1 影子账户介绍

影子账户是一种隐藏的用户账户,通常用于系统管理或特殊用途。影子账户的信息存储在 /etc/shadow 文件中,该文件只有 root 用户可以访问,从而提高了账户信息的安全性。

3.2 创建影子账户

在 Linux 系统中,使用 useradd 命令创建用户时,系统会自动在 /etc/shadow 文件中为该用户创建对应的影子记录。

实例创建一个名为 shadowuser 的影子账户

useradd shadowuser

创建完成后,可以使用 cat 命令查看 /etc/shadow 文件中 shadowuser 的影子记录:

cat /etc/shadow | grep shadowuser

四、用户与用户组权限管理

4.1 文件权限概述

在 Linux 系统中,每个文件和目录都有三组权限:所有者权限、所属组权限和其他用户权限。每组权限又分为读(r)、写(w)和执行(x)三种权限。

4.2 修改文件权限

使用 chmod 命令修改文件或目录的权限。

4.2.1 数字模式

数字模式使用三位数字分别表示所有者、所属组和其他用户的权限。其中,读权限用 4 表示,写权限用 2 表示,执行权限用 1 表示。

实例将文件 testfile 的权限设置为所有者具有读写执行权限,所属组具有读执行权限,其他用户具有读权限

chmod 754 testfile

4.2.2 符号模式

符号模式使用 u(所有者)、g(所属组)、o(其他用户)和 a(所有用户)来指定权限的作用对象,使用 +(添加权限)、-(移除权限)和 =(设置权限)来修改权限。

实例为文件 testfile 的所属组添加写权限

chmod g+w testfile

4.3 修改文件所有者和所属组

使用 chown 命令修改文件或目录的所有者和所属组。

命令格式

chown [选项] 所有者:所属组 文件名

实例将文件 testfile 的所有者改为 testuser,所属组改为 developers

chown testuser:developers testfile

 通过以上的用户与用户组管理、影子账户创建和权限管理操作,可以有效地保障网络通信安全,确保系统资源的合理分配和访问控制。

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

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

相关文章

OpenCV计算摄影学(20)非真实感渲染之增强图像的细节函数detailEnhance()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 此滤波器增强特定图像的细节。 cv::detailEnhance用于增强图像的细节,通过结合空间域和频率域的处理,提升图像中特定细节…

Git 使用指南

Git 是一种分布式版本控制系统,可以追踪文件的变化并协助多人协作开发项目。下面是 Git 的基本概念和使用方式: 仓库(Repository):Git 用来存储项目的地方,可以理解为项目的文件夹,包含项目的所…

java 中散列表(Hash Table)和散列集(Hash Set)是基于哈希算法实现的两种不同的数据结构

在 Java 中,散列表(Hash Table)和散列集(Hash Set)是两种不同的数据结构,但它们都基于哈希表的原理来实现。下面是它们的联系与区别、实现类以及各自的优缺点,并用表格进行对比整理。 联系与区…

vue2自定义指令实现 el-input 输入数字,小数点两位 最高10位,不满足则截取符合规则的值作为新值

步骤 1:创建自定义指令 // 处理输入值,确保符合规则 function processValue(value) {// 过滤非数字和小数点let filtered value.replace(/[^\d.]/g, );const firstDotIndex filtered.indexOf(.);// 处理多个小数点,保留第一个if (firstDot…

10、基于osg引擎生成热力图高度图实现3D热力图可视化、3D热力图实时更新(带过渡效果)

1、结果 2、完整C代码 #include <sstream> #include <iomanip> #include <iostream> #include <vector> #include <random> #include <cmath> #include <functional> #include <osgViewer/viewer> #include <osgDB/Read…

海量数据查询加速:Presto、Trino、Apache Arrow

1. 引言 在大数据分析场景下,查询速度往往是影响业务决策效率的关键因素。随着数据量的增长,传统的行存储数据库难以满足低延迟的查询需求,因此,基于列式存储、向量化计算等技术的查询引擎应运而生。本篇文章将深入探讨 Presto、Trino、Apache Arrow 三种主流的查询优化工…

Pycharm 社区版安装教程

找到安装包双击安装文件---点击下一步 一般路径是&#xff1a;C:\Rambo\Software\Development 选择完成后就是如下地址&#xff1a; C:\Rambo\Software\Development\PyCharm Community Edition 2024.3.3 点击上述3个位置就可以了----下一步 等待安装就可以了---完成后点击完成…

vue3 elementUi table自由渲染组件

文章目录 前言CustomTable如何使用tableColumn 属性h函数创建原生元素创建组件动态生成 前言 elementui中的table组件&#xff0c;表格中想要自由地渲染内容&#xff0c;是一种比较麻烦的事情&#xff0c;比如你表格中想要某一列插入一个button按钮&#xff0c;是不是要用插槽…

Mermaid 子图 + 拖拽缩放:让流程图支持无限细节展示

在技术文档、项目管理和可视化分析中&#xff0c;流程图是传递复杂逻辑的核心工具。传统流程图往往静态且难以适应细节展示&#xff0c;而 Mermaid 与 svg-pan-zoom 的结合&#xff0c;则为这一痛点提供了完美解决方案。本文将深入解析如何通过 Mermaid 的子图&#xff08;subg…

前端权限系统

前端权限系统是为了确保用户只能访问他们有权限查看的资源而设计的。在现代前端开发中&#xff0c;权限控制不仅仅是简单的显示或隐藏元素&#xff0c;还涉及到对路由、组件、数据和操作权限的细致控制。下面是前端权限系统的常见设计方案和实现步骤。 前端权限系统的组成部分 …

Nature | TabPFN:表格基础模型用于小规模数据分析

表格数据是按行和列组织的电子表格形式&#xff0c;在从生物医学、粒子物理到经济学和气候科学等各个科学领域中无处不在 。基于表格其余列来填充标签列缺失值的基本预测任务&#xff0c;对于生物医学风险模型、药物研发和材料科学等各种应用至关重要。尽管深度学习彻底改变了从…

c++学习系列----003.写文件

c 写文件 文章目录 c 写文件1️⃣ 使用 ofstream 写入文本文件2️⃣ 追加模式写入3️⃣ 写入二进制文件4️⃣ 使用 fstream 进行读写5️⃣ 使用 fprintf()&#xff08;C 方式&#xff09;6️⃣ 使用 write() 低级 I/O 方式推荐方式 C 写文件的几种方式主要有以下几种&#xff1…

C语言及内核开发中的回调机制与设计模式分析

在C语言以及操作系统内核开发中,回调机制是一种至关重要的编程模式。它通过注册框架和定义回调函数,实现了模块间的解耦和灵活交互,为系统的扩展性和可维护性提供了有力支持。本文将深入探讨这种机制的工作原理、应用场景以及与设计模式的关联。 一、回调机制的核心概念 (…

浅谈StarRocks SQL性能检查与调优

StarRocks性能受数据建模、查询设计及资源配置核心影响。分桶键选择直接决定数据分布与Shuffle效率&#xff0c;物化视图可预计算复杂逻辑。执行计划需关注分区裁剪、谓词下推及Join策略&#xff0c;避免全表扫描或数据倾斜。资源层面&#xff0c;需平衡并行度、内存限制与网络…

stable Diffusion 中的 VAE是什么

在Stable Diffusion中&#xff0c;VAE&#xff08;Variational Autoencoder&#xff0c;变分自编码器&#xff09;是一个关键组件&#xff0c;用于生成高质量的图像。它通过将输入图像编码到潜在空间&#xff08;latent space&#xff09;&#xff0c;并在该空间中进行操作&…

从零开始 | C语言基础刷题DAY3

❤个人主页&#xff1a;折枝寄北的博客 目录 1.打印3的倍数的数2.从大到小输出3. 打印素数4.打印闰年5.最大公约数 1.打印3的倍数的数 题目&#xff1a; 写一个代码打印1-100之间所有3的倍数的数字 代码&#xff1a; int main(){int i 0;for (i 1; i < 100; i){if (i % …

告别死锁!Hyperlane:Rust 异步 Web 框架的终极解决方案

告别死锁&#xff01;Hyperlane&#xff1a;Rust异步Web框架的终极解决方案 &#x1f525; 为什么选择Hyperlane&#xff1f; Hyperlane是专为Rust开发者打造的高性能异步Web框架&#xff0c;通过革命性的并发控制设计&#xff0c;让您彻底摆脱多线程编程中的死锁噩梦。框架内…

CLR中的类型转换

CLR中的类型转换 字符串类型转换容器类型转换自定义类型相互转换项目设置CLR(Common Language Runtime,公共语言运行时)是微软.NET框架的核心组件,是微软对 CLI 标准的具体实现,负责管理和执行托管代码,提供跨语言互操作性、内存管理、安全性等关键服务CLR的类型转换机制…

QT5.15.2加载pdf为QGraphicsScene的背景

5.15.2使用pdf 必须要安装QT源码&#xff0c;可以看到编译器lib目录已经有pdf相关的lib文件&#xff0c;d是debug 1.找到源码目录&#xff1a;D:\soft\QT\5.15.2\Src\qtwebengine\include 复制这两个文件夹到编译器的包含目录中:D:\soft\QT\5.15.2\msvc2019_64\include 2.找…

MCP 开放协议

本文翻译整理自&#xff1a; https://modelcontextprotocol.io/introduction 文章目录 简介一、关于 MCP二、为什么选择MCP&#xff1f;通用架构 三、开始使用1、快速入门2、示例 四、教程五、探索 MCP六、贡献和支持反馈贡献支持和反馈 服务器开发者一、构建服务器1、我们将要…