commit: 888c1aed22a0f67d4e4bdac540f249c392f27cec
Author: Kenton Groombridge <me <AT> concord <DOT> sh>
AuthorDate: Sat Apr 2 19:40:07 2022 +0000
Commit: Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Sat Sep 3 18:41:55 2022 +0000
URL:
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=888c1aed
init, systemd: allow unpriv users to read the catalog
Label /var/lib/systemd/catalog the journal type, and allow unpriv users
to search /var/lib/systemd. This is to fix this warning when an
unprivileged user uses journalctl:
Failed to find catalog entry: Permission denied
Signed-off-by: Kenton Groombridge <me <AT> concord.sh>
Signed-off-by: Jason Zaman <perfinion <AT> gentoo.org>
policy/modules/system/init.if | 19 +++++++++++++++++++
policy/modules/system/systemd.fc | 2 ++
policy/modules/system/systemd.if | 1 +
3 files changed, 22 insertions(+)
diff --git a/policy/modules/system/init.if b/policy/modules/system/init.if
index 8d3eab4a..1ce483da 100644
--- a/policy/modules/system/init.if
+++ b/policy/modules/system/init.if
@@ -1375,6 +1375,25 @@ interface(`init_read_var_lib_links',`
allow $1 init_var_lib_t:lnk_file read_lnk_file_perms;
')
+########################################
+## <summary>
+## Search /var/lib/systemd/ dirs
+## </summary>
+## <param name="domain">
+## <summary>
+## Domain allowed access.
+## </summary>
+## </param>
+#
+interface(`init_search_var_lib_dirs',`
+ gen_require(`
+ type init_var_lib_t;
+ ')
+
+ files_search_var_lib($1)
+ allow $1 init_var_lib_t:dir search_dir_perms;
+')
+
########################################
## <summary>
## List /var/lib/systemd/ dir
diff --git a/policy/modules/system/systemd.fc b/policy/modules/system/systemd.fc
index 2cbc2e19..cf7ce0c4 100644
--- a/policy/modules/system/systemd.fc
+++ b/policy/modules/system/systemd.fc
@@ -75,6 +75,8 @@ HOME_DIR/\.local/share/systemd(/.*)?
gen_context(system_u:object_r:systemd_data
/var/\.updated --
gen_context(system_u:object_r:systemd_update_run_t,s0)
+/var/lib/systemd/catalog(/.*)?
gen_context(system_u:object_r:systemd_journal_t,s0)
+
/var/lib/systemd/backlight(/.*)?
gen_context(system_u:object_r:systemd_backlight_var_lib_t,s0)
/var/lib/systemd/coredump(/.*)?
gen_context(system_u:object_r:systemd_coredump_var_lib_t,s0)
/var/lib/systemd/home(/.*)?
gen_context(system_u:object_r:systemd_homed_var_lib_t,s0)
diff --git a/policy/modules/system/systemd.if b/policy/modules/system/systemd.if
index c2b6824b..1da951f0 100644
--- a/policy/modules/system/systemd.if
+++ b/policy/modules/system/systemd.if
@@ -160,6 +160,7 @@ template(`systemd_role_template',`
can_exec($3, { systemd_run_exec_t systemd_analyze_exec_t })
init_dbus_chat($3)
+ init_search_var_lib_dirs($3)
systemd_list_journal_dirs($3)
systemd_read_journal_files($3)