Linux红帽:RHCSA认证知识讲解(六)创建、管理和删除本地用戶和组
前言
- 上篇博客我们详细了解了从红帽和 DNF 软件仓库下载、安装、更新和管理软件包,在这篇博客里,我们将讲解创建、管理和删除本地用戶和组
- 在 Linux 系统的管理中,用户和组的管理是至关重要的一部分。合理地创建、管理和删除本地用户和组,不仅能确保系统的安全性,还能有效地管理系统资源的访问权限。
我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的RHCSA认证知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12901802.html?spm=1001.2014.3001.5482
一、用户和组概念
在 Linux 系统中,用户和组有着各自独特的用途。
用户(USER):用户账户在不同人员和运行的程序之间提供了安全边界。用户通过 username 进行标识,操作系统会为其分配唯一的标识号(UID),并且用户可能含有密码。系统中的每个程序都以特定用户运行,每个文件也都有一个特定用户作为所有者。用户账户主要有三种类型:
- 超级用户(superuser):即 root 用户,其 UID = 0,拥有系统的最高权限,可以对系统进行任何操作。
- 系统用户(system users):UID 1-200,用于系统管理,例如运行各种服务。这类用户通常不需要用于系统登录,主要是为了保证系统服务的正常运行。
- 普通用户(regular users):UID 1000+供用户进行日常系统管理操作,通常具有一定的权限限制,以保证系统的安全。
- 我们可以使用
id
命令来查看当前登录的用户或某用户的详细信息。
例如,id username
就可以显示指定用户的 UID、GID 等信息。
同时,ls -l
命令可以查看文件所属用户,ls -ld
命令则用于查看目录所属用户。
系统使用 /etc/passwd
文件来存储有关本地用户的信息,该文件的每一行都包含了用户的相关信息,
格式为:用户名:用户的加密密码(占位符):用户的 UID 编号:主要组的 GID : 该用户的简短注释、描述的信息 : 用户的家目录 :可以使用交互式登陆。
用户类型对比表格
用户类型 | UID 范围 | 用途 | 是否可登录系统 | 权限特点 |
---|---|---|---|---|
超级用户(superuser) | UID = 0 | 系统最高管理权限,可进行任何操作 | 是 | 拥有系统最高权限 |
系统用户(system users) | UID 1 - 200(红帽系统服务)、UID 201 - 999(供系统进程使用) | 系统管理,运行服务 | 否 | 权限有限,仅满足服务运行需求 |
普通用户(regular users) | UID 1000+ | 日常系统管理操作 | 是 | 权限受限制,保障系统安全 |
- 组(GROUP):组是用户的集合,组内的用户可以共享文件和其他系统资源的访问权限。组有 group name 和 GID,它们的匹配关系保存在
/etc/group
文件中。
每个组条目被分为四个以冒号分隔的字段,
- 例如:
wangpingan : x : 8896 : yang,wangdaye
,
分别表示组名、占位符、组 ID、属于此组成员的用户列表(作为补充组)。
组又分为主要组(私有组或者基本组)和补充组(附加组):
- 每个用户只属于一个主要组(GID),对应 GID 在
/etc/passwd
中。 - 创建普通用户时,会自动创建一个与用户同名的组,作为该用户的主要组,且该用户是这个主要组的唯一成员。
- 用户还可以有补充组,补充组中的成员资格存放在
/etc/group
文件中。根据用户所在的组是否具有访问权限,将授予用户对文件的访问权限,无论是主要组还是补充组。
主要组和补充组对比表格:
组类型 | 与用户关系 | 存储位置 | 权限特点 |
---|---|---|---|
主要组(私有组或基本组) | 每个用户仅有一个主要组,创建普通用户时自动生成同名组作为主要组,用户是唯一成员 | 对应 GID 在 /etc/passwd 中 |
用户默认具有该组的权限 |
补充组(附加组) | 用户可以有多个补充组,是组内成员的集合 | 成员资格存放在 /etc/group 文件中 |
根据组的权限赋予用户对文件的访问权限 |
二、本地用户账户增删改查
- 用户的增删改查操作:
增加用户(增):从命令行中使用
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 用户名 |
创建新用户 |
增加用户并指定 UID | useradd -u [UID] 用户名 |
创建新用户并指定 UID |
增加用户并指定家目录 | useradd -d [家目录路径] 用户名 |
创建新用户并指定家目录 |
增加用户并设置不能登录 | useradd -s /sbin/nologin 用户名 |
创建新用户并设置不能登录系统 |
增加用户并指定主要组 | useradd -g [已存在组名] 用户名 |
创建新用户并指定主要组 |
增加用户并指定附加组 | useradd -G [已存在组名] 用户名 |
创建新用户并指定附加组 |
删除用户(保留家目录) | userdel 用户名 |
删除用户账户,保留家目录 |
删除用户(删除家目录) | userdel -r 用户名 |
删除用户账户及家目录 |
修改用户 UID | usermod -u [新 UID] 现有用户名 |
修改用户的 UID |
修改用户家目录 | usermod -d [新家目录路径] 现有用户名 |
修改用户的家目录 |
修改用户登录 shell | usermod -s [登录 shell] 现有用户名 |
修改用户登录时使用的 shell |
查询用户 | id 用户名 |
查看用户详细信息 |
- 设置密码:
- 交互式设置密码:使用
passwd 用户名
命令,系统会提示输入新密码和确认密码。 - 非交互式设置密码:使用
echo 用户密码 | passwd --stdin 用户名
命令,可以在脚本等非交互式环境中设置密码。
- 交互式设置密码:使用
密码设置方式对比表格:
设置方式 | 命令格式 | 适用场景 |
---|---|---|
交互式设置密码 | passwd 用户名 |
手动为用户设置密码,适用于交互式环境 |
非交互式设置密码 | `echo [用户密码] | passwd --stdin 用户名` |
三、本地组账户
- 组的增删改查操作:
- 创建组(增):从命令行中使用
groupadd 组的名称
命令来创建组。如果要指定组的 GID,则使用groupadd -g 指定组的 GID 组名
。 - 删除组(删):使用
groupdel 组名
命令删除组。需要注意的是,如果组是现有用户的主要组,则无法直接删除。若一定要删除主要组,需要先更改用户的主要组。 - 修改现有的组(改):更改组的 GID 可以使用
groupmod -g 新的 GID 现有的组名
;更改组的名字则用groupmod -n 新的组名 现有组名
。 - 更改用户的附加组:第一种方式是使用
gpasswd -a 用户名 现有的组名
将用户添加到附加组;若要将某个用户从附加组中删除,可以使用相关命令(具体根据系统而定)。第二种方式是使用usermod -a -G 组名 用户名
命令将用户添加到附加组。
- 创建组(增):从命令行中使用
组管理命令对比表格:
操作类型 | 命令格式 | 作用 |
---|---|---|
创建组 | groupadd 组名 |
创建新组 |
创建组并指定 GID | groupadd -g [指定 GID] 组名 |
创建新组并指定 GID |
删除组 | groupdel 组名 |
删除组(若不是现有用户主要组) |
修改组 GID | groupmod -g [新 GID] 现有组名 |
修改组的 GID |
修改组名 | groupmod -n [新组名] 现有组名 |
修改组的名称 |
添加用户到附加组(方式一) | gpasswd -a 用户名 现有组名 |
将用户添加到指定附加组 |
添加用户到附加组(方式二) | usermod -a -G [组名] 用户名 |
将用户添加到指定附加组 |
以上就是这篇博客的全部内容,下一篇我们将继续探索 Redhat 的更多精彩内容。
非常感谢您的阅读,喜欢的话记得三连哦 |