diff --git a/policy/modules/kernel/corecommands.if b/policy/modules/kernel/corecommands.if
index 426122604..24e7c4fd4 100644
--- a/policy/modules/kernel/corecommands.if
+++ b/policy/modules/kernel/corecommands.if
@@ -216,6 +216,25 @@ interface(`corecmd_dontaudit_getattr_bin_files',`
dontaudit $1 bin_t:file getattr_file_perms;
')
+########################################
+##
+## Check if files in bin directories are executable (DAC-wise)
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`corecmd_check_exec_bin_files',`
+ gen_require(`
+ type bin_t;
+ ')
+
+ allow $1 bin_t:dir search_dir_perms;
+ allow $1 bin_t:file { execute getattr };
+')
+
########################################
##
## Read files in bin directories.
diff --git a/policy/modules/kernel/filesystem.if b/policy/modules/kernel/filesystem.if
index 9dc456ebd..7ea4976df 100644
--- a/policy/modules/kernel/filesystem.if
+++ b/policy/modules/kernel/filesystem.if
@@ -1798,6 +1798,24 @@ interface(`fs_relabelfrom_dos_fs',`
allow $1 dosfs_t:filesystem relabelfrom;
')
+########################################
+##
+## Get attributes of directories on a dosfs filesystem.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`fs_getattr_dos_dirs',`
+ gen_require(`
+ type dosfs_t;
+ ')
+
+ allow $1 dosfs_t:dir getattr;
+')
+
########################################
##
## Search dosfs filesystem.
diff --git a/policy/modules/system/init.if b/policy/modules/system/init.if
index 20c67da4e..95d328074 100644
--- a/policy/modules/system/init.if
+++ b/policy/modules/system/init.if
@@ -2776,11 +2776,11 @@ interface(`init_reload_generic_units',`
#
interface(`init_get_all_units_status',`
gen_require(`
- attribute systemdunit;
+ attribute init_script_file_type, systemdunit;
class service status;
')
- allow $1 systemdunit:service status;
+ allow $1 { init_script_file_type systemdunit }:service status;
')
########################################
@@ -2795,11 +2795,11 @@ interface(`init_get_all_units_status',`
#
interface(`init_start_all_units',`
gen_require(`
- attribute systemdunit;
+ attribute init_script_file_type, systemdunit;
class service start;
')
- allow $1 systemdunit:service start;
+ allow $1 { init_script_file_type systemdunit }:service start;
')
########################################
@@ -2814,11 +2814,11 @@ interface(`init_start_all_units',`
#
interface(`init_stop_all_units',`
gen_require(`
- attribute systemdunit;
+ attribute init_script_file_type, systemdunit;
class service stop;
')
- allow $1 systemdunit:service stop;
+ allow $1 { init_script_file_type systemdunit }:service stop;
')
#######################################
@@ -2833,9 +2833,9 @@ interface(`init_stop_all_units',`
#
interface(`init_reload_all_units',`
gen_require(`
- attribute systemdunit;
+ attribute init_script_file_type, systemdunit;
class service reload;
')
- allow $1 systemdunit:service reload;
+ allow $1 { init_script_file_type systemdunit }:service reload;
')