audit_pid with multiple userspace auditd processes

Steve Grubb sgrubb at redhat.com
Wed Jan 7 22:41:19 UTC 2009


On Wednesday 07 January 2009 04:36:39 pm Eric Paris wrote:
> lets say userspace starts 2 copies of auditd.

# auditctl -s
AUDIT_STATUS: enabled=1 flag=1 pid=4488 rate_limit=0 backlog_limit=512 lost=1 
backlog=0
# /sbin/auditd 
# auditctl -s
AUDIT_STATUS: enabled=1 flag=1 pid=0 rate_limit=0 backlog_limit=512 lost=1 
backlog=0
# ps -ef | grep auditd
root       580     2  0 08:19 ?        00:00:00 [kauditd]
root      4488     1  0 16:35 ?        00:00:00 auditd
root      5128  3654  0 17:33 pts/1    00:00:00 grep auditd


> Then they kill the first copy.  The kernel at that point thinks there is no
> userspace auditd running and will instead send things to dmesg

Looks to me like the kernel is setting auditd_pid to 0 and the second auditd 
does not start - at least with my current setup.

For some other setups, it probably overwrites the pid with the new one and 
keeps going.


> We could fix it by changing the handling in audit_receive_msg to reject
> setting the audit_pid to 0 if the current audit_nlk_pid !=
> NETLINK_CB(skb).pid.

Well, what if the first crashed and the kernel didn't know it yet? It might be 
better to forcibly break the connection to the original auditd.


> It's not a big deal, maybe we just call results of audit with multiple
> userspace auditd's running at the same time a undefined and not care.

What do you get for auditctl -s before and after starting your second auditd?

-Steve




More information about the Linux-audit mailing list