Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Кто сейчас на сервере Linux: команды w, who и last для просмотра сессий

Обновлено: 27.08.2026 · Официальная документация ↗

Зачем администратору контролировать активных пользователей

Безопасность Linux-сервера требует постоянного аудита: необходимо четко понимать, кто из коллег прямо сейчас работает в системе, с каких IP-адресов выполнен вход и какие консольные команды они запускают. В случае взлома или подозрительной активности утилиты мониторинга терминальных сессий позволяют мгновенно выявить несанкционированное вторжение.

Сравнение утилит аудита сессий

КомандаЧто показываетГлавное преимущество
whoСписок пользователей, терминал и время входаКраткая сводка без лишних деталей.
wПользователи + какую команду выполняет прямо сейчасМаксимальная информативность (load average, uptime, command).
lastИстория всех входов за последние дни/неделиПоказывает сессии, которые уже завершились, и перезагрузки сервера.

Пошаговый аудит пользователей и управление активными сессиями

Шаг 1: Просмотр работающих пользователей и их действий (команда w)

Введите самую информативную команду:

w

Разбор основных колонок вывода:

  • USER — логин учетной записи (например, ubuntu, root).
  • TTY — номер псевдотерминала (например, pts/0).
  • FROM — внешний IP-адрес, с которого подключился человек.
  • WHAT — программа или скрипт, запущенный пользователем прямо в эту секунду (например, nano /etc/hosts или top).

Шаг 2: Краткий список пользователей (команда who)

who -u

Флаг -u дополнительно выведет системный PID процесса SSH-сессии каждого пользователя.

Шаг 3: Проверка истории предыдущих входов (команда last)

Посмотрим последние 10 успешных входов на сервер:

last -n 10

Чтобы отследить подозрительные попытки подбора паролей и неудачные входы, выполните:

sudo lastb -n 10

Шаг 4: Как принудительно отключить (выкинуть) чужую SSH-сессию

Если вы увидели подозрительного пользователя на терминале pts/2, найдите его PID и завершите сессию:

 Найдем PID процесса, привязанного к терминалу pts/2:
ps -ft pts/2

 Завершим этот процесс:
sudo kill -9 PID_процесса

Типовые ошибки администраторов

  • Игнорирование файла lastlog: Хакеры иногда зачищают файл истории /var/log/wtmp, но забывают про lastlog. Проверяйте дату последнего входа для каждого пользователя командой lastlog.
  • Отключение собственной сессии: Перед завершением процесса через kill убедитесь по выводу команды w, на каком именно pts/X находитесь вы сами (ваша сессия обычно помечена временем простоя 0.00s в графе IDLE).
Подозреваете компрометацию учетных записей или несанкционированный доступ к серверам?
Эксперты ITSTM проведут комплексный криминалистический аудит безопасности (Forensics), заблокируют точки проникновения и настроят оповещения о входе админов в Telegram.
💡 Практика специалистов: Чтобы администраторы не забывали открытые сессии на серверах с правами root, настройте автоматическое отключение неактивных SSH-сессий: добавьте параметр 'TMOUT=300' (таймаут 5 минут) в файл /etc/profile.

Частые вопросы (FAQ)

Что означает запись 'pts/0' в выводе команды who?

pts (Pseudo Terminal Slave) — это виртуальный терминал, создаваемый при сетевом подключении по протоколу SSH. Запись 'tty1' означает прямой вход через физическую клавиатуру и монитор сервера.

Где физически хранятся журналы входов last и lastb?

Успешные сессии пишутся в бинарный файл /var/log/wtmp, а неудачные попытки взлома — в /var/log/btmp. Их нельзя прочитать обычным текстовым редактором, только утилитами last/lastb.

Как отправить текстовое предупреждение конкретному пользователю в его терминал?

Используйте системную команду write: write username pts/1, напишите текст и нажмите Ctrl+D для отправки.

Как отправить сообщение сразу всем подключенным к серверу пользователям?

Используйте команду широковещательного оповещения wall: echo "Внимание! Сервер перезагрузится через 5 минут!" | wall

Полезные материалы
Рекомендуем