当前位置:首页 > Linux > 正文

Linux如何查看用户命令?

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

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

命令

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 权限读取敏感信息。

Linux如何查看用户命令? 第1张

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

命令

getent passwd

优势

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

过滤特定用户

提取纯用户名列表

方法1:awk 处理输出

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

输出

root alice bob

方法2:cut 命令

cut -d: -f1 /etc/passwd


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

命令

Linux如何查看用户命令? 第2张

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

关键字段

  • 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环境下验证,确保准确性。

Linux如何查看用户命令? 第3张

0