table of contents
| AUSEARCH(8) | Утилиты системного администрирования | AUSEARCH(8) |
НАИМЕНОВАНИЕ¶
ausearch - инструмент поиска по журналу аудита
СИНОПСИС¶
ausearch [опции]
ОПИСАНИЕ¶
Программа ausearch является инструментом поиска по журналу аудита. ausearch может также принимать данные со стандартного ввода (stdin) до тех пор, пока на входе будут необработанные данные журналов. Все условия, указанные в опциях, объединяются логическим И (and). К примеру, при указании -m and -ui в качестве опций будут показаны события, соответствующие заданному типу и идентификатору пользователя. Исключением являются опции -m и -n (в строке поиска допускается указание несколько типов записей и названий узлов, которые будут возвращать любой соответствующий узел и запись).
Следует также отметить, что каждый переход из пользовательского пространства в пространство ядра и обратно имеет уникальный идентификатор события. Все отслеживаемые события, возникающие во время этого перехода, имеют этот идентификатор, что позволяет их сопоставлять.
Различные части ядра могут добавлять дополнительные записи. Например, в событие аудита для системного вызова "open" добавляется запись PATH с названием файла. Утилита ausearch показывает все записи события вместе. Это означает, что при запросе определенных записей результат может содержать записи SYSCALL.
Также помните, что не все типы записей содержат указанную информацию. Например, запись PATH не содержит названия хоста или идентификатор входа пользователя uid.
ОПЦИИ¶
- -a, --event audit-event-id
- Искать события с заданным идентификатором события event ID. В сообщении msg=audit(1116360555.329:2401771), идентификатор события - число после ':'. Все события аудита, связанные с одним системным вызовом имеют одинаковый идентификатор ID. Второй системный вызов, сделанный тем же приложением, будет иметь другой идентификатор события.
- --arch CPU
- Искать события на основе определенной архитектуры процессора. В случае если архитектура машины неизвестна, однако необходимо использовать таблицу 32-х битных системных вызовов, а машина поддерживает 32 бита, то можно использовать b32. Аналогичным образом применяется таблица системных вызовов b64. Для определения архитектуры необходимо использовать команду "uname -m".
- -c, --comm comm-name
- Поиск события по заданным значениям comm-name. Название связи "comm name" — это название исполняемой структурной задачи.
- --debug
- Выводить на стандартный вывод ошибок stderr неправильно сформированные события, которые были пропущены.
- --checkpoint checkpoint-file
- Создать
контрольную
точку на
выходе
между
последовательными
вызовами
утилиты ausearch,
при
которых в
последующих
вызовах
будут
выводиться
только те
события,
которые не
были
выведены
ранее.
Событие демона auditd состоит из одной или нескольких записей. При обработке событий утилита ausearch определяет, является ли событие завершенным или незавершенным. Завершенным считается событие, состоящее из одной записи или произошедшее 2 секунды назад по сравнению с обрабатываемым в данный момент событием.
Контрольная точка обеспечивается путем записи последнего завершенного события вывода вместе с номером устройства и индексным дескриптором файла последнего завершившегося события в файле "контрольной точки" checkpoint-file. При следующем вызове утилита ausearch загрузит данные контрольной точки и при обработке файлов журнала и будет отбрасывать все завершенные события, пока они не станут соответствовать контрольной точке, с этого момента утилита ausearch начнет выводить события.
Если файл или последнее событие контрольной точки не будут найдены, то произойдет ошибка и утилита ausearch прекратит работу. Подробнее смотрите СТАТУС ВЫХОДА.
- --eoe-timeout seconds
- Установить время ожидания до завершения анализа события. Подробнее смотрите end_of_event_timeout на странице руководства auditd.conf(5) . Примечание. Установка этого значения переопределит любое установленное значение в файле /etc/auditd/auditd.conf.
- -e, --exit exit-code-or-errno
- Поиск события на основе заданного системного вызова exit code or errno.
- --escape option
- Эта опция определяет, будут ли экранированы выходные данные, чтобы сделать их более безопасными для определенных целей. Доступны следующие значения: raw , tty , shell и shell_quote. Каждый последующий режим включает в себя символы предыдущего режима и добавляет новые. То есть shell включает в себя все символы, экранированные tty и добавляет новые. По умолчанию используется tty.
- --extra-keys
- Если в режиме format указано csv, то эта опция добавит последний столбец с ключевой информацией, если она есть для данного события. Это касается только записей SYSCALL, которые были созданы в результате срабатывания правила аудита, определяющего ключ.
- --extra-labels
- Если в режиме format указано значение csv, то эта опция добавит столбцы с информацией о метках субъектов и объектов, если они есть.
- --extra-obj2
- Если режим format имеет значение csv, то эта опция добавляет столбцы с информацией о втором объекте, если он существует. Второй объект редко является частью записи. Например, когда файл переименовывается или когда устройство подключается к определенному пути.
- --extra-time
- Если в режиме format выбрано значение csv, то эта опция добавит столбцы с информацией о разбивке по времени, что упростит выборку.
- -f, --file file-name
- Поиск события по заданному названию файла filename. Аргумент будет соответствовать обычным файлам, а также сокетам af_unix.
- --format опция
- События, соответствующие критериям поиска, форматируются с использованием этой опции. Поддерживаются следующие форматы: raw, default, interpret, csv и text. Опция raw описана в подразделе, посвященном опции командной строки --raw. Опция default используется, если не указаны опции форматирования. Она включает одну строку в качестве визуального разделителя, в которой указывается отметка времени, а затем следуют записи о событии. Опция interpret описана в подразделе, посвященном опции командной строки -i. Опция csv выводит результаты поиска в нормализованном виде в формате CSV (значения, разделенные запятыми), удобном для импорта в аналитические программы. Опция text преобразует событие в английское предложение, которое легче понять, чем другие варианты, но при этом теряется часть подробностей. В большинстве случаев это допустимо, поскольку в исходном событии сохраняется вся необходимая информация.
- -ga, --gid-all all-group-id
- Искать события с заданным эффективным или обычным идентификатором группы.
- -ge, --gid-effective effective-group-id
- Искать события с заданным "эффективным идентификатором группы" effective group ID или названием группы.
- -gi, --gid group-id
- Искать события с заданным "идентификатором группы" group ID или названием группы.
- -h, --help
- Справка
- -hn, --host host-name
- Поиск события с заданным названием хоста host name. Название хоста может быть представлено в виде названия хоста, полного доменного именования или числового сетевого адреса. Попытки преобразовать числовые адреса в доменные именования или псевдонимы не предпринимаются. Этот поиск обычно связан с полем addr или host в событиях аудита. Также смотрите команду --node, которая выполняет поиск по полю node.
- -i, --interpret
- Преобразует числовые значения в текст. Например, uid преобразуется в название учетной записи. Если журналы аудита не дополнены данными, преобразование выполняется с использованием текущих ресурсов компьютера, на котором выполняется поиск. Если вы переименовали учетные записи или на вашем компьютере нет таких же учетных записей, то результаты могут быть некорректными. Если журналы дополнены данными, для преобразования используются дополнительные данные. Это позволяет получать точные отчеты по журналам, даже если они создаются на другом компьютере.
- -if, --input file-name | directory
- Использовать указанный файл file или каталог directory вместо журналов аудита. Это может быть полезно при анализе журналов с другой машины или при анализе частично сохраненных журналов.
- --input-logs
- Использовать местоположение файла журнала из auditd.conf как исходные данные для поиска. Применяется при использовании утилиты ausearch из задания cron.
- --just-one
- Остановиться после выдачи первого события, соответствующего критериям поиска.
- -k, --key key-string
- Искать события с заданной "ключевой строкой" key string.
- -l, --line-buffered
- Очищать вывод в каждой строке. Наиболее полезно, когда стандартный вывод stdout подключен к каналу, а стратегия блочной буферизации по умолчанию нежелательна. Может снизить производительность.
- -m, --message message-type | comma-sep-message-type-list
- Найти событие, соответствующее заданному типу сообщения message type. (Типы сообщений также называют типами записей.) Вы также можете ввести список типов сообщений, разделенных запятыми или несколько отдельных типов сообщений, каждый из которых имеет свою собственную опцию -m. Существует тип сообщения ALL, которого нет в реальных журналах. Позволяет получить все сообщения в системе. Список допустимых типов сообщений обширен. Программа отобразит список, если с этим параметром не указан тип сообщения. Тип сообщения может быть текстовым или числовым. Если вы вводите список, разделяйте его только запятыми, без пробелов.
- -n, --node node-name
- Поиск событий, произошедших на определенном компьютере. Допускается использование нескольких узлов, и если хотя бы один из них совпадает, событие считается найденным. При таком поиске используется поле node в событиях аудита. Также обратите внимание на команду --host, которая ищет события, связанные с информацией о хосте по "следу" аудита.
- -o, --object SE-Linux-context-string
- Поиск события с помощью tcontext (объект), соответствующим строке.
- -p, --pid process-id
- Искать события с заданным "идентификатором процесса" process ID.
- -pp, --ppid parent-process-id
- Искать события с заданным "идентификатором родительского процесса" parent process ID.
- -r, --raw
- Вывод полностью не форматируется. Это удобно для извлечения записей в файл, который можно будет использовать в инструментах аудита, или для передачи данных в другие инструменты аудита.
- -sc, --syscall syscall-name-or-value
- Найти событие, соответствующее заданному системному вызову syscall. Вы можете указать либо числовое значение системного вызова, либо его название. Если вы укажете название системного вызова, то будет использована таблица системных вызовов для вашего компьютера.
- -se, --context SE-Linux-context-string
- Поиск событий, в которых scontext/subject или tcontext/object соответствуют заданной строке.
- --session Login-Session-ID
- Поиск событий, соответствующих заданному идентификатору сеанса входа. Этот атрибут процесса устанавливается при входе пользователя в систему и позволяет связать любой процесс с конкретным входом пользователя.
- -su, --subject SE-Linux-context-string
- Поиск события с scontext (субъектом), совпадающим со строкой.
- -sv, --success success-value
- Найти событие, соответствующее заданному значению success value. Допустимые значения: yes и no.
- -te, --end [end-date] [end-time]
- Поиск
событий с
отметками
времени,
равными
или
предшествующими
заданному
времени
окончания.
Формат
времени
окончания
зависит от
вашей
локали. Вы
можете
узнать
формат
своей
локали,
выполнив date
'+%x'. Если
дата не
указана, то
предполагается,
что это today.
Если время
не указано,
предполагается,
что это now.
Для
указания
времени
используйте
24-часовой
формат, а
не AM (до полу
суток) или PM
(после полу
суток).
Пример
даты для
локали en_US.utf8: 09/03/2009.
Пример
времени: 18:00:00.
Формат
даты
зависит от
переменной
окружения
LC_TIME.
Вы также можете использовать следующие слова: now, recent, this-hour, boot, today, yesterday, this-week, week-ago, this-month или this-year. Now - означает «начинается сейчас». Recent - было 10 минут назад. Boot - означает время суток с точностью до секунды на момент последней загрузки системы. Today - означает сейчас. Yesterday - наступает через 1 секунду после полуночи предыдущего дня. This-week означает начало отсчета с 1 секунды после полуночи в нулевой день недели, определяемый вашей локалью (смотрите localtime). Week-ago - означает 1 секунду после полуночи ровно 7 суток назад. This-month - означает 1 секунду после полуночи 1-го числа месяца. This-year - означает 1 секунду после полуночи в первые сутки первого месяца.
- -ts, --start [start-date] [start-time]
- Поиск
событий с
отметками
времени,
равными
или более
поздними,
чем
указанное
время
начала.
Формат
времени
начала
зависит от
локали. Вы
можете
узнать
формат
своей
локали,
выполнив
команду date
'+%x'. Если
дата не
указана,
предполагается,
что это today -
сегодняшний
день. Если
время не
указано,
предполагается,
что это midnight -
полночь.
Для
указания
времени
используйте
24-часовой
формат, а
не AM или PM.
Пример
даты для
локали en_US.utf8: 09/03/2009.
Пример
времени: 18:00:00.
На
принимаемый
формат
даты
влияет
переменная
окружения
LC_TIME.
Вы также можете использовать следующие слова: now, recent, this-hour, boot, today, yesterday, this-week, week-ago, this-month, this-year или checkpoint. Boot - означает время суток с точностью до секунды на момент последней загрузки системы. Today - означает начиная с 1 секунды после полуночи. Recent - это было 10 минут назад. Yesterday - наступает через 1 секунду после полуночи предыдущего дня. This-week - означает начало отсчета с 1 секунды после полуночи в нулевой день недели, определяемый вашей локалью (смотрите localtime). Week-ago - означает, что ровно 7 дней назад, начиная с 1 секунды после полуночи. This-month -означает 1 секунду после полуночи 1-го числа месяца. This-year - означает 1 секунду после полуночи в первый день первого месяца.
Контрольная точка checkpoint означает, что утилита ausearch будет использовать временную метку из достоверного файла контрольной точки, игнорируя записанные данные об индексном дескрипторе, устройстве, серийном номере, узле и типе события, также содержащиеся в файле контрольной точки. По сути, это действие по восстановлению, которое выполняется в случае, если вызов ausearch с опцией контрольной точки завершается с кодом выхода 10, 11 или 12. Это можно использовать в сценарии оболочки, например так:
ausearch --checkpoint /etc/audit/auditd_checkpoint.txt -i _au_status=$? if test ${_au_status} -eq 10 -o ${_au_status} -eq 11 -o ${_au_status} -eq 12 then
ausearch --checkpoint /etc/audit/auditd_checkpoint.txt --start checkpoint -i fi
- -tm, --terminal terminal
- Поиск события, соответствующего заданному значению terminal. Некоторые демоны (такие, как cron и atd) используют именование демона как именование терминала.
- -ua, --uid-all all-user-id
- Найти событие с идентификатором пользователя ID, эффективным идентификатором пользователя ID или идентификатором пользователя при входе (auid), соответствующим данному user ID.
- -ue, --uid-effective effective-user-id
- Искать события с данным эффективным идентификатором пользователя effective user ID.
- -ui, --uid user-id
- Искать события с данным user ID.
- -ul, --loginuid login-id
- Поиск события с данным входным идентификатором пользователя login user ID. Все программы, запускаемые из точки входа и использующие PAM, должны быть настроены с параметром pam_loginuid, необходимым для корректного поиска по входному идентификатору пользователя (auid).
- -uu, --uuid guest-uuid
- Искать события с данным идентификатором гостя guest UUID.
- -v, --version
- Показать версию и выйти
- -vm, --vm-name guest-name
- Искать события с данным именованием гостя guest name.
- -w, --word
- Совпадения по строкам должны охватывать все слово целиком. К этой категории совпадений относятся: именование файла, именование хоста, терминала, ключи и контекст SE Linux.
- -x, --executable executable
- Найдите событие, соответствующее данному именованию исполняемого файла executable.
КОД ЗАВЕРШЕНИЯ¶
- 0
- все хорошо,
- 1
- если ничего не найдено, либо возникли ошибки аргументации или незначительные ошибки доступа к чтению файлу,
- 10
- в файле контрольной точки найдены неверные данные,
- 11
- ошибка обработки контрольной точки
- 12
- событие контрольной точки не найдено в соответствующем файле журнала
ПРИМЕЧАНИЕ¶
Опция "время загрузки" boot time — это вспомогательная функция, которая имеет свои ограничения. Время, которое она вычисляет, основано на текущем времени за вычетом /proc/uptime. Если после загрузки системные часы были скорректированы, например с помощью программы ntp, то расчет может быть неверным. В этом случае вам нужно будет указать время полностью. Вы можете проверить, какое время будет использоваться, выполнив команду:
date -d "`cut -f1 -d. /proc/uptime` seconds ago"
ПРИМЕРЫ¶
Поиск конкретного пользователя: # ausearch --start today --loginuid john -i Проверить сегодня журнал SELinux на наличие отказов # ausearch --start today -m avc -i Вывести любой недавний журнал SELinux # ausearch -m avc,user_avc,selinux_err,user_selinux_err -i -ts recent Выводить журналы в текстовом формате # ausearch --start today --format text Вывод событий TTY, интерпретированных и экранированных оболочкой # ausearch --start today -m TTY -i --escape shell_quote
СМОТРИТЕ ТАКЖЕ¶
ПЕРЕВОД¶
Русский перевод этой страницы руководства разработал(и) Николай Шафоростов <shafff@ukr.net>, Елена Мишина <lepata@altlinux.org> и Aleksandr Felda <afelda@ro.ru>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
| март 2026 г. | Red Hat |