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)