前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RHCSA 考试 (EX200) 用户和组管理

RHCSA 考试 (EX200) 用户和组管理

原创
作者头像
网络技术联盟站
发布2022-05-07 15:32:19
2620
发布2022-05-07 15:32:19
举报
文章被收录于专栏:网络技术联盟站

介绍

在这篇文章中,我们将看到 Linux 用户和组管理,这适用于 RHEL 8 / 7 版本的 RHCSA 考试,我们将看到 Linux 用户和组的创建、修改、删除,可以通过命令或 GUI 工具来管理用户和组

对于 RHCSA 考试,我们有用户和组管理问题之一,通过创建具有不同场景的用户和组来练习,默认情况下创建的用户很少,每个用户都是为服务/应用程序使用而创建的。

必须注意的三个重要文件

  • User /etc/passwd
  • Group /etc/groups
  • Shadow /etc/shadow

用户文件

/etc/passwd 文件包含用户名、密码、用户 ID、组 ID、组名、shell。

值用冒号(:)分隔,x 表示密码,存储在 /etc/shadow 文件中

代码语言:txt
复制
[root@server1 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

组文件

/etc/group 包含在服务器中创建的组列表,用户与组映射

代码语言:txt
复制
[root@server1 ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:

shadow文件

/etc/shadow 文件由用户名、密码和密码到期组成

代码语言:txt
复制
[root@server1 ~]# cat /etc/shadow
root:$6$mSW2hm02cqJh1wJh$NQVuSxJiaX4sY2MiMwQoXydkQ.49Tmp0RIVx6lQGrEk8E/jtdxeQPw8uc3YD9R3fTU8z9P8I1DUCofTobrm151::0:99999:7:::
bin::18358:0:99999:7::: daemon::18358:0:99999:7:::
daemon:*:18358:0:99999:7:::

根用户

root 用户或管理员用户将用户和组 id 设置为 0

代码语言:txt
复制
[root@server1 ~]# id root
uid=0(root) gid=0(root) groups=0(root)

需要注意的几点

  • 用户和组 ID 以 1000 开头,但是我们可以手动更改用户和组 ID
  • 我们将创建组 web 和 db,并且用户到 web / db 组和一个用户有多个组
  • 用户可以是单个组或多个组。root 用户始终可以覆盖用户/组权限。

用户管理

创建用户

使用不同的 UID 将用户创建为 user1 和 user2 和 user3

代码语言:txt
复制
[root@server1 ~]# useradd user1
[root@server1 ~]# useradd user2

验证用户是否创建成功,现在可以看到 user1 和 user2 分别创建了用户/组 ID 1000,1001

代码语言:txt
复制
[root@server1 ~]# id user1
uid=1000(user1) gid=1000(user1) 组=1000(user1)
[root@server1 ~]# id user2
uid=1001(user2) gid=1001(user2) 组=1001(user2)

设置密码

使用 passwd 命令设置密码,密码区分大小写,最少 8 个字符,使用 passwd 命令设置所有其他用户的密码。

代码语言:txt
复制
[root@server1 ~]# passwd user2
Changing password for user user2.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@server1 ~]#

使用特定用户 ID 创建用户

在场景中,很少有应用程序需要特定的用户 ID 和组 ID

代码语言:txt
复制
[root@server1 ~]# useradd -u 501 user6
[root@server1 ~]# id user6
uid=501(user6) gid=1004(user6) group=1004(user6)

组管理

创建组

我们将使用group命令创建两个组 web 和 db

代码语言:txt
复制
[root@server1 ~]# groupadd web
[root@server1 ~]# groupadd db

验证是否已创建组

代码语言:txt
复制
[root@server1 ~]# grep web /etc/group
web:x:1002:
[root@server1 ~]# grep db /etc/group
db:x:1003:user5
[root@server1 ~]# grep db /etc/group

具有特定组 ID 的组

在少数情况下,应用程序 /db 需要创建特定的组 ID,使用 groupadd / groupmod 命令中的 -g 选项,我们可以分配特定的组 ID

代码语言:txt
复制
[root@server1 ~]# groupadd -g 555 testgroup

[root@server1 ~]# grep 555 /etc/group
testgroup:x:555:

创建新用户并使用特定组

我们将分配一个具有特定组的用户,而不是分配的默认组,我们将在组web中创建user3

代码语言:txt
复制
[root@server1 ~]# useradd user3 -g web

创建 user4 并分配组db

代码语言:txt
复制
[root@server1 ~]# useradd user4 -g db

创建user5,主组为web,辅助组为db

代码语言:txt
复制
[root@server1 ~]# useradd user5 -g web -G db

验证创建的所有三个用户的用户和组 ID

代码语言:txt
复制
[root@server1 ~]# id user3
uid=1002(user3) gid=1002(web) groups=1002(web)
[root@server1 ~]# id user4
uid=1003(user4) gid=1003(db) groups=1003(db)
[root@server1 ~]# id user5
uid=1004(user5) gid=1002(web) groups=1002(web),1003(db)

用户只能有一个主要组和多个次要组,主要组用-g表示,次要组用-G表示,多个次要组用-G group1, group2,..,groupX

用户/组修改

我们可以根据需要更改用户和组。假设我们要将用户更改为其他组或设置默认 shell 变量,我们可以使用以下方法

将辅助组添加到数据库,主组保持与 user2 相同

代码语言:txt
复制
[root@server1 ~]# id user2
uid=1001(user2) gid=1001(user2) group=1001(user2)

我们要将 user2 辅助组更改为 db 并使用id命令验证它

代码语言:txt
复制
[root@server1 ~]# usermod -G db user2
[root@server1 ~]# id user2
uid=1001(user2) gid=1001(user2) groups=1001(user2),1003(db)

在上面的例子中,我们可以看到 user2 的主要组是 user2,次要组是db

为用户添加多个组

添加一个或多个辅助组,现在 user2 将成为 user2 组的一部分,以及 web 和 db 作为辅助组

代码语言:txt
复制
[root@server1 ~]# usermod -G db,web user2
[root@server1 ~]# id user2
uid=1001(user2) gid=1001(user2) groups=1001(user2),1002(web),1003(db)

在上面的示例中,我们可以看到 user2 的辅助组将是 web 和 db,我们还可以验证 /etc/group 中的更改也已更新

代码语言:txt
复制
root@server1 ~]# grep user2 /etc/group
user2:x:1001:
web:x:1002:user2
db:x:1003:user5,user2

在上面的输出中,我们可以看到用户在 user2/web/db 组中

组修改

使用组修改命令,我们将测试组重命名为 devgroup

代码语言:txt
复制
[root@server1 ~]# groupmod testgroup -n devgroup
[root@server1 ~]# grep 555 /etc/group
devgroup:x:555:

删除用户/组

我们要删除 user6 和组 devgroup,检查id命令输出,我们可以看到 user6 已经分配了组 devgroup

代码语言:txt
复制
[root@server1 ~]# id user6
uid=501(user6) gid=555(devgroup) groups=555(devgroup)
[root@server1 ~]# userdel user6
[root@server1 ~]# groupdel devgroup

使用id命令验证命令

代码语言:txt
复制
[root@server1 ~]# id user6
id: 'user6': no such user
[root@server1 ~]#

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 用户文件
  • 组文件
  • shadow文件
  • 根用户
  • 用户管理
    • 创建用户
      • 设置密码
        • 使用特定用户 ID 创建用户
        • 组管理
          • 创建组
            • 具有特定组 ID 的组
              • 创建新用户并使用特定组
                • 用户/组修改
                  • 为用户添加多个组
                    • 组修改
                      • 删除用户/组
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档