👨‍💻5 用户身份与文件权限

type
status
date
slug
summary
tags
category
icon
password
notion image

1.Linux的用户类型有哪几种?分别有何特点?

  1. 管理员用户(Root)
      • 特点:管理员用户的UID为0,拥有系统的最高权限。可以执行系统中任何操作,包括管理文件权限、安装软件、修改系统设置等。
      • 权限:没有任何限制,能够完全控制系统,修改和删除任何文件,执行关键系统任务。
  1. 普通用户
      • 特点:普通用户的UID通常从1000开始。由管理员创建,用于日常工作和个人使用。
      • 权限:只能对自己拥有的文件和资源执行操作,无法修改系统关键文件或其他用户的文件,除非获得特定权限(例如通过sudo)。
  1. 系统用户
      • 特点:系统用户的UID范围通常为1-999。它们通常用于运行系统服务或进程(如数据库、Web服务器等),而不是用于登录或日常操作。
      • 权限:这些用户通常拥有受限的权限,用于执行特定的系统服务,以避免被黑客利用或造成系统损坏。

2.请描述/etc/passwd文件的结构。

在Linux系统中,/etc/passwd文件用于存储系统中所有用户的基本信息。该文件是纯文本格式,包含每个用户的多个字段,字段之间以冒号(:)分隔。每一行代表一个用户的账户信息,结构如下:

每个字段的详细说明:

  1. 用户名:系统中用户的登录名,通常是唯一的。例如:user1
  1. 密码占位符:由于安全原因,实际的密码不存储在此文件中,而是存储在/etc/shadow文件中,这里用一个x占位符表示。
  1. 用户ID (UID):唯一标识用户的数字ID。
      • UID为0表示管理员(root)。
      • 1-999通常分配给系统用户。
      • 从1000开始分配给普通用户。
  1. 组ID (GID):用户所属的基本组的ID,系统会根据这个ID在/etc/group文件中找到对应的组信息。
  1. 用户信息:用于描述用户的额外信息,如全名、联系方式等。该字段可以为空,通常仅用于显示目的。
  1. 家目录:用户登录后的主目录路径,通常为/home/用户名。管理员用户的家目录通常是/root
  1. 登录Shell:用户登录时使用的Shell程序的路径,例如:/bin/bash/bin/sh,它决定用户在登录后使用哪种命令行环境。

示例:

  • user1:用户名。
  • x:密码占位符,实际密码存储在/etc/shadow中。
  • 1001:用户ID (UID)。
  • 1001:组ID (GID)。
  • User One,,,:用户信息字段(这里为空)。
  • /home/user1:用户的家目录。
  • /bin/bash:用户的登录Shell。
这个结构保证了系统中每个用户的身份、组和权限信息的规范管理。

3.请描述/etc/group文件的结构。

在Linux系统中,/etc/group文件用于存储系统中所有用户组的基本信息。每个用户组包含多个用户,文件格式为纯文本,每行代表一个用户组,字段之间以冒号(:)分隔。它的结构如下:

每个字段的详细说明:

  1. 组名:组的名称,通常是唯一的。例如:admin,它用于标识该组。
  1. 密码占位符:组密码的占位符。通常这个字段为空或者使用x,大多数情况下组不需要密码。少数情况下,组可以设置密码来允许用户临时加入组(通过newgrp命令)。
  1. 组ID (GID):该组的唯一数字ID,与用户的GID相关联,帮助系统识别用户所属的组。
  1. 组内用户列表:该组内的所有用户,以逗号(,)分隔。只有这些用户会被明确列出为该组的成员。该字段可以为空,如果为空表示只有基本用户组没有其他组成员。

示例:

  • admin:组名。
  • x:密码占位符,实际密码信息存储在/etc/gshadow文件中。
  • 1001:组ID (GID)。
  • user1,user2,user3:属于该组的用户列表。

注意事项:

  • 基本用户组:每个用户在创建时都会有一个与用户名相同的基本组,该用户是该组的唯一成员,通常不在用户列表中列出。
  • 扩展用户组:用户可以属于多个组,扩展组的用户列表会在/etc/group中列出。
通过这个文件,系统可以方便地管理用户组及其成员,从而在权限和访问控制方面实现更加灵活的管理。

4.请描述/etc/shadow文件的结构。

/etc/shadow 文件用于存储Linux系统中用户的加密密码及与密码相关的安全信息。这个文件只有root用户和特定的系统进程可以读取,以保护密码的安全性。
每行表示一个用户的信息,各字段之间用冒号 (:) 分隔。其结构和字段含义如下:

各字段的详细说明:

  1. 用户名 (Login Name): 与 /etc/passwd 文件中的用户名相同,表示用户的登录名。
  1. 密码 (Password): 这个字段存储用户的加密密码。如果字段为 !,表示该用户已被禁用或无效,无法登录。
  1. 最近修改时间 (Last Changed): 表示用户密码最后一次被修改的时间,格式为自 1970 年 1 月 1 日以来的天数。
  1. 最小天数 (Minimum Age): 指定在修改密码后,用户必须等待的最小天数,才能再次修改密码。如果设为 0,则用户可以随时修改密码。
  1. 最大天数 (Maximum Age): 指定用户密码的有效天数,一旦超过该天数,用户必须修改密码。
  1. 警告天数 (Warning Period): 在密码过期之前,系统会开始警告用户的天数。在这个期间,用户将收到密码即将过期的提醒。
  1. 不活动天数 (Inactive Period): 指定密码过期后,用户在多长时间内仍然可以使用过期密码。如果在这个时间内用户未修改密码,帐户将被禁用。
  1. 过期时间 (Expiration Date): 指定用户帐户的过期时间,格式与最近修改时间相同,表示自 1970 年 1 月 1 日以来的天数。
  1. 保留字段 (Reserved Field): 该字段通常保留为空,未来可能用于扩展功能。

示例行:

  • 用户名: user1
  • 密码: $6$abc123$xyz4567890abcdefg1234567890(表示加密后的密码)
  • 最近修改时间: 18345(自 1970 年 1 月 1 日以来的天数)
  • 最小天数: 0(用户可以随时修改密码)
  • 最大天数: 99999(密码有效期非常长)
  • 警告天数: 7(密码过期前 7 天开始提醒)
  • 不活动天数: (没有设定)
  • 过期时间: (没有设定)
/etc/shadow 文件的设计提供了对密码的安全管理,使得只有系统管理员能够访问敏感的密码信息。

5.添加、删除用户用什么命令?添加、删除用户组用什么命令?改变用户所属的组用什么命令?

用户管理命令

  • 添加用户: useradd username
  • 删除用户: userdel username

用户组管理命令

  • 添加用户组: groupadd groupname
  • 删除用户组: groupdel groupname

改变用户所属的组

  • 命令: usermod -g groupname username

6.修改用户的密码用什么命令?切换当前登录的用户用什么命令?

  1. 修改用户密码的命令是:
    1. passwd 用户名
  1. 切换当前登录用户的命令是:
    1. su 用户名
或者你可以用 sudo -u 用户名 切换到指定用户的身份

7.创建user1用户,并允许user1执行sudo命令来切换到root用户权限,请简述步骤

创建 user1 用户并允许其执行 sudo 命令切换到 root 权限的步骤如下:
  1. 创建 user1 用户
    1. user1 设置密码
      1. user1 添加到 sudo(使其具备 sudo 权限):
        1. 验证 user1 是否有 sudo 权限(切换到 user1 并测试):
          这将创建用户并赋予 sudo 权限。
          上一篇
          4 Vim编辑器与Shell命令脚本
          下一篇
          6 存储结构与管理硬盘
          Loading...
          文章列表
          👉文档
          ★终端安全防护
          ★VPN技术
          ★上网行为管理
          ★下一代防火墙
          下一代防火墙配置
          ★操作系统基础
          操作系统基础实验
          ★数通技术高级
          数通高级实验
          数通高级命令操作
          ★数通技术基础
          数通基础实验
          数通基础命令操作