whoami显示当前有效用户,who列出登录用户及终端信息,w还显示活动详情,id则查看用户UID、GID和所属组,不同命令适用于身份确认、在线状态、行为监控和权限分析场景。

在Linux系统里,想知道当前是哪个用户在操作,或者还有谁登录着,其实有几个非常直接的命令可以用。简单来说,最快的是
whoami
who
w
id
whoami
sudo
$ whoami myuser
who
who
$ who myuser pts/0 2023-10-27 10:30 (192.168.1.100) otheruser pts/1 2023-10-27 09:45 (192.168.1.101)
w
w
who
$ w 10:35:01 up 1 day, 1:05, 2 users, load average: 0.10, 0.08, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT myuser pts/0 192.168.1.100 10:30 0.00s 0.15s 0.05s bash otheruser pts/1 192.168.1.101 09:45 1:00m 0.30s 0.02s sshd: otheruser@pts/1
id
id
$ id uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
如果你想查看其他用户的信息,比如
otheruser
$ id otheruser uid=1001(otheruser) gid=1001(otheruser) groups=1001(otheruser)
在Linux世界里,查看用户信息的命令虽然多,但它们各自的“专长”和适用场景却大相径庭。理解这些差异,能让你在实际操作中更高效、更精准地获取所需信息,而不是盲目地敲命令。
首先,
whoami
sudo
root
whoami
接着是
who
who
who
然后是
w
who
who
w
w
w
最后是
id
id
id
所以,并没有哪个命令是“最好”的,只有“最适合”你当前需求的。根据你想了解的信息维度——是当前用户身份、在线用户概览、用户活动详情,还是用户权限构成——来选择合适的工具,这才是最有效的工作方式。

有时候,我们不仅仅想知道自己是谁,或者系统上有哪些人登录了,更想深入了解某个特定用户或某个特定登录会话的详细情况。这其实是可以做到的,虽然不像
whoami
首先,如果你想查看某个特定用户的身份信息,比如UID、GID和所属群组,
id
id
$ id specific_user uid=1002(specific_user) gid=1002(specific_user) groups=1002(specific_user),10(wheel)
这能帮你快速确认该用户在系统中的权限基础。
至于查看其他用户的登录会话信息,
who
w
|
grep
$ who | grep specific_user specific_user pts/2 2023-10-27 11:00 (192.168.1.102)
或者,用
w
$ w | grep specific_user specific_user pts/2 192.168.1.102 11:00 0.00s 0.10s 0.01s vim
这样就能精确地看到
specific_user
在某些系统上,你可能还会遇到
finger
finger
.plan
.project
finger
$ finger specific_user Login: specific_user Name: Specific User Directory: /home/specific_user Shell: /bin/bash On since Fri Oct 27 11:00 (CST) on pts/2 from 192.168.1.102 (1 day 0 hours idle) No mail. No Plan.
更深层次一点,这些登录信息其实都存储在系统的一些特殊文件中。比如,
who
w
/var/run/utmp
/var/log/wtmp
/var/log/btmp
utmpdump
last
lastb
# 查看所有历史登录记录 $ last # 查看所有失败的登录尝试 $ lastb
这些命令能让你追溯到更久远的用户登录历史,对于安全审计和问题追踪来说,是非常有价值的。当然,直接操作这些底层文件需要一些经验,通常情况下,
who
w
id

在Linux环境下工作,偶尔会遇到一些命令输出与我们直觉不符的情况,尤其是在查看用户和会话信息时。这并非系统出错,而是因为Linux的“用户”概念在不同上下文中有不同的含义,以及会话管理机制的复杂性。我记得有一次,我在一台服务器上用
sudo su -
root
whoami
root
logname
1. sudo
su
sudo command
root
whoami
root
sudo -u 指定用户
logname
su -
sudo su -
root
whoami
logname
su
-
logname
2. 终端会话的生命周期与类型:
who
w
tty
pts
pts
tty
screen
tmux
who
w
screen
tmux
screen
whoami
w
screen
screen
3. 陈旧的登录记录:
who
w
/var/run/utmp
utmp
last
lastb
/var/log/wtmp
/var/log/btmp
4. 权限问题: 虽然不常见,但如果用户没有足够的权限读取
utmp
who
w
理解这些细微的差别,可以帮助我们更准确地解读命令输出,避免不必要的困惑。当看到信息不符时,不妨多试几个命令,结合
sudo
su
以上就是Linux怎么查看当前登录用户的信息的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号