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

Linux中谁在登录?

在Linux中查看当前用户,可运行命令 whoamiid -un,也可使用 echo $USER直接显示用户名。

方法1:使用 whoami 命令(最简方式)

whoami

输出示例

john

特点

  • 直接返回当前用户名,无额外信息
  • 适用于脚本中快速获取用户名
  • 系统预装,无需额外安装

方法2:使用 id 命令(查看详细信息)

id

输出示例

uid=1000(john) gid=1000(john) groups=1000(john),4(adm),24(cdrom)

解析

Linux中谁在登录?  第1张

  • uid=1000(john):用户ID及用户名
  • gid:主组ID
  • groups:所属所有用户组
    适用场景
    需同时检查用户权限和组关系时使用

方法3:查看 $USER 环境变量

echo $USER

输出示例

john

注意

  • 环境变量可能被改动(极少数反面场景)
  • 通常与 whoami 结果一致,建议交叉验证

方法4:使用 wwho 命令(多用户监控)

w

输出示例

 10:15:03 up 2 days,  3:22,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
john     tty2     :0               Mon09    5:23m  0.02s  0.00s /usr/bin/startx

优势

  • 显示所有登录用户及活动进程
  • 精准定位终端来源(tty2)和登录时间

方法5:检查 /etc 相关文件(高级审计)

查看当前登录用户记录

cat /var/run/utmp  # 需用工具解析(如 `utmpdump`)

查看历史登录用户

last -1            # 最近一次登录记录

输出示例

john     tty2         :0               Mon Sep 18 09:15   still logged in

适用场景

  • 安全审计
  • 追踪异常登录行为

安全注意事项

  1. 交叉验证原则
    关键操作前用两种命令验证(如 whoami + id),避免环境变量欺骗。
  2. 特权用户识别
    使用 sudo -i 切换后,whoami 显示 root,但 echo $SUDO_USER 可查原用户。
  3. 环境变量风险
    echo $USERwhoami 结果不一致,可能遭遇反面改动。

总结建议

场景 推荐命令
快速查看用户名 whoami
检查用户组权限 id
监控多用户活动 w
审计历史登录记录 last

引用说明基于Linux核心文档(Linux man-pages)及Unix权限管理标准(IEEE Std 1003.1),命令测试环境为Ubuntu 22.04 LTS与CentOS 9,兼容主流发行版。

0