1 |
commit: 42804a679a2ca17bb67d9c0cb887202f95d105ee |
2 |
Author: Kenton Groombridge <me <AT> concord <DOT> sh> |
3 |
AuthorDate: Mon Sep 26 21:00:18 2022 +0000 |
4 |
Commit: Kenton Groombridge <concord <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Nov 2 14:07:20 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=42804a67 |
7 |
|
8 |
glusterfs: add type for glusterd hooks |
9 |
|
10 |
Add a private type for glusterd hooks in order to enforce W^X for them. |
11 |
|
12 |
Signed-off-by: Kenton Groombridge <me <AT> concord.sh> |
13 |
Signed-off-by: Kenton Groombridge <concord <AT> gentoo.org> |
14 |
|
15 |
policy/modules/services/glusterfs.fc | 1 + |
16 |
policy/modules/services/glusterfs.if | 3 ++- |
17 |
policy/modules/services/glusterfs.te | 8 ++++++++ |
18 |
3 files changed, 11 insertions(+), 1 deletion(-) |
19 |
|
20 |
diff --git a/policy/modules/services/glusterfs.fc b/policy/modules/services/glusterfs.fc |
21 |
index 158a4a85e..50bd93604 100644 |
22 |
--- a/policy/modules/services/glusterfs.fc |
23 |
+++ b/policy/modules/services/glusterfs.fc |
24 |
@@ -12,6 +12,7 @@ |
25 |
/opt/glusterfs/[^/]+/sbin/glusterfsd -- gen_context(system_u:object_r:glusterd_exec_t,s0) |
26 |
|
27 |
/var/lib/gluster.* gen_context(system_u:object_r:glusterd_var_lib_t,s0) |
28 |
+/var/lib/glusterd/hooks(/.*)? gen_context(system_u:object_r:glusterd_hook_t,s0) |
29 |
|
30 |
/var/log/glusterfs(/.*)? gen_context(system_u:object_r:glusterd_log_t,s0) |
31 |
|
32 |
|
33 |
diff --git a/policy/modules/services/glusterfs.if b/policy/modules/services/glusterfs.if |
34 |
index 5e6af0ecc..ab5c8a4da 100644 |
35 |
--- a/policy/modules/services/glusterfs.if |
36 |
+++ b/policy/modules/services/glusterfs.if |
37 |
@@ -105,7 +105,7 @@ interface(`glusterfs_admin',` |
38 |
gen_require(` |
39 |
type glusterd_t, glusterd_initrc_exec_t, glusterd_log_t; |
40 |
type glusterd_tmp_t, glusterd_conf_t, glusterd_var_lib_t; |
41 |
- type glusterd_runtime_t, glusterd_brick_t; |
42 |
+ type glusterd_hook_t, glusterd_runtime_t, glusterd_brick_t; |
43 |
') |
44 |
|
45 |
glusterfs_run_daemon($1, $2) |
46 |
@@ -128,6 +128,7 @@ interface(`glusterfs_admin',` |
47 |
|
48 |
files_search_var_lib($1) |
49 |
admin_pattern($1, glusterd_var_lib_t) |
50 |
+ admin_pattern($1, glusterd_hook_t) |
51 |
|
52 |
files_search_runtime($1) |
53 |
admin_pattern($1, glusterd_runtime_t) |
54 |
|
55 |
diff --git a/policy/modules/services/glusterfs.te b/policy/modules/services/glusterfs.te |
56 |
index 85a55ed5b..c46215be1 100644 |
57 |
--- a/policy/modules/services/glusterfs.te |
58 |
+++ b/policy/modules/services/glusterfs.te |
59 |
@@ -40,6 +40,9 @@ files_type(glusterd_var_lib_t) |
60 |
type glusterd_brick_t; |
61 |
files_type(glusterd_brick_t) |
62 |
|
63 |
+type glusterd_hook_t; |
64 |
+files_type(glusterd_hook_t) |
65 |
+ |
66 |
######################################## |
67 |
# |
68 |
# Local policy |
69 |
@@ -77,6 +80,11 @@ manage_files_pattern(glusterd_t, glusterd_var_lib_t, glusterd_var_lib_t) |
70 |
manage_lnk_files_pattern(glusterd_t, glusterd_var_lib_t, glusterd_var_lib_t) |
71 |
files_var_lib_filetrans(glusterd_t, glusterd_var_lib_t, dir) |
72 |
|
73 |
+list_dirs_pattern(glusterd_t, glusterd_hook_t, glusterd_hook_t) |
74 |
+read_files_pattern(glusterd_t, glusterd_hook_t, glusterd_hook_t) |
75 |
+read_lnk_files_pattern(glusterd_t, glusterd_hook_t, glusterd_hook_t) |
76 |
+can_exec(glusterd_t, glusterd_hook_t) |
77 |
+ |
78 |
manage_dirs_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t) |
79 |
manage_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t) |
80 |
manage_chr_files_pattern(glusterd_t, glusterd_brick_t, glusterd_brick_t) |