commit: d63d91588adf55e6867440af9b9f6a4fe6c166f6
Author: Dave Sugar <dsugar100 <AT> gmail <DOT> com>
AuthorDate: Fri Aug 26 02:45:24 2022 +0000
Commit: Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Sat Sep 3 19:07:50 2022 +0000
URL:
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=d63d9158
systemd: init_t creates systemd-logind 'linger' directory
node=localhost type=AVC msg=audit(1661480051.880:321): avc: denied { create }
for pid=1027 comm="(d-logind)" name="linger"
scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:systemd_logind_var_lib_t:s0 tclass=dir permissive=0
Signed-off-by: Dave Sugar <dsugar100 <AT> gmail.com>
Signed-off-by: Jason Zaman <perfinion <AT> gentoo.org>
policy/modules/system/init.te | 1 +
policy/modules/system/systemd.if | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/policy/modules/system/init.te b/policy/modules/system/init.te
index 285ee5b4..9ecaae54 100644
--- a/policy/modules/system/init.te
+++ b/policy/modules/system/init.te
@@ -551,6 +551,7 @@ ifdef(`init_systemd',`
optional_policy(`
systemd_dbus_chat_logind(init_t)
+ systemd_create_logind_linger_dir(init_t)
systemd_search_all_user_keys(init_t)
systemd_create_all_user_keys(init_t)
systemd_write_all_user_keys(init_t)
diff --git a/policy/modules/system/systemd.if b/policy/modules/system/systemd.if
index f48cc541..2370c729 100644
--- a/policy/modules/system/systemd.if
+++ b/policy/modules/system/systemd.if
@@ -2031,6 +2031,27 @@ interface(`systemd_read_logind_state',`
allow systemd_logind_t $1:file read_file_perms;
')
+########################################
+## <summary>
+## Allow the specified domain to create
+## the systemd-logind linger directory with
+## the correct context.
+## </summary>
+## <param name="domain">
+## <summary>
+## Domain allowed access.
+## </summary>
+## </param>
+#
+interface(`systemd_create_logind_linger_dir',`
+ gen_require(`
+ type systemd_logind_var_lib_t;
+ ')
+
+ init_var_lib_filetrans($1, systemd_logind_var_lib_t, dir, "linger")
+ allow $1 systemd_logind_var_lib_t:dir create;
+')
+
########################################
## <summary>
## Allow the specified domain to start systemd