查看当前登录用户
操作前需确认目标用户及会话信息:
who -u # 显示用户、终端、IP、登录时间和进程ID(PID) w # 显示更详细信息(包括执行命令) loginctl list-sessions # 通过systemd查看会话(适用于现代Linux发行版)
输出示例:
root pts/0 2025-10-01 14:30 . 12345 (192.168.1.100)
user1 pts/1 2025-10-01 15:20 . 67890 (10.0.0.5)
注销用户的4种方法
通过终端设备直接注销
pkill -HUP -t pts/1 # 终止pts/1终端的所有进程(SIGHUP信号安全退出)
或指定用户:
pkill -u user1 # 结束user1的所有进程(强制性强)
使用进程ID精准注销
若已知用户进程ID(从who -u
获取):
kill -9 67890 # 强制终止该PID的进程(慎用-SIGKILL) kill -1 67890 # 发送SIGHUP信号(更安全,允许程序清理)
通过systemd会话管理(推荐)
适用于使用systemd-logind
的系统(如Ubuntu 18.04+、CentOS 7+):
loginctl terminate-session c1 # 结束会话ID(通过`loginctl list-sessions`获取) loginctl terminate-user user1 # 注销指定用户所有会话
终止SSH连接
若用户通过SSH登录:
sudo kill $(pgrep -u user1 sshd) # 结束user1的sshd进程
注意事项
- 权限要求:必须使用
sudo
或root账户执行。 - 信号选择:
- 优先使用
SIGHUP
(kill -1
或pkill -HUP
),允许程序保存数据。 SIGKILL
(kill -9
)可能导致数据丢失,仅用于无响应进程。
- 优先使用
- 影响范围:
pkill -u
会终止用户所有进程(包括后台任务),谨慎使用。- 生产环境建议提前通知用户保存工作。
- 登录记录:注销后检查
/var/log/auth.log
或/var/log/secure
确认操作结果。
场景 | 推荐命令 |
---|---|
精准终止终端会话 | pkill -HUP -t [终端名] |
结束特定用户所有进程 | pkill -u [用户名] |
现代Linux发行版 | loginctl terminate-user [用户名] |
强制终止无响应会话 | kill -9 [PID] |
重要提示:操作前务必确认用户会话,误操作可能导致服务中断或数据丢失,对于关键生产服务器,建议通过
screen
或tmux
管理会话,避免直接终止进程。
引用说明基于Linux内核文档(kernel.org)、man
手册(man who
/man pkill
/man loginctl
)及Sysadmin最佳实践整理。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6014.html