From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steve Grubb Subject: Re: open() syscall and success=0 question Date: Tue, 13 May 2008 10:24:41 -0400 Message-ID: <200805131024.42025.sgrubb@redhat.com> References: <20080513141353.GB4939@cisco.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20080513141353.GB4939@cisco.com> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com To: linux-audit@redhat.com List-Id: linux-audit@redhat.com On Tuesday 13 May 2008 10:13:53 Keith Kaple wrote: > When open fails, the open() manpage says it will return -1 so that will make > success false or 0. When success is false, auditd seems to use the negated > value of ERRNO to populate the exit= field, is that correct? This is actually done by the kernel, not auditd. But you are correct. > So a rule such as: > > auditctl -a exit,always -S open -F success=0 -F exit=-13 > > Would log only permission related failures, correct? Correct. But that can be reduced to: auditctl -a exit,always -S open -F exit=-EPERM Syscall rules affect every single syscall made by every program. So, you want the rule to be efficient. In this case, checking the success field is redundant. -Steve