commit:     0d854a362ee5625add66fcb2212d27a035639f48
Author:     Kenton Groombridge <me <AT> concord <DOT> sh>
AuthorDate: Sat Sep 24 17:51:14 2022 +0000
Commit:     Kenton Groombridge <concord <AT> gentoo <DOT> org>
CommitDate: Wed Nov  2 14:07:18 2022 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=0d854a36

glusterfs, selinuxutil: make modifying fcontexts a tunable

Signed-off-by: Kenton Groombridge <me <AT> concord.sh>
Signed-off-by: Kenton Groombridge <concord <AT> gentoo.org>

 policy/modules/services/glusterfs.te | 26 +++++++++++++++++++++-----
 policy/modules/system/selinuxutil.if | 36 ++++++++++++++++++++++++++++++++++++
 policy/modules/system/selinuxutil.te | 11 +++++++----
 3 files changed, 64 insertions(+), 9 deletions(-)

diff --git a/policy/modules/services/glusterfs.te 
b/policy/modules/services/glusterfs.te
index 690aa828a..85a55ed5b 100644
--- a/policy/modules/services/glusterfs.te
+++ b/policy/modules/services/glusterfs.te
@@ -1,5 +1,15 @@
 policy_module(glusterfs)
 
+## <desc>
+##     <p>
+##     Allow the gluster daemon to automatically
+##     add and remove file contexts from the local
+##     SELinux policy when adding and removing
+##     bricks.
+##     </p>
+## </desc>
+gen_tunable(glusterfs_modify_policy, false)
+
 ########################################
 #
 # Declarations
@@ -129,11 +139,17 @@ logging_send_syslog_msg(glusterd_t)
 miscfiles_read_generic_certs(glusterd_t)
 miscfiles_read_localization(glusterd_t)
 
-# needed by relabeling hooks when adding bricks
-seutil_domtrans_semanage(glusterd_t)
-seutil_exec_setfiles(glusterd_t)
-seutil_read_default_contexts(glusterd_t)
-
 userdom_dontaudit_search_user_runtime_root(glusterd_t)
 
 xdg_dontaudit_search_data_dirs(glusterd_t)
+
+tunable_policy(`glusterfs_modify_policy',`
+       # needed by relabeling hooks when adding bricks
+       seutil_domtrans_semanage(glusterd_t)
+       seutil_exec_setfiles(glusterd_t)
+       seutil_read_default_contexts(glusterd_t)
+',`
+       seutil_dontaudit_exec_semanage(glusterd_t)
+       seutil_dontaudit_exec_setfiles(glusterd_t)
+       seutil_dontaudit_read_file_contexts(glusterd_t)
+')

diff --git a/policy/modules/system/selinuxutil.if 
b/policy/modules/system/selinuxutil.if
index c0735f2b8..30db6a094 100644
--- a/policy/modules/system/selinuxutil.if
+++ b/policy/modules/system/selinuxutil.if
@@ -574,6 +574,24 @@ interface(`seutil_exec_setfiles',`
        can_exec($1, setfiles_exec_t)
 ')
 
+########################################
+## <summary>
+##     Do not audit attempts to execute setfiles.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain to not audit.
+##     </summary>
+## </param>
+#
+interface(`seutil_dontaudit_exec_setfiles',`
+       gen_require(`
+               type setfiles_exec_t;
+       ')
+
+       dontaudit $1 setfiles_exec_t:file exec_file_perms;
+')
+
 ########################################
 ## <summary>
 ##     Do not audit attempts to search the SELinux
@@ -1028,6 +1046,24 @@ interface(`seutil_run_semanage',`
        roleattribute $2 semanage_roles;
 ')
 
+########################################
+## <summary>
+##     Do not audit attempts to execute semanage.
+## </summary>
+## <param name="domain">
+##     <summary>
+##     Domain to not audit.
+##     </summary>
+## </param>
+#
+interface(`seutil_dontaudit_exec_semanage',`
+       gen_require(`
+               type semanage_exec_t;
+       ')
+
+       dontaudit $1 semanage_exec_t:file exec_file_perms;
+')
+
 ########################################
 ## <summary>
 ##     Read the semanage module store.

diff --git a/policy/modules/system/selinuxutil.te 
b/policy/modules/system/selinuxutil.te
index 14a17175f..2b823b543 100644
--- a/policy/modules/system/selinuxutil.te
+++ b/policy/modules/system/selinuxutil.te
@@ -209,8 +209,9 @@ ifdef(`distro_ubuntu',`
 ')
 
 optional_policy(`
-       # glusterd calls semanage fcontext
-       glusterfs_use_daemon_fds(load_policy_t)
+       tunable_policy(`glusterfs_modify_policy',`
+               glusterfs_use_daemon_fds(load_policy_t)
+       ')
 ')
 
 optional_policy(`
@@ -695,11 +696,13 @@ ifdef(`distro_ubuntu',`
 ')
 
 optional_policy(`
-       apt_use_fds(setfiles_t)
+       tunable_policy(`glusterfs_modify_policy',`
+               glusterfs_use_daemon_fds(setfiles_t)
+       ')
 ')
 
 optional_policy(`
-       glusterfs_use_daemon_fds(setfiles_t)
+       apt_use_fds(setfiles_t)
 ')
 
 optional_policy(`

Reply via email to