Как я могу получить список попыток входа в систему с помощью журналаctctl?

Согласно journalctl документам, journalctl рекомендуется для просмотра журналов, а не дерева файлов /var/log/* .

Хотя man 1 journalctl описывает, как использовать его, я до сих пор не знаю, какие аргументы он должен дать мне список вещей, которые я хочу. Например, я хочу просмотреть список пользовательских логинов. Я знаю, что sshd обрабатывает логины ssh , но как насчет локальных логинов и общей аутентификации пользователей?

Вот что я пробовал:

 #shows all logs. huge journalctl #limit history and search for "login" journalctl --since "yesterday" | grep login #a week ago rather than just a day journalctl --since `date +"%Y-%m-%d" --date "last week"` | grep login ... systemd-logind[678]: New session 81 of user jozxyqk. 

Это, по-видимому, дает некоторые указания, но, безусловно, не самый надежный метод. Каков правильный путь?

  • Как проверить систему system.journal из другой системы
  • Как точно определить, почему Systemd входит в аварийный режим
  • Как получить журнал загрузки ядра с помощью журналаctctl?
  • Сохранять сообщения из предыдущих загрузок при одновременном сохранении выходных данных журнала
  • Как просмотреть журнал stderr только с помощью журналаctl?
  • Как сообщить журналисту перечитать его конфигурацию?
  • Как исправить атрибут устройства последних строк журнала systemd перед выходом?
  • Tomcat 7 не производит выход журналов для каталинии. На RHEL7
  • 2 Solutions collect form web for “Как я могу получить список попыток входа в систему с помощью журналаctctl?”

    Бег:

     journalctl -q _AUDIT_TYPE=1112 _TRANSPORT=audit 

    Объяснение:

    Предполагая, что у вас работает подсистема аудита (и если вы ее не отключили), это лучший способ получить такую ​​информацию, потому что, помимо прочего, если вы используете _TRANSPORT=audit , сообщения не могут быть подделаны, как те, которые традиционный сокет syslog. Чтобы просмотреть все сообщения, отправленные через этот транспорт, используйте journalctl -q _TRANSPORT=audit . (-q не раздражает -- Reboot -- линии).

    Чтобы увидеть их в подробной форме, выполните journalctl -q _TRANSPORT=audit -o verbose . На самом деле, я предлагаю остановиться и сделать это прямо сейчас, когда вы следуете, потому что следующее, что мы хотим сделать, это отфильтровать одно из полей, которые мы видим там. Вот запись из моей системы:

     _BOOT_ID=[redacted] _MACHINE_ID=[redacted] _HOSTNAME=[redacted] _UID=0 _TRANSPORT=audit SYSLOG_FACILITY=4 SYSLOG_IDENTIFIER=audit AUDIT_FIELD_HOSTNAME=? AUDIT_FIELD_ADDR=? AUDIT_FIELD_RES=success _AUDIT_LOGINUID=18281 _AUDIT_TYPE=1112 AUDIT_FIELD_OP=login AUDIT_FIELD_ID=18281 _PID=5398 _SELINUX_CONTEXT=system_u:system_r:local_login_t:s0-s0:c0.c1023 AUDIT_FIELD_EXE=/usr/bin/login AUDIT_FIELD_TERMINAL=tty6 _AUDIT_SESSION=541 _SOURCE_REALTIME_TIMESTAMP=1480529473269000 _AUDIT_ID=7444 MESSAGE=USER_LOGIN pid=5398 uid=0 auid=18281 ses=541 subj=system_u:system_r:local_login_t:s0-s0:c0.c1023 msg='op=login id=18281 exe="/usr/bin/login" hostname=? addr=? terminal=tty6 res=success' 

    MESSAGE внизу – это неструктурированная запись журнала, которая в основном такова, что вы видите в не-многословном выпуске в стиле syslog. Мы могли бы grep для MESSAGE=USER_LOGIN (и делать это прямо сейчас), но журнал позволяет нам делать более классные вещи, поэтому давайте продолжим.

    Каждый тип сообщения аудита имеет ассоциированный _AUDIT_TYPE (представьте, что!). По какой-то причине это не помогает с помощью преобразования текста в структурированный вывод, но 1112 соответствует USER_LOGIN . Я подтвердил это, проверив libaudit.h , который имеет (с некоторыми контекстными строками):

     #define AUDIT_USER_CHAUTHTOK 1108 /* User acct password or pin changed */ #define AUDIT_USER_ERR 1109 /* User acct state error */ #define AUDIT_CRED_REFR 1110 /* User credential refreshed */ #define AUDIT_USYS_CONFIG 1111 /* User space system config change */ #define AUDIT_USER_LOGIN 1112 /* User has logged in */ #define AUDIT_USER_LOGOUT 1113 /* User has logged out */ #define AUDIT_ADD_USER 1114 /* User account added */ #define AUDIT_DEL_USER 1115 /* User account deleted */ 

    поэтому, journalctl -q _AUDIT_TYPE=1112 _TRANSPORT=audit – это то, что вам нужно. Он получает входные данные ssh, terminal и GUI и записывает успех и сбой. Обратите внимание, что он не улавливает такие вещи, как sudo или su – для них есть разные записи аудита.

    Даже «короткая» версия вывода является многословной, поэтому вы можете использовать -o json и создать короткий скрипт для синтаксического анализа вывода в симпатичном формате.

    Вы хотите логинов или попыток входа в систему?

    Это показывает логины, но не попытки (например, сегодня) и работает в Fedora 22:

     $ journalctl -u 'systemd-logind' --since "today" --until "tomorrow" 

    Вот пример вывода: -- Logs begin at Mon 2014-09-01 03:10:03 BST, end at Fri 2015-11-20 09:55:02 GMT. -- Nov 20 08:47:15 meow systemd[1]: Starting Login Service... Nov 20 08:47:15 meow systemd-logind[699]: New seat seat0. Nov 20 08:47:15 meow systemd-logind[699]: Watching system buttons on /dev/input/event2 (Power Button) Nov 20 08:47:15 meow systemd-logind[699]: Watching system buttons on /dev/input/event0 (Power Button) Nov 20 08:47:15 meow systemd-logind[699]: Watching system buttons on /dev/input/event1 (Lid Switch) Nov 20 08:47:15 meow systemd[1]: Started Login Service. Nov 20 08:47:37 meow systemd-logind[699]: New session c1 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: New session c2 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c1. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c2. Nov 20 08:47:46 meow systemd-logind[699]: New session c3 of user gdm. Nov 20 08:51:22 meow systemd-logind[699]: New session 1 of user david1. -- Logs begin at Mon 2014-09-01 03:10:03 BST, end at Fri 2015-11-20 09:55:02 GMT. -- Nov 20 08:47:15 meow systemd[1]: Starting Login Service... Nov 20 08:47:15 meow systemd-logind[699]: New seat seat0. Nov 20 08:47:15 meow systemd-logind[699]: Watching system buttons on /dev/input/event2 (Power Button) Nov 20 08:47:15 meow systemd-logind[699]: Watching system buttons on /dev/input/event0 (Power Button) Nov 20 08:47:15 meow systemd-logind[699]: Watching system buttons on /dev/input/event1 (Lid Switch) Nov 20 08:47:15 meow systemd[1]: Started Login Service. Nov 20 08:47:37 meow systemd-logind[699]: New session c1 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: New session c2 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c1. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c2. Nov 20 08:47:46 meow systemd-logind[699]: New session c3 of user gdm. Nov 20 08:51:22 meow systemd-logind[699]: New session 1 of user david1.

    Он загроможден другой информацией, такой как кнопки крышки и питания, поэтому вы можете более точно использовать grep для session : $ journalctl -u 'systemd-logind' --since "today" --until "tomorrow" | grep session Nov 20 08:47:37 meow systemd-logind[699]: New session c1 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: New session c2 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c1. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c2. Nov 20 08:47:46 meow systemd-logind[699]: New session c3 of user gdm. Nov 20 08:51:22 meow systemd-logind[699]: New session 1 of user david1. $ journalctl -u 'systemd-logind' --since "today" --until "tomorrow" | grep session Nov 20 08:47:37 meow systemd-logind[699]: New session c1 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: New session c2 of user gdm. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c1. Nov 20 08:47:46 meow systemd-logind[699]: Removed session c2. Nov 20 08:47:46 meow systemd-logind[699]: New session c3 of user gdm. Nov 20 08:51:22 meow systemd-logind[699]: New session 1 of user david1.

    Interesting Posts

    Поиск только одного слова в Unix

    Geany: открыть новый экземпляр для каждой рабочей области при открытии файла в этой рабочей области

    Поместить текст в буфер командной строки bash

    Как настроить устройство обратной связи видео4linux

    Как ограничить соединения aria2 с одним сервером, но разрешить одновременные подключения к нескольким серверам?

    Проблема с диспетчером пакетов opkg в встроенном потоке Angstrom на процессоре Colibri ARM v7

    Печать сообщений электронной почты от mutt – как избежать разрыва строки?

    Как сообщить systemd запустить sshd позже в последовательности загрузки?

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

    Измельчение внешнего жесткого диска

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

    SSH-туннель для VNC в системе Windows 7. Ошибка: открытие туннельного устройства

    Может ли один ping сетевой адаптер MAC

    Использование уведомления-отправки с помощью cron

    Существуют ли стандартные версии `sed`, на которых` -E` не поддерживается?

    Linux и Unix - лучшая ОС в мире.