如何在 Ubuntu 上的 Linux 中查看系统用户
介绍
系统管理的一个基本部分是配置和管理用户和组。此任务的一部分涉及监视所有系统实体的登录功能。
在本教程中,您将回顾用户管理和身份验证日志记录背后的理念。
我们将在 Ubuntu 22.04 服务器上探索这些概念,但您可以在任何现代 Linux 发行版上继续学习。您可以按照我们的 Ubuntu 22.04 初始服务器设置指南为本教程设置 Ubuntu 22.04 服务器。
第一部分将介绍如何查看系统用户并找出谁登录了系统。
如何查看可用用户
Linux 系统上的每个用户,无论是作为真实人类的帐户创建的,还是与特定服务或系统功能相关联的,都存储在名为 /etc/passwd
的文件中。
/etc/passwd
文件包含有关系统用户的信息。每行描述一个不同的用户。
使用 less
命令查看一下,这样您就可以滚动浏览整个文件:
- less /etc/passwd
Outputroot:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
. . .
每行被分解成字段。这些字段由冒号 (:) 字符分隔。
您目前唯一需要的字段是第一个字段。每个都是一个独立的用户名。使用完 less
后,按 q
退出。
您可以通过使用 cut
命令以冒号分隔符 (-d :
) 进行拆分,而无需遍历整个 \/etc/passwd 即可获得此列表:
- cut -d : -f 1 /etc/passwd
Outputroot
daemon
bin
sys
sync
games
. . .
您可能将 root
识别为管理用户。最后,您可能会看到您登录的用户。
在此期间,您可能会看到许多其他用户,他们的用法似乎至少有些清楚。例如,www-data
被配置为 Web 服务器进程的所有者。
这样做是为了分离功能特权。这样,如果帐户遭到泄露或滥用,影响将被隔离。
您可以在本教程中阅读有关 /etc/passwd
中的字段的更多信息。
如何查看可用组
发现系统组对应的文件是/etc/group
。
您可以再次使用 less
查看此文件:
- less /etc/group
Outputroot:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
. . .
您可能会注意到许多组名反映了您在系统上发现的用户。这是称为用户私有组 或UPG 的配置方案的一部分。
用户私有组为每个用户创建一个私有组并将该组设置为主要组。 umask 然后从 022 更改为 002。
这允许通过设置一个名为 setgid
的标志在共享目录中提供更大的灵活性,该标志为目录内的文件提供与目录本身相同的组所有者。
再一次,您可以使用 cut
命令从 /etc/group
文件中删除信息:
- cut -d : -f 1 /etc/group
Outputroot
daemon
bin
sys
adm
tty
disk
. . .
输出将是系统上每个组的列表,每行一个。
如何查找哪些用户已登录
很多时候,找出哪些用户在您的系统上处于活动状态会更有用。
w
命令是列出所有当前登录用户、他们的登录时间以及他们当前正在运行的命令的直接方式:
- w
Output19:37:15 up 5:48, 2 users, load average: 0.33, 0.10, 0.07
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 rrcs-72-43-115-1 19:15 38.00s 0.33s 0.33s -bash
demoer pts/1 rrcs-72-43-115-1 19:37 0.00s 0.47s 0.00s w
第一行包含系统正常运行时间信息。以下几行描述了谁登录了。
提供类似信息的替代方法是 who
:
- who
Outputroot pts/0 2013-09-05 19:15 (rrcs-72-43-115-186.nyc.biz.rr.com)
demoer pts/1 2013-09-05 19:37 (rrcs-72-43-115-186.nyc.biz.rr.com)
结论
Linux 上的用户身份验证是系统管理中一个相对灵活的领域。使用广泛可用的工具可以通过多种方式实现相同的目标。
您现在应该知道如何找出服务器存储其用户和组信息的位置。您还可以查看谁在任何给定时间登录。
在本教程系列的下一部分中,您将了解如何限制登录访问。