commit:     a98daba3644f9e84e81c784fa1b8773dbbba9681
Author:     Dominick Grift <dac.override <AT> gmail <DOT> com>
AuthorDate: Tue Mar 31 16:17:46 2015 +0000
Commit:     Jason Zaman <perfinion <AT> gentoo <DOT> org>
CommitDate: Mon Apr 13 20:01:45 2015 +0000
URL:        
https://gitweb.gentoo.org/proj/hardened-refpolicy.git/commit/?id=a98daba3

Cachefilesd module updates

The module was incomplete because I was not confident about various rules 
implemented in the Fedora policy.

The files_create_all_files_as_is(cachefilesd_t) interface call was a bad idea. 
Instead it just needs to
maintain files in the cache with the cachefiles_cache_t type.

The process associated with cachefiles_kernel_t is a kernel thread (kworker)

 policy/modules/contrib/cachefilesd.te | 30 +++++++++++++++++++++++++++---
 1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/policy/modules/contrib/cachefilesd.te 
b/policy/modules/contrib/cachefilesd.te
index a3760bc..1d78e00 100644
--- a/policy/modules/contrib/cachefilesd.te
+++ b/policy/modules/contrib/cachefilesd.te
@@ -1,4 +1,4 @@
-policy_module(cachefilesd, 1.1.0)
+policy_module(cachefilesd, 1.1.1)
 
 ########################################
 #
@@ -18,22 +18,28 @@ files_type(cachefilesd_cache_t)
 type cachefilesd_var_run_t;
 files_pid_file(cachefilesd_var_run_t)
 
+type cachefiles_kernel_t;
+domain_type(cachefiles_kernel_t)
+role system_r types cachefiles_kernel_t;
+
 ########################################
 #
-# Local policy
+# Cachefilesd local policy
 #
 
 allow cachefilesd_t self:capability { setuid setgid sys_admin dac_override };
 
+allow cachefilesd_t cachefiles_kernel_t:kernel_service use_as_override;
+
 manage_files_pattern(cachefilesd_t, cachefilesd_var_run_t, 
cachefilesd_var_run_t)
 files_pid_filetrans(cachefilesd_t, cachefilesd_var_run_t, file)
 
+allow cachefilesd_t cachefiles_cache_t:kernel_service create_files_as;
 manage_dirs_pattern(cachefilesd_t, cachefilesd_cache_t, cachefilesd_cache_t)
 manage_files_pattern(cachefilesd_t, cachefilesd_cache_t, cachefilesd_cache_t)
 
 dev_rw_cachefiles(cachefilesd_t)
 
-files_create_all_files_as(cachefilesd_t)
 files_read_etc_files(cachefilesd_t)
 
 fs_getattr_xattr_fs(cachefilesd_t)
@@ -50,3 +56,21 @@ init_dontaudit_use_script_ptys(cachefilesd_t)
 optional_policy(`
        rpm_use_script_fds(cachefilesd_t)
 ')
+
+########################################
+#
+# Cachefiles_kernel local policy
+#
+
+allow cachefiles_kernel_t self:capability { dac_override dac_read_search };
+
+manage_dirs_pattern(cachefiles_kernel_t, cachefiles_cache_t, 
cachefiles_cache_t)
+manage_files_pattern(cachefiles_kernel_t, cachefiles_cache_t, 
cachefiles_cache_t)
+
+dev_search_sysfs(cachefiles_kernel_t)
+
+domain_obj_id_change_exemption(cachefiles_kernel_t)
+
+fs_getattr_xattr_fs(cachefiles_kernel_t)
+
+init_sigchld_script(cachefiles_kernel_t)

Reply via email to