[apparmor] [patch] Let aa-audit print a warning if a profile is disabled
Christian Boltz
apparmor at cboltz.de
Sun May 31 16:17:21 UTC 2015
Hello,
Am Sonntag, 31. Mai 2015 schrieb Kshitij Gupta:
> On Mon, May 25, 2015 at 9:36 PM, Christian Boltz wrote:
> > this patch lets aa-audit print a warning if a profile is disabled.
> >
> > Users might expect that setting a profile into audit mode also
> > activates it (which shouldn't happen IMHO because the audit flag is
> > not part of the enforce/complain/disable triple), so we should at
> > least tell them.
> >
> > References: https://bugs.launchpad.net/apparmor/+bug/1429448
> >
> >
> > I propose this patch for trunk and 2.9.
> >
> >
> > [ 37-aa-audit-warn-about-disabled-profiles.diff ]
> >
> > === modified file utils/apparmor/tools.py
> > --- utils/apparmor/tools.py 2015-05-25 17:29:05.067517743 +0200
> > +++ utils/apparmor/tools.py 2015-05-25 17:59:05.837870272 +0200
> > @@ -186,6 +186,11 @@
> >
> > aaui.UI_Info(_('Removing audit mode from %s.') %
> >
> > output_name)
> >
> > apparmor.change_profile_flags(profile, program,
> > 'audit', not
> >
> > self.remove)
> >
> > + disable_link = '%s/disable/%s' % (apparmor.profile_dir,
> > os.path.basename(profile))
> > +
>
> The aa.py code uses: re.sub('^%s' % profile_dir, '%s/%s' %
> (profile_dir, subdir), path)
> to generate disable_link.
>
> I'd suggest we should change that code (which I think is probably a
> waste of an re.sub call) to follow the above style? or you could do
> vice versa.
>
> For fun a comparison of speed of the two methods[1]:
> Python 2.7: re=2.87s cboltz=0.56s
> Python 3.4: re=2.39s cboltz=1.09s
That's a good argument to use the non-re code ;-) (even if the
difference is not really big when running it once)
In the end I'd even say we should split out a symlink_name() function to
avoid we have 3 places that calculate the symlink path.
(Added to the TODO list, but I won't complain if someone else grabs this
and sends a patch ;-)
BTW: I'm surprised that the non-re code takes twice the time with py3
than with py2 - any idea what could cause this?
> + if os.path.exists(disable_link):
> > + aaui.UI_Info(_('\nWarning: the profile %s is
> > disabled. Use aa-enforce or aa-complain to enable it.') %
> > os.path.basename(profile)) +
>
> Also, the message should probably tell the profile for which _program_
> is disabled rather than give the filename? Giving program name would
> also be useful for a user who would like to run aa-complain or
> aa-enforce thereafter.
Well, printing the program might be difficult ;-) - for example, a file
could contain multiple profiles or a named profile with or without an
attachment specified.
Besides that, you can easily call aa-audit with a profile file as
parameter:
aa-audit /etc/apparmor.d/bin.ping
> With the warning message modified suitably.
>
> Acked-by: Kshitij Gupta <kgupta8592 at gmail.com>.
Does the Ack also stand for the unmodified patch with the explanation
above?
Regards,
Christian Boltz
--
In its default setup, Windows XP on the Internet amounts to a car parked
in a bad part of town, with the doors unlocked, the key in the ignition
and a Post-It note on the dashboard saying, "Please don't steal this".
[Washington Post, 23.8.2003]
More information about the AppArmor
mailing list