я могу сделать
auditctl -a always,exit -S all -F pid=1234
Чтобы записать все системные вызовы, сделанные pid 1234 и:
auditctl -a always,exit -S all -F ppid=1234
Для своих детей, но как мне охватить внуков и их детей (нынешних и будущих)?
Я не могу полагаться на (e) uid / (e) gid, которые меняются.
(обратите внимание, что использование strace
тоже не вариант)
трюк, который вы могли бы использовать (еще раз, я не знаю специфики Auditd, и я не могу попробовать в данный момент): указать конкретную переменную окружения при запуске самого верхнего родителя, и Auditctl всех процессов с этой переменной?
—
Оливье Дюлак
@OlivierDulac, пометка процесса каким-то образом (который наследуется детьми) - это одна вещь, которую я имею в виду. Но список правил аудита, с которыми можно сопоставить, довольно тонкий (даже sid, pgid ...). Может быть, SELinux, но я не знаю, что в первую очередь о SELinux. Может быть, обрабатывать пространства имен?
—
Стефан Шазелас
может быть, самый верхний родитель может быть в своей собственной группе процессов? ( en.wikipedia.org/wiki/Process_group )
—
Оливье Дюлак
Я подумал, может быть, запустить вашу программу в определенном контейнере, если это вариант для вас. Если я правильно понимаю этот поток ошибок , это должно работать с ядром ≥3.13. Кроме этого, я не вижу никакого другого метода, кроме SELinux и UID аудита . Подойдет ли AUID для вашего варианта использования?
—
Жиль "ТАК - перестать быть злым"
strace -s
^^, но потом я увидел, кто спрашивал, и сразу понял, что "он это уже знает!") ... Стефан, вы можете возможно: 1) построить список pids, используя опцию «tree» ps, 2) запустить auditctl (s) для всех pids, перечисленных в дереве? (то есть, у вас может быть несколько «pid = ....»? или несколько audctl, каждый по одному?) или «тупой» способ: audctl everything, и какой-то egrep для «pid | pid | pid», если они появляются в каждой строке?) (предостережение: у меня нет доступа к linux atm, поэтому я понятия не имею, как появляется информация)