当您第一次登录 linux 服务器并接管管理它的角色时,您需要立即了解有关系统用户帐户的许多信息 – 例如它们存储在哪里、如何列出它们、如何您可以确定谁登录、如何查看用户登录频率、如何列出用户正在运行的进程、确定用户是否不时更改密码以及检查他们是否是多个用户组的成员。
列出用户帐户
用户帐户(通常称为用户的“主帐户”)通常存储在 /home 目录中。事实上,/home 通常会占用自己的文件系统分区,以单独为用户文件保留磁盘空间。使用“ls /home”或“ls -l /home”列出系统上的帐户。第一个命令将仅显示主目录。目录名称应与用户名相同。使用 -l 参数,您将看到一个“长列表”,其中通常包含如下行:
drwx------. 1 brie brie 289 Feb 6 11:23 brie drwx------. 1 lola lola 3265 Feb 11 09:16 lola
显然,这两个用户不向其他用户提供访问权限。他们的读、写和执行权限仅与他们自己的权限 (rwx) 关联,与组或其他任何人无关。以下两个“—”字符串表示尚未向其他组成员(如果存在)或系统上的其他用户提供读、写或执行权限。
请注意,在一些更罕见的系统上,您可能会看到主目录存储在 /export/home 中。这些帐户可能会在安装在 /home 上的其他服务器上共享。
检查磁盘空间
要快速查看用户的磁盘使用情况,您可以运行如下命令。请注意,它需要 sudo 并使用“s”参数来按用户提供摘要。
$ sudo du -sh /home/* 12K /home/brie 223M /home/fedora 16K /home/george 49M /home/justme 12K /home/lola 12K /home/newuser 125M /home/shs
该系统上的整个主分区已满 50% 多一点。了解磁盘空间何时不足以及有时衡量其填满的速度非常重要。
$ df -h /home Filesystem Size Used Avail Use% Mounted on /dev/sda3 14G 7.2G 5.7G 56% /home
问谁
who 命令提供有关当前登录的用户的信息。在下面的示例中,justme 已登录到控制台并打开了一个终端窗口。当前登录的另一个用户 shs 通过网络登录。这就是为什么一个登录显示终端 ID,另一个登录显示建立登录连接的 IP 地址。
$ who justme seat0 2024-02-10 12:30 (login screen) justme tty2 2024-02-10 12:30 (tty2) shs pts/1 2024-02-10 12:38 (192.168.0.8)
who 输出还显示登录日期和时间。每个用户在服务器上花费的时间取决于他或她需要在系统上完成的工作。
列出用户帐户详细信息
要列出系统帐户,您可以查看 /etc/passwd 文件中的条目。该文件包含详细信息,包括用户名、用户数字 ID (UID)、用户组 ID (GID)、主目录以及他们使用的 shell。下面的查询仅查看 /etc/passwd 文件的底部,因为该文件包含近 50 个系统帐户的信息。
$ tail -6 /etc/passwd shs:x:1001:1001:Sandra H-S:/home/shs:/bin/bash newuser:x:1002:1002:New Guy:/home/newuser:/bin/bash george:x:1003:1003:George M:/home/george:/bin/bash justme:x:1004:1004:Just Me:/home/justme:/bin/bash brie:x:1005:1005:Brie the Cat:/home/brie:/bin/bash lola:x:1006:1006:Lola the Dog:/home/lola:/bin/bash
请注意,尽管 /etc/passwd 文件的名称为“passwd”,但该文件中不包含密码。多年来,密码一直被加密并保存在 /etc/shadow 文件中。请注意,此冒号分隔的文件条目中每个用户的第二个字段的长度超过 70 个字符。其余字段与密码时效相关。
如果密码没有老化,您将在 /etc/shadow 文件的最后一个字段中看到一串 9。为了使这一点有意义,请使用以下命令来确定“自纪元以来”时间中的今天“日期”:
$ today=$(( $( date \"+%s\" ) / 86400 )) $ echo $today 19764
上次更改密码的日期和到期日期显示在 /etc/shadow 文件中行尾附近。以下是最近刚刚更改密码的示例。这些是该用户的 /etc/shadow 文件中最右侧的字段。
19740:0:99999:7:::
将其与 /etc/shadow 文件中的过期字段进行比较,以确定密码过期前的时间:
$ expr 86400 - 19763 66637
看来我们还有很长的路要走!当然,如果在该系统上强制每年或半年更改一次密码,情况将会非常不同。
查看最近登录情况
您可以使用“last”命令查看用户最近的登录情况:
$ last lola | head -11 lola pts/3 192.168.0.8 Sat Feb 10 12:55 still logged in lola pts/1 192.168.0.8 Sat Feb 10 12:38 - 13:10 (00:31) lola tty2 tty2 Sat Feb 10 12:13 - 12:35 (00:22) lola seat0 login screen Sat Feb 10 12:13 - 12:36 (00:22) lola pts/1 192.168.0.8 Wed Jan 31 12:52 - 14:11 (01:19) lola pts/0 192.168.0.8 Tue Jan 30 11:45 - 12:35 (00:50) lola pts/1 192.168.0.22 Mon Jan 29 11:25 - 12:06 (00:41) lola tty2 tty2 Mon Jan 29 11:23 - down (00:43) lola seat0 login screen Mon Jan 29 11:23 - down (00:43) lola pts/1 192.168.0.8 Fri Jan 26 12:27 - 13:11 (00:44) lola pts/0 192.168.0.22 Thu Jan 25 13:45 - 13:47 (00:02)
该报告将显示您所询问的用户的最近登录情况。
用户组
默认情况下,Linux 用户在设置帐户时将被放入自己的私有组中,并且其组 ID (GID) 将从 1,000 开始。例如:
rejustme:x:1004:
名为“justme”的用户的组分配的组号为 1004(与该用户的 UID 相同),并且该组没有密码,因此显示为“x”。
共享组也可以在 /etc/groups 文件中设置,包括组名、组号和成员,格式如下:
sysadmins:x:88:george,lola
总结
配置和管理 Linux 帐户相当简单。只需要习惯一些命令并正确管理服务器即可。本文未涵盖的一件事是监视用户帐户的磁盘空间使用情况。
本文由 @登山人 发布于弱电智能网 。
题图来自Unsplash,基于CC0协议
内容观点仅代表作者本人,弱电智能网平台仅提供信息存储空间服务。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
文章名称:《如何查看 Linux 服务器上的用户帐户和活动》
文章链接:https://www.ruodian360.com/tech/sytemops/53118.html
添加微信ydian188免费入群,记得备注“弱电智能网”。