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 作为所有者启动的服务。
要踢出以 root 身份登录的用户,您可以终止他的终端会话 (tty/pty)。
查看ps -ef | grep -e 'pts\|tty'并找出您的用户登录的终端。
然后使用类似skill -KILL pts/0
[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命令,您可以找到当前终端的名称。
| 归档时间: |
|
| 查看次数: |
20640 次 |
| 最近记录: |