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

But*_*kus -1 linux command-line-interface kill

我试过这个:

pkill -KILL -u root
Run Code Online (Sandbox Code Playgroud)

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

什么是正确的方法?

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

use*_*517 14

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

除非绝对必须,否则最好不要让人们使用 root,常规使用 root 会导致事故(如您所发现的),其中一些事故需要的不仅仅是简单的重启才能修复。

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

不要去杀死 root 用户进程,因为你希望他们注销它可能会很糟糕。

  • **我会说杀死他很安全** - 我会说“我不知道”。请记住,除非您正在做一些需要它的事情,否则您不应该使用 root,所以我不希望有人以 root 身份登录来处理琐碎的事情。我们中的一个人在他们的系统上终止了 SSH 并且需要询问在这里做什么是有原因的,而我们中的另一个人在工作中享受着富有成效的一天,不受此类错误的影响。当然,我们都会犯错误,我自己也做过比这更糟糕的事情,但关键是要从错误中吸取教训,而不是试图为它们辩护。 (6认同)
  • @ButtleButkus:根本不能保证安全。如果他们正在编辑防火墙规则并将它们保存为部分状态,因为它们被叫走,并且有人愚蠢地运行了像“pkill -KILL -u root”这样的命令,这需要重新启动系统,该怎么办。部分防火墙更新很可能会阻止 ssh ......好吧,这同样有可能,甚至更有可能他们只是在编辑一个 php 文件,但你不知道这一点,所以不应该做出假设。 (2认同)

wul*_*lxz 8

您杀死了 root 拥有的每个进程。这意味着,您杀死了几个以 root 作为所有者启动的服务。

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


Suk*_*uku 6

[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
Run Code Online (Sandbox Code Playgroud)

这样你就可以找出pid号。如果你真的想杀死它,就杀死那个pid号。

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