Eu entendi a razão por trás desse comportamento.
A página auditctl
man para os estados -p
flag:
Describe the permission access type that a file system watch will trigger on. r=read, w=write, x=execute, a=attribute change. These permissions are not the standard file permissions, but rather the kind of syscall that would do this kind of thing. The read & write syscalls are omitted from this set since they would overwhelm the logs. But rather for reads or writes, the open flags are looked at to see what permission was requested.
Eu não entendi o que isso significava na época, mas depois de algumas horas pesquisando na lista de discussão do Linux-Audit, percebi que isso significa que, se você assiste a um arquivo para escrever, ele não t log quando há um syscall para gravar no arquivo. Ele apenas registra se um arquivo foi acessado com permissões de gravação, verificando open
syscalls com as sinalizações O_RDWR
ou O_WRONLY
.
Então, quando eu uso o comando logger
, na verdade estou pedindo ao meu daemon do Syslog para escrever no arquivo para mim. O daemon syslog sempre tem esse arquivo aberto para escrita, portanto, faz sentido que nada seja registrado.
Se eu reiniciar o daemon do Syslog, obtenho algo assim em meus logs de auditoria:
# ausearch -i -k logs
----
type=PROCTITLE msg=audit(10-03-2017 16:16:59.128:4613) : proctitle=/usr/sbin/rsyslogd -n
type=PATH msg=audit(10-03-2017 16:16:59.128:4613) : item=1 name=/var/log/syslog inode=417506 dev=08:01 mode=file,640 ouid=syslog ogid=adm rdev=00:00 nametype=NORMAL
type=PATH msg=audit(10-03-2017 16:16:59.128:4613) : item=0 name=/var/log/ inode=411799 dev=08:01 mode=dir,775 ouid=root ogid=syslog rdev=00:00 nametype=PARENT
type=CWD msg=audit(10-03-2017 16:16:59.128:4613) : cwd=/
type=SYSCALL msg=audit(10-03-2017 16:16:59.128:4613) : arch=x86_64 syscall=open success=yes exit=6 a0=0x7f5848003fb0 a1=O_WRONLY|O_CREAT|O_NOCTTY|O_APPEND|O_CLOEXEC a2=0640 a3=0x7f5848000088 items=2 ppid=1 pid=10638 auid=unset uid=syslog gid=syslog euid=syslog suid=syslog fsuid=syslog egid=syslog sgid=syslog fsgid=syslog tty=(none) ses=unset comm=rs:main Q:Reg exe=/usr/sbin/rsyslogd key=logs