如何安全地踢出以 root 身份登录的其他用户?

如何安全地踢出以 root 身份登录的其他用户?

我尝试过这个:

pkill -KILL -u root

事实证明这不是我想要的。现在我无法通过 SSH 登录。

正确的方法是什么?

编辑 - 我在问题中添加了“安全”一词。我知道你不应该踢出 root 用户,因为他们可能正在做一些重要的事情。但假设该用户是一家大型托管公司的客户服务代理,只要他们登录到您的机器,就会向您收取每分钟约 5 美元的费用。假设您告诉他们问题已解决,他们可以立即注销并停止向您收费,但他们假装没有收到您的电子邮件,因为您的老板已经批准了两个小时的工作,他们想收取 100% 的费用。假设您不是普通的没有灵魂的公司奴隶,您想为老板省点钱。所以无论如何,我把他们踢出去了。我做错了,但没有造成任何伤害,我学到了一些东西,我为老板节省了至少 100 美元。

答案1

踢出使用 root 访问权限的人是一件危险的事情,谁知道他们正在做什么,如果他们突然发现自己断开连接,系统将处于什么状态。

最好不要允许人们使用 root 权限,除非绝对必要,否则常规使用 root 权限会导致(正如您所发现的)发生事故,其中一些事故需要的不仅仅是简单的重启才能解决。

如果您需要以 root 身份登录的用户注销,请与他们交谈并要求他们这样做。如果您没有语音,请尝试使用电话或电子邮件。

不要因为想让 root 用户注销而去终止他们进程,因为这可能会导致糟糕的结果。

答案2

您终止了所有由 root 拥有的进程。这意味着,您终止了以 root 为所有者启动的多个服务。

要踢出以 root 身份登录的用户,您可以终止他的终端会话 (tty/pty)。
查看ps -ef | grep -e 'pts\|tty'并找出您的用户登录的终端,
然后使用类似skill -KILL pts/0

答案3

[root@sgeorge-ld ~]# w | grep root
sgeorge  pts/7    :0.0             23:17    0.00s  0.11s  0.01s ssh root@localh
root     pts/10   sgeorge-ld.linke 23:21    2:22   0.09s  0.09s -bash
root     pts/11   sgeorge-ld.linke 23:21    0.00s  0.15s  0.00s w

[root@sgeorge-ld ~]# ps -ef | grep 'pts/11'
root     17313 17275  0 23:21 ?        00:00:00 sshd: root@pts/11
root     17317 17313  0 23:21 pts/11   00:00:00 -bash
root     17439 17317  1 23:24 pts/11   00:00:00 ps -ef
root     17440 17317  0 23:24 pts/11   00:00:00 grep pts/11

[root@sgeorge-ld ~]# ps -ef | grep 'pts/10'
root     17283 17275  0 23:21 ?        00:00:00 sshd: root@pts/10
root     17286 17283  0 23:21 pts/10   00:00:00 -bash
root     17443 17317  0 23:24 pts/11   00:00:00 grep pts/10

这样你就能找到 pid 号了。如果你真的想杀掉它,就直接杀掉那个 pid 号。

使用tty命令您可以找出当前终端的名称。

相关内容