aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSugar, David <dsugar@tresys.com>2019-03-09 03:58:09 +0000
committerJason Zaman <jason@perfinion.com>2019-03-25 18:05:25 +0800
commit68f0d31ccb685203e3146a4f10f80af9412fd160 (patch)
tree908eb6e1b9b5f85dc64fa0f2361e5229a7f50539
parentRemove incorrect comment about capability2:mac_admin. (diff)
downloadhardened-refpolicy-68f0d31ccb685203e3146a4f10f80af9412fd160.tar.gz
hardened-refpolicy-68f0d31ccb685203e3146a4f10f80af9412fd160.tar.bz2
hardened-refpolicy-68f0d31ccb685203e3146a4f10f80af9412fd160.zip
Allow additional map permission when reading hwdb
I'm seeing a denial for udev to map /etc/udev/hwdb.bin. This creates and uses a new interface to allow the needed permission for udev. type=AVC msg=audit(1551886176.948:642): avc: denied { map } for pid=5187 comm="systemd-udevd" path="/etc/udev/hwdb.bin" dev="dm-1" ino=6509618 scontext=system_u:system_r:udev_t:s0-s0:c0.c1023 tcontext=system_u:object_r:systemd_hwdb_t:s0 tclass=file permissive=1 Updated from previous to create a new interface. Signed-off-by: Dave Sugar <dsugar@tresys.com> Signed-off-by: Jason Zaman <jason@perfinion.com>
-rw-r--r--policy/modules/system/systemd.if18
-rw-r--r--policy/modules/system/udev.te1
2 files changed, 19 insertions, 0 deletions
diff --git a/policy/modules/system/systemd.if b/policy/modules/system/systemd.if
index 8d2bb8dac..6353ca69a 100644
--- a/policy/modules/system/systemd.if
+++ b/policy/modules/system/systemd.if
@@ -37,6 +37,24 @@ interface(`systemd_read_hwdb',`
read_files_pattern($1, systemd_hwdb_t, systemd_hwdb_t)
')
+#######################################
+## <summary>
+## Allow domain to map udev hwdb file
+## </summary>
+## <param name="domain">
+## <summary>
+## domain allowed access
+## </summary>
+## </param>
+#
+interface(`systemd_map_hwdb',`
+ gen_require(`
+ type systemd_hwdb_t;
+ ')
+
+ allow $1 systemd_hwdb_t:file map;
+')
+
######################################
## <summary>
## Read systemd_login PID files.
diff --git a/policy/modules/system/udev.te b/policy/modules/system/udev.te
index 99f22bfb5..f6a9d6524 100644
--- a/policy/modules/system/udev.te
+++ b/policy/modules/system/udev.te
@@ -248,6 +248,7 @@ ifdef(`init_systemd',`
init_get_generic_units_status(udev_t)
init_stream_connect(udev_t)
+ systemd_map_hwdb(udev_t)
systemd_read_hwdb(udev_t)
systemd_read_logind_sessions_files(udev_t)
systemd_read_logind_pids(udev_t)