6 个简单的方式来查看 Linux 中的用户名和其它信息
创始人
2024-03-01 23:59:14
0

这是一个非常基础的话题,在 Linux 中,每个人都知道如何使用 id 来查找用户信息。一些用户也从 /etc/passwd 文件中过滤用户信息。

我们还使用其它命令来获取用户信息。

你可能会问,为什么要讨论这个基础话题呢?即使我也这么认为,因为除了这两个之外没有更好的方法了,但是我们也有一些不错的选择。

与这两者相比,那些命令提供了更详细的信息,这对于新手非常有帮助。

这是帮助管理员在 Linux 中查找用户信息的基本命令之一。Linux 中的一切都是文件,甚至用户信息都存储在一个文件中。

建议阅读:

所有用户都被添加在 /etc/passwd 文件中,这里保留了用户名和其它相关详细信息。在 Linux 中创建用户时,用户详细信息将存储在 /etc/passwd 文件中。passwd 文件将每个用户详细信息保存为一行,包含 7 字段。

我们可以使用以下 6 种方法来查看用户信息。

  • id:为指定的用户名打印用户和组信息。
  • getent:从 Name Service Switch 库中获取条目。
  • /etc/passwd: 文件包含每个用户的详细信息,每个用户详情是一行,包含 7 个字段。
  • finger:用户信息查询程序
  • lslogins:显示系统中已有用户的信息
  • compgen:是 bash 内置命令,它将显示用户的所有可用命令。

1) 使用 id 命令

id 代表 身份 identity 。它输出真实有效的用户和组 ID。也可以输出指定用户或当前用户的用户和组信息。

# id daygeek
uid=1000(daygeek) gid=1000(daygeek) groups=1000(daygeek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare)

下面是上述输出的详细信息:

  • uid (1000/daygeek): 它显示用户 ID 和用户名
  • gid (1000/daygeek): 它显示用户的组 ID 和名称
  • groups: 它显示用户的附加组 ID 和名称

2) 使用 getent 命令

getent 命令显示 Name Service Switch 库支持的数据库中的条目,这些库在 /etc/nsswitch.conf 中配置。

getent 命令会显示类似于 /etc/passwd 文件的用户详情,它将每个用户的详细信息放在一行,包含 7 个字段。

# getent 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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/bin/bash
thanu:x:503:504:2g Editor - Thanisha M:/home/thanu:/bin/bash
sudha:x:504:505:2g Editor - Sudha M:/home/sudha:/bin/bash

下面是关于 7 个字段的详细信息:

magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/bin/bash
  • Username (magesh): 已创建的用户名。字符长度应该在 1 到 32 之间。
  • Password (x): 它表明加密密码存储在 /etc/shadow 文件中。
  • User ID (UID-502): 它表示用户 ID(UID),每个用户应包含唯一的 UID。UID (0-Zero) 保留给 root,UID(1-99)是为系统用户保留的,UID(100-999)是为系统账户/组保留的。
  • Group ID (GID-503): 它表示组 ID(GID),每个组应该包含唯一的 GID,它存储在 /etc/group 文件中。
  • User ID Info (2g Admin - Magesh M): 它表示命令字段。这个字段可用于描述用户信息。
  • Home Directory (/home/magesh): 它表示用户家目录。
  • shell (/bin/bash): 它表示用户的 bash shell。

如果你只想在 getent 命令的输出中显示用户名,使用以下命令格式:

# getent passwd | cut -d: -f1
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
operator
games
gopher
magesh
thanu
sudha

只显示用户的家目录,使用以下命令格式:

# getent passwd | grep '/home' | cut -d: -f1
centos
prakash
magesh
thanu
sudha

3) 使用 /etc/passwd 文件

/etc/passwd 是一个文本文件,它包含每个用户登录 Linux 系统所必需的的信息。它维护用户的有用信息,如用户名,密码,用户 ID,组 ID,用户 ID 信息,家目录和 shell。/etc/passwd 文件将每个用户详细信息放在一行中,包含 7 个字段,如下所示:

# 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
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/bin/bash
thanu:x:503:504:2g Editor - Thanisha M:/home/thanu:/bin/bash
sudha:x:504:505:2g Editor - Sudha M:/home/sudha:/bin/bash

以下是 7 个字段的详细信息。

magesh:x:502:503:2g Admin - Magesh M:/home/magesh:/bin/bash

字段信息同上。

如果你只想显示 /etc/passwd 文件中的用户名,使用以下格式:

# cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
operator
games
gopher
magesh
thanu
sudha

只显示用户的家目录,使用以下格式:

# cat /etc/passwd | grep '/home' | cut -d: -f1
centos
prakash
magesh
thanu
sudha

4) 使用 finger 命令

finger 命令显示有关系统用户的信息。它显示用户的真实姓名,终端名称和写入状态(如果没有写入权限,那么最为终端名称后面的 *),空闲时间和登录时间。

# finger magesh
Login: magesh Name: 2g Admin - Magesh M
Directory: /home/magesh Shell: /bin/bash
Last login Tue Jul 17 22:46 (EDT) on pts/2 from 103.5.134.167
No mail.
No Plan.

以下是上述输出的详细信息:

  • Login: 用户名
  • Name: 附加/有关用户的其它信息
  • Directory: 用户家目录的信息
  • Shell: 用户的 shell 信息
  • LAST-LOGIN: 上次登录日期和其它信息

5) 使用 lslogins 命令

它显示系统已知用户的信息。默认情况下,它将列出系统中所有用户的信息。

lslogins 使用程序的灵感来自于 logins 实用程序,该实用程序最初出现在 FreeBSD 4.10 中。

# lslogins -u
UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
 0 root 0 0 00:17:28 root
500 centos 0 1 Cloud User
501 prakash 0 0 Apr12/04:08 2018/04/12
502 magesh 0 0 Jul17/22:46 2g Admin - Magesh M
503 thanu 0 0 Jul18/00:40 2g Editor - Thanisha M
504 sudha 0 0 Jul18/01:18 2g Editor - Sudha M

以下是上述输出的详细信息:

  • UID: 用户 id
  • USER: 用户名
  • PWD-LOCK: 密码已设置,但是已锁定
  • PWD-DENY: 登录密码是否禁用
  • LAST-LOGIN: 上次登录日期
  • GECOS: 有关用户的其它信息

6) 使用 compgen 命令

compgen 是 bash 内置命令,它将显示所有可用的命令,别名和函数。(LCTT 译注:它的 -u 参数可以列出系统中用户。)

# compgen -u
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
uucp
operator
games
gopher
magesh
thanu
sudha

via: https://www.2daygeek.com/6-easy-ways-to-check-user-name-and-other-information-in-linux/

作者:Prakash Subramanian 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

不支持“Microsoft...
要解决这个问题,您可以尝试在代码中使用.CurrentPage属性...
2025-01-12 01:00:37
不支持Interop Us...
如果您使用的控件数组不支持Interop UserControls...
2025-01-11 22:31:26
不支持的获取请求。由于缺少...
这个错误通常表示您的请求缺少必要的权限或请求的对象不存在。下面是一...
2025-01-11 20:14:36
不允许写入“/Users/...
解决方法可以如下:首先,确保你有适当的权限来写入 "/Users/...
2025-01-11 13:01:26
不一致的.lua脚本Log...
要解决“不一致的.lua脚本Logitech MoveMouseR...
2025-01-11 08:01:05
不应静态调用非静态方法 &...
要解决这个问题,可以通过实例化App\User类,然后调用addr...
2025-01-11 07:01:34

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...