在linux系统中用pkill命令踢出在线登录用户
由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍
所以需要有时踢出指定的用户
1/#who 查出当前有那些终端登录(用 w 命令更详细)
# who
root pts/0 2010-10-28 09:36 (192.168.1.236)
root pts/2 2010-10-28 09:40 (192.168.1.27)
root pts/3 2010-10-28 10:02 (192.168.1.82)
root pts/4 2010-10-20 16:06 (192.168.1.244)
2/我想踢出IP为82的登录,其对应的tty为pts/3
# pkill -kill -t pts/3
3/再次查看
# who
root pts/0 2010-10-28 09:36 (192.168.1.236)
root pts/2 2010-10-28 09:40 (192.168.1.27)
root pts/4 2010-10-20 16:06 (192.168.1.244)
已成功踢出
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4 Ways to Identify Who is Logged-In on Your Linux System
如何在linux下查看当前登录的用户,并且踢掉你认为应该踢掉的用户?
请使用who这个命令来查看当前正在登录的用户
[root@localhost http]# who
root tty1 Apr 9 13:17
http pts/0 Apr 16 15:13 (192.168.8.235)
http pts/1 Apr 16 15:13 (192.168.8.235)
注意:可能有朋友马上要叫出来了:“什么?!有3个用户在登录!我被黑了!”,呵呵,开玩笑了~~上面的消息告诉我们:tty是指在任何一
个虚拟控制台登录则产生一个tty,比如你插上显示器登录主机,就会增加一个tty,那pts是什么呢?pts是每一个远程连接都会产生的,比如我现在使
用ftp客户端连接到主机上,主机就会产生一个pts,事实上上面的192.168.8.235就是我,那两个http就我的连接。
要踢出某个用户以及该用户运行的程序(很野蛮),请采用如下方法:
比如:想踢除http这个用户和他的所有开启的程序执行下面命令
pkill -u http
注意:这个命令实际上很危险,要相当小心的执行!!
说他危险的原因是:该用户所有有关的程序都会被关掉,那意味着什么呢?那意味着:如何你使用http这个用户开启的apache服务的 话,apache服务业停掉了,你必须手动开启apache服务!说得更严重点:如果你不小心执行了踢出root的命令,那意味着使用root开启的 ssh服务也停止了,你必须(是的!是必须!)接显示器到服务器上了,或者你必须按一下reset键了~~
那么安全的方法是什么呢?
安全的做法是先查看终端号,然后查看该终端执行的所有进程,根据进程号来停止服务!
示例:
[root@localhost http]# who
root tty1 Apr 9 13:17
http pts/0 Apr 16 15:13 (192.168.8.235)
[root@localhost http]# ps -ef|grep pts/0
http 16627 16595 0 15:13 ? 00:00:00 sshd: http@pts/0
http 16628 16627 0 15:13 pts/0 00:00:00 -bash
root 16680 16628 0 15:13 pts/0 00:00:00 su
root 16681 16680 0 15:13 pts/0 00:00:00 bash
root 18089 16681 0 15:41 pts/0 00:00:00 ps -ef
root 18090 16681 0 15:41 pts/0 00:00:00 grep pts/0
看到了吗?如果你要终止某个进程,看准进程号,执行。比如要敲掉http的bash,看准进程号是16628
kill -9 16628就可以了。
但是小心别把自己给开除了~~