目录

Linux红帽RHCSA认证知识讲解六创建管理和删除本地用戶和组

Linux红帽:RHCSA认证知识讲解(六)创建、管理和删除本地用戶和组


  • 上篇博客我们详细了解了 从红帽和 DNF 软件仓库下载、安装、更新和管理软件包 ,在这篇博客里,我们将讲解创建、管理和删除本地用戶和组
  • 在 Linux 系统的管理中, 用户和组的管理是至关重要的一部分 。合理地创建、管理和删除本地用户和组,不仅能确保系统的安全性,还能有效地管理系统资源的访问权限。

我的个人主页,欢迎来阅读我的其他文章

我的RHCSA认证知识文章专栏

欢迎来阅读指出不足

在 Linux 系统中,用户和组有着各自独特的用途。

  1. 用户(USER) :用户账户在不同人员和运行的程序之间提供了安全边界。用户通过 username 进行标识, 操作系统会为其分配唯一的标识号 (UID),并且用户可能含有密码。系统中的每个程序都以特定用户运行,每个文件也都有一个特定用户作为所有者。用户账户主要有三种类型:

    https://i-blog.csdnimg.cn/direct/40e8c2f2132647af820a8266a0b59841.png

    • 超级用户(superuser) :即 root 用户, 其 UID = 0 ,拥有系统的最高权限,可以对系统进行任何操作。
    • 系统用户(system users) : UID 1-200 ,用于系统管理,例如运行各种服务。这类用户通常不需要用于系统登录,主要是为了保证系统服务的正常运行。
    • 普通用户(regular users) : UID 1000 +供用户进行日常系统管理操作,通常具有一定的权限限制,以保证系统的安全。
  • 我们可以使用 id 命令来查看当前登录的用户或某用户的详细信息。

    https://i-blog.csdnimg.cn/direct/00b3df23f9bb474e98427b7f41417d63.png

例如, id username 就可以显示指定用户的 UID、GID 等信息。

https://i-blog.csdnimg.cn/direct/d5f9cd58870c473dad6a2aaf1a6fdbd9.png

同时, ls -l 命令可以查看文件所属用户, ls -ld 命令则用于查看目录所属用户。

https://i-blog.csdnimg.cn/direct/dd3f733581c142d8ad249ed2ad27bdcc.png

系统使用 /etc/passwd 文件来存储有关本地用户的信息,该文件的每一行都包含了用户的相关信息,

https://i-blog.csdnimg.cn/direct/d30779ef5f014dd6beca87749259c4de.png

https://i-blog.csdnimg.cn/direct/6aca9158f177487b99210fcb87948f69.png

格式为:用户名:用户的加密密码(占位符):用户的 UID 编号:主要组的 GID : 该用户的简短注释、描述的信息 : 用户的家目录 :可以使用交互式登陆。

用户类型UID 范围用途是否可登录系统权限特点
超级用户(superuser)UID = 0系统最高管理权限,可进行任何操作拥有系统最高权限
系统用户(system users)UID 1 - 200(红帽系统服务)、UID 201 - 999(供系统进程使用)系统管理,运行服务权限有限,仅满足服务运行需求
普通用户(regular users)UID 1000+日常系统管理操作权限受限制,保障系统安全
  1. 组(GROUP) : 组是用户的集合 , 组内的用户可以共享文件和其他系统资源的访问权限 。组有 group name 和 GID,它们的匹配关系保存在 /etc/group 文件中。

    每个组条目被分为四个以冒号分隔的字段,

  • 例如: wangpingan : x : 8896 : yang,wangdaye

    分别表示组名、占位符、组 ID、属于此组成员的用户列表(作为补充组)。

组又分为 主要组(私有组或者基本组)和补充组 (附加组):

  • 每个用户只属于一个主要组(GID),对应 GID 在 /etc/passwd 中。
  • 创建普通用户时,会自动创建一个与用户同名的组,作为该用户的主要组,且该用户是这个主要组的唯一成员。
  • 用户还可以有补充组,补充组中的成员资格存放在 /etc/group 文件中。根据用户所在的组是否具有访问权限,将授予用户对文件的访问权限,无论是主要组还是补充组。
组类型与用户关系存储位置权限特点
主要组(私有组或基本组)每个用户仅有一个主要组,创建普通用户时自动生成同名组作为主要组,用户是唯一成员对应 GID 在 /etc/passwd用户默认具有该组的权限
补充组(附加组)用户可以有多个补充组,是组内成员的集合成员资格存放在 /etc/group 文件中根据组的权限赋予用户对文件的访问权限
  1. 用户的增删改查操作
    • 增加用户(增) :从命令行中使用 useradd 命令来创建用户,例如 useradd 用户名

    • 如果需要指定新用户的 UID,可以使用 useradd -u

    • 指定用户的家目录时,先创建目录,如 mkdir /opt/dongjiawen

      然后使用 useradd -d /opt/dongjiawen/ dongjiawen02

    • 若要使新增用户不能登录,可使用 useradd -s /sbin/nologin 用户名 ;指定用户的主要组用 useradd -g 必须是已经存在的组 用户名

    • 指定附加组则用 useradd -G 必须是已经存在的组 用户名

    • 删除用户账户(删) :使用 userdel 用户名 命令只是删除用户,不会删除用户的家目录。若要同时删除用户的家目录,可添加 -r 选项,即 userdel -r 用户名

    • 修改现有的用户(改) :更改现有用户的 UID 可以使用 usermod -u 更改之后的 uid 现有的用户名 ;更改家目录用 usermod -d 修改之后的家目录 现有的用户名 ;更改登录的 shell 则用 usermod -s 登录的 shell 现有的用户名

    • 查询用户(查) :使用 id 用户名 命令可以查看用户的详细信息。

用户管理命令对比表格:

操作类型命令格式作用
增加用户useradd 用户名创建新用户
增加用户并指定 UIDuseradd -u [UID] 用户名创建新用户并指定 UID
增加用户并指定家目录useradd -d [家目录路径] 用户名创建新用户并指定家目录
增加用户并设置不能登录useradd -s /sbin/nologin 用户名创建新用户并设置不能登录系统
增加用户并指定主要组useradd -g [已存在组名] 用户名创建新用户并指定主要组
增加用户并指定附加组useradd -G [已存在组名] 用户名创建新用户并指定附加组
删除用户(保留家目录)userdel 用户名删除用户账户,保留家目录
删除用户(删除家目录)userdel -r 用户名删除用户账户及家目录
修改用户 UIDusermod -u [新 UID] 现有用户名修改用户的 UID
修改用户家目录usermod -d [新家目录路径] 现有用户名修改用户的家目录
修改用户登录 shellusermod -s [登录 shell] 现有用户名修改用户登录时使用的 shell
查询用户id 用户名查看用户详细信息
  1. 设置密码
    • 交互式设置密码 :使用 passwd 用户名 命令,系统会提示输入新密码和确认密码。
    • 非交互式设置密码 :使用 echo 用户密码 | passwd --stdin 用户名 命令,可以在脚本等非交互式环境中设置密码。

密码设置方式对比表格:

设置方式命令格式适用场景
交互式设置密码passwd 用户名手动为用户设置密码,适用于交互式环境
非交互式设置密码`echo [用户密码]passwd –stdin 用户名`

https://i-blog.csdnimg.cn/direct/64fe64a8ba9243af9ef47c539cdf7bbb.png

  1. 组的增删改查操作
    • 创建组(增) :从命令行中使用 groupadd 组的名称 命令来创建组。如果要指定组的 GID,则使用 groupadd -g 指定组的 GID 组名
    • 删除组(删) :使用 groupdel 组名 命令删除组。需要注意的是,如果组是现有用户的主要组,则无法直接删除。若一定要删除主要组,需要先更改用户的主要组。
    • 修改现有的组(改) :更改组的 GID 可以使用 groupmod -g 新的 GID 现有的组名 ;更改组的名字则用 groupmod -n 新的组名 现有组名
    • 更改用户的附加组 :第一种方式是使用 gpasswd -a 用户名 现有的组名 将用户添加到附加组;若要将某个用户从附加组中删除,可以使用相关命令(具体根据系统而定)。第二种方式是使用 usermod -a -G 组名 用户名 命令将用户添加到附加组。

组管理命令对比表格:

操作类型命令格式作用
创建组groupadd 组名创建新组
创建组并指定 GIDgroupadd -g [指定 GID] 组名创建新组并指定 GID
删除组groupdel 组名删除组(若不是现有用户主要组)
修改组 GIDgroupmod -g [新 GID] 现有组名修改组的 GID
修改组名groupmod -n [新组名] 现有组名修改组的名称
添加用户到附加组(方式一)gpasswd -a 用户名 现有组名将用户添加到指定附加组
添加用户到附加组(方式二)usermod -a -G [组名] 用户名将用户添加到指定附加组

以上就是这篇博客的全部内容,下一篇我们将继续探索 Redhat 的更多精彩内容。

  • RHCSA 认证知识讲解专栏 )
非常感谢您的阅读,喜欢的话记得三连哦

https://i-blog.csdnimg.cn/direct/f592ef81da18411f8d87335d19a9b647.gif#pic_center