Are the writing of an events records to audit.log atomic should a log rotation occur
Steve Grubb
sgrubb at redhat.com
Mon Feb 4 19:32:18 UTC 2013
On Saturday, February 02, 2013 10:51:29 AM Burn Alting wrote:
> All,
>
> When rotating log files due a USR1 signal being sent, or for any other
> reason, does auditd finish writing all the
> records that belong to the current event being written before starting
> the new log file?
When it catches SIGUSR1, it sets a flag that is read by the event loop. So,
this serializes it with other events. It does write the record out before
rotating.
> That is, will I find records belonging to a single event in two log
> files?
That is a different question and a different answer. Events can be composed of
multiple records. It is possible for a record to be emitted and at that time a
check of the disk space used or file size may cause a rotation or some other
action.
> If this is the case, would there be problems if auditd was changed to
> wait and 'flush' all an event's records before
> rotating?
Auditd just writes to disk. It does not try to determine if anything is
pending because its in a race to dequeue as fast as possible before buffers fill
up. Any re-assembly of records into an event is done by aureport and ausearch.
> One assumes auditd-event.c would need to be modified to be
> more event aware. Perhaps make use of AUDIT_EOE or
> other means of identifying the end of an event or a single event.
It might be helpful to describe the problem this is solving.
Thanks,
-Steve
More information about the Linux-audit
mailing list