Skip to contentSkip to conversation

Introduce lvm_admin interface

PATCH New Jason Zaman 2 participants 8 messages Jul 11, 2015 – Jul 17, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/4 Introduce lvm_admin interface

---
 policy/modules/roles/sysadm.te |  1 +
 policy/modules/system/lvm.if   | 44 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+)
policy/modules/roles/sysadm.te +1 -0
index 9e27a3a..0a6b4b2 100644
@@ -578,6 +578,7 @@ optional_policy(`
 ')
 
 optional_policy(`
+	lvm_admin(sysadm_t, sysadm_r)
 	lvm_run(sysadm_t, sysadm_r)
 ')
 
policy/modules/system/lvm.if +44 -0

47 lines not on this page · raw message

Signature · 1 line
2.3.6
#1 lore raw

PATCH 2/4 Introduce ipsec_admin interface

---
 policy/modules/roles/sysadm.te |  8 +------
 policy/modules/system/ipsec.if | 51 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+), 7 deletions(-)
policy/modules/roles/sysadm.te +1 -7
index 0a6b4b2..253f6ba 100644
@@ -473,13 +473,7 @@ optional_policy(`
 ')
 
 optional_policy(`
-	# allow system administrator to use the ipsec script to look
-	# at things (e.g., ipsec auto --status)
-	# probably should create an ipsec_admin role for this kind of thing
-	ipsec_exec_mgmt(sysadm_t)
-	ipsec_stream_connect(sysadm_t)
-	# for lsof
-	ipsec_getattr_key_sockets(sysadm_t)
+	ipsec_admin(sysadm_t, sysadm_r)
 ')
 
 optional_policy(`
policy/modules/system/ipsec.if +51 -0

54 lines not on this page · raw message

Signature · 1 line
2.3.6
#2 lore raw

PATCH 2/4 Introduce ipsec_admin interface

Quoted 73 lines · Jason Zaman
---
 policy/modules/roles/sysadm.te |  8 +------
 policy/modules/system/ipsec.if | 51 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+), 7 deletions(-)
policy/modules/roles/sysadm.te +1 -7
index 0a6b4b2..253f6ba 100644
@@ -473,13 +473,7 @@ optional_policy(`
 ')
 
 optional_policy(`
-	# allow system administrator to use the ipsec script to look
-	# at things (e.g., ipsec auto --status)
-	# probably should create an ipsec_admin role for this kind of thing
-	ipsec_exec_mgmt(sysadm_t)
-	ipsec_stream_connect(sysadm_t)
-	# for lsof
-	ipsec_getattr_key_sockets(sysadm_t)
+	ipsec_admin(sysadm_t, sysadm_r)
 ')
 
 optional_policy(`
policy/modules/system/ipsec.if +41 -0
index 0d4c8d3..3d64054 100644
@@ -369,3 +369,54 @@ interface(`ipsec_run_setkey',`
 	ipsec_domtrans_setkey($1)
 	role $2 types setkey_t;
 ')
+
+########################################
+## <summary>
+##	All of the rules required to
+##	administrate an ipsec environment.
+## </summary>
+## <param name="domain">
+##	<summary>
+##	Domain allowed access.
+##	</summary>
+## </param>
+## <param name="role">
+##	<summary>
+##	Role allowed access.
+##	</summary>
+## </param>
+## <rolecap/>
+#
+interface(`ipsec_admin',`
+	gen_require(`
+		type ipsec_t, ipsec_initrc_exec_t, ipsec_conf_file_t;
+		type ipsec_key_file_t, ipsec_log_t, ipsec_tmp_t;
+		type ipsec_var_run_t, ipsec_mgmt_lock_t;
+		type ipsec_mgmt_var_run_t, racoon_tmp_t;
+	')
+
+	allow $1 ipsec_t:process { ptrace signal_perms };
+	ps_process_pattern($1, ipsec_t)
+
+	init_startstop_service($1, $2, ipsec_t, ipsec_initrc_exec_t)
+
+	ipsec_exec_mgmt($1)
+	ipsec_stream_connect($1)
+	# for lsof
+	ipsec_getattr_key_sockets($1)
+
+	files_search_etc($1)
+	admin_pattern($1, { ipsec_conf_file_t ipsec_key_file_t })
+
+	files_search_tmp($1)
+	admin_pattern($1, { ipsec_tmp_t racoon_tmp_t })

policy/modules/system/ipsec.if interface(`ipsec_run_setkey',` · line 422

Quoted 10 lines
policy/modules/system/ipsec.if +10 -0
+
+	files_search_pids($1)
+	admin_pattern($1, { ipsec_var_run_t ipsec_mgmt_var_run_t })
+
+	files_search_locks($1)
+	admin_pattern($1, ipsec_mgmt_lock_t)
+
+	logging_search_logs($1)
+	admin_pattern($1, ipsec_log_t)
+')

Merged.

Signature · 3 lines
Chris PeBenito
Tresys Technology, LLC
www.tresys.com | oss.tresys.com
#3 lore raw

PATCH 3/4 Introduce setrans_admin interface

In reply to Jason Zaman
---
 policy/modules/roles/sysadm.te   |  4 ++++
 policy/modules/system/setrans.if | 31 +++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)
policy/modules/roles/sysadm.te +4 -0
index 253f6ba..db7b54f 100644
@@ -952,6 +952,10 @@ optional_policy(`
 ')
 
 optional_policy(`
+	setrans_admin(sysadm_t, sysadm_r)
+')
+
+optional_policy(`
 	setroubleshoot_admin(sysadm_t, sysadm_r)
 ')
 
policy/modules/system/setrans.if +31 -0
index efa9c27..2a8ecaa 100644
@@ -40,3 +40,34 @@ interface(`setrans_translate_context',`
 	stream_connect_pattern($1, setrans_var_run_t, setrans_var_run_t, setrans_t)
 	files_list_pids($1)
 ')
+
+######################################
+## <summary>
+##	All of the rules required to
+##	administrate an setrans environment.
+## </summary>
+## <param name="domain">
+##	<summary>
+##	Domain allowed access.
+##	</summary>
+## </param>
+## <param name="role">
+##	<summary>
+##	Role allowed access.
+##	</summary>
+## </param>
+#
+interface(`setrans_admin',`
+	gen_require(`
+		type setrans_t, setrans_initrc_exec_t;
+		type setrans_var_run_t;
+	')
+
+	allow $1 setrans_t:process { ptrace signal_perms };
+	ps_process_pattern($1, setrans_t)
+
+	init_startstop_service($1, $2, setrans_t, setrans_initrc_exec_t)
+
+	files_search_pids($1)
+	admin_pattern($1, setrans_var_run_t)
+')
Signature · 1 line
2.3.6
#4 lore raw

PATCH 3/4 Introduce setrans_admin interface

Quoted 49 lines · Jason Zaman
---
 policy/modules/roles/sysadm.te   |  4 ++++
 policy/modules/system/setrans.if | 31 +++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)
policy/modules/roles/sysadm.te +4 -0
index 253f6ba..db7b54f 100644
@@ -952,6 +952,10 @@ optional_policy(`
 ')
 
 optional_policy(`
+	setrans_admin(sysadm_t, sysadm_r)
+')
+
+optional_policy(`
 	setroubleshoot_admin(sysadm_t, sysadm_r)
 ')
 
policy/modules/system/setrans.if +21 -0
index efa9c27..2a8ecaa 100644
@@ -40,3 +40,34 @@ interface(`setrans_translate_context',`
 	stream_connect_pattern($1, setrans_var_run_t, setrans_var_run_t, setrans_t)
 	files_list_pids($1)
 ')
+
+######################################
+## <summary>
+##	All of the rules required to
+##	administrate an setrans environment.
+## </summary>
+## <param name="domain">
+##	<summary>
+##	Domain allowed access.
+##	</summary>
+## </param>
+## <param name="role">
+##	<summary>
+##	Role allowed access.
+##	</summary>
+## </param>
+#
+interface(`setrans_admin',`
+	gen_require(`
+		type setrans_t, setrans_initrc_exec_t;
+		type setrans_var_run_t;

policy/modules/system/setrans.if interface(`setrans_translate_context',` · line 73

Quoted 10 lines
policy/modules/system/setrans.if +10 -0
+	')
+
+	allow $1 setrans_t:process { ptrace signal_perms };
+	ps_process_pattern($1, setrans_t)
+
+	init_startstop_service($1, $2, setrans_t, setrans_initrc_exec_t)
+
+	files_search_pids($1)
+	admin_pattern($1, setrans_var_run_t)
+')

Merged.

Signature · 3 lines
Chris PeBenito
Tresys Technology, LLC
www.tresys.com | oss.tresys.com
#5 lore raw

PATCH 4/4 add new cron_admin interface to sysadm

In reply to Jason Zaman
---
 policy/modules/roles/sysadm.te | 4 ++++
 1 file changed, 4 insertions(+)
policy/modules/roles/sysadm.te +4 -0
index db7b54f..f61075d 100644
@@ -274,6 +274,10 @@ optional_policy(`
 ')
 
 optional_policy(`
+	cron_admin(sysadm_t, sysadm_r)
+')
+
+optional_policy(`
 	ctdb_admin(sysadm_t, sysadm_r)
 ')
 
Signature · 1 line
2.3.6
#6 lore raw

PATCH 4/4 add new cron_admin interface to sysadm

Quoted 9 lines · Jason Zaman
---
 policy/modules/roles/sysadm.te | 4 ++++
 1 file changed, 4 insertions(+)
policy/modules/roles/sysadm.te +0 -0
index db7b54f..f61075d 100644

policy/modules/roles/sysadm.te optional_policy(` · line 282

Quoted 9 lines
policy/modules/roles/sysadm.te +4 -0
@@ -274,6 +274,10 @@ optional_policy(`
 ')
 
 optional_policy(`
+	cron_admin(sysadm_t, sysadm_r)
+')
+
+optional_policy(`
 	ctdb_admin(sysadm_t, sysadm_r)
 ')

Merged.

Signature · 3 lines
Chris PeBenito
Tresys Technology, LLC
www.tresys.com | oss.tresys.com
#7 lore raw

PATCH 1/4 Introduce lvm_admin interface

In reply to Jason Zaman
Quoted 59 lines · Jason Zaman
---
 policy/modules/roles/sysadm.te |  1 +
 policy/modules/system/lvm.if   | 44 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+)
policy/modules/roles/sysadm.te +1 -0
index 9e27a3a..0a6b4b2 100644
@@ -578,6 +578,7 @@ optional_policy(`
 ')
 
 optional_policy(`
+	lvm_admin(sysadm_t, sysadm_r)
 	lvm_run(sysadm_t, sysadm_r)
 ')
 
policy/modules/system/lvm.if +34 -0
index 58bc27f..86b223c 100644
@@ -123,3 +123,47 @@ interface(`lvm_domtrans_clvmd',`
 	corecmd_search_bin($1)
 	domtrans_pattern($1, clvmd_exec_t, clvmd_t)
 ')
+
+######################################
+## <summary>
+##	All of the rules required to
+##	administrate an lvm environment.
+## </summary>
+## <param name="domain">
+##	<summary>
+##	Domain allowed access.
+##	</summary>
+## </param>
+## <param name="role">
+##	<summary>
+##	Role allowed access.
+##	</summary>
+## </param>
+#
+interface(`lvm_admin',`
+	gen_require(`
+		type clvmd_t, clvmd_exec_t, clvmd_initrc_exec_t;
+		type lvm_etc_t, lvm_lock_t, lvm_metadata_t;
+		type lvm_var_lib_t, lvm_var_run_t, clvmd_var_run_t, lvm_tmp_t;
+	')
+
+	allow $1 clvmd_t:process { ptrace signal_perms };
+	ps_process_pattern($1, clvmd_t)
+
+	init_startstop_service($1, $2, clvmd_t, clvmd_initrc_exec_t)
+
+	files_search_etc($1)
+	admin_pattern($1, lvm_etc_t)
+
+	files_search_locks($1)
+	admin_pattern($1, lvm_lock_t)

policy/modules/system/lvm.if interface(`lvm_domtrans_clvmd',` · line 169

Quoted 10 lines
policy/modules/system/lvm.if +10 -0
+
+	files_search_var_lib($1)
+	admin_pattern($1, lvm_var_lib_t)
+
+	files_search_pids($1)
+	admin_pattern($1, { lvm_var_run_t clvmd_var_run_t })
+
+	files_search_tmp($1)
+	admin_pattern($1, lvm_tmp_t)
+')

Merged.

Signature · 3 lines
Chris PeBenito
Tresys Technology, LLC
www.tresys.com | oss.tresys.com