介绍
系统管理的一个基本部分是配置和管理用户和组,该任务的一部分包括监控所有系统实体的功能日志。
在本教程中,您将审查用户管理和身份验证日志背后的想法。
我们将在Ubuntu 22.04 服务器上探索这些概念,但你可以跟随任何现代的 Linux 发行版。你可以通过遵循我们的指南来为本教程设置Ubuntu 22.04 服务器。
第一部分将涵盖如何查看系统用户并找出谁已登录到系统。
如何查看可用的用户
Linux 系统上的每个用户,无论是作为一个真实的人类帐户创建的,还是与特定服务或系统功能相关的,都存储在一个名为 `/etc/passwd 的文件中。
文件 /etc/passwd
包含有关系统上的用户的信息. 每个行描述一个不同的用户。
使用少
命令来查看,这样你就可以滚动整个文件:
1less /etc/passwd
1[secondary_label Output]
2root:x:0:0:root:/root:/bin/bash
3daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
4bin:x:2:2:bin:/bin:/usr/sbin/nologin
5sys:x:3:3:sys:/dev:/usr/sbin/nologin
6sync:x:4:65534:sync:/bin:/bin/sync
7games:x:5:60:games:/usr/games:/usr/sbin/nologin
8. . .
每个行分为字段. 这些字段由结(:)字符划分。
您目前所需的唯一字段是第一个字段. 每个字段都是独立的用户名. 当您完成使用少
时,请按q
来停止。
您可以通过使用切断
命令来分割结肠界限(-d :
)来获取此列表,而无需穿过整个/etc/passwd
字段:
1cut -d : -f 1 /etc/passwd
1[secondary_label Output]
2root
3daemon
4bin
5sys
6sync
7games
8. . .
您可能将root
识别为管理用户,最后您可能会看到您已登录的用户。
在此之间,你可能会看到一些其他用户,他们的使用似乎至少有些清晰,例如,www-data
被配置为Web服务器流程的所有者。
这样做是为了分离功能特权,这样一来,如果一个帐户被破坏或滥用,效果将被孤立。
您可以在 本教程中阅读更多关于 /etc/passwd
中的字段。
如何查看可用的组
发现系统组的相应文件为 /etc/group
。
您可以再次使用少
来查看此文件:
1less /etc/group
1[secondary_label Output]
2root:x:0:
3daemon:x:1:
4bin:x:2:
5sys:x:3:
6adm:x:4:
7tty:x:5:
8disk:x:6:
9. . .
您可能会注意到,许多组名称反映了您在系统上发现的用户,这是称为 user private groups 或 UPG 的配置方案的一部分。
用户私人组为每个用户创建一个私人组,然后将该组设置为主要组。
这允许在共享目录中设置一个名为setgid
的旗帜,使目录内部的文件与目录本身相同的组所有者。
再一次,您可以通过使用 cut
命令将从/etc/group
文件中提取的信息:
1cut -d : -f 1 /etc/group
1[secondary_label Output]
2root
3daemon
4bin
5sys
6adm
7tty
8disk
9. . .
输出将是系统上的每个组的列表,每行一个。
如何查找哪些用户已登录
很多时候,它将更有用来找出哪些用户在你的系统上是活跃的。
w
命令是一个简单的方法来列出所有目前登录的用户,他们的时间登录,以及他们目前正在运行的命令:
1w
1[secondary_label Output]
219:37:15 up 5:48, 2 users, load average: 0.33, 0.10, 0.07
3USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
4root pts/0 rrcs-72-43-115-1 19:15 38.00s 0.33s 0.33s -bash
5demoer pts/1 rrcs-72-43-115-1 19:37 0.00s 0.47s 0.00s w
第一行包含系统运行时间信息,下列行描述了谁已登录。
提供类似信息的替代方案是who
:
1who
1[secondary_label Output]
2root pts/0 2013-09-05 19:15 (rrcs-72-43-115-186.nyc.biz.rr.com)
3demoer pts/1 2013-09-05 19:37 (rrcs-72-43-115-186.nyc.biz.rr.com)
结论
Linux 上的用户身份验证是系统管理的一个相对灵活的领域,有许多方法可以通过广泛的工具实现同样的目标。
您现在应该知道如何找出您的服务器存储其用户和组信息的位置,您也可以看到谁在任何时间登录。
在本教程系列的下一部分(https://www.digitalocean.com/community/articles/how-to-restrict-log-in-capabilities-of-users-on-ubuntu)中,您将审查如何限制登录访问。