[refpolicy] [PATCH 4/4] Allow gpg to search through portage configuration files
Sven Vermeulen
sven.vermeulen at siphos.be
Sat Aug 13 13:25:04 CDT 2011
When working with signed snapshots, the GnuPG keystore is usually stored in
/etc/portage/gpg. Although the location itself can (and through this patch is)
labeled as gpg_secret_t, gpg does need search privileges to the parent
directories (in this case, /etc/portage as /etc is already implied through gpg
policy).
We create an interface called portage_search_conf which grants exactly these
privileges and assign it to gpg_t.
Signed-off-by: Sven Vermeulen <sven.vermeulen at siphos.be>
---
policy/modules/admin/portage.if | 21 +++++++++++++++++++++
policy/modules/apps/gpg.fc | 2 ++
policy/modules/apps/gpg.te | 1 +
3 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/policy/modules/admin/portage.if b/policy/modules/admin/portage.if
index 86948c7..1682add 100644
--- a/policy/modules/admin/portage.if
+++ b/policy/modules/admin/portage.if
@@ -269,6 +269,27 @@ interface(`portage_read_tmp_files',`
########################################
## <summary>
+## Allow a domain search privileges through portage_conf_t
+## </summary>
+## <param name="domain">
+## <summary>
+## Domain to allow search privileges
+## </summary>
+## </param>
+#
+interface(`portage_search_conf',`
+ gen_require(`
+ type portage_conf_t;
+ ')
+
+ allow $1 portage_conf_t:dir search_dir_perms;
+')
+
+
+
+
+########################################
+## <summary>
## Do not audit attempts to search the
## portage temporary directories.
## </summary>
diff --git a/policy/modules/apps/gpg.fc b/policy/modules/apps/gpg.fc
index e9853d4..be2423c 100644
--- a/policy/modules/apps/gpg.fc
+++ b/policy/modules/apps/gpg.fc
@@ -1,5 +1,7 @@
HOME_DIR/\.gnupg(/.+)? gen_context(system_u:object_r:gpg_secret_t,s0)
+/etc/portage/gpg(/.*)? gen_context(system_u:object_r:gpg_secret_t,s0)
+
/usr/bin/gpg(2)? -- gen_context(system_u:object_r:gpg_exec_t,s0)
/usr/bin/gpg-agent -- gen_context(system_u:object_r:gpg_agent_exec_t,s0)
/usr/bin/kgpg -- gen_context(system_u:object_r:gpg_exec_t,s0)
diff --git a/policy/modules/apps/gpg.te b/policy/modules/apps/gpg.te
index 469dc93..90826de 100644
--- a/policy/modules/apps/gpg.te
+++ b/policy/modules/apps/gpg.te
@@ -148,6 +148,7 @@ optional_policy(`
optional_policy(`
portage_read_tmp_files(gpg_t)
+ portage_search_conf(gpg_t)
')
optional_policy(`
--
1.7.3.4
More information about the refpolicy
mailing list