The display manager lightdm (and I think gdm) start a dbus binary. v3 - Updated based on feedback type=AVC msg=audit(1544626796.378:201): avc: denied { execute } for pid=9973 comm="dbus-launch" name="dbus-daemon" dev="dm-1" ino=6695040 scontext=system_u:system_r:xdm_t:s0-s0:c0.c1023 tcontext=system_u:object_r:dbusd_exec_t:s0 tclass=file permissive=1 type=AVC msg=audit(1544626796.378:201): avc: denied { read open } for pid=9973 comm="dbus-launch" path="/usr/bin/dbus-daemon" dev="dm-1" ino=6695040 scontext=system_u:system_r:xdm_t:s0-s0:c0.c1023 tcontext=system_u:object_r:dbusd_exec_t:s0 tclass=file permissive=1 type=AVC msg=audit(1544626796.378:201): avc: denied { execute_no_trans } for pid=9973 comm="dbus-launch" path="/usr/bin/dbus-daemon" dev="dm-1" ino=6695040 scontext=system_u:system_r:xdm_t:s0-s0:c0.c1023 tcontext=system_u:object_r:dbusd_exec_t:s0 tclass=file permissive=1 type=AVC msg=audit(1544626796.378:201): avc: denied { map } for pid=9973 comm="dbus-daemon" path="/usr/bin/dbus-daemon" dev="dm-1" ino=6695040 scontext=system_u:system_r:xdm_t:s0-s0:c0.c1023 tcontext=system_u:object_r:dbusd_exec_t:s0 tclass=file permissive=1 type=AVC msg=audit(1546551459.112:208): avc: denied { getcap } for pid=6275 comm="dbus-daemon" scontext=system_u:system_r:xdm_t:s0-s0:c0.c1023 tcontext=system_u:system_r:xdm_t:s0-s0:c0.c1023 tclass=process permissive=1 type=AVC msg=audit(1546551459.116:209): avc: denied { read } for pid=6275 comm="dbus-daemon" name="995" dev="tmpfs" ino=35210 scontext=system_u:system_r:xdm_t:s0-s0:c0.c1023 tcontext=system_u:object_r:systemd_logind_var_run_t:s0 tclass=file permissive=1 type=AVC msg=audit(1546551459.116:209): avc: denied { open } for pid=6275 comm="dbus-daemon" path="/run/systemd/users/995" dev="tmpfs" ino=35210 scontext=system_u:system_r:xdm_t:s0-s0:c0.c1023 tcontext=system_u:object_r:systemd_logind_var_run_t:s0 tclass=file permissive=1 type=AVC msg=audit(1546551459.116:210): avc: denied { getattr } for pid=6275 comm="dbus-daemon" path="/run/systemd/users/995" dev="tmpfs" ino=35210 scontext=system_u:system_r:xdm_t:s0-s0:c0.c1023 tcontext=system_u:object_r:systemd_logind_var_run_t:s0 tclass=file permissive=1 Signed-off-by: Dave Sugar <dsugar@xxxxxxxxxx> --- policy/modules/services/dbus.if | 19 +++++++++++++++++++ policy/modules/services/xserver.te | 7 +++++++ 2 files changed, 26 insertions(+) diff --git a/policy/modules/services/dbus.if b/policy/modules/services/dbus.if index ef829e30..c815791e 100644 --- a/policy/modules/services/dbus.if +++ b/policy/modules/services/dbus.if @@ -17,6 +17,25 @@ interface(`dbus_stub',` ') ') +######################################## +## <summary> +## Execute dbus in the caller domain. +## </summary> +## <param name="domain"> +## <summary> +## Domain allowed access. +## </summary> +## </param> +# +interface(`dbus_exec',` + gen_require(` + type dbusd_exec_t; + ') + + corecmd_search_bin($1) + can_exec($1, dbusd_exec_t) +') + ######################################## ## <summary> ## Role access for dbus. diff --git a/policy/modules/services/xserver.te b/policy/modules/services/xserver.te index fa7ce88e..c7714d3e 100644 --- a/policy/modules/services/xserver.te +++ b/policy/modules/services/xserver.te @@ -566,12 +566,19 @@ optional_policy(` ') optional_policy(` + allow xdm_t self:process getcap; + + dbus_exec(xdm_t) dbus_system_bus_client(xdm_t) dbus_connect_system_bus(xdm_t) optional_policy(` accountsd_dbus_chat(xdm_t) ') + + optional_policy(` + systemd_read_logind_pids(xdm_t) + ') ') optional_policy(` -- 2.20.1