← Назад к вопросам

Какой командой посмотреть список последних входов в систему в Linux?

1.2 Junior🔥 122 комментариев
#Linux и администрирование

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Команды для просмотра последних входов в систему в Linux

В Linux существует несколько ключевых команд и методов для анализа последних входов пользователей в систему, каждый из которых предоставляет информацию в различном формате и с разной степенью детализации. Моя рекомендация — использовать их в сочетании для получения полной картины активности.

Основные команды и их назначение

1. last — классический инструмент для истории входов

Это наиболее часто используемая и прямая команда. Она читает данные из файла /var/log/wtmp, который специально предназначен для записи истории входов и выходов пользователей.

last

Пример вывода (краткий формат):

user1     pts/0        192.168.1.5     Mon Mar 25 10:15 - 11:30  (01:15)
root      tty1                          Mon Mar 25 09:00   still logged in
user2     sshd:        10.0.0.12       Sun Mar 24 22:05 - 23:20  (01:15)

Ключевые параметры last:

  • last -n 10 — покажет только последние 10 записей.
  • last username — отфильтрует историю только для конкретного пользователя (например, last root).
  • last -t YYYYMMDDHHMMSS — покажет записи только до указанной даты и времени.
  • last -R — скроет отображение IP-адреса или хоста (удобно для краткого просмотра).

2. lastb — просмотр неудачных попыток входа

Эта команда анализирует файл /var/log/btmp, который хранит записи о неудачных попытках входа (bad login). Это критически важно для мониторинга безопасности.

lastb

Пример вывода:

unknown   ssh:notty    203.0.113.42    Tue Mar 26 03:15 - 03:15  (00:00)
admin     ssh:notty    192.168.1.100   Tue Mar 26 02:30 - 02:30  (00:00)

Важно: Часто для выполнения lastb требуются права root, а файл /var/log/btmp может быть защищен.

3. lastlog — отчет о последнем входе каждого пользователя

Команда lastlog читает из файла /var/log/lastlog и показывает последнее время входа для каждого пользователя, зарегистрированного в системе, даже если они не активны сейчас.

lastlog

Пример вывода:

Username         Port     From             Latest
root             tty1                       Mon Mar 25 09:00:00 +0300
user1            pts/0    192.168.1.5       Mon Mar 25 10:15:12 +0300
user2            sshd     10.0.0.12         Sun Mar 24 22:05:45 +0300
bin                                        **Never logged in**
  • lastlog -u username — покажет информацию только для указанного пользователя.
  • lastlog -t 7 — покажет пользователей, которые логинились в последние 7 дней.

Альтернативные методы и источники данных

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

4. Анализ системных журналов (syslog, auth.log)

В современных системах (особенно использующих systemd) детальная информация о процессах аутентификации часто пишется в /var/log/auth.log (в Debian/Ubuntu) или /var/log/secure (в RHEL/CentOS).

# Поиск успешных входов через SSH в auth.log
grep "Accepted password" /var/log/auth.log

# Поиск всех сообщений, связанных с входом пользователя 'user1'
grep "user1" /var/log/auth.log | tail -20

5. Использование утилиты who и проверка текущих сессий

Команда who показывает пользователей, которые сейчас находятся в системе. Это моментальный снимок активности.

who

Пример вывода:

user1     pts/0        2024-03-25 10:15 (192.168.1.5)
root      tty1          2024-03-25 09:00

Для просмотра более подробной информации можно использовать:

  • who -u — добавит информацию о времени idle и процессе.
  • w — расширенная версия who, которая также показывает выполняемые команды.

Практические рекомендации для DevOps Engineer

  1. Контекст безопасности: Для задач аудита и безопасности всегда начинайте с комбинации last (успешные входы) и lastb (неудачные попытки). Регулярный мониторинг lastb помогает обнаружить брутфорс-атаки.

  2. Очистка логов: Файлы wtmp и btmp могут быть очищены (например, командой > /var/log/wtmp). Если команда last возвращает пустой вывод, проверьте размер этих файлов. Их очистка — стандартная практика ротации логов, но может затруднить исторический анализ.

  3. Интеграция с мониторингом: В производственных окружениях данные о входах должны собираться в централизованную систему мониторинга (например, ELK Stack, Splunk, Graylog). Для этого можно настроить сбор логов auth.log или использовать скрипты, периодически вызывающие last и отправляющие данные.

  4. Аудит пользователей: Команда lastlog незаменима при инвентаризации пользователей системы, особенно для обнаружения старых или служебных аккаунтов, которые никогда не использовались (например, bin, daemon). Это помогает соблюдать принципы минимального необходимого доступа.

  5. Работа в распределенных системах: В инфраструктуре с множеством серверов используйте агрегаторы логов или выполните команды через Ansible или SaltStack одновременно на всех хостах для получения общей картины.

Пример сбора информации для отчетности:

# Создать краткий отчет о последней активности
{
  echo "=== Последние 10 успешных входов ==="
  last -n 10
  echo ""
  echo "=== Неудачные попытки входа (последние 5) ==="
  lastb -n 5
  echo ""
  echo "=== Пользователи в системе сейчас ==="
  who -u
} > /tmp/login_report.txt

Таким образом, ответ на вопрос не ограничивается одной командой. Эффективный DevOps Engineer должен понимать весь спектр инструментов (last, lastb, lastlog, who, анализ auth.log) и знать, когда и как их применять для мониторинга, безопасности и аудита инфраструктуры.