From: guido@trentalancia.com (Guido Trentalancia)
Date: Sat, 19 Mar 2011 16:45:06 +0100
Subject: [refpolicy] restorecon needs to read bin_t symlinks
Message-ID: <1300549506.3034.24.camel@tesla.lan>
To: refpolicy@oss.tresys.com
List-Id: refpolicy.oss.tresys.com
Hello !
I have recently started to experience AVC denials due to restorecon
trying to read bin_t symbolic links. It is not entirely clear to me what
is triggering this, since everything has been working fine for a long
time.
In any case, I had to apply the following patch on my system (and I am
still asking myself why not files_read_all_symlinks then ?):
diff -pruN refpolicy-git-17032011/policy/modules/kernel/files.if refpolicy-git-17032011-restorecon/policy/modules/kernel/files.if
--- refpolicy-git-17032011/policy/modules/kernel/files.if 2011-02-22 18:50:44.460551925 +0100
+++ refpolicy-git-17032011-restorecon/policy/modules/kernel/files.if 2011-03-19 16:21:01.701636861 +0100
@@ -4425,7 +4425,28 @@ interface(`files_relabelfrom_usr_files',
########################################
##
-## Read symbolic links in /usr.
+## Read symbolic links with type
+## bin_t (usually located in /bin,
+## /sbin, /usr/bin and /usr/sbin).
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`files_read_bin_symlinks',`
+ gen_require(`
+ type bin_t;
+ ')
+
+ read_lnk_files_pattern($1, bin_t, bin_t)
+')
+
+########################################
+##
+## Read symbolic links with type
+## usr_t (usually located in /usr).
##
##
##
diff -pruN refpolicy-git-17032011/policy/modules/system/selinuxutil.te refpolicy-git-17032011-restorecon/policy/modules/system/selinuxutil.te
--- refpolicy-git-17032011/policy/modules/system/selinuxutil.te 2011-01-17 19:36:10.814131755 +0100
+++ refpolicy-git-17032011-restorecon/policy/modules/system/selinuxutil.te 2011-03-19 16:16:13.198810817 +0100
@@ -527,6 +527,7 @@ files_read_etc_runtime_files(setfiles_t)
files_read_etc_files(setfiles_t)
files_list_all(setfiles_t)
files_relabel_all_files(setfiles_t)
+files_read_bin_symlinks(setfiles_t)
files_read_usr_symlinks(setfiles_t)
fs_getattr_xattr_fs(setfiles_t)