LINUX.ORG.RU
ФорумAdmin

Auditd setuid/setgid

 ,


0

1

Пытаюсь настроить логирование chmod setuid/setgid через auditd, никак не пойму формат вывода его логов. А именно интересует аргумент a2. Если мы делаем chmod 2000 diff1, то получаем в аргументе a2 значение 400:

Apr 14 17:08:38 horde tag_audit_log: type=SYSCALL msg=audit(1365959315.513:21376): arch=c000003e syscall=268 success=yes exit=0 a0=ffffffffffffff9c a1=dfa0f0 a2=400 a3=7fff626fc440 items=1 ppid=21975 pid=23923 auid=1000 uid=1000 gid=100 euid=1000 suid=1000 fsuid=1000 egid=100 sgid=100 fsgid=100 ses=39 tty=pts5 comm=«chmod» exe=«/usr/bin/chmod» key=(null)

Apr 14 17:08:38 horde tag_audit_log: type=CWD msg=audit(1365959315.513:21376): cwd=«/home/gummeah»

Apr 14 17:08:38 horde tag_audit_log: type=PATH msg=audit(1365959315.513:21376): item=0 name=«diff1» inode=7867002 dev=08:02 mode=0106000 ouid=1000 ogid=100 rdev=00:00

если chmod 4000, то a2=800; если chmod 6000, то a2=c00

Подскажите дураку, как эти значения в десятичные числа перевести или понять принцип, по которому выдаются значения в таком виде, чтобы задать правильные фильтры для логирования.



Последнее исправление: Klymedy (всего исправлений: 1)

Разобрался вощим. Если кому интересно, то audit берет битовое представление аргумента chmod и переводит как цельное число в base16. Соответственно, если мы делаем chmod 2000, то он беред число в base2 (разобью для наглядности) 10 000 000 000(S, юзер, группа, остальные). base2 10000000000 = base16 400, base2 100000000000 = base16 800 итд. Такие дела. Надо бы теперь придумать, как эту всю хрень распарсить нормально, чтобы в читабельном виде писалось и можно было фильтровать. Или может есть настройки какие в каком формате выводить, но чет я такого пока не нашел.

Gummeah
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.