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

目录

一、用户与用户组介绍

[1.1 用户](#1.1 用户)

[1.2 用户组](#1.2 用户组)

[1.3 用户与用户组的关系](#1.3 用户与用户组的关系)

二、用户与用户组管理

[2.1 用户管理](#2.1 用户管理)

[2.1.1 创建用户](#2.1.1 创建用户)

[2.1.2 设置用户密码](#2.1.2 设置用户密码)

[2.1.3 删除用户](#2.1.3 删除用户)

[2.2 用户组管理](#2.2 用户组管理)

[2.2.1 创建用户组](#2.2.1 创建用户组)

[2.2.2 删除用户组](#2.2.2 删除用户组)

[2.2.3 将用户添加到用户组](#2.2.3 将用户添加到用户组)

三、影子账户创建

[3.1 影子账户介绍](#3.1 影子账户介绍)

[3.2 创建影子账户](#3.2 创建影子账户)

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

[4.1 文件权限概述](#4.1 文件权限概述)

[4.2 修改文件权限](#4.2 修改文件权限)

[4.2.1 数字模式](#4.2.1 数字模式)

[4.2.2 符号模式](#4.2.2 符号模式)

[4.3 修改文件所有者和所属组](#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

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

相关推荐
咩咩大主教2 小时前
Gitlab报错:sudo: a password is required
linux·服务器·git·ubuntu·gitlab·shell·gitlabci/cd
敖云岚2 小时前
【Linux 指北】常用 Linux 指令汇总
linux·运维·服务器
Acreldingshan4 小时前
工厂变电所运维云平台解决方案-直击运维痛点,重塑高效安全运维典范
运维
田辛 | 田豆芽4 小时前
【Linux】在VMWare中安装Ubuntu操作系统(2025最新_Ubuntu 24.04.2)#VMware安装Ubuntu实战分享#
linux·运维·ubuntu
Ccc030.4 小时前
TCP网络协议
服务器·网络·tcp/ip
zxfeng~5 小时前
泰山派开发之—Ubuntu24.04下Linux开发环境搭建
linux·嵌入式·嵌入式linux·泰山派
TechStack 创行者6 小时前
基于Alpine构建MySQL 10.11.11镜像的完整教程
运维·数据库·mysql·docker
十年一梦实验室6 小时前
使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图
linux·c语言·windows
姜太小白7 小时前
【Linux】centos配置可用的yum源
linux·运维·centos