Как узнать, что кто-то делает плохие вещи под Linux?

Linux

Просмотр поведения пользователей под Linux — это не только задача сетевых администраторов, но и один из основных навыков, которыми должны обладать разработчики. Зачем? Потому что иногда другие коллеги занимаются ресурсоемкими делами, например компиляцией больших программ, что может привести к очень медленной работе сервера, что повлияет на нашу нормальную работу. В это время мы можем использовать метод, описанный в этой статье, чтобы узнать этого коллегу, жестоко избить его, а затем восстановить нормальное использование сервера.

кто я?

"Кто я? Откуда я? Куда я иду?" Три главных вопроса у классиков философии. Точно так же и на работе мы иногда часто переключаемся между учетными записями, а иногда забываем, на какого пользователя переключиться. В это время вам нужно знать, кто в данный момент находится в системе. мы можем использоватьwhoamiсмотреть.

[alvin@VM_0_16_centos ~]$ whoami
alvin

Кто в настоящее время зарегистрирован в системе?

Обычно в компании всего несколько серверов, и программисты обычно работают на этих серверах. мы можем использоватьwhoкоманда, чтобы увидеть, какие пользователи в настоящее время вошли на сервер.

[alvin@VM_0_16_centos ~]$ who
alvin    pts/0        2018-12-09 07:25 (116.199.***.***)
root     pts/1        2018-12-09 11:05 (116.199.***.***)
alvin    pts/2        2018-12-09 11:05 (116.199.***.***)
harry    pts/3        2018-12-09 11:06 (116.199.***.***)
kate     pts/4        2018-12-09 11:08 (116.199.***.***)
alvin    pts/5        2018-12-09 11:53 (116.199.***.***)

В отображаемых результатах первый столбец — это имя пользователя, второй столбец — подключенный терминал, tty — дисплей, pts — удаленное подключение, третий столбец — время входа в систему.

Здесь немного больше информации, но что, если мы просто хотим знать, кто в сети? просто используйтеusersкоманду для просмотра.

[alvin@VM_0_16_centos ~]$ users
alvin alvin alvin harry kate root

Что делают люди, которые входят в систему?

Зная, кто вошел в систему, мы можем дополнительно исследовать, что они делают.wКоманда используется для отображения имен пользователей, вошедших в систему, и того, что они делают. Информация, используемая этой командой, поступает из файла /var/run/utmp.

[alvin@VM_0_16_centos ~]$ w
 16:25:54 up 29 days,  6:05,  6 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
alvin    pts/0    116.199.***.**   07:25    2.00s  0.11s  0.00s w
root     pts/1    116.199.***.**   11:05    5:20m  0.02s  0.02s -bash
alvin    pts/2    116.199.***.**   11:05    5:20m  0.04s  0.05s sshd: alvin [priv]
harry    pts/3    116.199.***.**   11:06    4:33m 18.08s 18.06s watch date
kate     pts/4    116.199.***.**   11:08    4:33m 10.51s 10.48s top
alvin    pts/5    116.199.***.**   11:53    4:32m  0.02s  0.02s -bash

Первая строка на самом деле такая же, какuptimeРезультат команды тот же, но выражен в следующем порядке: текущее время, время работы системы, текущее количество зарегистрированных пользователей в системе и средняя нагрузка.

Начиная со второй строки формируется таблица, всего 8 столбцов, которые соответственно отображают, чем занимается каждый пользователь и какие системные ресурсы он занимает.

USER:显示登陆用户帐号名。用户重复登陆,该帐号也会重复出现。
TTY:用户登陆所用的终端。
FROM:显示用户在何处登陆系统。
LOGIN@:是LOGIN AT的意思,表示登陆进入系统的时间。
IDLE:用户空闲时间,从用户上一次任务结束后,开始记时。
JCPU:一终端代号来区分,表示在某段时间内,所有与该终端相关的进程任务所耗费的CPU时间。
PCPU:指WHAT域的任务执行后耗费的CPU时间。
WHAT:表示当前执行的任务

Если мы хотим видеть только текущее поведение пользователя, мы можем напрямуюwДалее следует это имя пользователя:

[alvin@VM_0_16_centos ~]$ w alvin
 16:34:21 up 29 days,  6:14,  6 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
alvin    pts/0    116.199.***.**   07:25    5.00s  0.12s  0.06s sshd: alvin [priv]
alvin    pts/2    116.199.***.**   11:05    5:28m  0.04s  0.05s sshd: alvin [priv]
alvin    pts/5    116.199.***.**   11:53    4:40m  0.02s  0.02s -bash

Как узнать информацию о пользователях, которые входили в систему в настоящее время и в прошлом?

Некоторые люди хитры и отказываются признаваться в совершении плохих поступков. Однако в Linux информация для входа в систему каждого пользователя записывается, так что ответственность за поиск соответствующего лица основывается.

Последнюю команду можно использовать для отображения истории входа конкретного пользователя в систему. Если параметр не указан, отображается информация об истории всех пользователей. По умолчанию информация (отображаемая информация) будет поступать из файла /var/log/wtmp. Вывод этой команды содержит следующие столбцы информации:

  • имя пользователя

  • номер телетайпа

  • Дата и время входа в историю

  • дата и время выхода

  • общее рабочее время

    [alvin@VM_0_16_centos ~]$ last alvin pts/5 116.199.. Sun Dec 9 11:53 still logged in kate pts/4 116.199.. Sun Dec 9 11:08 still logged in harry pts/3 116.199.. Sun Dec 9 11:06 still logged in alvin pts/2 116.199.. Sun Dec 9 11:05 still logged in root pts/1 116.199.. Sun Dec 9 11:05 still logged in alvin pts/0 116.199.. Sun Dec 9 07:25 still logged in alvin pts/0 116.199.. Sat Dec 8 20:42 - 23:10 (02:28) alvin pts/0 119.33.. Mon Dec 3 20:50 - 23:51 (1+03:01) alvin pts/0 119.33.. Thu Nov 29 20:20 - 22:45 (02:24) alvin pts/0 223.104.. Thu Nov 29 06:46 - 07:00 (00:14) alvin pts/0 223.104.. Wed Nov 28 20:45 - 22:27 (01:42) alvin pts/1 14.25..* Sun Nov 25 19:50 - 21:09 (01:18) alvin pts/0 119.33.*. Sun Nov 25 16:32 - 21:40 (05:07)

Если мы хотим увидеть только историю человека, просто следуйте соответствующему имени пользователя после последнего:

[alvin@VM_0_16_centos ~]$ last alvin
alvin    pts/5        116.199.***.**   Sun Dec  9 11:53   still logged in
alvin    pts/2        116.199.***.**   Sun Dec  9 11:05   still logged in
alvin    pts/0        116.199.***.**   Sun Dec  9 07:25   still logged in
alvin    pts/0        116.199.***.**   Sat Dec  8 20:42 - 23:10  (02:28)
alvin    pts/0        119.33.***.**    Mon Dec  3 20:50 - 23:51 (1+03:01)
alvin    pts/0        119.33.***.**    Thu Nov 29 20:20 - 22:45  (02:24)
alvin    pts/0        223.104.***.**   Thu Nov 29 06:46 - 07:00  (00:14)
alvin    pts/0        223.104.***.**   Wed Nov 28 20:45 - 22:27  (01:42)

пнуть плохого парня

С помощью приведенных выше команд мы можем примерно узнать поведение некоторых пользователей. Если мы хотим пнуть преступника, мы можем использоватьpkill -uЗаказ.

pkill -u alvin

Но эта команда довольно опасна и может привести к перезагрузке системы, поэтому использовать эту команду не рекомендуется. Безопаснее использоватьpkillЗаказ.

[alvin@VM_0_16_centos ~]$ sudo pkill -kill -t pts/3
#harry用户已经被踢除了
[alvin@VM_0_16_centos ~]$ w
 17:04:37 up 29 days,  6:44,  5 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
alvin    pts/0    116.199.102.65   07:25    5.00s  0.12s  0.00s w
root     pts/1    116.199.102.65   11:05    5:59m  0.02s  0.02s -bash
alvin    pts/2    116.199.102.65   11:05    5:59m  0.04s  0.05s sshd: alvin [priv]
kate     pts/4    116.199.102.65   11:08    5:12m 11.94s 11.91s top
alvin    pts/5    116.199.102.65   11:53    5:10m  0.02s  0.02s -bash
> 2020 Избранные компании первого уровня, такие как Alibaba/Tencent Интервью, резюме, продвинутый уровень, электронная книга Публичный аккаунт «**Liangxu Linux**» фоновый ответ «**информация**» для бесплатного доступа
#### Это все настоящая любовь после прочтения, пожалуйста, поставьте большой палец вверх и уходите? Ваши «Три звена» — самая большая мотивация для Лян Сюй продолжать творить!
1\. Подпишитесь на **оригинальную** общедоступную учетную запись «**Liangxu Linux**», чтобы как можно скорее получить последнюю галантерею Linux!
2\.Ответить на фон официальной учетной записи [информация] [интервью] [резюме], чтобы получить интервью, самосовершенствование, резюме и другую информацию избранных производителей первого уровня.
3\. Следите за моим блогом: [lxlinux.net]([http://www.lxlinux.net)](http://www.lxlinux.net%29/)