commit: 8f3ac480c34bff1c605ba8f4a71bc484dccd8b9d
Author: Jason Zaman <jason <AT> perfinion <DOT> com>
AuthorDate: Mon May 19 20:44:44 2014 +0000
Commit: Sven Vermeulen <swift <AT> gentoo <DOT> org>
CommitDate: Thu May 22 16:52:42 2014 +0000
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=8f3ac480
Gnome Keyring policies
Gnome keyring communicates with other programs via a socket in
~/.cache/. This patch creates gnome_xdg_*_home_t labels and lets
gnome keyring manage them
Signed-off-by: Jason Zaman <jason <AT> perfinion.com>
---
policy/modules/contrib/gnome.fc | 5 +++++
policy/modules/contrib/gnome.te | 24 ++++++++++++++++++++++++
2 files changed, 29 insertions(+)
diff --git a/policy/modules/contrib/gnome.fc b/policy/modules/contrib/gnome.fc
index 209314b..9bc2c50 100644
--- a/policy/modules/contrib/gnome.fc
+++ b/policy/modules/contrib/gnome.fc
@@ -15,3 +15,8 @@ HOME_DIR/\.gnome2_private(/.*)?
gen_context(system_u:object_r:gnome_home_t,s0)
/usr/bin/mate-keyring-daemon --
gen_context(system_u:object_r:gkeyringd_exec_t,s0)
/usr/lib/[^/]*/gconf/gconfd-2 --
gen_context(system_u:object_r:gconfd_exec_t,s0)
/usr/libexec/gconfd-2 -- gen_context(system_u:object_r:gconfd_exec_t,s0)
+
+
+ifdef(`distro_gentoo',`
+HOME_DIR/\.cache/keyring-.*
gen_context(system_u:object_r:gnome_xdg_cache_home_t,s0)
+')
diff --git a/policy/modules/contrib/gnome.te b/policy/modules/contrib/gnome.te
index 5dd3498..98cd996 100644
--- a/policy/modules/contrib/gnome.te
+++ b/policy/modules/contrib/gnome.te
@@ -141,9 +141,33 @@ optional_policy(`
')
ifdef(`distro_gentoo',`
+ type gnome_xdg_cache_home_t;
type gnome_xdg_config_t; # Fase out
type gnome_xdg_config_home_t;
+ type gnome_xdg_data_home_t;
+ xdg_cache_home_content(gnome_xdg_cache_home_t)
xdg_config_home_content(gnome_xdg_config_t)
xdg_config_home_content(gnome_xdg_config_home_t)
+ xdg_data_home_content(gnome_xdg_data_home_t)
+
+ ##
+ ## Keyring
+ ##
+
+ # When gnome-keyring creates a .cache/keyring-.... make sure it is
gnome_xdg_cache_home_t
+ xdg_cache_home_filetrans(gkeyringd_domain, gnome_xdg_cache_home_t, dir)
+ # Same for ~/.config and ~/.local stuff
+ xdg_config_home_filetrans(gkeyringd_domain, gnome_xdg_config_home_t,
dir)
+ xdg_data_home_filetrans(gkeyringd_domain, gnome_xdg_data_home_t, dir)
+
+ allow gkeyringd_domain gnome_xdg_cache_home_t:file manage_file_perms;
+ allow gkeyringd_domain gnome_xdg_cache_home_t:sock_file
manage_sock_file_perms;
+ manage_dirs_pattern(gkeyringd_domain, gnome_xdg_cache_home_t,
gnome_xdg_cache_home_t)
+
+ allow gkeyringd_domain gnome_xdg_config_home_t:file manage_file_perms;
+ manage_dirs_pattern(gkeyringd_domain, gnome_xdg_config_home_t,
gnome_xdg_config_home_t)
+
+ allow gkeyringd_domain gnome_xdg_data_home_t:file manage_file_perms;
+ manage_dirs_pattern(gkeyringd_domain, gnome_xdg_data_home_t,
gnome_xdg_data_home_t)
')