commit:     15f4cb7c1387e72719c9948281f4818842baea96
Author:     Sven Vermeulen <sven.vermeulen <AT> siphos <DOT> be>
AuthorDate: Sun Aug 10 13:53:00 2014 +0000
Commit:     Sven Vermeulen <swift <AT> gentoo <DOT> org>
CommitDate: Sun Aug 10 13:53:00 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=15f4cb7c
Fix bug #505406 - Make thunderbird work on Gentoo again

Changes made:
- Support thunderbird_tmp_t for /tmp created files and directories
- Support XDG types
- Make user content management optional (through access template)

---
 policy/modules/contrib/thunderbird.fc |  8 ++++++++
 policy/modules/contrib/thunderbird.te | 36 ++++++++++++++++++++++++++++++++---
 2 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/policy/modules/contrib/thunderbird.fc 
b/policy/modules/contrib/thunderbird.fc
index c01805a..4a579fe 100644
--- a/policy/modules/contrib/thunderbird.fc
+++ b/policy/modules/contrib/thunderbird.fc
@@ -1,3 +1,11 @@
 HOME_DIR/\.thunderbird(/.*)?   
gen_context(system_u:object_r:thunderbird_home_t,s0)
 
 /usr/bin/thunderbird.* --      
gen_context(system_u:object_r:thunderbird_exec_t,s0)
+
+ifdef(`distro_gentoo',`
+/opt/thunderbird/plugin-container      --      
gen_context(system_u:object_r:thunderbird_exec_t,s0)
+/opt/thunderbird/run-mozilla\.sh       --      
gen_context(system_u:object_r:thunderbird_exec_t,s0)
+/opt/thunderbird/thunderbird   --      
gen_context(system_u:object_r:thunderbird_exec_t,s0)
+/opt/thunderbird/thunderbird-bin       --      
gen_context(system_u:object_r:thunderbird_exec_t,s0)
+/opt/thunderbird/updater       --      
gen_context(system_u:object_r:thunderbird_exec_t,s0)
+')

diff --git a/policy/modules/contrib/thunderbird.te 
b/policy/modules/contrib/thunderbird.te
index 04a56d2..cbf9e39 100644
--- a/policy/modules/contrib/thunderbird.te
+++ b/policy/modules/contrib/thunderbird.te
@@ -105,9 +105,10 @@ userdom_write_user_tmp_sockets(thunderbird_t)
 userdom_manage_user_tmp_dirs(thunderbird_t)
 userdom_manage_user_tmp_files(thunderbird_t)
 
-userdom_manage_user_home_content_dirs(thunderbird_t)
-userdom_manage_user_home_content_files(thunderbird_t)
-userdom_user_home_dir_filetrans_user_home_content(thunderbird_t, { dir file })
+# Gentoo: managed through booleans defined thruogh 
userdom_user_content_access_template
+#userdom_manage_user_home_content_dirs(thunderbird_t)
+#userdom_manage_user_home_content_files(thunderbird_t)
+#userdom_user_home_dir_filetrans_user_home_content(thunderbird_t, { dir file })
 
 xserver_user_x_domain_template(thunderbird, thunderbird_t, thunderbird_tmpfs_t)
 xserver_read_xdm_tmp_files(thunderbird_t)
@@ -168,11 +169,40 @@ optional_policy(`
 ')
 
 ifdef(`distro_gentoo',`
+       type thunderbird_xdg_cache_home_t;
+       xdg_cache_home_content(thunderbird_xdg_cache_home_t)
+
+       type thunderbird_tmp_t;
+       userdom_user_tmp_file(thunderbird_tmp_t)
+
        ################################
        #
        # Thunderbird local policy
        #
 
+       # thunderbird-bin to execute stuff in /opt/thunderbird/
+       can_exec(thunderbird_t, thunderbird_exec_t)
+
+       manage_dirs_pattern(thunderbird_t, thunderbird_tmp_t, thunderbird_tmp_t)
+       manage_files_pattern(thunderbird_t, thunderbird_tmp_t, 
thunderbird_tmp_t)
+       files_tmp_filetrans(thunderbird_t, thunderbird_tmp_t, { dir file })
+
+       manage_files_pattern(thunderbird_t, thunderbird_xdg_cache_home_t, 
thunderbird_xdg_cache_home_t)
+       manage_dirs_pattern(thunderbird_t, thunderbird_xdg_cache_home_t, 
thunderbird_xdg_cache_home_t)
+       xdg_cache_home_filetrans(thunderbird_t, thunderbird_xdg_cache_home_t, 
dir)
+
+       # File preview apps for instance
+       corecmd_exec_bin(thunderbird_t)
+
+       dev_read_sysfs(thunderbird_t)
+       dev_rw_dri(thunderbird_t)
+
+       userdom_use_user_ptys(thunderbird_t)
+       # User content access
+       userdom_user_content_access_template(thunderbird, thunderbird_t)
+
+       xdg_read_data_home_files(thunderbird_t)
+
        optional_policy(`
                pulseaudio_client_domain(thunderbird_t, thunderbird_tmpfs_t)
        ')

Reply via email to