diff options
author | Sugar, David <dsugar@tresys.com> | 2019-03-09 03:58:09 +0000 |
---|---|---|
committer | Jason Zaman <jason@perfinion.com> | 2019-03-25 18:05:25 +0800 |
commit | 68f0d31ccb685203e3146a4f10f80af9412fd160 (patch) | |
tree | 908eb6e1b9b5f85dc64fa0f2361e5229a7f50539 | |
parent | Remove incorrect comment about capability2:mac_admin. (diff) | |
download | hardened-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.if | 18 | ||||
-rw-r--r-- | policy/modules/system/udev.te | 1 |
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) |