2015-05-15 14:26:11 u012875880 阅读数 2823

最近,有于业务场景需要,得把服务器上的某些碍事的用户踢掉,呵呵,废话不说了,方法有两种

1.先用w(或者who)查看有谁登陆在服务器上:


2.下面,我们需要把从192.168.56.2机器上登陆的caesar用户踢掉

(1).通过pkill -kill -t pts/6踢掉

(2).先通过ps -ef | grep pts/6命令查找对应的进程号


然后在把进程4266杀掉:kill -9 4266

这时,在w查看下,发现从192.168.56.2机器上登陆的caesar用户已经被踢掉


2018-03-20 16:56:57 qiuyoujie 阅读数 1377

查看机器中登陆的用户

    [root@chengest~]# w

     16:29:02 up 2 days,  2:35,  5 users,  load average: 0.03, 0.05, 0.01

    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

    root     pts/1    :0.0             Tue15    2days  1:44   0.04s -bash

    root     pts/2    :0.0             Tue15   46:42m  0.05s  0.05s bash

    root     pts/3    :0.0             Tue15    2days  0.02s  0.02s bash

    root     pts/4    172.20.52.114    14:17   58:48   0.16s  0.03s sqlplus

    root     pts/5    172.20.52.114    15:31    0.00s  0.03s  0.00s w

    我把pts/1踢掉(只有root才能去踢掉用户)

    [root@chengest ~]# pkill -kill -t pts/1

    [root@chengest ~]# pkill -kill -t pts/2

    [root@chengest ~]# pkill -kill -t pts/3

    查看是不是踢掉

    [root@chengest ~]# w

     16:34:16 up 2 days,  2:40,  2 users,  load average: 0.00, 0.05, 0.02

    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

    root     pts/4    172.20.52.114    14:17    1:04m  0.16s  0.03s sqlplus

    root     pts/5    172.20.52.114    15:31    0.00s  0.03s  0.00s w

    root可以踢掉其他用户包括自己

查看机器中登陆的用户

    [root@chengest~]# w

     16:29:02 up 2 days,  2:35,  5 users,  load average: 0.03, 0.05, 0.01

    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

    root     pts/1    :0.0             Tue15    2days  1:44   0.04s -bash

    root     pts/2    :0.0             Tue15   46:42m  0.05s  0.05s bash

    root     pts/3    :0.0             Tue15    2days  0.02s  0.02s bash

    root     pts/4    172.20.52.114    14:17   58:48   0.16s  0.03s sqlplus

    root     pts/5    172.20.52.114    15:31    0.00s  0.03s  0.00s w

    我把pts/1踢掉(只有root才能去踢掉用户)

    [root@chengest ~]# pkill -kill -t pts/1

    [root@chengest ~]# pkill -kill -t pts/2

    [root@chengest ~]# pkill -kill -t pts/3

    查看是不是踢掉

    [root@chengest ~]# w

     16:34:16 up 2 days,  2:40,  2 users,  load average: 0.00, 0.05, 0.02

    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

    root     pts/4    172.20.52.114    14:17    1:04m  0.16s  0.03s sqlplus

    root     pts/5    172.20.52.114    15:31    0.00s  0.03s  0.00s w

    root可以踢掉其他用户包括自己

2019-02-18 17:36:12 weixin_41010198 阅读数 78


作为系统管理员,经常需要查看服务器的当前使用用户,和用户使用的进程等信息,下面介绍一些命令用于这些操作的查看


一、w命令查看登录用户正在使用的进程信息

命令:w

在这里插入图片描述
任何一个虚拟控制台登录都会产生一个tty, 每一个远程连接都会产生一个pts

  1. 开头信息:
  • users: 表示当前系统登陆用户总数为6。
  • load average: 与后面的数字一起表示系统在过去1,5,10分钟内的负载程度,数值越小,系统负载越轻。
  1. w命令输出的信息显示说明:
  • USER:用户名称
  • TTY:用户的机器名称或tty号
  • FROM:远程主机地址(就是登陆主机的IP地址)
  • LOGIN用户登录系统的时间
  • IDLE:空闲时间(作用不大)
  • JCPU:附加到tty(终端)的进程所用的时间(JCPU时间)join cpu
  • PCPU当前进程所用时间(PCPU时间)process cpu
  • WHAT:用户当前正在使用的命令
  1. w命令的其他选择参数:
  • -h忽略头文件信息
  • -u显示结果的加载时间
  • -s不显示JCPU, PCPU, 登录时间
    示例:
mosheng@server:~/work2$ w
 16:48:38 up 17 days, 23:14,  6 users,  load average: 7.18, 7.70, 8.20
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
mosheng  tty7     :0               31Jan19 17days  3:36m  7.68s /sbin/upstart --user
mosheng  pts/22   192.168.1.55     09:44   16:14   2.90s  2.90s -bash
mosheng  pts/23   192.168.1.55     09:52    6.00s  0.70s  0.00s w
mosheng  pts/29   192.168.1.94     16:13   29:33   0.10s  0.10s -bash
mosheng  pts/24   192.168.1.106    13:43    1:26   0.35s  0.35s -bash
mosheng  pts/28   192.168.1.55     14:26    2:15m  0.22s  0.22s -bash
mosheng@server:~/work2$ w -h
mosheng  tty7     :0               31Jan19 17days  3:36m  7.68s /sbin/upstart --user
mosheng  pts/22   192.168.1.55     09:44   23:08   2.90s  2.90s -bash
mosheng  pts/23   192.168.1.55     09:52    1.00s  0.71s  0.01s w -h
mosheng  pts/29   192.168.1.94     16:13   36:27   0.10s  0.10s -bash
mosheng  pts/24   192.168.1.106    13:43    3:31   0.40s  0.40s -bash
mosheng  pts/28   192.168.1.55     14:26    2:22m  0.22s  0.22s -bash
mosheng@server:~/work2$ w -u
 16:55:41 up 17 days, 23:21,  6 users,  load average: 8.50, 7.58, 7.86
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
mosheng  tty7     :0               31Jan19 17days  3:36m  7.68s /sbin/upstart --user
mosheng  pts/22   192.168.1.55     09:44   23:17   2.90s  2.90s -bash
mosheng  pts/23   192.168.1.55     09:52    2.00s  0.70s  0.00s w -u
mosheng  pts/29   192.168.1.94     16:13   36:36   0.10s  0.10s -bash
mosheng  pts/24   192.168.1.106    13:43    3:40   0.40s  0.40s -bash
mosheng  pts/28   192.168.1.55     14:26    2:22m  0.22s  0.22s -bash
mosheng@server:~/work2$ w -s
 16:55:58 up 17 days, 23:21,  6 users,  load average: 7.73, 7.45, 7.81
USER     TTY      FROM              IDLE WHAT
mosheng  tty7     :0               17days /sbin/upstart --user
mosheng  pts/22   192.168.1.55     23:34  -bash
mosheng  pts/23   192.168.1.55      2.00s w -s
mosheng  pts/29   192.168.1.94     36:53  -bash
mosheng  pts/24   192.168.1.106     3:57  -bash
mosheng  pts/28   192.168.1.55      2:22m -bash

二、who命令查看当前正在登陆的用户

命令:who

列出当前登陆的用户名和登陆用户的设备主机名称或tty号 , 登陆时间,用户登陆机的IP地址

mosheng@server:~/work2$ who
mosheng  tty7         2019-01-31 17:35 (:0)
mosheng  pts/22       2019-02-18 09:44 (192.168.1.55)
mosheng  pts/23       2019-02-18 09:52 (192.168.1.55)
mosheng  pts/29       2019-02-18 16:13 (192.168.1.94)
mosheng  pts/24       2019-02-18 17:02 (192.168.1.106)
mosheng  pts/28       2019-02-18 14:26 (192.168.1.55)
  1. 如果只列出用户名,可以使用一下命令

命令:who | cut -d' ' -f1 | sort | uniq

示例:

mosheng@server:~/work2$ who | cut -d' ' -f1 | sort | uniq
mosheng
  1. whoami只显示自己登陆的用户名

命令:whoami

示例:

mosheng@server:~/work2$ whoami
mosheng
  1. who am i只显示自己登陆的用户名、设备、登陆时间、登陆主机IP地址

命令:who am i

示例:

mosheng@server:~/work2$ who am i
mosheng  pts/23       2019-02-18 09:52 (192.168.1.55)
# 这是我PC的IP地址
  1. logname查看登陆的用户名和whoami效果一样

命令:who | cut -d' ' -f1 | sort | uniq

示例:

mosheng@server:~/work2$ logname
mosheng
  1. users查看当前所有的登录用户名

命令:users

示例:

mosheng@server:~/work2$ users
mosheng mosheng mosheng mosheng mosheng mosheng

三、last查看登陆用户的历史信息

命令:last

last命令可用于显示特定用户登录系统的历史记录。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些信息(所显示的信息)将来源于/var/log/wtmp文件。该命令的输出结果包含以下几列信息:

  • 用户名称
  • tty设备号
  • 历史登录时间日期
  • 登出时间日期
  • 总工作时间

示例:

mosheng@server:~/work2$ last
mosheng  pts/24       192.168.1.106    Mon Feb 18 17:02   still logged in
mosheng  pts/29       192.168.1.94     Mon Feb 18 16:13   still logged in
mosheng  pts/29       192.168.1.106    Mon Feb 18 16:00 - 16:04  (00:04)
mosheng  pts/29       192.168.1.106    Mon Feb 18 15:11 - 15:59  (00:48)
mosheng  pts/28       192.168.1.55     Mon Feb 18 14:26   still logged in
mosheng  pts/24       192.168.1.106    Mon Feb 18 13:43 - 17:02  (03:18)
mosheng  pts/23       192.168.1.55     Mon Feb 18 09:52   still logged in
mosheng  pts/22       192.168.1.55     Mon Feb 18 09:44   still logged in
mosheng  pts/24       192.168.1.106    Sun Feb 17 13:56 - 16:49  (02:53)
mosheng  pts/23       192.168.1.53     Sun Feb 17 13:49 - 14:14  (00:25)
mosheng  pts/22       192.168.1.113    Sun Feb 17 13:48 - 16:21  (02:32)
mosheng  pts/22       192.168.1.106    Fri Feb 15 19:31 - 23:43  (04:11)
mosheng  pts/22       192.168.1.106    Fri Feb 15 18:23 - 19:31  (01:07)
mosheng  pts/29       192.168.1.113    Fri Feb 15 17:42 - 19:25  (01:43)
mosheng  pts/25       192.168.1.53     Fri Feb 15 16:04 - 19:19  (03:15)
mosheng  pts/24       192.168.1.106    Fri Feb 15 15:10 - 17:57  (02:46)


  1. last username查看指定用户的登录历史信息

命令:last username

示例:

mosheng@server:~/work2$ last mosheng
mosheng  pts/24       192.168.1.106    Mon Feb 18 17:02   still logged in
mosheng  pts/29       192.168.1.94     Mon Feb 18 16:13   still logged in
mosheng  pts/29       192.168.1.106    Mon Feb 18 16:00 - 16:04  (00:04)
mosheng  pts/29       192.168.1.106    Mon Feb 18 15:11 - 15:59  (00:48)
mosheng  pts/28       192.168.1.55     Mon Feb 18 14:26   still logged in
mosheng  pts/24       192.168.1.106    Mon Feb 18 13:43 - 17:02  (03:18)
mosheng  pts/23       192.168.1.55     Mon Feb 18 09:52   still logged in
mosheng  pts/22       192.168.1.55     Mon Feb 18 09:44   still logged in
mosheng  pts/24       192.168.1.106    Sun Feb 17 13:56 - 16:49  (02:53)
mosheng  pts/23       192.168.1.53     Sun Feb 17 13:49 - 14:14  (00:25)
mosheng  pts/22       192.168.1.113    Sun Feb 17 13:48 - 16:21  (02:32)
mosheng  pts/22       192.168.1.106    Fri Feb 15 19:31 - 23:43  (04:11)
mosheng  pts/22       192.168.1.106    Fri Feb 15 18:23 - 19:31  (01:07)
  1. 如果只列出用户名,可以使用一下命令

命令:who | cut -d' ' -f1 | sort | uniq

示例:

mosheng@server:~/work2$ who | cut -d' ' -f1 | sort | uniq
mosheng

四、pkill剔除当前的登录用户

命令:pkill -u username

示例:

mosheng@server:~/work2$ pkill -u mohsheng

注意:这个命令实际上很危险,要相当小心的执行 原因参考 http://www.blogguy.cn/
安全的做法是先查看终端号,然后查看该终端执行的所有进程,根据进程号来停止服务
安全剔除用户

ps -ef| grep pts/0

得到用户登录相应的进程号pid后执行.

kill -9 pid

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

2009-11-07 08:03:00 linfengfeiye 阅读数 26761

如何在linux下查看当前登录的用户,并且踢掉你认为应该踢掉的用户?

看了网络中的一些例子.在这里总结一下.主要用到的命令有,w,who,ps,kill,pkill

 

查看当前登录用户:

 

node8:/home # who

root     :0           2009-11-04 16:26

root     pts/0        2009-11-05 13:52 (:0.0)

linfengfeiye pts/1        2009-11-07 06:32 (118.113.209.13)

第一列是用户名,
第二列是连接的终端,tty表示显示器,pts表示远程连接,
第三列是登陆时间,
查看登录用户行为:
node8:/ # w
 07:46:35 up 2 days, 15:35,  6 users,  load average: 0.03, 0.07, 0.02
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
root     :0        Wed16   ?xdm?  35:59   0.26s /opt/gnome/bin/gnome-session
root     pts/0     Thu13   21:12m  0.07s  0.49s gnome-terminal --working-direct
linfengf pts/1     06:32    0.00s  0.49s  0.00s sshd: linfengfeiye [priv] 

users 表示当前系统登陆用户总数为6。

LOAD AVERAGE 与后面的数字一起表示系统在过去1,5,10分钟内的负载程度,数值越小,系统负载越轻。

 

从第二行开始构成一个表格,共有8个栏目,分别显示各个用户正在做的事情及该用户所占用的系统资料。

USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。

TTY:用户登陆所用的终端。

FROM:显示用户在何处登陆系统。

LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。

IDLE:用户空闲时间,从用户上一次任务结束后,开始记时。

JCPU:一终端代号来区分,表示在某段时间内,所有与该终端相关的进程任务所耗费的CPU时间。

PCPU:指WHAT域的任务执行后耗费的CPU时间。

WHAT:表示当前执行的任务

 

当登陆系统用户很多的时候,可以在W后面加上某个用户名,则会查看该用户执行任务的情况
查看linfengfeiye用户执行任务情况
node8:/ # w linfengfeiye
 07:40:45 up 2 days, 15:29,  6 users,  load average: 0.07, 0.08, 0.02
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
linfengf pts/1     06:32    0.00s  0.48s  0.00s sshd: linfengfeiye [priv] 
查看登陆用户历史
node8:/ # last
linfengf pts/1        118.113.209.13   Sat Nov  7 06:32   still logged in   
root     pts/1        118.113.209.13   Sat Nov  7 06:12 - 06:32  (00:20)    
root     pts/4        118.113.209.13   Sat Nov  7 05:15 - 06:11  (00:55)    
root     pts/2        118.113.209.13   Sat Nov  7 04:21 - 06:41  (02:20)    
sc  pts/5        222.211.247.164  Fri Nov  6 22:16 - 22:36  (00:20)    
root     pts/2        222.211.247.164  Fri Nov  6 21:53 - 22:36  (00:42)    
root     pts/4        222.211.247.164  Fri Nov  6 19:59 - 23:08  (03:08)    
sc  pts/8        222.211.247.164  Fri Nov  6 19:57 - 22:16  (02:18)    
root     pts/7        222.211.247.164  Fri Nov  6 19:42 - 22:36  (02:53)    
root     pts/6        222.212.68.214   Fri Nov  6 19:39 - 21:40  (02:00)    
sc  pts/5        222.212.68.214   Fri Nov  6 19:36 - 21:39  (02:03)   
查看sc用户登录历史
node8:/ # last sc
sc  pts/5        222.211.247.164  Fri Nov  6 22:16 - 22:36  (00:20)    
sc  pts/8        222.211.247.164  Fri Nov  6 19:57 - 22:16  (02:18)     
sc  pts/6        118.113.236.146  Fri Nov  6 16:39 - 16:43  (00:03)    
sc pts/4         10.3.2.40        Fri Nov  6 11:30 - 13:42  (02:12)    

想踢除linfengfeiye这个用户和他的所有开启的程序
pkill -u linfengfeiye
注意:这个命令实际上很危险,要相当小心的执行 原因参考 http://www.blogguy.cn/
安全的做法是先查看终端号,然后查看该终端执行的所有进程,根据进程号来停止服务
安全剔除用户
ps -ef| grep pts/0
得到用户登录相应的进程号pid后执行.
kill -9 pid
参考:

 

2019-09-06 16:20:13 u010058695 阅读数 15

Linux是多用户操作系统,支持多用户同时在线,支持对登陆用户的管理:查看与剔除等。

一、查看在线用户命令

命令: w

二、查看登录记录命令 

命令 last

三、剔除在线用户命令

命令:sudo pkill -kill -t usr

四、pkill用法

Usage:

pkill [options] <pattern>
Options:
-<sig>, --signal <sig>    signal to send (either number or name)
-e, --echo                display what is killed
-c, --count               count of matching processes
-f, --full                use full process name to match
-g, --pgroup <id,...>     match listed process group IDs
-G, --group <gid,...>     match real group IDs
-n, --newest              select most recently started
-o, --oldest              select least recently started
-P, --parent <ppid,...>   match only child processes of the given parent
-s, --session <sid,...>   match session IDs
-t, --terminal <tty,...>  match by controlling terminal
-u, --euid <id,...>       match by effective IDs
-U, --uid <id,...>        match by real IDs
-x, --exact               match exactly with the command name
-F, --pidfile <file>      read PIDs from file
-L, --logpidfile          fail if PID file is not locked
--ns <pid>                match the processes that belong to the same
                           namespace as <pid>
--nslist <ns,...>         list which namespaces will be considered for
                           the --ns option.
                           Available namespaces: ipc, mnt, net, pid, user, uts



-h, --help     display this help and exit

-V, --version  output version information and exit

 

没有更多推荐了,返回首页