linux 下如何查看和踢除正在登陆的其它用户
如何在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是每一个远程连接都会产生的,比如我现在使用ftp客户端连接到主机上,主机就会产生一个pts,事实上上面的192.168.8.235就是我,那两个http就我的连接。
tty和pts详见:http://blog.haohtml.com/archives/11102
要踢出某个用户以及该用户运行的程序(很野蛮),请采用如下方法:
比如:想踢除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
就可以了。
但是小心别把自己给开除了~~
另资料:
先w 看他们在tty? ,然后 ps aux |grep tty? ,然后kill pid
远端应该是pts开头的,kill掉就可以了