Настройка исключений программ для Linux-агента¶
Настройка исключений для Linux-агента отличается от Windows. Фактически она управляет внедрением модуля мониторинга (preloader) в процессы и только частично исключает программу из мониторинга.
Preloader — это модуль мониторинга, который внедряется в процессы программ для мониторинга определенных действий.
Некоторые приложения (например, антивирусы) могут работать нестабильно, если в их процесс внедрен preloader. Исключения указывают Staffcop не внедрять preloader в процессы. Программа работает стабильно, а базовый мониторинг сохраняется.
Агент использует несколько механизмов сбора данных, preloader отслеживает только малую часть из них:
файловые операции, кроме копирования;
контроль печати;
доступ к USB;
черный список доступа к вебу;
перехват терминалов TTY;
контроль ВНИ.
Остальные механизмы мониторинга работают независимо от внедрения preloader. Система по‑прежнему фиксирует события: скриншоты экрана, нажатия клавиш, сетевой трафик и пр.
Формат правила¶
Примечание
Для Linux-агента используется только черный список. Вводите правило исключения только в поле Исключить. Поле Разрешить не используется.
<app>[ <cmdline>][ ...]
Элемент |
Описание |
|---|---|
|
Канонизированный путь исполняемого файла (можно использовать астериск |
|
Маска для командной строки (необязательно). |
|
Три точки в конце правила. |
Как получить значение <app>¶
Есть два способа добавить приложение в исключения для агентов Linux:
канонизированный путь — используйте для исключения конкретного исполняемого файла;
имя GUI-приложения:
из интерфейса Staffcop — для исключения всех экземпляров приложения;
из WM_CLASS — для разных экземпляров, когда бинарные пути отличаются на разных дистрибутивах или несколько приложений имеют одинаковое имя;
из логов агента — универсальный способ для любых процессов, в которые внедряется preloader.
Если из логов исчез связанный с внедрением preloader процесс, исключение сработало — см. как проверить в разделе Лог агента.
Внимание
Все способы требуют анализа поведения процессов и формата логов агента. Создание правила — задача экспертного уровня. Если вы не уверены в корректности правила, обратитесь в техническую поддержку.
Канонизированный путь¶
Канонизированный путь — это полный адрес исполняемого файла в файловой системе без учета символических ссылок. Он указывает на реальный файл, который запущен в системе.
Используется для исключения конкретных версий и дистрибутивов приложений из мониторинга.
Чтобы узнать путь:
Запустите приложение и выполните команду:
realpath /proc/$(pgrep -n <имя_процесса>)/exeПример для Firefox:
realpath /proc/$(pgrep -n firefox)/exe
В результате будет выведен полный путь к исполняемому файлу, например:
/snap/firefox/3836/usr/lib/firefox/firefoxВнимание
Если определить путь не удается или возникли другие вопросы, обратитесь в техническую поддержку.
Добавьте полученный путь в поле Исключить.
Для применения исключений убедитесь, что агент получил обновленную конфигурацию, и перезапустите компьютер.
Исключение сработает только для приложений, которые откроет пользователь после применения исключений к агентам.
Примечание
Исключение всегда должно начинаться со слэша /. Даже если маска начинается со звездочки, она не сработает без слэша. Пример: /*/dotnet* — корректно, */dotnet* — неправильно.
Имя GUI-приложения из интерфейса¶
Внимание
Вместо пути можно указать имя приложения из интерфейса Staffcop. Тогда будут заблокированы все приложения с одинаковым именем.
Перейдите в конструкторе в измерение Приложение и выберите атрибут Описание.
Откроется список приложений. Найдите в нем целевое приложение.
Имя приложения будет в колонке Приложения в таблице справа.
![]()
Примечание
Чтобы исключение действовало на дочерние процессы, используйте многоточие (…) в конце правила.
Пример:
firefox *-abcd* ... # запрет для Firefox, запущенного с ключом командной строки -abcd, и всех дочерних процессов
Добавьте имя приложения в поле Запретить.
Исключение сработает только для процессов, которые будут запущены после получения исключения агентами. Рекомендуется перезагрузка компьютера.
WM_CLASS¶
Узнать имя приложения через атрибут WM_CLASS из логов агента. WM_CLASS помогает системе различать приложения с одинаковыми бинарными именами или разными путями установки. Используйте этот способ, если бинарные пути отличаются на разных дистрибутивах.
sudo /usr/share/staff/agent log | grep wm_class
Вывод покажет имя приложения, которое можно указать в исключениях. Используется последнее поле в строке:
2026-04-14 19:36:03,433 D XAct sts:0: wm_class: terminator//Terminator -> Terminator
В исключение нужно указать Terminator.
Лог агента¶
Этот способ подходит для любых процессов, в которые внедряется preloader. Он позволяет определить точное имя процесса и его командную строку.
Как найти процесс в логе:
sudo /usr/share/staff/agent log,Socket:,init
При попадании процесса под перехват в логе появляется строка. Эта строка — единственный достоверный источник данных для составления исключения. Если после добавления исключения строка перестала появляться, исключение сработало.
Пример строки из лога:
2026-04-06 17:42:51,665 D Socket: 6RyqKrElmTC init (3) 20260406150512 root unknown0 /usr/lib/xorg/Xorg /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
где:
имя процесса — первое
/usr/lib/xorg/Xorg,командная строка (cmdline) — от второго
/usr/lib/xorg/Xorgи до конца строки.
Пример исключения для этого процесса (и всех его потомков, если бы они были):
/*/Xorg */Xorg*auth*root* ...
Примеры исключений¶
Маска |
Описание |
|---|---|
|
Исключает preloader для любых шелл-скриптов из каталогов, |
|
Шелл-скрипты из любой директории kesl и их дочерние процессы |
|
Процессы с именем вида /bin/bash, содержащие в командной строке |
|
Все приложения .NET, независимо от каталога. |
|
Среда RStudio |
|
Клиент удаленного рабочего стола xfreerdp |
|
Запрещает внедрение preloader во ВСЕ процессы, у которых есть -abcd в командной строке |
Последнее обновление: 20.04.26