From ccb0b3884513829a2ab344f1682df6ea6ff4e7de Mon Sep 17 00:00:00 2001 From: Xin Ouyang Date: Thu, 22 Aug 2013 13:37:23 +0800 Subject: [PATCH 18/34] policy/module/logging: add rules for the symlink of /var/log /var/log is a symlink in poky, so we need allow rules for files to read lnk_file while doing search/list/delete/rw... in /var/log/ directory. Upstream-Status: Inappropriate [only for Poky] Signed-off-by: Xin Ouyang Signed-off-by: Joe MacDonald --- policy/modules/system/logging.fc | 1 + policy/modules/system/logging.if | 6 ++++++ policy/modules/system/logging.te | 2 ++ 3 files changed, 9 insertions(+) diff --git a/policy/modules/system/logging.fc b/policy/modules/system/logging.fc index 0cf108e0..5bec7e99 100644 --- a/policy/modules/system/logging.fc +++ b/policy/modules/system/logging.fc @@ -55,6 +55,7 @@ ifdef(`distro_suse', ` /var/dnscache/log/main(/.*)? gen_context(system_u:object_r:var_log_t,s0) /var/log -d gen_context(system_u:object_r:var_log_t,s0-mls_systemhigh) +/var/log -l gen_context(system_u:object_r:var_log_t,s0-mls_systemhigh) /var/log/.* gen_context(system_u:object_r:var_log_t,s0) /var/log/dmesg -- gen_context(system_u:object_r:var_log_t,s0) /var/log/syslog -- gen_context(system_u:object_r:var_log_t,s0) diff --git a/policy/modules/system/logging.if b/policy/modules/system/logging.if index 7b7644f7..0c7268ff 100644 --- a/policy/modules/system/logging.if +++ b/policy/modules/system/logging.if @@ -972,10 +972,12 @@ interface(`logging_append_all_inherited_logs',` interface(`logging_read_all_logs',` gen_require(` attribute logfile; + type var_log_t; ') files_search_var($1) allow $1 logfile:dir list_dir_perms; + allow $1 var_log_t:lnk_file read_lnk_file_perms; read_files_pattern($1, logfile, logfile) ') @@ -994,10 +996,12 @@ interface(`logging_read_all_logs',` interface(`logging_exec_all_logs',` gen_require(` attribute logfile; + type var_log_t; ') files_search_var($1) allow $1 logfile:dir list_dir_perms; + allow $1 var_log_t:lnk_file read_lnk_file_perms; can_exec($1, logfile) ') @@ -1099,6 +1103,7 @@ interface(`logging_read_generic_logs',` files_search_var($1) allow $1 var_log_t:dir list_dir_perms; + allow $1 var_log_t:lnk_file read_lnk_file_perms; read_files_pattern($1, var_log_t, var_log_t) ') @@ -1200,6 +1205,7 @@ interface(`logging_manage_generic_logs',` files_search_var($1) manage_files_pattern($1, var_log_t, var_log_t) + allow $1 var_log_t:lnk_file read_lnk_file_perms; ') ######################################## diff --git a/policy/modules/system/logging.te b/policy/modules/system/logging.te index c892f547..499a4552 100644 --- a/policy/modules/system/logging.te +++ b/policy/modules/system/logging.te @@ -161,6 +161,7 @@ manage_files_pattern(auditd_t, auditd_log_t, auditd_log_t) allow auditd_t auditd_log_t:dir setattr; manage_lnk_files_pattern(auditd_t, auditd_log_t, auditd_log_t) allow auditd_t var_log_t:dir search_dir_perms; +allow auditd_t var_log_t:lnk_file read_lnk_file_perms; manage_files_pattern(auditd_t, auditd_var_run_t, auditd_var_run_t) manage_sock_files_pattern(auditd_t, auditd_var_run_t, auditd_var_run_t) @@ -288,6 +289,7 @@ allow audisp_remote_t self:capability { setpcap setuid }; allow audisp_remote_t self:process { getcap setcap }; allow audisp_remote_t self:tcp_socket create_socket_perms; allow audisp_remote_t var_log_t:dir search_dir_perms; +allow audisp_remote_t var_log_t:lnk_file read_lnk_file_perms; manage_dirs_pattern(audisp_remote_t, audit_spool_t, audit_spool_t) manage_files_pattern(audisp_remote_t, audit_spool_t, audit_spool_t) -- 2.19.1