Linux 用户管理知识与应用实践(一:用户及用户组基础知识)

Linux 用户管理知识与应用实践

本章将深入讲解用户管理的知识,并带领小伙伴们实践 Linux 运维中有关用户管理的工作。

一、用户及用户组配置文件介绍

在 Linux 系统中创建、增加,以及删除用户和用户组,实际上都是修改系统中对应的文件,因此有必要熟悉一下与用户和用户组相关的重要文件知识。

在 Linux 系统中,与用户和用户组直接相关的文件主要有 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 这四个文件,下面分别详细阐述。

1、Linux 系统用户相关的配置文件

在 Linux 系统中,与用户相关的配置文件主要包含如下两个:

复制代码
/etc/passwd 		存储用户信息的文件。

/etc/shadow			存储用户密码信息的文件。
A. 存储用户信息的文件 /etc/passwd

/etc/passwd 文件是 Linux 中的重要系统文件之一,主要作用是存储系统用户的信息,文件中的每一行表示一个用户信息,有多少行就表示存在多少个用户信息,仔细观察其中的一行,可以清晰地看 出,各内容之间通过 ":" 号划分成了多个字段,共 7 部分,这 7 部分分别定义了用户的不同属性,/etc/passwd 文件的实际内容具体如下:

复制代码
[root@shy ~]# head -5 /etc/passwd			# 通过 head 命令查看 /etc/passwd 的前 5 行。
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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

提示 : passwd 文件中有很多虚拟用户,如 bin、daemon 等,一般来说,这些用户都是系统正常运行所需要的,在不确定的情况下,请不要随意删改此类用户。

在 passwd 文件中,第一行的内容就是超级用户 root 所在的行,我们可以看到它的 UID 和 GID 都为 0,为了让读者能够清晰地了解 passwd 文件中内容的含义,下面列举了表 14-1 和表 14-2,供读者学习参考。

表 14-1 以 passwd 文件中 root 一行为例介绍各个字段的作用

表 14-2 对 passwd 文件中每一行各个字段的详细说明

下面来看一下 /etc/passwd 文件的权限:

复制代码
[root@shy ~]# ls -l /etc/passwd
-rw-r--r-- 1 root root 1247 5月  22 19:54 /etc/passwd		# 所有用户都有读的权限

因为每个用户登录时都需要取得 UID 与 GID 来判断权限,所以 /etc/passwd 文件的权限为 644,但这样一来就会带来安全问题, 即所有的用户都可以读 /etc/passwd 文件。即使文件内的密码是加密的,也还是存在一定的被攻击破解的安全隐患。因此,后来就将密码的信息移动到 /etc/shadow 文件了。

B. 存储用户密码信息的文件 /etc/shadow

由于 passwd 文件必须要被所有的用户读取,所以会带来安全隐患。而 shadow 文件就是为了解决这个安全隐患而增加的。 下面我们来看一下 /etc/shadow 文件的权限:

复制代码
[root@shy ~]# ls -l /etc/shadow
---------- 1 root root 797 5月  22 19:54 /etc/shadow			# 理论上所有用户都没有权限。

可以看到,/etc/shadow 的权限属性位置都是 "-",即所有用户都不可读(不包含 root),其文件内容具体如下:

复制代码
[root@shy ~]# head -5 /etc/shadow
root:$6$RYs6Gjk1y69BG3XL$jUfSqhUVIxhfadXp3xeHML02Op/BQHd1QFw6p6fPdN9C3FYmrD4IBGat2vll2kKKvcXUVkR.JNrZnzMtHjmCL0::0:99999:7:::			# 设置了密码后加密的数据信息。
bin:*:18353:0:99999:7:::
daemon:*:18353:0:99999:7:::
adm:*:18353:0:99999:7:::
lp:*:18353:0:99999:7:::

与 /etc/passwd 文件一样,shadow 文件中的每一行内容,也是以冒号 (:)作为分隔符的,共包含 9 个字段,其各个字段的意义如表 14-3 所示。

表 14-3 shadow 文件中每一行各个字段的详细说明

提示

  • 使用 useradd 命令添加用户会更改 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow。
  • 使用 passwd 或 chpasswd 为用户设置密码会更改 /etc/shadow。

2、Linux 系统用户组相关的配置文件

在 Linux 系统中,与用户组直接相关的主要配置文件也有两个:

复制代码
/etc/group     			用户组信息文件。
/etc/gshadow 			用户组密码信息文件。
A. 存储用户组信息的文件 /etc/group

/etc/group 文件是存储用户组相关信息的文件,内容包括用户组名称、用户组 GID 等属性。/etc/group 文件与 /etc/passwd 文件的权限相同,也是 644,示例代码具体如下:

复制代码
[root@shy ~]# ls -l /etc/group
-rw-r--r-- 1 root root 655 5月  22 19:54 /etc/group

/etc/group 文件的实际内容格式具体如下:

复制代码
[root@shy ~]# head -5 /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:

/etc/group 文件中每一行的内容也是使用冒号进行分隔的,表 14-4 是有关 group 文件的每一行中各个字段的详细说明。

表 14-4 group 文件中每一行各个字段的详细说明

提示: 使用 groupadd 添加用户组会更改 /etc/group、/etc/gshadow。

B. 存储用户组密码的文件 /etc/gshadow

/etc/gshadow 是存储用户组密码信息的文件,比如,用户组管理密码就存放在这个文件中。/etc/gshadow 和 /etc/group 是两个互补的文件;早期对于大型服务器,针对很多用户和用户组,定制一些关系结构比较复杂的权限模型,可以选择设置用户组密码。比如,如果不想让一些非用户组成员永久拥有用户组的权限和特性,那么可 以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码了,在实际运维工作中,一般是用不到这个功能的,因此读者了解一下本节内容就行了。

/etc/gshadow 文件权限及内容格式如下,每个用户组独占一行;

复制代码
[root@shy ~]# ls -l /etc/gshadow
---------- 1 root root 513 5月  22 19:54 /etc/gshadow
[root@shy ~]# head -5 /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::

gshadow 文件中每一行的内容都是使用冒号进行分隔的。

表 14-5 gshadow 文件中每一行各个字段的详细说明

二、Linux 用户及用户组命令介绍

在 Linux 系统中,与用户及用户组相关的系统命令有很多,这里仅对较为常用的命令做讲解,并给出重点。

1、有关用户管理的常见命令汇总

表 14-6 中针对用户管理的常见命令进行了汇总,其中,带 ※ 的需要重点掌握,其余的命令了解即可。

表 14-6 Linux 系统中与用户管理相关的常用命令集合

2、有关用户组管理的常见命令汇总

表 14-7 针对用户组管理的常见命令进行了汇总,同样,带 ※ 的建议读者重点掌握,其余的命令了解即可,一般用不到。

表 14-7 Linux 系统中与用户组管理相关的常用命令

相关推荐
Kurisu5751 小时前
最终幻想VII重制版修改器下载2026最新版
linux·游戏
Jempo M1 小时前
GDB 与 LLDB 逆向调试的艺术:从原理到实战,Linux 与 Windows 调试全解析
linux·运维·服务器
比昨天多敲两行1 小时前
Linux进程间通信-共享内存
linux·运维·服务器
AbandonForce1 小时前
Linux权限深入解读
linux·运维·服务器
哎呦,帅小伙哦1 小时前
Nanomsg usock 模块:Socket 选项与错误码介绍
linux·中间件·nanomsg
lbb 小魔仙1 小时前
Docker一键部署 EasyNode 面板,随时随地可视化管理服务器
服务器·docker·容器
Elastic 中国社区官方博客1 小时前
Hacknight Beijing:基于阿里云与 Elastic 构建 AI Agents
大数据·运维·人工智能·elasticsearch·搜索引擎·阿里云·云计算
醇氧1 小时前
【Hermes Agent】使用阿里云百炼 Token Plan(方式一:命令行一键配置)
阿里云·云计算·es·openclaw
草莓熊Lotso1 小时前
【Linux网络】深入理解 HTTP 协议(一):从基础概念到 URL 编码解码
linux·网络·c++·网络协议·http·软件工程