Linux 查看当前登录用户及管理方法

查看当前登录用户

1. 使用 w 命令

[root@k8s-nginx1 ~]# w
 10:58:34 up 26 days, 16:59,  2 users,  load average: 0.00, 0.04, 0.06
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/1    10.6.0.18        10:57    1:15   0.01s  0.01s -bash
root     pts/2    10.6.0.18        10:57    2.00s  0.05s  0.01s w

输出说明:

  • USER: 登录用户名
  • TTY: 终端类型(pts/0, pts/1 等表示伪终端,tty1 等表示物理终端)
  • FROM: 登录来源 IP 地址
  • LOGIN@: 登录时间
  • IDLE: 空闲时间
  • JCPU: 该终端所有进程占用 CPU 时间
  • PCPU: 当前进程占用 CPU 时间
  • WHAT: 用户当前执行的命令

2. 使用 who 命令

[root@k8s-nginx1 ~]# who
root     pts/1        2019-12-19 10:57 (10.6.0.18)
root     pts/2        2019-12-19 10:57 (10.6.0.18)

3. 使用 who am i 命令

[root@k8s-nginx1 ~]# who am i
root     pts/1        2019-12-19 10:57 (10.6.0.18)

此命令只显示当前用户自己的登录信息。

用户会话管理

查看自己的终端信息

[root@k8s-nginx1 ~]# tty
/dev/pts/1

强制踢出用户

当需要维护系统时,可能需要强制断开其他用户的连接:

# 踢出指定终端的用户
[root@k8s-nginx1 ~]# pkill -kill -t pts/0

# 或者使用以下命令
[root@k8s-nginx1 ~]# skill -kill -t pts/0
[root@k8s-nginx1 ~]# kill -9 `ps -t pts/0 | awk 'NR>1 {print $1}'`

与用户通信

在踢出用户之前,建议先通知对方:

方法一:使用 echo 命令

[root@k8s-nginx1 ~]# echo "系统维护,请立即保存工作并下线!" > /dev/pts/2

对方终端会立即显示:

text复制下载

系统维护,请立即保存工作并下线!

方法二:使用 write 命令

# 先查看在线用户
[root@k8s-nginx1 ~]# w

# 向指定用户发送消息
[root@k8s-nginx1 ~]# write root pts/2
系统即将进行维护,请在5分钟内保存工作并退出。
按 Ctrl+D 结束消息输入

方法三:使用 wall 命令(向所有用户广播)

[root@k8s-nginx1 ~]# wall "系统将在5分钟后进行维护,请立即保存工作!"

其他相关命令

查看用户登录历史

# 查看最近登录用户
last

# 查看当前登录用户的详细信息
who -a

# 查看用户登录失败记录
lastb

查看特定用户信息

# 查看指定用户的登录情况
who | grep username
w | grep username

最佳实践建议

  1. 提前通知: 在计划维护前,通过适当渠道提前通知用户
  2. 礼貌沟通: 使用 write 或 wall 命令友好地通知用户
  3. 给予缓冲时间: 在发送通知后等待合理时间再执行踢出操作
  4. 记录操作: 重要操作前做好记录,便于审计和问题排查
  5. 权限控制: 确保只有授权人员才能执行用户管理操作

通过这些命令和方法,系统管理员可以有效地监控和管理服务器上的用户会话,确保系统维护工作的顺利进行。

Comments

No comments yet. Why don’t you start the discussion?

发表回复

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