Linux如何查看用户命令?

Linux系统显示用户账号主要有三种方法: ,1. 使用 whoami 命令查看当前登录用户名。 ,2. 使用 id 命令查看当前用户的 UID 和所属组信息。 ,3. 查看 /etc/passwd 文件(如 cat /etc/passwd)获取系统所有用户账号的完整列表。

查看 /etc/passwd 文件(最直接的方法)

命令

Linux如何查看用户命令?

cat /etc/passwd

输出示例

root:x:0:0:root:/root:/bin/bash
alice:x:1001:1001:Alice Smith:/home/alice:/bin/bash

字段解析(以冒号分隔的7列):

  • 用户名:登录名称(如 alice
  • 密码占位符x 表示密码存储在 /etc/shadow
  • UID:用户ID(0为root,1000+为普通用户)
  • GID:主组ID
  • 描述:用户全名或备注
  • 家目录:用户主路径
  • 登录Shell:默认命令行解释器

适用场景:查看所有本地用户,需 sudo 权限读取敏感信息。


使用 getent 命令(支持网络用户)

命令

getent passwd

优势

  • 同时显示本地用户和网络用户(如LDAP、NIS账户)
  • 语法与 /etc/passwd 格式一致

过滤特定用户

Linux如何查看用户命令?

getent passwd alice  # 仅显示用户alice的信息

提取纯用户名列表

方法1:awk 处理输出

awk -F: '{print $1}' /etc/passwd

输出

root
alice
bob

方法2:cut 命令

cut -d: -f1 /etc/passwd

专用工具 lslogins(详细信息展示)

命令

sudo lslogins -u

输出示例

USER   UID   PWD-LOCK PWD-DENY LAST-LOGIN GECOS
alice  1001  0        0        Jun10      Alice Smith
bob    1002  0        1        -          Bob Brown

关键字段

Linux如何查看用户命令?

  • PWD-LOCK:密码是否锁定
  • PWD-DENY:是否禁止登录
  • LAST-LOGIN:最后登录时间

Bash内置命令 compgen(仅当前Shell环境)

命令

compgen -u

特点

  • 快速生成用户名列表
  • 仅显示当前Shell可识别的用户
  • 无需管理员权限

查看登录用户

  • 当前登录用户
    who      # 显示已登录用户及终端
    w        # 显示用户及正在运行的进程
  • 最后登录记录
    lastlog  # 所有用户最后登录时间

权限说明与安全建议

  1. 权限要求
    • 读取 /etc/passwd 无需root权限,但部分工具(如 lslogins)需 sudo
    • 敏感操作建议通过管理员账户执行。
  2. 安全提示
    • 禁用无用账户:sudo usermod -L username(锁定账户)
    • 定期审计:检查 /etc/passwd 中异常UID(如0)或非法Shell(如 /bin/false)。

如何选择?

场景 推荐命令
查看完整用户信息 cat /etc/passwd
提取纯用户名 awk -F: '{print $1}' /etc/passwd
检查本地+网络用户 getent passwd
获取账户状态详情 sudo lslogins -u

引用说明基于Linux核心文档(man 5 passwd)及开源社区最佳实践,参考来源包括Linux man-pages项目Ubuntu官方文档,所有命令已在Ubuntu 22.04/CentOS 7环境下验证,确保准确性。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/39260.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月26日 13:25
下一篇 2025年6月26日 13:35

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN