]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
Initialize audit subsystem even for the session bus
authorLaurent Bigonville <bigon@bigon.be>
Mon, 15 Jun 2015 13:30:16 +0000 (15:30 +0200)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Thu, 6 Aug 2015 16:12:41 +0000 (17:12 +0100)
If SELinux is enabled on the system, dbus will check the permissions but
no audit trails will be generated in case of denial as the audit
subsystem is not initialized. Same should apply for apparmor.

[smcv: without audit, the equivalent of the audit trail goes to stderr
where it can be picked up by systemd-journald]

A unprivileged user should be able to open the audit socket
(audit_open()) but should not have the permissions to log an audit
trail. The CAP_AUDIT_WRITE file capability could be set on the
dbus-daemon executable in order to allow the session bus to log an AVC
denial.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=83856
[smcv: s/should/could/ in commit message to reflect lack of consensus that
"setcap cap_audit_write+ep dbus-daemon" is desirable in general]
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
bus/bus.c

index 056f677f2b34250547c25bcc7b79bf79f12a0fa1..128ae3c28c2a0211ced65e3bdaf8e747a84d0851 100644 (file)
--- a/bus/bus.c
+++ b/bus/bus.c
@@ -972,10 +972,10 @@ bus_context_new (const DBusString *config_file,
          _DBUS_ASSERT_ERROR_IS_SET (error);
          goto failed;
        }
-
-      bus_audit_init (context);
     }
 
+  bus_audit_init (context);
+
   dbus_server_free_data_slot (&server_data_slot);
 
   return context;