diff --git a/policy/modules/admin/shorewall.if b/policy/modules/admin/shorewall.if index b83f3db..f198119 100644 --- a/policy/modules/admin/shorewall.if +++ b/policy/modules/admin/shorewall.if @@ -185,18 +185,18 @@ interface(`shorewall_admin',` role_transition $2 shorewall_initrc_exec_t system_r; allow $2 system_r; - files_search_etc($1) + files_list_etc($1) admin_pattern($1, shorewall_etc_t) - files_search_locks($1) + files_list_locks($1) admin_pattern($1, shorewall_lock_t) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, shorewall_var_lib_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, shorewall_log_t) - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, shorewall_tmp_t) ') diff --git a/policy/modules/apps/gnome.if b/policy/modules/apps/gnome.if index 250935a..594dc0f 100644 --- a/policy/modules/apps/gnome.if +++ b/policy/modules/apps/gnome.if @@ -320,7 +320,7 @@ interface(`gnome_admin_home_gconf_filetrans',` ## ## # -template(`gnome_read_gconf_config',` +interface(`gnome_read_gconf_config',` gen_require(` type gconf_etc_t; ') @@ -498,7 +498,7 @@ interface(`gnome_stream_connect',` ## ## # -template(`gnome_list_home_config',` +interface(`gnome_list_home_config',` gen_require(` type config_home_t; ') @@ -535,7 +535,7 @@ template(`gnome_setattr_home_config',` ## ## # -template(`gnome_read_home_config',` +interface(`gnome_read_home_config',` gen_require(` type config_home_t; ') diff --git a/policy/modules/kernel/files.if b/policy/modules/kernel/files.if index 96a406d..000c53a 100644 --- a/policy/modules/kernel/files.if +++ b/policy/modules/kernel/files.if @@ -5288,6 +5288,24 @@ interface(`files_manage_mounttab',` ######################################## ## +## List generic lock directories. +## +## +## +## Domain allowed access. +## +## +# +interface(`files_list_locks',` + gen_require(` + type var_t, var_lock_t; + ') + + list_dirs_pattern($1, var_t, var_lock_t) +') + +######################################## +## ## Search the locks directory (/var/lock). ## ## diff --git a/policy/modules/services/abrt.if b/policy/modules/services/abrt.if index 022c079..8961dba 100644 --- a/policy/modules/services/abrt.if +++ b/policy/modules/services/abrt.if @@ -326,18 +326,18 @@ interface(`abrt_admin',` role_transition $2 abrt_initrc_exec_t system_r; allow $2 system_r; - files_search_etc($1) + files_list_etc($1) admin_pattern($1, abrt_etc_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, abrt_var_log_t) - files_search_var($1) + files_list_var($1) admin_pattern($1, abrt_var_cache_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, abrt_var_run_t) - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, abrt_tmp_t) ') diff --git a/policy/modules/services/abrt.te b/policy/modules/services/abrt.te index 2bd70ae..5be7dc8 100644 --- a/policy/modules/services/abrt.te +++ b/policy/modules/services/abrt.te @@ -6,10 +6,10 @@ policy_module(abrt, 1.1.1) # ## -##

-## Allow ABRT to modify public files -## used for public file transfer services. -##

+##

+## Allow ABRT to modify public files +## used for public file transfer services. +##

##
gen_tunable(abrt_anon_write, false) @@ -154,7 +154,7 @@ userdom_dontaudit_read_user_home_content_files(abrt_t) userdom_dontaudit_read_admin_home_files(abrt_t) tunable_policy(`abrt_anon_write',` - miscfiles_manage_public_files(abrt_t) + miscfiles_manage_public_files(abrt_t) ') optional_policy(` @@ -175,7 +175,7 @@ optional_policy(` ') optional_policy(` - policykit_dbus_chat(abrt_t) + policykit_dbus_chat(abrt_t) policykit_domtrans_auth(abrt_t) policykit_read_lib(abrt_t) policykit_read_reload(abrt_t) @@ -214,7 +214,7 @@ optional_policy(` ######################################## # -# abrt--helper local policy +# abrt-helper local policy # allow abrt_helper_t self:capability { chown setgid sys_nice }; @@ -248,27 +248,27 @@ miscfiles_read_localization(abrt_helper_t) term_dontaudit_use_all_ttys(abrt_helper_t) term_dontaudit_use_all_ptys(abrt_helper_t) -ifdef(`hide_broken_symptoms', ` +ifdef(`hide_broken_symptoms',` domain_dontaudit_leaks(abrt_helper_t) userdom_dontaudit_read_user_home_content_files(abrt_helper_t) userdom_dontaudit_read_user_tmp_files(abrt_helper_t) - optional_policy(` - rpm_dontaudit_leaks(abrt_helper_t) - ') dev_dontaudit_read_all_blk_files(abrt_helper_t) dev_dontaudit_read_all_chr_files(abrt_helper_t) dev_dontaudit_write_all_chr_files(abrt_helper_t) dev_dontaudit_write_all_blk_files(abrt_helper_t) fs_dontaudit_rw_anon_inodefs_files(abrt_helper_t) -') + optional_policy(` + rpm_dontaudit_leaks(abrt_helper_t) + ') +') -ifdef(`hide_broken_symptoms', ` +ifdef(`hide_broken_symptoms',` gen_require(` - attribute domain; + attribute domain; ') - allow abrt_t self:capability sys_resource; + allow abrt_t self:capability sys_resource; allow abrt_t domain:file write; allow abrt_t domain:process setrlimit; ') diff --git a/policy/modules/services/accountsd.if b/policy/modules/services/accountsd.if index b46f76f..fe060aa 100644 --- a/policy/modules/services/accountsd.if +++ b/policy/modules/services/accountsd.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run accountsd. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`accountsd_domtrans',` diff --git a/policy/modules/services/afs.te b/policy/modules/services/afs.te index 9ec36b9..7e2cdf2 100644 --- a/policy/modules/services/afs.te +++ b/policy/modules/services/afs.te @@ -82,10 +82,6 @@ files_var_filetrans(afs_t, afs_cache_t, { file dir }) kernel_rw_afs_state(afs_t) -ifdef(`hide_broken_symptoms', ` - kernel_rw_unlabeled_files(afs_t) -') - corenet_all_recvfrom_unlabeled(afs_t) corenet_all_recvfrom_netlabel(afs_t) corenet_tcp_sendrecv_generic_if(afs_t) @@ -111,6 +107,10 @@ miscfiles_read_localization(afs_t) sysnet_dns_name_resolve(afs_t) +ifdef(`hide_broken_symptoms',` + kernel_rw_unlabeled_files(afs_t) +') + ######################################## # # AFS bossserver local policy diff --git a/policy/modules/services/aiccu.if b/policy/modules/services/aiccu.if index 420c856..6bf0ad6 100644 --- a/policy/modules/services/aiccu.if +++ b/policy/modules/services/aiccu.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run aiccu. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`aiccu_domtrans',` @@ -19,7 +19,6 @@ interface(`aiccu_domtrans',` corecmd_search_bin($1) ') - ######################################## ## ## Execute aiccu server in the aiccu domain. @@ -78,7 +77,6 @@ interface(`aiccu_manage_var_run',` files_search_pids($1) ') - ######################################## ## ## All of the rules required to administrate @@ -111,8 +109,8 @@ interface(`aiccu_admin',` allow $2 system_r; admin_pattern($1, aiccu_etc_t) - files_search_etc($1) + files_list_etc($1) admin_pattern($1, aiccu_var_run_t) - files_search_pids($1) + files_list_pids($1) ') diff --git a/policy/modules/services/aiccu.te b/policy/modules/services/aiccu.te index 416c49e..4b9dc88 100644 --- a/policy/modules/services/aiccu.te +++ b/policy/modules/services/aiccu.te @@ -35,8 +35,8 @@ allow aiccu_t self:unix_stream_socket create_stream_socket_perms; allow aiccu_t aiccu_etc_t:file read_file_perms; -manage_dirs_pattern(aiccu_t, aiccu_var_run_t, aiccu_var_run_t) -manage_files_pattern(aiccu_t, aiccu_var_run_t, aiccu_var_run_t) +manage_dirs_pattern(aiccu_t, aiccu_var_run_t, aiccu_var_run_t) +manage_files_pattern(aiccu_t, aiccu_var_run_t, aiccu_var_run_t) files_pid_filetrans(aiccu_t, aiccu_var_run_t, { file dir }) kernel_read_system_state(aiccu_t) diff --git a/policy/modules/services/aide.if b/policy/modules/services/aide.if index 838d25b..0b0db39 100644 --- a/policy/modules/services/aide.if +++ b/policy/modules/services/aide.if @@ -33,6 +33,7 @@ interface(`aide_domtrans',` ## The role to allow the AIDE domain. ## ## +## # interface(`aide_run',` gen_require(` diff --git a/policy/modules/services/aisexec.if b/policy/modules/services/aisexec.if index 0370dba..af5d229 100644 --- a/policy/modules/services/aisexec.if +++ b/policy/modules/services/aisexec.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run aisexec. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`aisexec_domtrans',` diff --git a/policy/modules/services/ajaxterm.if b/policy/modules/services/ajaxterm.if index 581ae6e..8e6e2c3 100644 --- a/policy/modules/services/ajaxterm.if +++ b/policy/modules/services/ajaxterm.if @@ -1,4 +1,3 @@ - ## policy for ajaxterm ######################################## @@ -6,9 +5,9 @@ ## Execute a domain transition to run ajaxterm. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`ajaxterm_domtrans',` @@ -19,14 +18,13 @@ interface(`ajaxterm_domtrans',` domtrans_pattern($1, ajaxterm_exec_t, ajaxterm_t) ') - ######################################## ## ## Execute ajaxterm server in the ajaxterm domain. ## ## ## -## The type of the process performing this action. +## Domain allowed to transition. ## ## # @@ -57,8 +55,7 @@ interface(`ajaxterm_initrc_domtrans',` # interface(`ajaxterm_admin',` gen_require(` - type ajaxterm_t; - type ajaxterm_initrc_exec_t; + type ajaxterm_t, ajaxterm_initrc_exec_t; ') allow $1 ajaxterm_t:process { ptrace signal_perms }; @@ -68,5 +65,4 @@ interface(`ajaxterm_admin',` domain_system_change_exemption($1) role_transition $2 ajaxterm_initrc_exec_t system_r; allow $2 system_r; - ') diff --git a/policy/modules/services/ajaxterm.te b/policy/modules/services/ajaxterm.te index 3441758..cf6af13 100644 --- a/policy/modules/services/ajaxterm.te +++ b/policy/modules/services/ajaxterm.te @@ -1,4 +1,4 @@ -policy_module(ajaxterm,1.0.0) +policy_module(ajaxterm, 1.0.0) ######################################## # @@ -30,7 +30,7 @@ allow ajaxterm_t self:fifo_file rw_fifo_file_perms; allow ajaxterm_t self:unix_stream_socket create_stream_socket_perms; allow ajaxterm_t self:tcp_socket create_stream_socket_perms; -allow ajaxterm_t ajaxterm_devpts_t:chr_file { rw_chr_file_perms setattr getattr relabelfrom }; +allow ajaxterm_t ajaxterm_devpts_t:chr_file { rw_chr_file_perms setattr_chr_file_perms relabelfrom }; term_create_pty(ajaxterm_t, ajaxterm_devpts_t) manage_dirs_pattern(ajaxterm_t, ajaxterm_var_run_t, ajaxterm_var_run_t) diff --git a/policy/modules/services/amavis.if b/policy/modules/services/amavis.if index ceb2142..e31d92a 100644 --- a/policy/modules/services/amavis.if +++ b/policy/modules/services/amavis.if @@ -183,7 +183,7 @@ interface(`amavis_setattr_pid_files',` type amavis_var_run_t; ') - allow $1 amavis_var_run_t:file setattr; + allow $1 amavis_var_run_t:file setattr_file_perms; files_search_pids($1) ') diff --git a/policy/modules/services/amavis.te b/policy/modules/services/amavis.te index c3a1903..ec40291 100644 --- a/policy/modules/services/amavis.te +++ b/policy/modules/services/amavis.te @@ -76,7 +76,7 @@ files_search_spool(amavis_t) # tmp files manage_files_pattern(amavis_t, amavis_tmp_t, amavis_tmp_t) -allow amavis_t amavis_tmp_t:dir setattr; +allow amavis_t amavis_tmp_t:dir setattr_dir_perms; files_tmp_filetrans(amavis_t, amavis_tmp_t, file) # var/lib files for amavis @@ -86,7 +86,7 @@ manage_sock_files_pattern(amavis_t, amavis_var_lib_t, amavis_var_lib_t) files_search_var_lib(amavis_t) # log files -allow amavis_t amavis_var_log_t:dir setattr; +allow amavis_t amavis_var_log_t:dir setattr_dir_perms; manage_files_pattern(amavis_t, amavis_var_log_t, amavis_var_log_t) manage_sock_files_pattern(amavis_t, amavis_var_log_t, amavis_var_log_t) logging_log_filetrans(amavis_t, amavis_var_log_t, { sock_file file dir }) diff --git a/policy/modules/services/apache.if b/policy/modules/services/apache.if index 2244b11..ba64143 100644 --- a/policy/modules/services/apache.if +++ b/policy/modules/services/apache.if @@ -13,8 +13,7 @@ # template(`apache_content_template',` gen_require(` - attribute httpd_exec_scripts; - attribute httpd_script_exec_type; + attribute httpd_exec_scripts, httpd_script_exec_type; type httpd_t, httpd_suexec_t, httpd_log_t; type httpd_sys_content_t; ') @@ -50,8 +49,6 @@ template(`apache_content_template',` read_files_pattern(httpd_t, httpd_$1_content_t, httpd_$1_htaccess_t) - domtrans_pattern(httpd_suexec_t, httpd_$1_script_exec_t, httpd_$1_script_t) - allow httpd_t { httpd_$1_content_t httpd_$1_rw_content_t httpd_$1_script_exec_t }:dir search_dir_perms; allow httpd_suexec_t { httpd_$1_content_t httpd_$1_rw_content_t httpd_$1_script_exec_t }:dir search_dir_perms; @@ -132,6 +129,8 @@ template(`apache_content_template',` tunable_policy(`httpd_enable_cgi',` allow httpd_$1_script_t httpd_$1_script_exec_t:file entrypoint; + domtrans_pattern(httpd_suexec_t, httpd_$1_script_exec_t, httpd_$1_script_t) + # privileged users run the script: domtrans_pattern(httpd_exec_scripts, httpd_$1_script_exec_t, httpd_$1_script_t) @@ -152,6 +151,8 @@ template(`apache_content_template',` allow httpd_$1_script_t httpd_t:fd use; allow httpd_$1_script_t httpd_t:process sigchld; + dontaudit httpd_$1_script_t httpd_t:tcp_socket { read write }; + kernel_read_system_state(httpd_$1_script_t) dev_read_urand(httpd_$1_script_t) @@ -180,8 +181,6 @@ template(`apache_content_template',` optional_policy(` nscd_socket_use(httpd_$1_script_t) ') - - dontaudit httpd_$1_script_t httpd_t:tcp_socket { read write }; ') ######################################## @@ -202,16 +201,15 @@ template(`apache_content_template',` interface(`apache_role',` gen_require(` attribute httpdcontent; - type httpd_user_content_t, httpd_user_htaccess_t; - type httpd_user_script_t, httpd_user_script_exec_t; - type httpd_user_ra_content_t, httpd_user_rw_content_t; + type httpd_user_content_t, httpd_user_htaccess_t, httpd_user_script_t; + type httpd_user_ra_content_t, httpd_user_rw_content_t, httpd_user_script_exec_t; ') role $1 types httpd_user_script_t; allow $2 httpd_user_content_t:{ dir file lnk_file } { relabelto relabelfrom }; - allow $2 httpd_user_htaccess_t:file { manage_file_perms relabelto relabelfrom }; + allow $2 httpd_user_htaccess_t:file { manage_file_perms relabel_file_perms }; manage_dirs_pattern($2, httpd_user_ra_content_t, httpd_user_ra_content_t) manage_files_pattern($2, httpd_user_ra_content_t, httpd_user_ra_content_t) @@ -314,21 +312,21 @@ interface(`apache_domtrans',` ###################################### ## -## Allow the specified domain to execute apache -## in the caller domain. +## Allow the specified domain to execute apache +## in the caller domain. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`apache_exec',` - gen_require(` - type httpd_exec_t; - ') + gen_require(` + type httpd_exec_t; + ') - can_exec($1, httpd_exec_t) + can_exec($1, httpd_exec_t) ') ####################################### @@ -501,7 +499,7 @@ interface(`apache_setattr_cache_dirs',` type httpd_cache_t; ') - allow $1 httpd_cache_t:dir setattr; + allow $1 httpd_cache_t:dir setattr_dir_perms; ') ######################################## @@ -732,7 +730,7 @@ interface(`apache_dontaudit_append_log',` type httpd_log_t; ') - dontaudit $1 httpd_log_t:file { getattr append }; + dontaudit $1 httpd_log_t:file append_file_perms; ') ######################################## @@ -895,7 +893,6 @@ interface(`apache_manage_sys_content',` ') files_search_var($1) - apache_search_sys_content($1) manage_dirs_pattern($1, httpd_sys_content_t, httpd_sys_content_t) manage_files_pattern($1, httpd_sys_content_t, httpd_sys_content_t) manage_lnk_files_pattern($1, httpd_sys_content_t, httpd_sys_content_t) @@ -903,45 +900,45 @@ interface(`apache_manage_sys_content',` ###################################### ## -## Allow the specified domain to read -## apache system content rw files. +## Allow the specified domain to read +## apache system content rw files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## ## # interface(`apache_read_sys_content_rw_files',` - gen_require(` + gen_require(` type httpd_sys_rw_content_t; ') - read_files_pattern($1, httpd_sys_rw_content_t, httpd_sys_rw_content_t) + read_files_pattern($1, httpd_sys_rw_content_t, httpd_sys_rw_content_t) ') ###################################### ## -## Allow the specified domain to manage -## apache system content rw files. +## Allow the specified domain to manage +## apache system content rw files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## ## # interface(`apache_manage_sys_content_rw',` - gen_require(` + gen_require(` type httpd_sys_rw_content_t; ') - files_search_var($1) - manage_dirs_pattern($1, httpd_sys_rw_content_t, httpd_sys_rw_content_t) - manage_files_pattern($1, httpd_sys_rw_content_t, httpd_sys_rw_content_t) - manage_lnk_files_pattern($1, httpd_sys_rw_content_t, httpd_sys_rw_content_t) + files_search_var($1) + manage_dirs_pattern($1, httpd_sys_rw_content_t, httpd_sys_rw_content_t) + manage_files_pattern($1, httpd_sys_rw_content_t, httpd_sys_rw_content_t) + manage_lnk_files_pattern($1, httpd_sys_rw_content_t, httpd_sys_rw_content_t) ') ######################################## @@ -985,8 +982,7 @@ interface(`apache_delete_sys_content_rw',` interface(`apache_domtrans_sys_script',` gen_require(` attribute httpdcontent; - type httpd_sys_script_t; - type httpd_sys_content_t; + type httpd_sys_script_t, httpd_sys_content_t; ') tunable_policy(`httpd_enable_cgi',` @@ -1049,9 +1045,10 @@ interface(`apache_domtrans_all_scripts',` ## ## ## -## Role allowed access.. +## Role allowed access. ## ## +## # interface(`apache_run_all_scripts',` gen_require(` @@ -1221,21 +1218,21 @@ interface(`apache_read_tmp_files',` ###################################### ## -## Dontaudit attempts to read and write -## apache tmp files. +## Dontaudit attempts to read and write +## apache tmp files. ## ## -## -## Domain allowed access. -## +## +## Domain to not audit. +## ## # interface(`apache_dontaudit_rw_tmp_files',` - gen_require(` - type httpd_tmp_t; - ') + gen_require(` + type httpd_tmp_t; + ') - dontaudit $1 httpd_tmp_t:file { read write }; + dontaudit $1 httpd_tmp_t:file { read write }; ') ######################################## @@ -1317,17 +1314,14 @@ interface(`apache_cgi_domain',` # interface(`apache_admin',` gen_require(` - attribute httpdcontent; - attribute httpd_script_exec_type; - + attribute httpdcontent, httpd_script_exec_type; type httpd_t, httpd_config_t, httpd_log_t; - type httpd_modules_t, httpd_lock_t; - type httpd_var_run_t, httpd_php_tmp_t; + type httpd_modules_t, httpd_lock_t, httpd_bool_t; + type httpd_var_run_t, httpd_php_tmp_t, httpd_initrc_exec_t; type httpd_suexec_tmp_t, httpd_tmp_t; - type httpd_initrc_exec_t, httpd_bool_t; ') - allow $1 httpd_t:process { getattr ptrace signal_perms }; + allow $1 httpd_t:process { ptrace signal_perms }; ps_process_pattern($1, httpd_t) init_labeled_script_domtrans($1, httpd_initrc_exec_t) @@ -1338,10 +1332,10 @@ interface(`apache_admin',` apache_manage_all_content($1) miscfiles_manage_public_files($1) - files_search_etc($1) + files_list_etc($1) admin_pattern($1, httpd_config_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, httpd_log_t) admin_pattern($1, httpd_modules_t) @@ -1352,26 +1346,22 @@ interface(`apache_admin',` admin_pattern($1, httpd_var_run_t) files_pid_filetrans($1, httpd_var_run_t, file) - kernel_search_proc($1) - allow $1 httpd_t:dir list_dir_perms; - ps_process_pattern($1, httpd_t) - read_lnk_files_pattern($1, httpd_t, httpd_t) - admin_pattern($1, httpdcontent) admin_pattern($1, httpd_script_exec_type) seutil_domtrans_setfiles($1) + files_list_tmp($1) admin_pattern($1, httpd_tmp_t) admin_pattern($1, httpd_php_tmp_t) admin_pattern($1, httpd_suexec_tmp_t) -ifdef(`TODO',` - apache_set_booleans($1, $2, $3, httpd_bool_t ) - seutil_setsebool_role_template($1, $3, $2) - allow httpd_setsebool_t httpd_bool_t:dir list_dir_perms; - allow httpd_setsebool_t httpd_bool_t:file rw_file_perms; -') + ifdef(`TODO',` + apache_set_booleans($1, $2, $3, httpd_bool_t) + seutil_setsebool_role_template($1, $3, $2) + allow httpd_setsebool_t httpd_bool_t:dir list_dir_perms; + allow httpd_setsebool_t httpd_bool_t:file rw_file_perms; + ') ') ######################################## @@ -1380,7 +1370,7 @@ ifdef(`TODO',` ## ## ## -## Domain allowed access. +## Domain to not audit. ## ## # @@ -1390,7 +1380,7 @@ interface(`apache_dontaudit_leaks',` ') dontaudit $1 httpd_t:fifo_file rw_inherited_fifo_file_perms; - dontaudit $1 httpd_t:tcp_socket { read write }; + dontaudit $1 httpd_t:tcp_socket { read write }; dontaudit $1 httpd_t:unix_dgram_socket { read write }; dontaudit $1 httpd_t:unix_stream_socket { read write }; ') diff --git a/policy/modules/services/apache.te b/policy/modules/services/apache.te index 86641dd..300dffb 100644 --- a/policy/modules/services/apache.te +++ b/policy/modules/services/apache.te @@ -21,182 +21,189 @@ policy_module(apache, 2.2.0) selinux_genbool(httpd_bool_t) ## -##

-## Allow Apache to modify public files -## used for public file transfer services. Directories/Files must -## be labeled public_content_rw_t. -##

+##

+## Allow Apache to modify public files +## used for public file transfer services. Directories/Files must +## be labeled public_content_rw_t. +##

##
gen_tunable(allow_httpd_anon_write, false) ## -##

-## Allow Apache to use mod_auth_pam -##

+##

+## Allow Apache to use mod_auth_pam +##

##
gen_tunable(allow_httpd_mod_auth_pam, false) ## -##

-## Allow httpd scripts and modules execmem/execstack -##

+##

+## Allow Apache to use mod_auth_pam +##

+##
+gen_tunable(allow_httpd_mod_auth_ntlm_winbind, false) + +## +##

+## Allow httpd scripts and modules execmem/execstack +##

##
gen_tunable(httpd_execmem, false) ## -##

-## Allow httpd daemon to change system limits -##

+##

+## Allow httpd daemon to change system limits +##

##
gen_tunable(httpd_setrlimit, false) ## -##

-## Allow httpd to use built in scripting (usually php) -##

+##

+## Allow httpd to use built in scripting (usually php) +##

##
gen_tunable(httpd_builtin_scripting, false) ## -##

-## Allow HTTPD scripts and modules to connect to the network using any TCP port. -##

+##

+## Allow HTTPD scripts and modules to connect to the network using any TCP port. +##

##
gen_tunable(httpd_can_network_connect, false) ## -##

-## Allow HTTPD scripts and modules to connect to cobbler over the network. -##

+##

+## Allow HTTPD scripts and modules to connect to cobbler over the network. +##

##
gen_tunable(httpd_can_network_connect_cobbler, false) ## -##

-## Allow HTTPD scripts and modules to connect to databases over the network. -##

+##

+## Allow HTTPD scripts and modules to connect to databases over the network. +##

##
gen_tunable(httpd_can_network_connect_db, false) ## -##

-## Allow httpd to connect to memcache server -##

+##

+## Allow httpd to connect to memcache server +##

##
gen_tunable(httpd_can_network_memcache, false) ## -##

-## Allow httpd to act as a relay -##

+##

+## Allow httpd to act as a relay +##

##
gen_tunable(httpd_can_network_relay, false) ## -##

-## Allow http daemon to send mail -##

+##

+## Allow http daemon to send mail +##

##
gen_tunable(httpd_can_sendmail, false) ## -##

-## Allow http daemon to check spam -##

+##

+## Allow http daemon to check spam +##

##
gen_tunable(httpd_can_check_spam, false) ## -##

-## Allow Apache to communicate with avahi service via dbus -##

+##

+## Allow Apache to communicate with avahi service via dbus +##

##
gen_tunable(httpd_dbus_avahi, false) ## -##

-## Allow httpd to execute cgi scripts -##

+##

+## Allow httpd to execute cgi scripts +##

##
gen_tunable(httpd_enable_cgi, false) ## -##

-## Allow httpd to act as a FTP server by -## listening on the ftp port. -##

+##

+## Allow httpd to act as a FTP server by +## listening on the ftp port. +##

##
gen_tunable(httpd_enable_ftp_server, false) ## -##

-## Allow httpd to read home directories -##

+##

+## Allow httpd to read home directories +##

##
gen_tunable(httpd_enable_homedirs, false) ## -##

-## Allow httpd to read user content -##

+##

+## Allow httpd to read user content +##

##
gen_tunable(httpd_read_user_content, false) ## -##

-## Allow HTTPD to run SSI executables in the same domain as system CGI scripts. -##

+##

+## Allow HTTPD to run SSI executables in the same domain as system CGI scripts. +##

##
gen_tunable(httpd_ssi_exec, false) ## -##

-## Allow Apache to execute tmp content. -##

+##

+## Allow Apache to execute tmp content. +##

##
gen_tunable(httpd_tmp_exec, false) ## -##

-## Unify HTTPD to communicate with the terminal. -## Needed for entering the passphrase for certificates at -## the terminal. -##

+##

+## Unify HTTPD to communicate with the terminal. +## Needed for entering the passphrase for certificates at +## the terminal. +##

##
gen_tunable(httpd_tty_comm, false) ## -##

-## Unify HTTPD handling of all content files. -##

+##

+## Unify HTTPD handling of all content files. +##

##
gen_tunable(httpd_unified, false) ## -##

-## Allow httpd to access cifs file systems -##

+##

+## Allow httpd to access cifs file systems +##

##
gen_tunable(httpd_use_cifs, false) ## -##

-## Allow httpd to run gpg in gpg-web domain -##

+##

+## Allow httpd to run gpg in gpg-web domain +##

##
gen_tunable(httpd_use_gpg, false) ## -##

-## Allow httpd to access nfs file systems -##

+##

+## Allow httpd to access nfs file systems +##

##
gen_tunable(httpd_use_nfs, false) ## -##

-## Allow apache scripts to write to public content. Directories/Files must be labeled public_rw_content_t. -##

+##

+## Allow apache scripts to write to public content. Directories/Files must be labeled public_rw_content_t. +##

##
gen_tunable(allow_httpd_sys_script_anon_write, false) @@ -279,6 +286,13 @@ typeattribute httpd_sys_content_t httpdcontent; # customizable typeattribute httpd_sys_rw_content_t httpdcontent; # customizable typeattribute httpd_sys_ra_content_t httpdcontent; # customizable +# Removal of fastcgi, will cause problems without the following +typealias httpd_sys_script_exec_t alias httpd_fastcgi_script_exec_t; +typealias httpd_sys_content_t alias { httpd_fastcgi_content_t httpd_fastcgi_script_ro_t }; +typealias httpd_sys_rw_content_t alias { httpd_fastcgi_rw_content_t httpd_fastcgi_script_rw_t }; +typealias httpd_sys_ra_content_t alias httpd_fastcgi_script_ra_t; +typealias httpd_sys_script_t alias httpd_fastcgi_script_t; + type httpd_tmp_t; files_tmp_file(httpd_tmp_t) @@ -320,6 +334,9 @@ files_type(httpd_var_lib_t) type httpd_var_run_t; files_pid_file(httpd_var_run_t) +# Removal of fastcgi, will cause problems without the following +typealias httpd_var_run_t alias httpd_fastcgi_var_run_t; + # File Type of squirrelmail attachments type squirrelmail_spool_t; files_tmp_file(squirrelmail_spool_t) @@ -506,22 +523,21 @@ tunable_policy(`allow_httpd_mod_auth_pam',` logging_send_audit_msgs(httpd_t) ') -## -##

-## Allow Apache to use mod_auth_pam -##

-##
-gen_tunable(allow_httpd_mod_auth_ntlm_winbind, false) optional_policy(` -tunable_policy(`allow_httpd_mod_auth_ntlm_winbind',` + tunable_policy(`allow_httpd_mod_auth_ntlm_winbind',` samba_domtrans_winbind_helper(httpd_t) -') + ') ') tunable_policy(`httpd_can_network_connect',` corenet_tcp_connect_all_ports(httpd_t) ') +tunable_policy(`httpd_can_network_connect_db',` + corenet_tcp_connect_mssql_port(httpd_t) + corenet_sendrecv_mssql_client_packets(httpd_t) +') + tunable_policy(`httpd_can_network_memcache',` corenet_tcp_connect_memcache_port(httpd_t) ') @@ -541,6 +557,12 @@ tunable_policy(`httpd_can_network_relay',` corenet_sendrecv_squid_client_packets(httpd_t) ') +tunable_policy(`httpd_execmem',` + allow httpd_t self:process { execmem execstack }; + allow httpd_sys_script_t self:process { execmem execstack }; + allow httpd_suexec_t self:process { execmem execstack }; +') + tunable_policy(`httpd_enable_cgi && httpd_unified',` allow httpd_sys_script_t httpd_sys_content_t:file entrypoint; filetrans_pattern(httpd_sys_script_t, httpd_sys_content_t, httpd_sys_rw_content_t, { file dir lnk_file }) @@ -549,7 +571,7 @@ tunable_policy(`httpd_enable_cgi && httpd_unified',` tunable_policy(`allow_httpd_sys_script_anon_write',` miscfiles_manage_public_files(httpd_sys_script_t) -') +') tunable_policy(`httpd_enable_cgi && httpd_use_nfs',` fs_nfs_domtrans(httpd_t, httpd_sys_script_t) @@ -575,16 +597,12 @@ tunable_policy(`httpd_enable_ftp_server',` corenet_tcp_bind_ftp_port(httpd_t) ') -tunable_policy(`httpd_enable_homedirs',` - userdom_read_user_home_content_files(httpd_t) -') - tunable_policy(`httpd_tmp_exec && httpd_builtin_scripting',` - can_exec(httpd_t, httpd_tmp_t) + can_exec(httpd_t, httpd_tmp_t) ') tunable_policy(`httpd_tmp_exec && httpd_enable_cgi',` - can_exec(httpd_sys_script_t, httpd_tmp_t) + can_exec(httpd_sys_script_t, httpd_tmp_t) ') tunable_policy(`httpd_enable_homedirs && use_nfs_home_dirs',` @@ -723,21 +741,15 @@ optional_policy(` ') optional_policy(` - passenger_domtrans(httpd_t) - passenger_manage_pid_content(httpd_t) - passenger_read_lib_files(httpd_t) + passenger_domtrans(httpd_t) + passenger_manage_pid_content(httpd_t) + passenger_read_lib_files(httpd_t) ') optional_policy(` rpc_search_nfs_state_data(httpd_t) ') -tunable_policy(`httpd_execmem',` - allow httpd_t self:process { execmem execstack }; - allow httpd_sys_script_t self:process { execmem execstack }; - allow httpd_suexec_t self:process { execmem execstack }; -') - optional_policy(` # Allow httpd to work with postgresql postgresql_stream_connect(httpd_t) @@ -745,7 +757,6 @@ optional_policy(` tunable_policy(`httpd_can_network_connect_db',` postgresql_tcp_connect(httpd_t) - postgresql_tcp_connect(httpd_sys_script_t) ') ') @@ -830,28 +841,27 @@ libs_exec_lib_files(httpd_php_t) userdom_use_unpriv_users_fds(httpd_php_t) tunable_policy(`httpd_can_network_connect_db',` - corenet_tcp_connect_mysqld_port(httpd_t) - corenet_sendrecv_mysqld_client_packets(httpd_t) - corenet_tcp_connect_mysqld_port(httpd_sys_script_t) - corenet_sendrecv_mysqld_client_packets(httpd_sys_script_t) - corenet_tcp_connect_mysqld_port(httpd_suexec_t) - corenet_sendrecv_mysqld_client_packets(httpd_suexec_t) - - corenet_tcp_connect_mssql_port(httpd_t) - corenet_sendrecv_mssql_client_packets(httpd_t) - corenet_tcp_connect_mssql_port(httpd_sys_script_t) - corenet_sendrecv_mssql_client_packets(httpd_sys_script_t) - corenet_tcp_connect_mssql_port(httpd_suexec_t) - corenet_sendrecv_mssql_client_packets(httpd_suexec_t) + corenet_tcp_connect_mssql_port(httpd_php_t) + corenet_sendrecv_mssql_client_packets(httpd_php_t) ') optional_policy(` mysql_stream_connect(httpd_php_t) + mysql_rw_db_sockets(httpd_php_t) mysql_read_config(httpd_php_t) + + tunable_policy(`httpd_can_network_connect_db',` + mysql_tcp_connect(httpd_php_t) + ') ') optional_policy(` postgresql_stream_connect(httpd_php_t) + postgresql_unpriv_client(httpd_php_t) + + tunable_policy(`httpd_can_network_connect_db',` + postgresql_tcp_connect(httpd_php_t) + ') ') ######################################## @@ -877,6 +887,10 @@ files_tmp_filetrans(httpd_suexec_t, httpd_suexec_tmp_t, { file dir }) can_exec(httpd_suexec_t, httpd_sys_script_exec_t) +read_files_pattern(httpd_suexec_t, httpd_user_content_t, httpd_user_content_t) +read_files_pattern(httpd_suexec_t, httpd_user_rw_content_t, httpd_user_rw_content_t) +read_files_pattern(httpd_suexec_t, httpd_user_ra_content_t, httpd_user_ra_content_t) + kernel_read_kernel_sysctls(httpd_suexec_t) kernel_list_proc(httpd_suexec_t) kernel_read_proc_symlinks(httpd_suexec_t) @@ -917,11 +931,13 @@ tunable_policy(`httpd_can_network_connect',` corenet_sendrecv_all_client_packets(httpd_suexec_t) ') -read_files_pattern(httpd_suexec_t, httpd_user_content_t, httpd_user_content_t) -read_files_pattern(httpd_suexec_t, httpd_user_rw_content_t, httpd_user_rw_content_t) -read_files_pattern(httpd_suexec_t, httpd_user_ra_content_t, httpd_user_ra_content_t) +tunable_policy(`httpd_can_network_connect_db',` + corenet_tcp_connect_mssql_port(httpd_suexec_t) + corenet_sendrecv_mssql_client_packets(httpd_suexec_t) +') domain_entry_file(httpd_sys_script_t, httpd_sys_content_t) + tunable_policy(`httpd_enable_cgi && httpd_unified',` allow httpd_sys_script_t httpdcontent:file entrypoint; domtrans_pattern(httpd_suexec_t, httpdcontent, httpd_sys_script_t) @@ -930,9 +946,6 @@ tunable_policy(`httpd_enable_cgi && httpd_unified',` manage_sock_files_pattern(httpd_sys_script_t, httpdcontent, httpdcontent) manage_lnk_files_pattern(httpd_sys_script_t, httpdcontent, httpdcontent) ') -tunable_policy(`httpd_enable_cgi',` - domtrans_pattern(httpd_suexec_t, httpd_user_script_t, httpd_user_script_t) -') tunable_policy(`httpd_enable_homedirs && use_nfs_home_dirs',` fs_read_nfs_files(httpd_suexec_t) @@ -961,6 +974,19 @@ optional_policy(` mysql_stream_connect(httpd_suexec_t) mysql_rw_db_sockets(httpd_suexec_t) mysql_read_config(httpd_suexec_t) + + tunable_policy(`httpd_can_network_connect_db',` + mysql_tcp_connect(httpd_suexec_t) + ') +') + +optional_policy(` + postgresql_stream_connect(httpd_suexec_t) + postgresql_unpriv_client(httpd_suexec_t) + + tunable_policy(`httpd_can_network_connect_db',` + postgresql_tcp_connect(httpd_suexec_t) + ') ') ######################################## @@ -1002,9 +1028,14 @@ tunable_policy(`httpd_can_sendmail',` ') optional_policy(` - tunable_policy(`httpd_can_sendmail && httpd_can_check_spam',` - spamassassin_domtrans_client(httpd_t) - ') + tunable_policy(`httpd_can_sendmail && httpd_can_check_spam',` + spamassassin_domtrans_client(httpd_t) + ') +') + +tunable_policy(`httpd_can_network_connect_db',` + corenet_tcp_connect_mssql_port(httpd_sys_script_t) + corenet_sendrecv_mssql_client_packets(httpd_sys_script_t) ') fs_cifs_entry_type(httpd_sys_script_t) @@ -1042,7 +1073,7 @@ tunable_policy(`httpd_enable_cgi && httpd_can_network_connect',` ') tunable_policy(`httpd_enable_homedirs',` - userdom_read_user_home_content_files(httpd_sys_script_t) + userdom_search_user_home_dirs(httpd_sys_script_t) ') tunable_policy(`httpd_enable_homedirs && use_nfs_home_dirs',` @@ -1050,6 +1081,10 @@ tunable_policy(`httpd_enable_homedirs && use_nfs_home_dirs',` fs_read_nfs_symlinks(httpd_sys_script_t) ') +tunable_policy(`httpd_read_user_content',` + userdom_read_user_home_content_files(httpd_sys_script_t) +') + tunable_policy(`httpd_use_cifs',` fs_manage_cifs_dirs(httpd_sys_script_t) fs_manage_cifs_files(httpd_sys_script_t) @@ -1073,10 +1108,19 @@ optional_policy(` mysql_stream_connect(httpd_sys_script_t) mysql_rw_db_sockets(httpd_sys_script_t) mysql_read_config(httpd_sys_script_t) + + tunable_policy(`httpd_can_network_connect_db',` + mysql_tcp_connect(httpd_sys_script_t) + ') ') optional_policy(` postgresql_stream_connect(httpd_sys_script_t) + postgresql_unpriv_client(httpd_sys_script_t) + + tunable_policy(`httpd_can_network_connect_db',` + postgresql_tcp_connect(httpd_sys_script_t) + ') ') ######################################## @@ -1136,19 +1180,7 @@ tunable_policy(`httpd_enable_homedirs',` ') tunable_policy(`httpd_read_user_content',` - userdom_read_user_home_content_files(httpd_user_script_t) - userdom_read_user_home_content_files(httpd_suexec_t) -') - -tunable_policy(`httpd_read_user_content && httpd_builtin_scripting',` userdom_read_user_home_content_files(httpd_t) + userdom_read_user_home_content_files(httpd_suexec_t) + userdom_read_user_home_content_files(httpd_user_script_t) ') - -# Removal of fastcgi, will cause problems without the following -typealias httpd_sys_script_exec_t alias httpd_fastcgi_script_exec_t; -typealias httpd_sys_content_t alias { httpd_fastcgi_content_t httpd_fastcgi_script_ro_t }; -typealias httpd_sys_rw_content_t alias { httpd_fastcgi_rw_content_t httpd_fastcgi_script_rw_t }; -typealias httpd_sys_ra_content_t alias httpd_fastcgi_script_ra_t; -typealias httpd_sys_script_t alias httpd_fastcgi_script_t; -typealias httpd_var_run_t alias httpd_fastcgi_var_run_t; - diff --git a/policy/modules/services/apcupsd.if b/policy/modules/services/apcupsd.if index e342775..d3451b8 100644 --- a/policy/modules/services/apcupsd.if +++ b/policy/modules/services/apcupsd.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run apcupsd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`apcupsd_domtrans',` @@ -83,9 +83,9 @@ interface(`apcupsd_read_log',` ## apcupsd log files. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`apcupsd_append_log',` @@ -103,9 +103,9 @@ interface(`apcupsd_append_log',` ## Execute a domain transition to run httpd_apcupsd_cgi_script. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`apcupsd_cgi_script_domtrans',` @@ -140,10 +140,8 @@ interface(`apcupsd_cgi_script_domtrans',` # interface(`apcupsd_admin',` gen_require(` - type apcupsd_t, apcupsd_tmp_t; - type apcupsd_log_t, apcupsd_lock_t; - type apcupsd_var_run_t; - type apcupsd_initrc_exec_t; + type apcupsd_t, apcupsd_tmp_t, apcupsd_log_t; + type apcupsd_lock_t, apcupsd_var_run_t, apcupsd_initrc_exec_t; ') allow $1 apcupsd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/apm.if b/policy/modules/services/apm.if index 1ea99b2..49e6c74 100644 --- a/policy/modules/services/apm.if +++ b/policy/modules/services/apm.if @@ -52,7 +52,7 @@ interface(`apm_write_pipes',` type apmd_t; ') - allow $1 apmd_t:fifo_file write; + allow $1 apmd_t:fifo_file write_fifo_file_perms; ') ######################################## @@ -89,7 +89,7 @@ interface(`apm_append_log',` ') logging_search_logs($1) - allow $1 apmd_log_t:file append; + allow $1 apmd_log_t:file append_file_perms; ') ######################################## @@ -108,6 +108,5 @@ interface(`apm_stream_connect',` ') files_search_pids($1) - allow $1 apmd_var_run_t:sock_file write; - allow $1 apmd_t:unix_stream_socket connectto; + stream_connect_pattern($1, apmd_var_run_t, apmd_var_run_t, apmd_t) ') diff --git a/policy/modules/services/apm.te b/policy/modules/services/apm.te index c7cba00..62bc936 100644 --- a/policy/modules/services/apm.te +++ b/policy/modules/services/apm.te @@ -4,6 +4,7 @@ policy_module(apm, 1.11.0) # # Declarations # + type apmd_t; type apmd_exec_t; init_daemon_domain(apmd_t, apmd_exec_t) diff --git a/policy/modules/services/automount.if b/policy/modules/services/automount.if index f384848..a43e006 100644 --- a/policy/modules/services/automount.if +++ b/policy/modules/services/automount.if @@ -29,7 +29,6 @@ interface(`automount_domtrans',` ## ## # -# interface(`automount_signal',` gen_require(` type automount_t; @@ -124,7 +123,7 @@ interface(`automount_dontaudit_getattr_tmp_dirs',` type automount_tmp_t; ') - dontaudit $1 automount_tmp_t:dir getattr; + dontaudit $1 automount_tmp_t:dir getattr_dir_perms; ') ######################################## diff --git a/policy/modules/services/avahi.if b/policy/modules/services/avahi.if index e51354d..11e1ba9 100644 --- a/policy/modules/services/avahi.if +++ b/policy/modules/services/avahi.if @@ -151,8 +151,7 @@ interface(`avahi_dontaudit_search_pid',` # interface(`avahi_admin',` gen_require(` - type avahi_t, avahi_var_run_t; - type avahi_initrc_exec_t; + type avahi_t, avahi_var_run_t, avahi_initrc_exec_t; ') allow $1 avahi_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/avahi.te b/policy/modules/services/avahi.te index 803adbf..52dcf09 100644 --- a/policy/modules/services/avahi.te +++ b/policy/modules/services/avahi.te @@ -40,7 +40,7 @@ files_var_lib_filetrans(avahi_t, avahi_var_lib_t, { dir file }) manage_dirs_pattern(avahi_t, avahi_var_run_t, avahi_var_run_t) manage_files_pattern(avahi_t, avahi_var_run_t, avahi_var_run_t) manage_sock_files_pattern(avahi_t, avahi_var_run_t, avahi_var_run_t) -allow avahi_t avahi_var_run_t:dir setattr; +allow avahi_t avahi_var_run_t:dir setattr_dir_perms; files_pid_filetrans(avahi_t, avahi_var_run_t, { dir file }) kernel_read_system_state(avahi_t) diff --git a/policy/modules/services/bind.if b/policy/modules/services/bind.if index 71f5514..7e9d2fb 100644 --- a/policy/modules/services/bind.if +++ b/policy/modules/services/bind.if @@ -186,7 +186,7 @@ interface(`bind_write_config',` ') write_files_pattern($1, named_conf_t, named_conf_t) - allow $1 named_conf_t:file setattr; + allow $1 named_conf_t:file setattr_file_perms; ') ######################################## @@ -266,7 +266,7 @@ interface(`bind_setattr_pid_dirs',` type named_var_run_t; ') - allow $1 named_var_run_t:dir setattr; + allow $1 named_var_run_t:dir setattr_dir_perms; ') ######################################## @@ -284,7 +284,7 @@ interface(`bind_setattr_zone_dirs',` type named_zone_t; ') - allow $1 named_zone_t:dir setattr; + allow $1 named_zone_t:dir setattr_dir_perms; ') ######################################## @@ -380,10 +380,9 @@ interface(`bind_udp_chat_named',` interface(`bind_admin',` gen_require(` type named_t, named_tmp_t, named_log_t; - type named_conf_t, named_var_run_t; - type named_cache_t, named_zone_t; + type named_conf_t, named_var_run_t, named_cache_t; + type named_zone_t, named_initrc_exec_t; type dnssec_t, ndc_t, named_keytab_t; - type named_initrc_exec_t; ') allow $1 named_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/bind.te b/policy/modules/services/bind.te index ece1f1f..0bde225 100644 --- a/policy/modules/services/bind.te +++ b/policy/modules/services/bind.te @@ -6,10 +6,10 @@ policy_module(bind, 1.11.0) # ## -##

-## Allow BIND to write the master zone files. -## Generally this is used for dynamic DNS or zone transfers. -##

+##

+## Allow BIND to write the master zone files. +## Generally this is used for dynamic DNS or zone transfers. +##

##
gen_tunable(named_write_master_zones, false) @@ -202,12 +202,12 @@ allow ndc_t self:tcp_socket create_socket_perms; allow ndc_t self:netlink_route_socket r_netlink_socket_perms; allow ndc_t dnssec_t:file read_file_perms; -allow ndc_t dnssec_t:lnk_file { getattr read }; +allow ndc_t dnssec_t:lnk_file read_lnk_file_perms; stream_connect_pattern(ndc_t, named_var_run_t, named_var_run_t, named_t) allow ndc_t named_conf_t:file read_file_perms; -allow ndc_t named_conf_t:lnk_file { getattr read }; +allow ndc_t named_conf_t:lnk_file read_lnk_file_perms; allow ndc_t named_zone_t:dir search_dir_perms; @@ -245,7 +245,7 @@ term_dontaudit_use_console(ndc_t) # for /etc/rndc.key ifdef(`distro_redhat',` - allow ndc_t named_conf_t:dir search; + allow ndc_t named_conf_t:dir search_dir_perms; ') optional_policy(` diff --git a/policy/modules/services/bitlbee.if b/policy/modules/services/bitlbee.if index ed4e7a2..a64d94d 100644 --- a/policy/modules/services/bitlbee.if +++ b/policy/modules/services/bitlbee.if @@ -6,7 +6,7 @@ ## ## ## -## Domain allowed accesss. +## Domain allowed accesss. ## ## # diff --git a/policy/modules/services/bitlbee.te b/policy/modules/services/bitlbee.te index e74f728..2ba2d1f 100644 --- a/policy/modules/services/bitlbee.te +++ b/policy/modules/services/bitlbee.te @@ -26,7 +26,7 @@ files_type(bitlbee_var_t) # # Local policy # -# + allow bitlbee_t self:capability { setgid setuid }; allow bitlbee_t self:udp_socket create_socket_perms; diff --git a/policy/modules/services/bluetooth.if b/policy/modules/services/bluetooth.if index 328302d..fa57a6f 100644 --- a/policy/modules/services/bluetooth.if +++ b/policy/modules/services/bluetooth.if @@ -14,6 +14,7 @@ ## User domain for the role ## ## +## # interface(`bluetooth_role',` gen_require(` @@ -27,7 +28,7 @@ interface(`bluetooth_role',` # allow ps to show cdrecord and allow the user to kill it ps_process_pattern($2, bluetooth_helper_t) - allow $2 bluetooth_helper_t:process signal; + allow $2 bluetooth_helper_t:process { ptrace signal_perms }; manage_dirs_pattern($2, bluetooth_helper_tmp_t, bluetooth_helper_tmp_t) manage_files_pattern($2, bluetooth_helper_tmp_t, bluetooth_helper_tmp_t) @@ -91,7 +92,7 @@ interface(`bluetooth_read_config',` type bluetooth_conf_t; ') - allow $1 bluetooth_conf_t:file { getattr read ioctl }; + allow $1 bluetooth_conf_t:file read_file_perms; ') ######################################## @@ -178,7 +179,7 @@ interface(`bluetooth_run_helper',` ######################################## ## -## Read bluetooth helper state files. +## Do not audit attempts to read bluetooth helper state files. ## ## ## @@ -191,8 +192,8 @@ interface(`bluetooth_dontaudit_read_helper_state',` type bluetooth_helper_t; ') - dontaudit $1 bluetooth_helper_t:dir search; - dontaudit $1 bluetooth_helper_t:file { read getattr }; + dontaudit $1 bluetooth_helper_t:dir search_dir_perms; + dontaudit $1 bluetooth_helper_t:file read_file_perms; ') ######################################## @@ -215,9 +216,8 @@ interface(`bluetooth_dontaudit_read_helper_state',` interface(`bluetooth_admin',` gen_require(` type bluetooth_t, bluetooth_tmp_t, bluetooth_lock_t; - type bluetooth_var_lib_t, bluetooth_var_run_t; + type bluetooth_var_lib_t, bluetooth_var_run_t, bluetooth_initrc_exec_t; type bluetooth_conf_t, bluetooth_conf_rw_t; - type bluetooth_initrc_exec_t; ') allow $1 bluetooth_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/bluetooth.te b/policy/modules/services/bluetooth.te index 215b86b..08afbb9 100644 --- a/policy/modules/services/bluetooth.te +++ b/policy/modules/services/bluetooth.te @@ -4,6 +4,7 @@ policy_module(bluetooth, 3.3.0) # # Declarations # + type bluetooth_t; type bluetooth_exec_t; init_daemon_domain(bluetooth_t, bluetooth_exec_t) diff --git a/policy/modules/services/boinc.if b/policy/modules/services/boinc.if index 272bf74..fa9b95a 100644 --- a/policy/modules/services/boinc.if +++ b/policy/modules/services/boinc.if @@ -1,4 +1,3 @@ - ## policy for boinc ######################################## @@ -6,9 +5,9 @@ ## Execute a domain transition to run boinc. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`boinc_domtrans',` @@ -21,20 +20,20 @@ interface(`boinc_domtrans',` ####################################### ## -## Execute boinc server in the boinc domain. +## Execute boinc server in the boinc domain. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`boinc_initrc_domtrans',` - gen_require(` - type boinc_initrc_exec_t; - ') + gen_require(` + type boinc_initrc_exec_t; + ') - init_labeled_script_domtrans($1, boinc_initrc_exec_t) + init_labeled_script_domtrans($1, boinc_initrc_exec_t) ') ######################################## @@ -72,7 +71,7 @@ interface(`boinc_read_lib_files',` ') files_search_var_lib($1) - read_files_pattern($1, boinc_var_lib_t, boinc_var_lib_t) + read_files_pattern($1, boinc_var_lib_t, boinc_var_lib_t) ') ######################################## @@ -92,7 +91,7 @@ interface(`boinc_manage_lib_files',` ') files_search_var_lib($1) - manage_files_pattern($1, boinc_var_lib_t, boinc_var_lib_t) + manage_files_pattern($1, boinc_var_lib_t, boinc_var_lib_t) ') ######################################## @@ -110,9 +109,10 @@ interface(`boinc_manage_var_lib',` type boinc_var_lib_t; ') - manage_dirs_pattern($1, boinc_var_lib_t, boinc_var_lib_t) - manage_files_pattern($1, boinc_var_lib_t, boinc_var_lib_t) - manage_lnk_files_pattern($1, boinc_var_lib_t, boinc_var_lib_t) + files_search_var_lib($1) + manage_dirs_pattern($1, boinc_var_lib_t, boinc_var_lib_t) + manage_files_pattern($1, boinc_var_lib_t, boinc_var_lib_t) + manage_lnk_files_pattern($1, boinc_var_lib_t, boinc_var_lib_t) ') ######################################## @@ -134,8 +134,7 @@ interface(`boinc_manage_var_lib',` # interface(`boinc_admin',` gen_require(` - type boinc_t, boinc_initrc_exec_t; - type boinc_var_lib_t; + type boinc_t, boinc_initrc_exec_t, boinc_var_lib_t; ') allow $1 boinc_t:process { ptrace signal_perms }; @@ -145,7 +144,7 @@ interface(`boinc_admin',` domain_system_change_exemption($1) role_transition $2 boinc_initrc_exec_t system_r; allow $2 system_r; - + files_list_var_lib($1) admin_pattern($1, boinc_var_lib_t) ') diff --git a/policy/modules/services/boinc.te b/policy/modules/services/boinc.te index aaf0ba3..c9622ef 100644 --- a/policy/modules/services/boinc.te +++ b/policy/modules/services/boinc.te @@ -1,4 +1,4 @@ -policy_module(boinc,1.0.0) +policy_module(boinc, 1.0.0) ######################################## # @@ -27,6 +27,9 @@ role system_r types boinc_project_t; permissive boinc_project_t; +type boinc_project_tmp_t; +files_tmp_file(boinc_project_tmp_t) + type boinc_project_var_lib_t; files_type(boinc_project_var_lib_t) @@ -49,15 +52,15 @@ manage_files_pattern(boinc_t, boinc_tmp_t, boinc_tmp_t) files_tmp_filetrans(boinc_t, boinc_tmp_t, { dir file }) manage_files_pattern(boinc_t, boinc_tmpfs_t, boinc_tmpfs_t) -fs_tmpfs_filetrans(boinc_t, boinc_tmpfs_t,file) +fs_tmpfs_filetrans(boinc_t, boinc_tmpfs_t, file) -exec_files_pattern(boinc_t, boinc_var_lib_t, boinc_var_lib_t) -manage_dirs_pattern(boinc_t, boinc_var_lib_t, boinc_var_lib_t) -manage_files_pattern(boinc_t, boinc_var_lib_t, boinc_var_lib_t) -filetrans_pattern(boinc_t, boinc_var_lib_t, boinc_project_var_lib_t, { dir }) +exec_files_pattern(boinc_t, boinc_var_lib_t, boinc_var_lib_t) +manage_dirs_pattern(boinc_t, boinc_var_lib_t, boinc_var_lib_t) +manage_files_pattern(boinc_t, boinc_var_lib_t, boinc_var_lib_t) +filetrans_pattern(boinc_t, boinc_var_lib_t, boinc_project_var_lib_t, dir) -manage_dirs_pattern(boinc_t, boinc_project_var_lib_t, boinc_project_var_lib_t) -manage_files_pattern(boinc_t, boinc_project_var_lib_t, boinc_project_var_lib_t) +manage_dirs_pattern(boinc_t, boinc_project_var_lib_t, boinc_project_var_lib_t) +manage_files_pattern(boinc_t, boinc_project_var_lib_t, boinc_project_var_lib_t) kernel_read_system_state(boinc_t) @@ -120,16 +123,20 @@ allow boinc_project_t self:process { execmem execstack }; allow boinc_project_t self:fifo_file rw_fifo_file_perms; +manage_dirs_pattern(boinc_project_t, boinc_project_tmp_t, boinc_project_tmp_t) +manage_files_pattern(boinc_project_t, boinc_project_tmp_t, boinc_project_tmp_t) +files_tmp_filetrans(boinc_project_t, boinc_project_tmp_t, { dir file }) + allow boinc_project_t boinc_project_var_lib_t:file entrypoint; -exec_files_pattern(boinc_project_t, boinc_project_var_lib_t, boinc_project_var_lib_t) -manage_dirs_pattern(boinc_project_t, boinc_project_var_lib_t, boinc_project_var_lib_t) -manage_files_pattern(boinc_project_t, boinc_project_var_lib_t, boinc_project_var_lib_t) +exec_files_pattern(boinc_project_t, boinc_project_var_lib_t, boinc_project_var_lib_t) +manage_dirs_pattern(boinc_project_t, boinc_project_var_lib_t, boinc_project_var_lib_t) +manage_files_pattern(boinc_project_t, boinc_project_var_lib_t, boinc_project_var_lib_t) files_var_lib_filetrans(boinc_project_t, boinc_project_var_lib_t, { file dir }) allow boinc_project_t boinc_project_var_lib_t:file execmod; allow boinc_project_t boinc_t:shm rw_shm_perms; -allow boinc_project_t boinc_tmpfs_t:file { read write }; +allow boinc_project_t boinc_tmpfs_t:file rw_inherited_file_perms; list_dirs_pattern(boinc_project_t, boinc_var_lib_t, boinc_var_lib_t) rw_files_pattern(boinc_project_t, boinc_var_lib_t, boinc_var_lib_t) @@ -144,10 +151,16 @@ corecmd_exec_shell(boinc_project_t) corenet_tcp_connect_boinc_port(boinc_project_t) +dev_read_rand(boinc_project_t) dev_read_urand(boinc_project_t) +dev_read_sysfs(boinc_project_t) dev_rw_xserver_misc(boinc_project_t) files_read_etc_files(boinc_project_t) +miscfiles_read_fonts(boinc_project_t) miscfiles_read_localization(boinc_project_t) +optional_policy(` + java_exec(boinc_project_t) +') diff --git a/policy/modules/services/bugzilla.if b/policy/modules/services/bugzilla.if index 922c4ba..3964548 100644 --- a/policy/modules/services/bugzilla.if +++ b/policy/modules/services/bugzilla.if @@ -57,10 +57,9 @@ interface(`bugzilla_dontaudit_rw_script_stream_sockets',` # interface(`bugzilla_admin',` gen_require(` - type httpd_bugzilla_script_t; - type httpd_bugzilla_content_t, httpd_bugzilla_ra_content_t; - type httpd_bugzilla_rw_content_t, httpd_bugzilla_tmp_t; - type httpd_bugzilla_script_exec_t, httpd_bugzilla_htaccess_t; + type httpd_bugzilla_script_t, httpd_bugzilla_content_t, httpd_bugzilla_ra_content_t; + type httpd_bugzilla_rw_content_t, httpd_bugzilla_tmp_t, httpd_bugzilla_script_exec_t; + type httpd_bugzilla_htaccess_t; ') allow $1 httpd_bugzilla_script_t:process { ptrace signal_perms }; @@ -69,9 +68,9 @@ interface(`bugzilla_admin',` files_list_tmp($1) admin_pattern($1, httpd_bugzilla_tmp_t) - files_search_var_lib(httpd_bugzilla_script_t) + files_list_var_lib(httpd_bugzilla_script_t) - apache_search_sys_content($1) + apache_list_sys_content($1) admin_pattern($1, httpd_bugzilla_script_exec_t) admin_pattern($1, httpd_bugzilla_script_t) admin_pattern($1, httpd_bugzilla_content_t) diff --git a/policy/modules/services/bugzilla.te b/policy/modules/services/bugzilla.te index d31736b..c63c8fa 100644 --- a/policy/modules/services/bugzilla.te +++ b/policy/modules/services/bugzilla.te @@ -53,4 +53,3 @@ optional_policy(` optional_policy(` postgresql_stream_connect(httpd_bugzilla_script_t) ') - diff --git a/policy/modules/services/cachefilesd.if b/policy/modules/services/cachefilesd.if index 89d19e0..3b41945 100644 --- a/policy/modules/services/cachefilesd.if +++ b/policy/modules/services/cachefilesd.if @@ -14,7 +14,6 @@ # # Define the policy interface for the CacheFiles userspace management daemon. # - ## policy for cachefilesd ######################################## @@ -22,9 +21,9 @@ ## Execute a domain transition to run cachefilesd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`cachefilesd_domtrans',` @@ -32,10 +31,5 @@ interface(`cachefilesd_domtrans',` type cachefilesd_t, cachefilesd_exec_t; ') - domain_auto_trans($1,cachefilesd_exec_t,cachefilesd_t) - - allow $1 cachefilesd_t:fd use; - allow cachefilesd_t $1:fd use; - allow cachefilesd_t $1:fifo_file rw_file_perms; - allow cachefilesd_t $1:process sigchld; + domtrans_pattern($1, cachefilesd_exec_t, cachefilesd_t) ') diff --git a/policy/modules/services/cachefilesd.te b/policy/modules/services/cachefilesd.te index e67f987..575c16e 100644 --- a/policy/modules/services/cachefilesd.te +++ b/policy/modules/services/cachefilesd.te @@ -17,7 +17,7 @@ # cache, on behalf of the processes accessing the cache through a network # filesystem such as NFS # -policy_module(cachefilesd,1.0.17) +policy_module(cachefilesd, 1.0.17) ############################################################################### # @@ -42,7 +42,6 @@ dev_node(cachefiles_dev_t) # type cachefilesd_t; type cachefilesd_exec_t; -domain_type(cachefilesd_t) init_daemon_domain(cachefilesd_t, cachefilesd_exec_t) # @@ -78,36 +77,33 @@ rpm_use_script_fds(cachefilesd_t) # Check in /usr/share/selinux/devel/include/ for macros to use instead of allow # rules. # -allow cachefilesd_t self : capability { setuid setgid sys_admin dac_override }; - -# Basic access -files_read_etc_files(cachefilesd_t) -libs_use_ld_so(cachefilesd_t) -libs_use_shared_libs(cachefilesd_t) -miscfiles_read_localization(cachefilesd_t) -logging_send_syslog_msg(cachefilesd_t) -init_dontaudit_use_script_ptys(cachefilesd_t) -term_dontaudit_use_generic_ptys(cachefilesd_t) -term_dontaudit_getattr_unallocated_ttys(cachefilesd_t) +allow cachefilesd_t self:capability { setuid setgid sys_admin dac_override }; # Allow manipulation of pid file allow cachefilesd_t cachefilesd_var_run_t:file create_file_perms; -manage_files_pattern(cachefilesd_t,cachefilesd_var_run_t, cachefilesd_var_run_t) -manage_dirs_pattern(cachefilesd_t,cachefilesd_var_run_t, cachefilesd_var_run_t) -files_pid_file(cachefilesd_var_run_t) -files_pid_filetrans(cachefilesd_t,cachefilesd_var_run_t,file) +manage_files_pattern(cachefilesd_t, cachefilesd_var_run_t, cachefilesd_var_run_t) +manage_dirs_pattern(cachefilesd_t, cachefilesd_var_run_t, cachefilesd_var_run_t) +files_pid_filetrans(cachefilesd_t, cachefilesd_var_run_t, file) files_create_as_is_all_files(cachefilesd_t) # Allow access to cachefiles device file -allow cachefilesd_t cachefiles_dev_t : chr_file rw_file_perms; +allow cachefilesd_t cachefiles_dev_t:chr_file rw_file_perms; # Allow access to cache superstructure -allow cachefilesd_t cachefiles_var_t : dir { rw_dir_perms rmdir }; -allow cachefilesd_t cachefiles_var_t : file { getattr rename unlink }; +allow cachefilesd_t cachefiles_var_t:dir { rw_dir_perms delete_dir_perms }; +allow cachefilesd_t cachefiles_var_t:file { rename delete_file_perms }; # Permit statfs on the backing filesystem fs_getattr_xattr_fs(cachefilesd_t) +# Basic access +files_read_etc_files(cachefilesd_t) +miscfiles_read_localization(cachefilesd_t) +logging_send_syslog_msg(cachefilesd_t) +init_dontaudit_use_script_ptys(cachefilesd_t) +term_dontaudit_use_generic_ptys(cachefilesd_t) +term_dontaudit_getattr_unallocated_ttys(cachefilesd_t) + ############################################################################### # # When cachefilesd invokes the kernel module to begin caching, it has to tell @@ -119,14 +115,14 @@ fs_getattr_xattr_fs(cachefilesd_t) # (1) the security context used by the module to access files in the cache, # as set by the 'secctx' command in /etc/cachefilesd.conf, and # -allow cachefilesd_t cachefiles_kernel_t : kernel_service { use_as_override }; +allow cachefilesd_t cachefiles_kernel_t:kernel_service { use_as_override }; # # (2) the label that will be assigned to new files and directories created in # the cache by the module, which will be the same as the label on the # directory pointed to by the 'dir' command. # -allow cachefilesd_t cachefiles_var_t : kernel_service { create_files_as }; +allow cachefilesd_t cachefiles_var_t:kernel_service { create_files_as }; ############################################################################### # @@ -136,11 +132,12 @@ allow cachefilesd_t cachefiles_var_t : kernel_service { create_files_as }; # cache. # allow cachefiles_kernel_t self:capability { dac_override dac_read_search }; -allow cachefiles_kernel_t initrc_t:process sigchld; -manage_dirs_pattern(cachefiles_kernel_t,cachefiles_var_t, cachefiles_var_t) -manage_files_pattern(cachefiles_kernel_t,cachefiles_var_t, cachefiles_var_t) +manage_dirs_pattern(cachefiles_kernel_t, cachefiles_var_t, cachefiles_var_t) +manage_files_pattern(cachefiles_kernel_t, cachefiles_var_t, cachefiles_var_t) fs_getattr_xattr_fs(cachefiles_kernel_t) dev_search_sysfs(cachefiles_kernel_t) + +init_sigchld_script(cachefiles_kernel_t) diff --git a/policy/modules/services/canna.te b/policy/modules/services/canna.te index a0dfd2f..d60e2bf 100644 --- a/policy/modules/services/canna.te +++ b/policy/modules/services/canna.te @@ -34,7 +34,7 @@ allow canna_t self:unix_dgram_socket create_stream_socket_perms; allow canna_t self:tcp_socket create_stream_socket_perms; manage_files_pattern(canna_t, canna_log_t, canna_log_t) -allow canna_t canna_log_t:dir setattr; +allow canna_t canna_log_t:dir setattr_dir_perms; logging_log_filetrans(canna_t, canna_log_t, { file dir }) manage_dirs_pattern(canna_t, canna_var_lib_t, canna_var_lib_t) diff --git a/policy/modules/services/ccs.if b/policy/modules/services/ccs.if index 6ee2cc8..3105b09 100644 --- a/policy/modules/services/ccs.if +++ b/policy/modules/services/ccs.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run ccs. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`ccs_domtrans',` diff --git a/policy/modules/services/ccs.te b/policy/modules/services/ccs.te index bffe6b6..8d7e14e 100644 --- a/policy/modules/services/ccs.te +++ b/policy/modules/services/ccs.te @@ -61,7 +61,7 @@ manage_dirs_pattern(ccs_t, ccs_var_lib_t, ccs_var_lib_t) manage_files_pattern(ccs_t, ccs_var_lib_t, ccs_var_lib_t) files_var_lib_filetrans(ccs_t, ccs_var_lib_t, { file dir }) -allow ccs_t ccs_var_log_t:dir setattr; +allow ccs_t ccs_var_log_t:dir setattr_dir_perms; manage_files_pattern(ccs_t, ccs_var_log_t, ccs_var_log_t) manage_sock_files_pattern(ccs_t, ccs_var_log_t, ccs_var_log_t) logging_log_filetrans(ccs_t, ccs_var_log_t, { sock_file file dir }) @@ -107,7 +107,7 @@ sysnet_dns_name_resolve(ccs_t) userdom_manage_unpriv_user_shared_mem(ccs_t) userdom_manage_unpriv_user_semaphores(ccs_t) -ifdef(`hide_broken_symptoms', ` +ifdef(`hide_broken_symptoms',` corecmd_dontaudit_write_bin_dirs(ccs_t) files_manage_isid_type_files(ccs_t) ') diff --git a/policy/modules/services/certmaster.if b/policy/modules/services/certmaster.if index fa62787..ffd0da5 100644 --- a/policy/modules/services/certmaster.if +++ b/policy/modules/services/certmaster.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run certmaster. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`certmaster_domtrans',` @@ -108,7 +108,7 @@ interface(`certmaster_manage_log',` ## ## ## -## The role to be allowed to manage the syslog domain. +## Role allowed access. ## ## ## @@ -116,8 +116,7 @@ interface(`certmaster_manage_log',` interface(`certmaster_admin',` gen_require(` type certmaster_t, certmaster_var_run_t, certmaster_var_lib_t; - type certmaster_etc_rw_t, certmaster_var_log_t; - type certmaster_initrc_exec_t; + type certmaster_etc_rw_t, certmaster_var_log_t, certmaster_initrc_exec_t; ') allow $1 certmaster_t:process { ptrace signal_perms }; @@ -129,8 +128,8 @@ interface(`certmaster_admin',` allow $2 system_r; files_list_etc($1) - miscfiles_manage_generic_cert_dirs($1) - miscfiles_manage_generic_cert_files($1) + miscfiles_manage_generic_cert_dirs($1) + miscfiles_manage_generic_cert_files($1) admin_pattern($1, certmaster_etc_rw_t) diff --git a/policy/modules/services/certmaster.te b/policy/modules/services/certmaster.te index 4aef864..dbfd0a6 100644 --- a/policy/modules/services/certmaster.te +++ b/policy/modules/services/certmaster.te @@ -43,12 +43,12 @@ files_var_lib_filetrans(certmaster_t, certmaster_var_lib_t, { file dir }) # log files manage_files_pattern(certmaster_t, certmaster_var_log_t, certmaster_var_log_t) -logging_log_filetrans(certmaster_t, certmaster_var_log_t, file ) +logging_log_filetrans(certmaster_t, certmaster_var_log_t, file) # pid file manage_files_pattern(certmaster_t, certmaster_var_run_t, certmaster_var_run_t) manage_sock_files_pattern(certmaster_t, certmaster_var_run_t, certmaster_var_run_t) -files_pid_filetrans(certmaster_t ,certmaster_var_run_t, { file sock_file }) +files_pid_filetrans(certmaster_t, certmaster_var_run_t, { file sock_file }) # read meminfo kernel_read_system_state(certmaster_t) diff --git a/policy/modules/services/certmonger.if b/policy/modules/services/certmonger.if index 7a6e5ba..d664be8 100644 --- a/policy/modules/services/certmonger.if +++ b/policy/modules/services/certmonger.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run certmonger. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`certmonger_domtrans',` @@ -166,9 +166,9 @@ interface(`certmonger_admin',` role_transition $2 certmonger_initrc_exec_t system_r; allow $2 system_r; - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, certmonger_var_lib_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, certmonger_var_run_t) ') diff --git a/policy/modules/services/certmonger.te b/policy/modules/services/certmonger.te index 1a65b5e..1c87fb3 100644 --- a/policy/modules/services/certmonger.te +++ b/policy/modules/services/certmonger.te @@ -32,7 +32,7 @@ allow certmonger_t self:netlink_route_socket r_netlink_socket_perms; manage_dirs_pattern(certmonger_t, certmonger_var_lib_t, certmonger_var_lib_t) manage_files_pattern(certmonger_t, certmonger_var_lib_t, certmonger_var_lib_t) -files_var_lib_filetrans(certmonger_t, certmonger_var_lib_t, { file dir } ) +files_var_lib_filetrans(certmonger_t, certmonger_var_lib_t, { file dir }) manage_dirs_pattern(certmonger_t, certmonger_var_run_t, certmonger_var_run_t) manage_files_pattern(certmonger_t, certmonger_var_run_t, certmonger_var_run_t) diff --git a/policy/modules/services/cgroup.if b/policy/modules/services/cgroup.if index d020c93..e5cbcef 100644 --- a/policy/modules/services/cgroup.if +++ b/policy/modules/services/cgroup.if @@ -6,9 +6,9 @@ ## CG Clear. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`cgroup_domtrans_cgclear',` @@ -26,9 +26,9 @@ interface(`cgroup_domtrans_cgclear',` ## CG config parser. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`cgroup_domtrans_cgconfig',` @@ -65,9 +65,9 @@ interface(`cgroup_initrc_domtrans_cgconfig',` ## CG rules engine daemon. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`cgroup_domtrans_cgred',` @@ -182,10 +182,10 @@ interface(`cgroup_admin',` admin_pattern($1, cgconfig_etc_t) admin_pattern($1, cgrules_etc_t) - files_search_etc($1) + files_list_etc($1) admin_pattern($1, cgred_var_run_t) - files_search_pids($1) + files_list_pids($1) cgroup_initrc_domtrans_cgconfig($1) domain_system_change_exemption($1) diff --git a/policy/modules/services/chronyd.if b/policy/modules/services/chronyd.if index 5a98145..2ede737 100644 --- a/policy/modules/services/chronyd.if +++ b/policy/modules/services/chronyd.if @@ -25,7 +25,7 @@ interface(`chronyd_domtrans',` ## ## ## -## Domain allowed access. +## Domain allowed to transition. ## ## # @@ -151,10 +151,9 @@ interface(`chronyd_append_keys',` # interface(`chronyd_admin',` gen_require(` - type chronyd_t, chronyd_var_log_t; - type chronyd_var_run_t, chronyd_var_lib_t; - type chronyd_tmpfs_t; - type chronyd_initrc_exec_t, chronyd_keys_t; + type chronyd_t, chronyd_var_log_t, chronyd_var_run_t; + type chronyd_var_lib_t, chronyd_tmpfs_t, chronyd_initrc_exec_t; + type chronyd_keys_t; ') allow $1 chronyd_t:process { ptrace signal_perms }; @@ -165,16 +164,16 @@ interface(`chronyd_admin',` role_transition $2 chronyd_initrc_exec_t system_r; allow $2 system_r; - files_search_etc($1) + files_list_etc($1) admin_pattern($1, chronyd_keys_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, chronyd_var_log_t) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, chronyd_var_lib_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, chronyd_var_run_t) admin_pattern($1, chronyd_tmpfs_t) diff --git a/policy/modules/services/clamav.if b/policy/modules/services/clamav.if index 1f11572..01b02f3 100644 --- a/policy/modules/services/clamav.if +++ b/policy/modules/services/clamav.if @@ -33,6 +33,7 @@ interface(`clamav_stream_connect',` type clamd_t, clamd_var_run_t; ') + files_search_pids($1) stream_connect_pattern($1, clamd_var_run_t, clamd_var_run_t, clamd_t) ') @@ -151,9 +152,8 @@ interface(`clamav_exec_clamscan',` interface(`clamav_admin',` gen_require(` type clamd_t, clamd_etc_t, clamd_tmp_t; - type clamd_var_log_t, clamd_var_lib_t; - type clamd_var_run_t, clamscan_t, clamscan_tmp_t; - type clamd_initrc_exec_t; + type clamd_var_log_t, clamd_var_lib_t, clamd_var_run_t; + type clamscan_t, clamscan_tmp_t, clamd_initrc_exec_t; type freshclam_t, freshclam_var_log_t; ') diff --git a/policy/modules/services/clamav.te b/policy/modules/services/clamav.te index 16598a4..f9af97c 100644 --- a/policy/modules/services/clamav.te +++ b/policy/modules/services/clamav.te @@ -1,9 +1,9 @@ policy_module(clamav, 1.8.1) ## -##

-## Allow clamd to use JIT compiler -##

+##

+## Allow clamd to use JIT compiler +##

##
gen_tunable(clamd_use_jit, false) @@ -150,7 +150,7 @@ optional_policy(` tunable_policy(`clamd_use_jit',` allow clamd_t self:process execmem; allow clamscan_t self:process execmem; -', ` +',` dontaudit clamd_t self:process execmem; dontaudit clamscan_t self:process execmem; ') @@ -182,7 +182,7 @@ files_pid_filetrans(freshclam_t, clamd_var_run_t, file) # log files (own logfiles only) manage_files_pattern(freshclam_t, freshclam_var_log_t, freshclam_var_log_t) -allow freshclam_t freshclam_var_log_t:dir setattr; +allow freshclam_t freshclam_var_log_t:dir setattr_dir_perms; read_files_pattern(freshclam_t, clamd_var_log_t, clamd_var_log_t) logging_log_filetrans(freshclam_t, freshclam_var_log_t, file) @@ -220,16 +220,16 @@ clamav_stream_connect(freshclam_t) userdom_stream_connect(freshclam_t) -optional_policy(` - cron_system_entry(freshclam_t, freshclam_exec_t) -') - tunable_policy(`clamd_use_jit',` allow freshclam_t self:process execmem; -', ` +',` dontaudit freshclam_t self:process execmem; ') +optional_policy(` + cron_system_entry(freshclam_t, freshclam_exec_t) +') + ######################################## # # clamscam local policy diff --git a/policy/modules/services/clogd.if b/policy/modules/services/clogd.if index c0a66a4..e438c5f 100644 --- a/policy/modules/services/clogd.if +++ b/policy/modules/services/clogd.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run clogd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`clogd_domtrans',` diff --git a/policy/modules/services/clogd.te b/policy/modules/services/clogd.te index 6077339..d10acd2 100644 --- a/policy/modules/services/clogd.te +++ b/policy/modules/services/clogd.te @@ -23,7 +23,6 @@ files_pid_file(clogd_var_run_t) allow clogd_t self:capability { net_admin mknod }; allow clogd_t self:process signal; - allow clogd_t self:sem create_sem_perms; allow clogd_t self:shm create_shm_perms; allow clogd_t self:netlink_socket create_socket_perms; @@ -36,7 +35,7 @@ fs_tmpfs_filetrans(clogd_t, clogd_tmpfs_t, { dir file }) # pid files manage_files_pattern(clogd_t, clogd_var_run_t, clogd_var_run_t) manage_sock_files_pattern(clogd_t, clogd_var_run_t, clogd_var_run_t) -files_pid_filetrans(clogd_t, clogd_var_run_t, { file }) +files_pid_filetrans(clogd_t, clogd_var_run_t, file) dev_read_lvm_control(clogd_t) dev_manage_generic_blk_files(clogd_t) diff --git a/policy/modules/services/cmirrord.if b/policy/modules/services/cmirrord.if index d5b410f..756ac91 100644 --- a/policy/modules/services/cmirrord.if +++ b/policy/modules/services/cmirrord.if @@ -1,4 +1,3 @@ - ## policy for cmirrord ######################################## @@ -6,9 +5,9 @@ ## Execute a domain transition to run cmirrord. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`cmirrord_domtrans',` @@ -58,26 +57,25 @@ interface(`cmirrord_read_pid_files',` ####################################### ## -## Read and write to cmirrord shared memory. +## Read and write to cmirrord shared memory. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`cmirrord_rw_shm',` - gen_require(` - type cmirrord_t; - type cmirrord_tmpfs_t; - ') + gen_require(` + type cmirrord_t, cmirrord_tmpfs_t; + ') - allow $1 cmirrord_t:shm { rw_shm_perms destroy }; - allow $1 cmirrord_tmpfs_t:dir list_dir_perms; - rw_files_pattern($1, cmirrord_tmpfs_t, cmirrord_tmpfs_t) + allow $1 cmirrord_t:shm { rw_shm_perms destroy }; + allow $1 cmirrord_tmpfs_t:dir list_dir_perms; + rw_files_pattern($1, cmirrord_tmpfs_t, cmirrord_tmpfs_t) delete_files_pattern($1, cmirrord_tmpfs_t, cmirrord_tmpfs_t) read_lnk_files_pattern($1, cmirrord_tmpfs_t, cmirrord_tmpfs_t) - fs_search_tmpfs($1) + fs_search_tmpfs($1) ') ######################################## @@ -99,9 +97,7 @@ interface(`cmirrord_rw_shm',` # interface(`cmirrord_admin',` gen_require(` - type cmirrord_t; - type cmirrord_initrc_exec_t; - type cmirrord_var_run_t; + type cmirrord_t, cmirrord_initrc_exec_t, cmirrord_var_run_t; ') allow $1 cmirrord_t:process { ptrace signal_perms }; @@ -112,7 +108,6 @@ interface(`cmirrord_admin',` role_transition $2 cmirrord_initrc_exec_t system_r; allow $2 system_r; - files_search_pids($1) + files_list_pids($1) admin_pattern($1, cmirrord_var_run_t) - ') diff --git a/policy/modules/services/cmirrord.te b/policy/modules/services/cmirrord.te index bb7d429..a2c7134 100644 --- a/policy/modules/services/cmirrord.te +++ b/policy/modules/services/cmirrord.te @@ -1,4 +1,4 @@ -policy_module(cmirrord,1.0.0) +policy_module(cmirrord, 1.0.0) ######################################## # @@ -26,9 +26,7 @@ files_pid_file(cmirrord_var_run_t) allow cmirrord_t self:capability { net_admin kill }; dontaudit cmirrord_t self:capability sys_tty_config; allow cmirrord_t self:process signal; - allow cmirrord_t self:fifo_file rw_fifo_file_perms; - allow cmirrord_t self:sem create_sem_perms; allow cmirrord_t self:shm create_shm_perms; allow cmirrord_t self:netlink_socket create_socket_perms; @@ -40,7 +38,7 @@ fs_tmpfs_filetrans(cmirrord_t, cmirrord_tmpfs_t, { dir file }) manage_dirs_pattern(cmirrord_t, cmirrord_var_run_t, cmirrord_var_run_t) manage_files_pattern(cmirrord_t, cmirrord_var_run_t, cmirrord_var_run_t) -files_pid_filetrans(cmirrord_t, cmirrord_var_run_t, { file }) +files_pid_filetrans(cmirrord_t, cmirrord_var_run_t, file) domain_use_interactive_fds(cmirrord_t) @@ -51,5 +49,5 @@ logging_send_syslog_msg(cmirrord_t) miscfiles_read_localization(cmirrord_t) optional_policy(` - corosync_stream_connect(cmirrord_t) + corosync_stream_connect(cmirrord_t) ') diff --git a/policy/modules/services/cobbler.if b/policy/modules/services/cobbler.if index b2198bb..e3787fb 100644 --- a/policy/modules/services/cobbler.if +++ b/policy/modules/services/cobbler.if @@ -1,12 +1,12 @@ ## Cobbler installation server. ## ##

-## Cobbler is a Linux installation server that allows for -## rapid setup of network installation environments. It -## glues together and automates many associated Linux -## tasks so you do not have to hop between lots of various -## commands and applications when rolling out new systems, -## and, in some cases, changing existing ones. +## Cobbler is a Linux installation server that allows for +## rapid setup of network installation environments. It +## glues together and automates many associated Linux +## tasks so you do not have to hop between lots of various +## commands and applications when rolling out new systems, +## and, in some cases, changing existing ones. ##

##
@@ -15,9 +15,9 @@ ## Execute a domain transition to run cobblerd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`cobblerd_domtrans',` @@ -153,7 +153,7 @@ interface(`cobbler_manage_lib_files',` ## ## ## -## Domain allowed access. +## Domain to not audit. ## ## # @@ -185,25 +185,23 @@ interface(`cobbler_dontaudit_rw_log',` interface(`cobblerd_admin',` gen_require(` type cobblerd_t, cobbler_var_lib_t, cobbler_var_log_t; - type cobbler_etc_t, cobblerd_initrc_exec_t; - type httpd_cobbler_content_t; - type httpd_cobbler_content_ra_t; - type httpd_cobbler_content_rw_t; + type cobbler_etc_t, cobblerd_initrc_exec_t, httpd_cobbler_content_t; + type httpd_cobbler_content_ra_t, httpd_cobbler_content_rw_t; ') allow $1 cobblerd_t:process { ptrace signal_perms }; ps_process_pattern($1, cobblerd_t) - files_search_etc($1) + files_list_etc($1) admin_pattern($1, cobbler_etc_t) files_list_var_lib($1) admin_pattern($1, cobbler_var_lib_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, cobbler_var_log_t) - apache_search_sys_content($1) + apache_list_sys_content($1) admin_pattern($1, httpd_cobbler_content_t) admin_pattern($1, httpd_cobbler_content_ra_t) admin_pattern($1, httpd_cobbler_content_rw_t) diff --git a/policy/modules/services/cobbler.te b/policy/modules/services/cobbler.te index 6a6d7d7..c4d678b 100644 --- a/policy/modules/services/cobbler.te +++ b/policy/modules/services/cobbler.te @@ -6,32 +6,32 @@ policy_module(cobbler, 1.1.0) # ## -##

-## Allow Cobbler to modify public files -## used for public file transfer services. -##

+##

+## Allow Cobbler to modify public files +## used for public file transfer services. +##

##
gen_tunable(cobbler_anon_write, false) - + ## -##

-## Allow Cobbler to connect to the -## network using TCP. -##

+##

+## Allow Cobbler to connect to the +## network using TCP. +##

##
gen_tunable(cobbler_can_network_connect, false) ## -##

-## Allow Cobbler to access cifs file systems. -##

+##

+## Allow Cobbler to access cifs file systems. +##

##
gen_tunable(cobbler_use_cifs, false) ## -##

-## Allow Cobbler to access nfs file systems. -##

+##

+## Allow Cobbler to access nfs file systems. +##

##
gen_tunable(cobbler_use_nfs, false) diff --git a/policy/modules/services/consolekit.if b/policy/modules/services/consolekit.if index 51afa67..53b10e3 100644 --- a/policy/modules/services/consolekit.if +++ b/policy/modules/services/consolekit.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run consolekit. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`consolekit_domtrans',` diff --git a/policy/modules/services/consolekit.te b/policy/modules/services/consolekit.te index cc2058b..16c0746 100644 --- a/policy/modules/services/consolekit.te +++ b/policy/modules/services/consolekit.te @@ -113,7 +113,7 @@ optional_policy(` ') optional_policy(` - policykit_dbus_chat(consolekit_t) + policykit_dbus_chat(consolekit_t) policykit_domtrans_auth(consolekit_t) policykit_read_lib(consolekit_t) policykit_read_reload(consolekit_t) diff --git a/policy/modules/services/corosync.if b/policy/modules/services/corosync.if index 05f7296..a2e6830 100644 --- a/policy/modules/services/corosync.if +++ b/policy/modules/services/corosync.if @@ -20,21 +20,21 @@ interface(`corosync_domtrans',` ###################################### ## -## Execute corosync in the caller domain. +## Execute corosync in the caller domain. ## ## -## -## Domain allowed to transition. -## +## +## Domain allowed access. +## ## # interface(`corosync_exec',` - gen_require(` - type corosync_exec_t; - ') + gen_require(` + type corosync_exec_t; + ') - corecmd_search_bin($1) - can_exec($1, corosync_exec_t) + corecmd_search_bin($1) + can_exec($1, corosync_exec_t) ') ####################################### diff --git a/policy/modules/services/corosync.te b/policy/modules/services/corosync.te index ed9dd2f..c3620a0 100644 --- a/policy/modules/services/corosync.te +++ b/policy/modules/services/corosync.te @@ -92,10 +92,6 @@ userdom_delete_user_tmpfs_files(corosync_t) userdom_rw_user_tmpfs_files(corosync_t) optional_policy(` - gen_require(` - attribute unconfined_services; - ') - fs_manage_tmpfs_files(corosync_t) init_manage_script_status_files(corosync_t) ') diff --git a/policy/modules/services/courier.if b/policy/modules/services/courier.if index 9971337..f081899 100644 --- a/policy/modules/services/courier.if +++ b/policy/modules/services/courier.if @@ -138,6 +138,7 @@ interface(`courier_read_config',` type courier_etc_t; ') + files_search_etc($1) read_files_pattern($1, courier_etc_t, courier_etc_t) ') @@ -157,6 +158,7 @@ interface(`courier_manage_spool_dirs',` type courier_spool_t; ') + files_search_spool($1) manage_dirs_pattern($1, courier_spool_t, courier_spool_t) ') @@ -176,6 +178,7 @@ interface(`courier_manage_spool_files',` type courier_spool_t; ') + files_search_spool($1) manage_files_pattern($1, courier_spool_t, courier_spool_t) ') @@ -194,6 +197,7 @@ interface(`courier_read_spool',` type courier_spool_t; ') + files_search_spool($1) read_files_pattern($1, courier_spool_t, courier_spool_t) ') diff --git a/policy/modules/services/courier.te b/policy/modules/services/courier.te index 37f4810..cc93958 100644 --- a/policy/modules/services/courier.te +++ b/policy/modules/services/courier.te @@ -93,7 +93,7 @@ allow courier_pop_t courier_authdaemon_t:process sigchld; allow courier_pop_t courier_tcpd_t:{ unix_stream_socket tcp_socket } rw_stream_socket_perms; # inherits file handle - should it? -allow courier_pop_t courier_var_lib_t:file { read write }; +allow courier_pop_t courier_var_lib_t:file rw_inherited_file_perms; miscfiles_read_localization(courier_pop_t) diff --git a/policy/modules/services/cron.if b/policy/modules/services/cron.if index 9822074..b6402c9 100644 --- a/policy/modules/services/cron.if +++ b/policy/modules/services/cron.if @@ -52,7 +52,7 @@ template(`cron_common_crontab_template',` files_list_spool($1_t) # crontab signals crond by updating the mtime on the spooldir - allow $1_t cron_spool_t:dir setattr; + allow $1_t cron_spool_t:dir setattr_dir_perms; kernel_read_system_state($1_t) @@ -113,12 +113,12 @@ template(`cron_common_crontab_template',` ## User domain for the role ## ## +## # interface(`cron_role',` gen_require(` type cronjob_t, crontab_t, crontab_exec_t; - type user_cron_spool_t; - type crond_t; + type user_cron_spool_t, crond_t; ') role $1 types { cronjob_t crontab_t }; @@ -138,7 +138,7 @@ interface(`cron_role',` # crontab shows up in user ps ps_process_pattern($2, crontab_t) - allow $2 crontab_t:process signal; + allow $2 crontab_t:process { ptrace signal_perms }; # Run helper programs as the user domain #corecmd_bin_domtrans(crontab_t, $2) @@ -152,9 +152,8 @@ interface(`cron_role',` ') dbus_stub(cronjob_t) - allow cronjob_t $2:dbus send_msg; - ') + ') ') ######################################## @@ -171,6 +170,7 @@ interface(`cron_role',` ## User domain for the role ## ## +## # interface(`cron_unconfined_role',` gen_require(` @@ -181,6 +181,7 @@ interface(`cron_unconfined_role',` # cronjob shows up in user ps ps_process_pattern($2, unconfined_cronjob_t) + allow $2 unconfined_cronjob_t:process { ptrace signal_perms }; optional_policy(` gen_require(` @@ -188,9 +189,8 @@ interface(`cron_unconfined_role',` ') dbus_stub(unconfined_cronjob_t) - allow unconfined_cronjob_t $2:dbus send_msg; - ') + ') ') ######################################## @@ -207,6 +207,7 @@ interface(`cron_unconfined_role',` ## User domain for the role ## ## +## # interface(`cron_admin_role',` gen_require(` @@ -227,7 +228,7 @@ interface(`cron_admin_role',` # crontab shows up in user ps ps_process_pattern($2, admin_crontab_t) - allow $2 admin_crontab_t:process signal; + allow $2 admin_crontab_t:process { ptrace signal_perms }; # Run helper programs as the user domain #corecmd_bin_domtrans(admin_crontab_t, $2) @@ -241,9 +242,8 @@ interface(`cron_admin_role',` ') dbus_stub(admin_cronjob_t) - allow cronjob_t $2:dbus send_msg; - ') + ') ') ######################################## @@ -311,7 +311,7 @@ interface(`cron_exec',` ######################################## ## -## Execute crond server in the nscd domain. +## Execute crond server in the crond domain. ## ## ## @@ -524,6 +524,7 @@ interface(`cron_manage_pid_files',` type crond_var_run_t; ') + files_search_pids($1) manage_files_pattern($1, crond_var_run_t, crond_var_run_t) ') @@ -579,7 +580,7 @@ interface(`cron_write_system_job_pipes',` type system_cronjob_t; ') - allow $1 system_cronjob_t:file write; + allow $1 system_cronjob_t:fifo_file write; ') ######################################## @@ -695,8 +696,8 @@ interface(`cron_read_system_job_lib_files',` type system_cronjob_var_lib_t; ') - - read_files_pattern($1, system_cronjob_var_lib_t, system_cronjob_var_lib_t) + files_search_var_lib($1) + read_files_pattern($1, system_cronjob_var_lib_t, system_cronjob_var_lib_t) ') ######################################## @@ -714,6 +715,6 @@ interface(`cron_manage_system_job_lib_files',` type system_cronjob_var_lib_t; ') - - manage_files_pattern($1, system_cronjob_var_lib_t, system_cronjob_var_lib_t) + files_search_var_lib($1) + manage_files_pattern($1, system_cronjob_var_lib_t, system_cronjob_var_lib_t) ') diff --git a/policy/modules/services/cron.te b/policy/modules/services/cron.te index 45f5a6f..2a7f7f4 100644 --- a/policy/modules/services/cron.te +++ b/policy/modules/services/cron.te @@ -10,18 +10,18 @@ gen_require(` # ## -##

-## Allow system cron jobs to relabel filesystem -## for restoring file contexts. -##

+##

+## Allow system cron jobs to relabel filesystem +## for restoring file contexts. +##

##
gen_tunable(cron_can_relabel, false) ## -##

-## Enable extra rules in the cron domain -## to support fcron. -##

+##

+## Enable extra rules in the cron domain +## to support fcron. +##

##
gen_tunable(fcron_crond, false) @@ -99,10 +99,6 @@ files_lock_file(system_cronjob_lock_t) type system_cronjob_tmp_t alias system_crond_tmp_t; files_tmp_file(system_cronjob_tmp_t) -ifdef(`enable_mcs',` - init_ranged_daemon_domain(crond_t, crond_exec_t, s0 - mcs_systemhigh) -') - type unconfined_cronjob_t; domain_type(unconfined_cronjob_t) domain_cron_exemption_target(unconfined_cronjob_t) @@ -122,13 +118,17 @@ typealias system_cronjob_var_lib_t alias system_crond_var_lib_t; type system_cronjob_var_run_t; files_pid_file(system_cronjob_var_run_t) +ifdef(`enable_mcs',` + init_ranged_daemon_domain(crond_t, crond_exec_t, s0 - mcs_systemhigh) +') + ######################################## # # Admin crontab local policy # # Allow our crontab domain to unlink a user cron spool file. -allow admin_crontab_t user_cron_spool_t:file { getattr read unlink }; +allow admin_crontab_t user_cron_spool_t:file { read_file_perms delete_file_perms }; # Manipulate other users crontab. selinux_get_fs_mount(admin_crontab_t) @@ -138,7 +138,7 @@ selinux_compute_create_context(admin_crontab_t) selinux_compute_relabel_context(admin_crontab_t) selinux_compute_user_contexts(admin_crontab_t) -tunable_policy(`fcron_crond', ` +tunable_policy(`fcron_crond',` # fcron wants an instant update of a crontab change for the administrator # also crontab does a security check for crontab -u allow admin_crontab_t self:process setfscreate; @@ -251,7 +251,7 @@ ifdef(`distro_debian',` ') ') -ifdef(`distro_redhat', ` +ifdef(`distro_redhat',` # Run the rpm program in the rpm_t domain. Allow creation of RPM log files # via redirection of standard out. optional_policy(` @@ -263,13 +263,17 @@ tunable_policy(`allow_polyinstantiation',` files_polyinstantiate_all(crond_t) ') +tunable_policy(`fcron_crond',` + allow crond_t system_cron_spool_t:file manage_file_perms; +') + optional_policy(` apache_search_sys_content(crond_t) ') optional_policy(` - djbdns_search_tinydns_keys(crond_t) - djbdns_link_tinydns_keys(crond_t) + djbdns_search_tinydns_keys(crond_t) + djbdns_link_tinydns_keys(crond_t) ') optional_policy(` @@ -287,10 +291,6 @@ optional_policy(` mono_domtrans(crond_t) ') -tunable_policy(`fcron_crond', ` - allow crond_t system_cron_spool_t:file manage_file_perms; -') - optional_policy(` amanda_search_var_lib(crond_t) ') @@ -351,7 +351,7 @@ logging_log_filetrans(system_cronjob_t, cron_log_t, file) # This is to handle /var/lib/misc directory. Used currently # by prelink var/lib files for cron -allow system_cronjob_t cron_var_lib_t:file { manage_file_perms relabelfrom relabelto }; +allow system_cronjob_t cron_var_lib_t:file { manage_file_perms relabel_file_perms }; files_var_lib_filetrans(system_cronjob_t, cron_var_lib_t, file) allow system_cronjob_t cron_var_run_t:file manage_file_perms; @@ -472,7 +472,7 @@ miscfiles_manage_man_pages(system_cronjob_t) seutil_read_config(system_cronjob_t) -ifdef(`distro_redhat', ` +ifdef(`distro_redhat',` # Run the rpm program in the rpm_t domain. Allow creation of RPM log files allow crond_t system_cron_spool_t:file manage_file_perms; @@ -687,7 +687,7 @@ read_files_pattern(crond_t, user_cron_spool_t, user_cron_spool_t) read_lnk_files_pattern(crond_t, user_cron_spool_t, user_cron_spool_t) allow crond_t user_cron_spool_t:file manage_lnk_file_perms; -tunable_policy(`fcron_crond', ` +tunable_policy(`fcron_crond',` allow crond_t user_cron_spool_t:file manage_file_perms; ') diff --git a/policy/modules/services/cups.if b/policy/modules/services/cups.if index fb3454a..777091a 100644 --- a/policy/modules/services/cups.if +++ b/policy/modules/services/cups.if @@ -316,12 +316,10 @@ interface(`cups_stream_connect_ptal',` interface(`cups_admin',` gen_require(` type cupsd_t, cupsd_tmp_t, cupsd_lpd_tmp_t; - type cupsd_etc_t, cupsd_log_t; - type cupsd_config_var_run_t, cupsd_lpd_var_run_t; - type cupsd_var_run_t, ptal_etc_t; - type ptal_var_run_t, hplip_var_run_t; - type cupsd_initrc_exec_t; - type hplip_etc_t; + type cupsd_etc_t, cupsd_log_t, hplip_etc_t; + type cupsd_config_var_run_t, cupsd_lpd_var_run_t, cupsd_initrc_exec_t; + type cupsd_var_run_t, ptal_etc_t, hplip_var_run_t; + type ptal_var_run_t; ') allow $1 cupsd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/cups.te b/policy/modules/services/cups.te index 11e74af..b3ab30f 100644 --- a/policy/modules/services/cups.te +++ b/policy/modules/services/cups.te @@ -149,7 +149,7 @@ manage_files_pattern(cupsd_t, cupsd_tmp_t, cupsd_tmp_t) manage_fifo_files_pattern(cupsd_t, cupsd_tmp_t, cupsd_tmp_t) files_tmp_filetrans(cupsd_t, cupsd_tmp_t, { file dir fifo_file }) -allow cupsd_t cupsd_var_run_t:dir setattr; +allow cupsd_t cupsd_var_run_t:dir setattr_dir_perms; manage_dirs_pattern(cupsd_t, cupsd_var_run_t, cupsd_var_run_t) manage_files_pattern(cupsd_t, cupsd_var_run_t, cupsd_var_run_t) manage_sock_files_pattern(cupsd_t, cupsd_var_run_t, cupsd_var_run_t) @@ -163,7 +163,7 @@ read_files_pattern(cupsd_t, hplip_etc_t, hplip_etc_t) allow cupsd_t hplip_var_run_t:file read_file_perms; stream_connect_pattern(cupsd_t, ptal_var_run_t, ptal_var_run_t, ptal_t) -allow cupsd_t ptal_var_run_t : sock_file setattr; +allow cupsd_t ptal_var_run_t:sock_file setattr_sock_file_perms; kernel_read_system_state(cupsd_t) kernel_read_network_state(cupsd_t) @@ -609,10 +609,6 @@ userdom_dontaudit_search_admin_dir(cups_pdf_t) lpd_manage_spool(cups_pdf_t) -optional_policy(` - gnome_read_config(cups_pdf_t) -') - tunable_policy(`use_nfs_home_dirs',` fs_search_auto_mountpoints(cups_pdf_t) fs_manage_nfs_dirs(cups_pdf_t) @@ -624,6 +620,10 @@ tunable_policy(`use_samba_home_dirs',` fs_manage_cifs_files(cups_pdf_t) ') +optional_policy(` + gnome_read_config(cups_pdf_t) +') + ######################################## # # HPLIP local policy @@ -657,7 +657,7 @@ manage_files_pattern(hplip_t, hplip_var_lib_t, hplip_var_lib_t) manage_lnk_files_pattern(hplip_t, hplip_var_lib_t, hplip_var_lib_t) manage_fifo_files_pattern(hplip_t, hplip_tmp_t, hplip_tmp_t) -files_tmp_filetrans(hplip_t, hplip_tmp_t, fifo_file ) +files_tmp_filetrans(hplip_t, hplip_tmp_t, fifo_file) manage_files_pattern(hplip_t, hplip_var_run_t, hplip_var_run_t) files_pid_filetrans(hplip_t, hplip_var_run_t, file) diff --git a/policy/modules/services/cvs.if b/policy/modules/services/cvs.if index c43ff4c..5bf3e60 100644 --- a/policy/modules/services/cvs.if +++ b/policy/modules/services/cvs.if @@ -58,9 +58,8 @@ interface(`cvs_exec',` # interface(`cvs_admin',` gen_require(` - type cvs_t, cvs_tmp_t; + type cvs_t, cvs_tmp_t, cvs_initrc_exec_t; type cvs_data_t, cvs_var_run_t; - type cvs_initrc_exec_t; ') allow $1 cvs_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/cvs.te b/policy/modules/services/cvs.te index 9e8d14b..e18dc0b 100644 --- a/policy/modules/services/cvs.te +++ b/policy/modules/services/cvs.te @@ -6,9 +6,9 @@ policy_module(cvs, 1.9.0) # ## -##

-## Allow cvs daemon to read shadow -##

+##

+## Allow cvs daemon to read shadow +##

##
gen_tunable(allow_cvs_read_shadow, false) @@ -35,12 +35,12 @@ files_pid_file(cvs_var_run_t) # Local policy # +allow cvs_t self:capability { setuid setgid }; allow cvs_t self:process signal_perms; allow cvs_t self:fifo_file rw_fifo_file_perms; allow cvs_t self:tcp_socket connected_stream_socket_perms; # for identd; cjp: this should probably only be inetd_child rules? allow cvs_t self:netlink_tcpdiag_socket r_netlink_socket_perms; -allow cvs_t self:capability { setuid setgid }; manage_dirs_pattern(cvs_t, cvs_data_t, cvs_data_t) manage_files_pattern(cvs_t, cvs_data_t, cvs_data_t) diff --git a/policy/modules/services/cyphesis.if b/policy/modules/services/cyphesis.if index 9d44538..7e9057e 100644 --- a/policy/modules/services/cyphesis.if +++ b/policy/modules/services/cyphesis.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run cyphesis. ##
## -## +## ## Domain allowed to transition. -## +## ## # interface(`cyphesis_domtrans',` diff --git a/policy/modules/services/dbus.if b/policy/modules/services/dbus.if index 7852441..74fa3d6 100644 --- a/policy/modules/services/dbus.if +++ b/policy/modules/services/dbus.if @@ -41,9 +41,7 @@ interface(`dbus_stub',` template(`dbus_role_template',` gen_require(` class dbus { send_msg acquire_svc }; - - attribute dbusd_unconfined; - attribute session_bus_type; + attribute dbusd_unconfined, session_bus_type; type system_dbusd_t, session_dbusd_tmp_t, dbusd_exec_t, dbusd_etc_t; type $1_t; ') @@ -90,14 +88,15 @@ template(`dbus_role_template',` files_tmp_filetrans($1_dbusd_t, session_dbusd_tmp_t, { file dir }) domtrans_pattern($3, dbusd_exec_t, $1_dbusd_t) - allow $3 $1_dbusd_t:process { signull sigkill signal }; + + ps_process_pattern($3, $1_dbusd_t) + allow $3 $1_dbusd_t:process { ptrace signal_perms }; # cjp: this seems very broken corecmd_bin_domtrans($1_dbusd_t, $1_t) allow $1_dbusd_t $3:process sigkill; allow $3 $1_dbusd_t:fd use; allow $3 $1_dbusd_t:fifo_file rw_fifo_file_perms; - allow $3 $1_dbusd_t:process sigchld; kernel_read_system_state($1_dbusd_t) kernel_read_kernel_sysctls($1_dbusd_t) @@ -118,7 +117,7 @@ template(`dbus_role_template',` dev_read_urand($1_dbusd_t) - domain_use_interactive_fds($1_dbusd_t) + domain_use_interactive_fds($1_dbusd_t) domain_read_all_domains_state($1_dbusd_t) files_read_etc_files($1_dbusd_t) @@ -156,7 +155,7 @@ template(`dbus_role_template',` userdom_manage_user_home_content_files($1_dbusd_t) userdom_user_home_dir_filetrans_user_home_content($1_dbusd_t, { dir file }) - ifdef(`hide_broken_symptoms', ` + ifdef(`hide_broken_symptoms',` dontaudit $3 $1_dbusd_t:netlink_selinux_socket { read write }; ') @@ -463,7 +462,7 @@ interface(`dbus_system_domain',` unconfined_dbus_send($1) ') - ifdef(`hide_broken_symptoms', ` + ifdef(`hide_broken_symptoms',` dontaudit $1 system_dbusd_t:netlink_selinux_socket { read write }; ') ') @@ -520,6 +519,6 @@ interface(`dbus_delete_pid_files',` type system_dbusd_var_run_t; ') + files_search_pids($1) delete_files_pattern($1, system_dbusd_var_run_t, system_dbusd_var_run_t) ') - diff --git a/policy/modules/services/dbus.te b/policy/modules/services/dbus.te index c725cae..d9416fc 100644 --- a/policy/modules/services/dbus.te +++ b/policy/modules/services/dbus.te @@ -152,7 +152,7 @@ optional_policy(` ') optional_policy(` - policykit_dbus_chat(system_dbusd_t) + policykit_dbus_chat(system_dbusd_t) policykit_domtrans_auth(system_dbusd_t) policykit_search_lib(system_dbusd_t) ') diff --git a/policy/modules/services/dcc.if b/policy/modules/services/dcc.if index 784753e..bf65e7d 100644 --- a/policy/modules/services/dcc.if +++ b/policy/modules/services/dcc.if @@ -168,6 +168,6 @@ interface(`dcc_stream_connect_dccifd',` type dcc_var_t, dccifd_var_run_t, dccifd_t; ') - files_search_var($1) + files_search_pids($1) stream_connect_pattern($1, dcc_var_t, dccifd_var_run_t, dccifd_t) ') diff --git a/policy/modules/services/ddclient.if b/policy/modules/services/ddclient.if index 0a1a61b..da508f4 100644 --- a/policy/modules/services/ddclient.if +++ b/policy/modules/services/ddclient.if @@ -64,8 +64,8 @@ interface(`ddclient_run',` interface(`ddclient_admin',` gen_require(` type ddclient_t, ddclient_etc_t, ddclient_log_t; - type ddclient_var_t, ddclient_var_lib_t; - type ddclient_var_run_t, ddclient_initrc_exec_t; + type ddclient_var_t, ddclient_var_lib_t, ddclient_initrc_exec_t; + type ddclient_var_run_t; ') allow $1 ddclient_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/denyhosts.if b/policy/modules/services/denyhosts.if index 567865f..9c9e65c 100644 --- a/policy/modules/services/denyhosts.if +++ b/policy/modules/services/denyhosts.if @@ -13,12 +13,12 @@ ## Execute a domain transition to run denyhosts. ## ## -## +## ## Domain allowed to transition. -## +## ## # -interface(`denyhosts_domtrans', ` +interface(`denyhosts_domtrans',` gen_require(` type denyhosts_t, denyhosts_exec_t; ') @@ -36,7 +36,7 @@ interface(`denyhosts_domtrans', ` ## ## # -interface(`denyhosts_initrc_domtrans', ` +interface(`denyhosts_initrc_domtrans',` gen_require(` type denyhosts_initrc_exec_t; ') @@ -59,8 +59,9 @@ interface(`denyhosts_initrc_domtrans', ` ## Role allowed access. ## ## +## # -interface(`denyhosts_admin', ` +interface(`denyhosts_admin',` gen_require(` type denyhosts_t, denyhosts_var_lib_t, denyhosts_var_lock_t; type denyhosts_var_log_t, denyhosts_initrc_exec_t; @@ -74,12 +75,12 @@ interface(`denyhosts_admin', ` role_transition $2 denyhosts_initrc_exec_t system_r; allow $2 system_r; - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, denyhosts_var_lib_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, denyhosts_var_log_t) - files_search_locks($1) + files_list_locks($1) admin_pattern($1, denyhosts_var_lock_t) ') diff --git a/policy/modules/services/denyhosts.te b/policy/modules/services/denyhosts.te index d53ee7e..b10da2c 100644 --- a/policy/modules/services/denyhosts.te +++ b/policy/modules/services/denyhosts.te @@ -77,5 +77,5 @@ optional_policy(` ') optional_policy(` - gnome_dontaudit_search_config(denyhosts_t) + gnome_dontaudit_search_config(denyhosts_t) ') diff --git a/policy/modules/services/devicekit.if b/policy/modules/services/devicekit.if index 70cf018..ab2edfc 100644 --- a/policy/modules/services/devicekit.if +++ b/policy/modules/services/devicekit.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run devicekit. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`devicekit_domtrans',` @@ -147,16 +147,6 @@ interface(`devicekit_read_pid_files',` ## Domain allowed access. ## ## -## -## -## The role to be allowed to manage the devicekit domain. -## -## -## -## -## The type of the user terminal. -## -## ## # interface(`devicekit_admin',` @@ -175,11 +165,11 @@ interface(`devicekit_admin',` ps_process_pattern($1, devicekit_power_t) admin_pattern($1, devicekit_tmp_t) - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, devicekit_var_lib_t) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, devicekit_var_run_t) - files_search_pids($1) + files_list_pids($1) ') diff --git a/policy/modules/services/devicekit.te b/policy/modules/services/devicekit.te index 6cee08f..58416a0 100644 --- a/policy/modules/services/devicekit.te +++ b/policy/modules/services/devicekit.te @@ -309,4 +309,3 @@ optional_policy(` optional_policy(` vbetool_domtrans(devicekit_power_t) ') - diff --git a/policy/modules/services/dhcp.if b/policy/modules/services/dhcp.if index aa4da1d..7e129ff 100644 --- a/policy/modules/services/dhcp.if +++ b/policy/modules/services/dhcp.if @@ -36,7 +36,7 @@ interface(`dhcpd_setattr_state_files',` ') sysnet_search_dhcp_state($1) - allow $1 dhcpd_state_t:file setattr; + allow $1 dhcpd_state_t:file setattr_file_perms; ') ######################################## diff --git a/policy/modules/services/djbdns.te b/policy/modules/services/djbdns.te index e723266..51e2ce8 100644 --- a/policy/modules/services/djbdns.te +++ b/policy/modules/services/djbdns.te @@ -23,11 +23,6 @@ djbdns_daemontools_domain_template(tinydns) # Local policy for axfrdns component # -files_config_file(djbdns_axfrdns_conf_t) - -daemontools_ipc_domain(djbdns_axfrdns_t) -daemontools_read_svc(djbdns_axfrdns_t) - allow djbdns_axfrdns_t self:capability { setuid setgid sys_chroot }; allow djbdns_axfrdns_t djbdns_axfrdns_conf_t:dir list_dir_perms; @@ -41,6 +36,9 @@ allow djbdns_axfrdns_t djbdns_tinydns_conf_t:file read_file_perms; files_search_var(djbdns_axfrdns_t) +daemontools_ipc_domain(djbdns_axfrdns_t) +daemontools_read_svc(djbdns_axfrdns_t) + ucspitcp_service_domain(djbdns_axfrdns_t, djbdns_axfrdns_exec_t) ######################################## diff --git a/policy/modules/services/dnsmasq.if b/policy/modules/services/dnsmasq.if index 9bd812b..c808b31 100644 --- a/policy/modules/services/dnsmasq.if +++ b/policy/modules/services/dnsmasq.if @@ -101,9 +101,9 @@ interface(`dnsmasq_kill',` ## Read dnsmasq config files. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`dnsmasq_read_config',` @@ -120,9 +120,9 @@ interface(`dnsmasq_read_config',` ## Write to dnsmasq config files. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`dnsmasq_write_config',` @@ -144,12 +144,12 @@ interface(`dnsmasq_write_config',` ## ## # -# interface(`dnsmasq_delete_pid_files',` gen_require(` type dnsmasq_var_run_t; ') + files_search_pids($1) delete_files_pattern($1, dnsmasq_var_run_t, dnsmasq_var_run_t) ') @@ -169,6 +169,7 @@ interface(`dnsmasq_read_pid_files',` type dnsmasq_var_run_t; ') + files_search_pids($1) read_files_pattern($1, dnsmasq_var_run_t, dnsmasq_var_run_t) ') diff --git a/policy/modules/services/dovecot.if b/policy/modules/services/dovecot.if index 09f6f30..ee51a19 100644 --- a/policy/modules/services/dovecot.if +++ b/policy/modules/services/dovecot.if @@ -9,13 +9,13 @@ ## Domain allowed access. ## ## -## # interface(`dovecot_stream_connect_auth',` gen_require(` type dovecot_auth_t, dovecot_var_run_t; ') + files_search_pids($1) stream_connect_pattern($1, dovecot_var_run_t, dovecot_var_run_t, dovecot_auth_t) ') @@ -52,6 +52,7 @@ interface(`dovecot_manage_spool',` type dovecot_spool_t; ') + files_search_spool($1) manage_files_pattern($1, dovecot_spool_t, dovecot_spool_t) manage_lnk_files_pattern($1, dovecot_spool_t, dovecot_spool_t) ') @@ -94,13 +95,9 @@ interface(`dovecot_dontaudit_unlink_lib_files',` interface(`dovecot_admin',` gen_require(` type dovecot_t, dovecot_etc_t, dovecot_auth_tmp_t; - type dovecot_spool_t, dovecot_var_lib_t; - type dovecot_var_run_t, dovecot_tmp_t; - type dovecot_var_log_t; - - type dovecot_cert_t, dovecot_passwd_t; - type dovecot_initrc_exec_t; - type dovecot_keytab_t; + type dovecot_spool_t, dovecot_var_lib_t, dovecot_var_log_t; + type dovecot_var_run_t, dovecot_tmp_t, dovecot_keytab_t; + type dovecot_cert_t, dovecot_passwd_t, dovecot_initrc_exec_t; ') allow $1 dovecot_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/dovecot.te b/policy/modules/services/dovecot.te index 64bc566..aff2296 100644 --- a/policy/modules/services/dovecot.te +++ b/policy/modules/services/dovecot.te @@ -164,8 +164,8 @@ optional_policy(` ') optional_policy(` - postfix_manage_private_sockets(dovecot_t) - postfix_search_spool(dovecot_t) + postfix_manage_private_sockets(dovecot_t) + postfix_search_spool(dovecot_t) ') optional_policy(` diff --git a/policy/modules/services/exim.if b/policy/modules/services/exim.if index 1685c5d..464669c 100644 --- a/policy/modules/services/exim.if +++ b/policy/modules/services/exim.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run exim. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`exim_domtrans',` @@ -24,11 +24,11 @@ interface(`exim_domtrans',` ## ## ## -## Domain allowed access. +## Domain allowed to transition. ## ## # -interface(`exim_initrc_domtrans', ` +interface(`exim_initrc_domtrans',` gen_require(` type exim_initrc_exec_t; ') @@ -119,9 +119,9 @@ interface(`exim_read_log',` ## exim log files. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`exim_append_log',` @@ -229,10 +229,10 @@ interface(`exim_manage_spool_files',` ## ## # -interface(`exim_admin', ` +interface(`exim_admin',` gen_require(` - type exim_t, exim_initrc_exec_t, exim_log_t; - type exim_tmp_t, exim_spool_t, exim_var_run_t; + type exim_t, exim_initrc_exec_t, exim_log_t; + type exim_tmp_t, exim_spool_t, exim_var_run_t; ') allow $1 exim_t:process { ptrace signal_perms }; @@ -243,15 +243,15 @@ interface(`exim_admin', ` role_transition $2 exim_initrc_exec_t system_r; allow $2 system_r; - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, exim_log_t) - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, exim_tmp_t) - files_search_spool($1) + files_list_spool($1) admin_pattern($1, exim_spool_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, exim_var_run_t) ') diff --git a/policy/modules/services/exim.te b/policy/modules/services/exim.te index 6c819a3..18c3c33 100644 --- a/policy/modules/services/exim.te +++ b/policy/modules/services/exim.te @@ -6,24 +6,24 @@ policy_module(exim, 1.5.0) # ## -##

-## Allow exim to connect to databases (postgres, mysql) -##

+##

+## Allow exim to connect to databases (postgres, mysql) +##

##
gen_tunable(exim_can_connect_db, false) ## -##

-## Allow exim to read unprivileged user files. -##

+##

+## Allow exim to read unprivileged user files. +##

##
gen_tunable(exim_read_user_files, false) ## -##

-## Allow exim to create, read, write, and delete -## unprivileged user files. -##

+##

+## Allow exim to create, read, write, and delete +## unprivileged user files. +##

##
gen_tunable(exim_manage_user_files, false) @@ -174,7 +174,7 @@ optional_policy(` ') optional_policy(` - nagios_search_spool(exim_t) + nagios_search_spool(exim_t) ') optional_policy(` diff --git a/policy/modules/services/fail2ban.if b/policy/modules/services/fail2ban.if index e4261f5..87f6bfb 100644 --- a/policy/modules/services/fail2ban.if +++ b/policy/modules/services/fail2ban.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run fail2ban. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`fail2ban_domtrans',` @@ -102,9 +102,9 @@ interface(`fail2ban_read_log',` ## fail2ban log files. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`fail2ban_append_log',` @@ -175,8 +175,8 @@ interface(`fail2ban_dontaudit_leaks',` # interface(`fail2ban_admin',` gen_require(` - type fail2ban_t, fail2ban_log_t; - type fail2ban_var_run_t, fail2ban_initrc_exec_t; + type fail2ban_t, fail2ban_log_t, fail2ban_initrc_exec_t; + type fail2ban_var_run_t; ') allow $1 fail2ban_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/fail2ban.te b/policy/modules/services/fail2ban.te index fd30b02..7c5bf19 100644 --- a/policy/modules/services/fail2ban.te +++ b/policy/modules/services/fail2ban.te @@ -36,7 +36,7 @@ allow fail2ban_t self:unix_dgram_socket create_socket_perms; allow fail2ban_t self:tcp_socket create_stream_socket_perms; # log files -allow fail2ban_t fail2ban_log_t:dir setattr; +allow fail2ban_t fail2ban_log_t:dir setattr_dir_perms; manage_files_pattern(fail2ban_t, fail2ban_log_t, fail2ban_log_t) logging_log_filetrans(fail2ban_t, fail2ban_log_t, file) @@ -94,7 +94,7 @@ optional_policy(` ') optional_policy(` - gnome_dontaudit_search_config(fail2ban_t) + gnome_dontaudit_search_config(fail2ban_t) ') optional_policy(` diff --git a/policy/modules/services/fprintd.if b/policy/modules/services/fprintd.if index ebad8c4..c02062c 100644 --- a/policy/modules/services/fprintd.if +++ b/policy/modules/services/fprintd.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run fprintd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`fprintd_domtrans',` @@ -38,4 +38,3 @@ interface(`fprintd_dbus_chat',` allow $1 fprintd_t:dbus send_msg; allow fprintd_t $1:dbus send_msg; ') - diff --git a/policy/modules/services/ftp.if b/policy/modules/services/ftp.if index bc27421..26cc64b 100644 --- a/policy/modules/services/ftp.if +++ b/policy/modules/services/ftp.if @@ -53,25 +53,6 @@ interface(`ftp_read_config',` ######################################## ## -## Execute FTP daemon entry point programs. -## -## -## -## Domain allowed access. -## -## -# -interface(`ftp_check_exec',` - gen_require(` - type ftpd_exec_t; - ') - - corecmd_search_bin($1) - allow $1 ftpd_exec_t:file { getattr execute }; -') - -######################################## -## ## Read FTP transfer logs ## ## @@ -171,9 +152,8 @@ interface(`ftp_dyntrans_sftpd',` interface(`ftp_admin',` gen_require(` type ftpd_t, ftpdctl_t, ftpd_tmp_t; - type ftpd_etc_t, ftpd_lock_t; + type ftpd_etc_t, ftpd_lock_t, ftpd_initrc_exec_t; type ftpd_var_run_t, xferlog_t; - type ftpd_initrc_exec_t; ') allow $1 ftpd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/ftp.te b/policy/modules/services/ftp.te index 34a0014..2284f4e 100644 --- a/policy/modules/services/ftp.te +++ b/policy/modules/services/ftp.te @@ -6,82 +6,82 @@ policy_module(ftp, 1.12.0) # ## -##

-## Allow ftp servers to upload files, used for public file -## transfer services. Directories must be labeled -## public_content_rw_t. -##

+##

+## Allow ftp servers to upload files, used for public file +## transfer services. Directories must be labeled +## public_content_rw_t. +##

##
gen_tunable(allow_ftpd_anon_write, false) ## -##

-## Allow ftp servers to login to local users and -## read/write all files on the system, governed by DAC. -##

+##

+## Allow ftp servers to login to local users and +## read/write all files on the system, governed by DAC. +##

##
gen_tunable(allow_ftpd_full_access, false) ## -##

-## Allow ftp servers to use cifs -## used for public file transfer services. -##

+##

+## Allow ftp servers to use cifs +## used for public file transfer services. +##

##
gen_tunable(allow_ftpd_use_cifs, false) ## -##

-## Allow ftp servers to use nfs -## used for public file transfer services. -##

+##

+## Allow ftp servers to use nfs +## used for public file transfer services. +##

##
gen_tunable(allow_ftpd_use_nfs, false) ## -##

-## Allow ftp servers to use connect to mysql database -##

+##

+## Allow ftp servers to use connect to mysql database +##

##
gen_tunable(ftpd_connect_db, false) ## -##

-## Allow ftp to read and write files in the user home directories -##

+##

+## Allow ftp to read and write files in the user home directories +##

##
gen_tunable(ftp_home_dir, false) ## -##

-## Allow anon internal-sftp to upload files, used for -## public file transfer services. Directories must be labeled -## public_content_rw_t. -##

+##

+## Allow anon internal-sftp to upload files, used for +## public file transfer services. Directories must be labeled +## public_content_rw_t. +##

##
gen_tunable(sftpd_anon_write, false) ## -##

-## Allow sftp-internal to read and write files -## in the user home directories -##

+##

+## Allow sftp-internal to read and write files +## in the user home directories +##

##
gen_tunable(sftpd_enable_homedirs, false) ## -##

-## Allow sftp-internal to login to local users and -## read/write all files on the system, governed by DAC. -##

+##

+## Allow sftp-internal to login to local users and +## read/write all files on the system, governed by DAC. +##

##
gen_tunable(sftpd_full_access, false) ## -##

-## Allow interlnal-sftp to read and write files -## in the user ssh home directories. -##

+##

+## Allow interlnal-sftp to read and write files +## in the user ssh home directories. +##

##
gen_tunable(sftpd_write_ssh_home, false) @@ -181,13 +181,13 @@ fs_tmpfs_filetrans(ftpd_t, ftpd_tmpfs_t, { dir file lnk_file sock_file fifo_file manage_dirs_pattern(ftpd_t, ftpd_var_run_t, ftpd_var_run_t) manage_files_pattern(ftpd_t, ftpd_var_run_t, ftpd_var_run_t) manage_sock_files_pattern(ftpd_t, ftpd_var_run_t, ftpd_var_run_t) -files_pid_filetrans(ftpd_t, ftpd_var_run_t, { file dir} ) +files_pid_filetrans(ftpd_t, ftpd_var_run_t, { file dir }) # proftpd requires the client side to bind a socket so that # it can stat the socket to perform access control decisions, # since getsockopt with SO_PEERCRED is not available on all # proftpd-supported OSs -allow ftpd_t ftpdctl_tmp_t:sock_file { getattr unlink }; +allow ftpd_t ftpdctl_tmp_t:sock_file delete_sock_file_perms; # Create and modify /var/log/xferlog. manage_files_pattern(ftpd_t, xferlog_t, xferlog_t) @@ -291,10 +291,10 @@ tunable_policy(`ftp_home_dir',` userdom_manage_user_home_content(ftpd_t) userdom_manage_user_tmp_files(ftpd_t) userdom_tmp_filetrans_user_tmp(ftpd_t, file) -', ` - # Needed for permissive mode, to make sure everything gets labeled correctly - userdom_user_home_dir_filetrans_pattern(ftpd_t, { dir file lnk_file }) - files_tmp_filetrans(ftpd_t, ftpd_tmp_t, { file dir }) +',` + # Needed for permissive mode, to make sure everything gets labeled correctly + userdom_user_home_dir_filetrans_pattern(ftpd_t, { dir file lnk_file }) + files_tmp_filetrans(ftpd_t, ftpd_tmp_t, { file dir }) ') tunable_policy(`ftp_home_dir && use_nfs_home_dirs',` @@ -349,8 +349,8 @@ optional_policy(` ') tunable_policy(`ftpd_connect_db',` - corenet_tcp_connect_mysqld_port(ftpd_t) - corenet_tcp_connect_postgresql_port(ftpd_t) + mysql_tcp_connect(ftpd_t) + postgresql_tcp_connect(ftpd_t) ') optional_policy(` @@ -385,10 +385,11 @@ optional_policy(` # Allow ftpdctl to talk to ftpd over a socket connection stream_connect_pattern(ftpdctl_t, ftpd_var_run_t, ftpd_var_run_t, ftpd_t) +files_search_pids(ftpdctl_t) # ftpdctl creates a socket so that the daemon can perform # access control decisions (see comments in ftpd_t rules above) -allow ftpdctl_t ftpdctl_tmp_t:sock_file { create setattr }; +allow ftpdctl_t ftpdctl_tmp_t:sock_file manage_sock_file_perms; files_tmp_filetrans(ftpdctl_t, ftpdctl_tmp_t, sock_file) # Allow ftpdctl to read config files @@ -400,6 +401,7 @@ userdom_use_user_terminals(ftpdctl_t) # # sftpd local policy # + files_read_etc_files(sftpd_t) # allow read access to /home by default @@ -408,13 +410,13 @@ userdom_read_user_home_content_symlinks(sftpd_t) userdom_dontaudit_list_admin_dir(sftpd_t) tunable_policy(`sftpd_full_access',` - allow sftpd_t self:capability { dac_override dac_read_search }; - fs_read_noxattr_fs_files(sftpd_t) - auth_manage_all_files_except_shadow(sftpd_t) + allow sftpd_t self:capability { dac_override dac_read_search }; + fs_read_noxattr_fs_files(sftpd_t) + auth_manage_all_files_except_shadow(sftpd_t) ') tunable_policy(`sftpd_write_ssh_home',` - ssh_manage_home_files(sftpd_t) + ssh_manage_home_files(sftpd_t) ') tunable_policy(`sftpd_enable_homedirs',` @@ -424,9 +426,9 @@ tunable_policy(`sftpd_enable_homedirs',` files_list_home(sftpd_t) userdom_read_user_home_content_files(sftpd_t) userdom_manage_user_home_content(sftpd_t) -', ` - # Needed for permissive mode, to make sure everything gets labeled correctly - userdom_user_home_dir_filetrans_pattern(sftpd_t, { dir file lnk_file }) +',` + # Needed for permissive mode, to make sure everything gets labeled correctly + userdom_user_home_dir_filetrans_pattern(sftpd_t, { dir file lnk_file }) ') tunable_policy(`sftpd_enable_homedirs && use_nfs_home_dirs',` diff --git a/policy/modules/services/gatekeeper.te b/policy/modules/services/gatekeeper.te index 99a94de..6dbc203 100644 --- a/policy/modules/services/gatekeeper.te +++ b/policy/modules/services/gatekeeper.te @@ -33,7 +33,7 @@ allow gatekeeper_t self:fifo_file rw_fifo_file_perms; allow gatekeeper_t self:tcp_socket create_stream_socket_perms; allow gatekeeper_t self:udp_socket create_socket_perms; -allow gatekeeper_t gatekeeper_etc_t:lnk_file { getattr read }; +allow gatekeeper_t gatekeeper_etc_t:lnk_file read_lnk_file_perms; allow gatekeeper_t gatekeeper_etc_t:file read_file_perms; files_search_etc(gatekeeper_t) diff --git a/policy/modules/services/git.fc b/policy/modules/services/git.fc index 7ab4c92..28b71f6 100644 --- a/policy/modules/services/git.fc +++ b/policy/modules/services/git.fc @@ -1,9 +1,10 @@ -HOME_DIR/public_git(/.*)? gen_context(system_u:object_r:git_session_content_t, s0) -HOME_DIR/\.gitconfig -- gen_context(system_u:object_r:git_session_content_t, s0) +HOME_DIR/public_git(/.*)? gen_context(system_u:object_r:git_session_content_t,s0) +HOME_DIR/\.gitaliases -- gen_context(system_u:object_r:git_session_content_t,s0) +HOME_DIR/\.gitconfig -- gen_context(system_u:object_r:git_session_content_t,s0) -/srv/git(/.*)? gen_context(system_u:object_r:git_system_content_t, s0) +/srv/git(/.*)? gen_context(system_u:object_r:git_system_content_t,s0) -/usr/libexec/git-core/git-daemon -- gen_context(system_u:object_r:gitd_exec_t, s0) +/usr/libexec/git-core/git-daemon -- gen_context(system_u:object_r:gitd_exec_t,s0) /var/cache/cgit(/.*)? gen_context(system_u:object_r:httpd_git_rw_content_t,s0) /var/lib/git(/.*)? gen_context(system_u:object_r:httpd_git_content_t,s0) diff --git a/policy/modules/services/git.if b/policy/modules/services/git.if index 63742a3..3780650 100644 --- a/policy/modules/services/git.if +++ b/policy/modules/services/git.if @@ -1,10 +1,10 @@ ## Fast Version Control System. ## ##

-## A really simple TCP git daemon that normally listens on -## port DEFAULT_GIT_PORT aka 9418. It waits for a -## connection asking for a service, and will serve that -## service if it is enabled. +## A really simple TCP git daemon that normally listens on +## port DEFAULT_GIT_PORT aka 9418. It waits for a +## connection asking for a service, and will serve that +## service if it is enabled. ##

##
@@ -25,8 +25,7 @@ # interface(`git_session_role',` gen_require(` - type git_session_t, gitd_exec_t; - type git_session_content_t; + type git_session_t, gitd_exec_t, git_session_content_t; ') ######################################## @@ -59,10 +58,8 @@ interface(`git_session_role',` ## # template(`git_content_template',` - gen_require(` - attribute git_system_content; - attribute git_content; + attribute git_system_content, git_content; ') ######################################## @@ -86,7 +83,6 @@ template(`git_content_template',` ## # template(`git_role_template',` - gen_require(` class context contains; role system_r; @@ -522,4 +518,3 @@ interface(`git_relabel_session_content',` relabel_files_pattern($1, git_session_content_t, git_session_content_t) userdom_search_user_home_dirs($1) ') - diff --git a/policy/modules/services/git.te b/policy/modules/services/git.te index cf17085..8d10fc5 100644 --- a/policy/modules/services/git.te +++ b/policy/modules/services/git.te @@ -1,23 +1,23 @@ policy_module(git, 1.0.3) ## -##

-## Allow Git daemon system to search home directories. -##

+##

+## Allow Git daemon system to search home directories. +##

##
gen_tunable(git_system_enable_homedirs, false) ## -##

-## Allow Git daemon system to access cifs file systems. -##

+##

+## Allow Git daemon system to access cifs file systems. +##

##
gen_tunable(git_system_use_cifs, false) ## -##

-## Allow Git daemon system to access nfs file systems. -##

+##

+## Allow Git daemon system to access nfs file systems. +##

##
gen_tunable(git_system_use_nfs, false) @@ -31,6 +31,7 @@ attribute git_system_content; attribute git_content; type gitd_exec_t; +application_executable_file(gitd_exec_t) ######################################## # @@ -51,10 +52,10 @@ typealias git_system_content_t alias git_data_t; # ## -##

-## Allow Git daemon session to bind -## tcp sockets to all unreserved ports. -##

+##

+## Allow Git daemon session to bind +## tcp sockets to all unreserved ports. +##

##
gen_tunable(git_session_bind_all_unreserved_ports, false) @@ -119,26 +120,26 @@ list_dirs_pattern(git_system_t, git_content, git_content) read_files_pattern(git_system_t, git_content, git_content) files_search_var_lib(git_system_t) -tunable_policy(`git_system_enable_homedirs', ` +tunable_policy(`git_system_enable_homedirs',` userdom_search_user_home_dirs(git_system_t) ') -tunable_policy(`git_system_enable_homedirs && use_nfs_home_dirs', ` +tunable_policy(`git_system_enable_homedirs && use_nfs_home_dirs',` fs_list_nfs(git_system_t) fs_read_nfs_files(git_system_t) ') -tunable_policy(`git_system_enable_homedirs && use_samba_home_dirs', ` +tunable_policy(`git_system_enable_homedirs && use_samba_home_dirs',` fs_list_cifs(git_system_t) fs_read_cifs_files(git_system_t) ') -tunable_policy(`git_system_use_cifs', ` +tunable_policy(`git_system_use_cifs',` fs_list_cifs(git_system_t) fs_read_cifs_files(git_system_t) ') -tunable_policy(`git_system_use_nfs', ` +tunable_policy(`git_system_use_nfs',` fs_list_nfs(git_system_t) fs_read_nfs_files(git_system_t) ') @@ -156,17 +157,17 @@ userdom_search_user_home_dirs(git_session_t) userdom_use_user_terminals(git_session_t) -tunable_policy(`git_session_bind_all_unreserved_ports', ` +tunable_policy(`git_session_bind_all_unreserved_ports',` corenet_tcp_bind_all_unreserved_ports(git_session_t) corenet_sendrecv_generic_server_packets(git_session_t) ') -tunable_policy(`use_nfs_home_dirs', ` +tunable_policy(`use_nfs_home_dirs',` fs_list_nfs(git_session_t) fs_read_nfs_files(git_session_t) ') -tunable_policy(`use_samba_home_dirs', ` +tunable_policy(`use_samba_home_dirs',` fs_list_cifs(git_session_t) fs_read_cifs_files(git_session_t) ') @@ -189,4 +190,3 @@ optional_policy(` git_role_template(git_shell) gen_user(git_shell_u, user, git_shell_r, s0, s0) - diff --git a/policy/modules/services/gnomeclock.if b/policy/modules/services/gnomeclock.if index da0e844..b1f8f93 100644 --- a/policy/modules/services/gnomeclock.if +++ b/policy/modules/services/gnomeclock.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run gnomeclock. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`gnomeclock_domtrans',` @@ -71,7 +71,7 @@ interface(`gnomeclock_dbus_chat',` ## ## ## -## Domain allowed access. +## Domain to not audit. ## ## # diff --git a/policy/modules/services/gpm.if b/policy/modules/services/gpm.if index 7d97298..d6b2959 100644 --- a/policy/modules/services/gpm.if +++ b/policy/modules/services/gpm.if @@ -16,8 +16,8 @@ interface(`gpm_stream_connect',` type gpmctl_t, gpm_t; ') - allow $1 gpmctl_t:sock_file rw_sock_file_perms; - allow $1 gpm_t:unix_stream_socket connectto; + dev_list_all_dev_nodes($1) + stream_connect_pattern($1, gpmctl_t, gpmctl_t, gpm_t) ') ######################################## @@ -37,7 +37,7 @@ interface(`gpm_getattr_gpmctl',` ') dev_list_all_dev_nodes($1) - allow $1 gpmctl_t:sock_file getattr; + allow $1 gpmctl_t:sock_file getattr_sock_file_perms; ') ######################################## @@ -57,7 +57,7 @@ interface(`gpm_dontaudit_getattr_gpmctl',` type gpmctl_t; ') - dontaudit $1 gpmctl_t:sock_file getattr; + dontaudit $1 gpmctl_t:sock_file getattr_sock_file_perms; ') ######################################## @@ -77,5 +77,5 @@ interface(`gpm_setattr_gpmctl',` ') dev_list_all_dev_nodes($1) - allow $1 gpmctl_t:sock_file setattr; + allow $1 gpmctl_t:sock_file setattr_sock_file_perms; ') diff --git a/policy/modules/services/hal.if b/policy/modules/services/hal.if index 0d50d0d..26de57a 100644 --- a/policy/modules/services/hal.if +++ b/policy/modules/services/hal.if @@ -20,24 +20,6 @@ interface(`hal_domtrans',` ######################################## ## -## Get the attributes of a hal process. -## -## -## -## Domain allowed access. -## -## -# -interface(`hal_getattr',` - gen_require(` - type hald_t; - ') - - allow $1 hald_t:process getattr; -') - -######################################## -## ## Read hal system state ## ## @@ -88,7 +70,7 @@ interface(`hal_use_fds',` type hald_t; ') - allow $1 hald_t:fd use; + allow $1 hald_t:fd use; ') ######################################## @@ -106,7 +88,7 @@ interface(`hal_dontaudit_use_fds',` type hald_t; ') - dontaudit $1 hald_t:fd use; + dontaudit $1 hald_t:fd use; ') ######################################## @@ -125,7 +107,7 @@ interface(`hal_rw_pipes',` type hald_t; ') - allow $1 hald_t:fifo_file rw_fifo_file_perms; + allow $1 hald_t:fifo_file rw_fifo_file_perms; ') ######################################## @@ -144,7 +126,7 @@ interface(`hal_dontaudit_rw_pipes',` type hald_t; ') - dontaudit $1 hald_t:fifo_file rw_fifo_file_perms; + dontaudit $1 hald_t:fifo_file rw_fifo_file_perms; ') ######################################## @@ -378,7 +360,7 @@ interface(`hal_read_pid_files',` ######################################## ## -## Do not audit attempts to read +## Do not audit attempts to read ## hald PID files. ## ## @@ -464,14 +446,12 @@ interface(`hal_manage_pid_files',` # interface(`hal_dontaudit_leaks',` gen_require(` - type hald_log_t; - type hald_t; - type hald_var_run_t; + type hald_log_t, hald_t, hald_var_run_t; ') - dontaudit $1 hald_t:fd use; + dontaudit $1 hald_t:fd use; dontaudit $1 hald_log_t:file rw_inherited_file_perms; - dontaudit $1 hald_t:fifo_file rw_inherited_fifo_file_perms; + dontaudit $1 hald_t:fifo_file rw_inherited_fifo_file_perms; dontaudit hald_t $1:socket_class_set { read write }; dontaudit $1 hald_var_run_t:file read_inherited_file_perms; ') diff --git a/policy/modules/services/hal.te b/policy/modules/services/hal.te index e72b063..b3fdcd5 100644 --- a/policy/modules/services/hal.te +++ b/policy/modules/services/hal.te @@ -316,7 +316,7 @@ optional_policy(` ') optional_policy(` - policykit_dbus_chat(hald_t) + policykit_dbus_chat(hald_t) policykit_domtrans_auth(hald_t) policykit_domtrans_resolve(hald_t) policykit_read_lib(hald_t) @@ -333,7 +333,7 @@ optional_policy(` optional_policy(` shutdown_domtrans(hald_t) -') +') optional_policy(` udev_domtrans(hald_t) @@ -411,7 +411,7 @@ logging_send_syslog_msg(hald_acl_t) miscfiles_read_localization(hald_acl_t) optional_policy(` - policykit_dbus_chat(hald_acl_t) + policykit_dbus_chat(hald_acl_t) policykit_domtrans_auth(hald_acl_t) policykit_read_lib(hald_acl_t) policykit_read_reload(hald_acl_t) @@ -493,7 +493,7 @@ files_read_usr_files(hald_keymap_t) miscfiles_read_localization(hald_keymap_t) -# This is caused by a bug in hald and PolicyKit. +# This is caused by a bug in hald and PolicyKit. # Should be removed when this is fixed cron_read_system_job_lib_files(hald_t) diff --git a/policy/modules/services/hddtemp.if b/policy/modules/services/hddtemp.if index 777b036..db2d189 100644 --- a/policy/modules/services/hddtemp.if +++ b/policy/modules/services/hddtemp.if @@ -69,5 +69,5 @@ interface(`hddtemp_admin',` allow $2 system_r; admin_pattern($1, hddtemp_etc_t) - files_search_etc($1) + files_list_etc($1) ') diff --git a/policy/modules/services/hddtemp.te b/policy/modules/services/hddtemp.te index 267bb4c..1647fc4 100644 --- a/policy/modules/services/hddtemp.te +++ b/policy/modules/services/hddtemp.te @@ -46,4 +46,3 @@ storage_raw_read_fixed_disk(hddtemp_t) logging_send_syslog_msg(hddtemp_t) miscfiles_read_localization(hddtemp_t) - diff --git a/policy/modules/services/icecast.if b/policy/modules/services/icecast.if index 3aa86f3..40affd8 100644 --- a/policy/modules/services/icecast.if +++ b/policy/modules/services/icecast.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run icecast. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`icecast_domtrans',` @@ -118,9 +118,9 @@ interface(`icecast_read_log',` ## icecast log files. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`icecast_append_log',` @@ -183,7 +183,5 @@ interface(`icecast_admin',` allow $2 system_r; icecast_manage_pid_files($1) - icecast_manage_log($1) - ') diff --git a/policy/modules/services/icecast.te b/policy/modules/services/icecast.te index 80befb0..6bf7cc3 100644 --- a/policy/modules/services/icecast.te +++ b/policy/modules/services/icecast.te @@ -6,10 +6,10 @@ policy_module(icecast, 1.0.1) # ## -##

-## Allow icecast to connect to all ports, not just -## sound ports. -##

+##

+## Allow icecast to connect to all ports, not just +## sound ports. +##

##
gen_tunable(icecast_connect_any, false) @@ -39,7 +39,7 @@ allow icecast_t self:tcp_socket create_stream_socket_perms; manage_dirs_pattern(icecast_t, icecast_log_t, icecast_log_t) manage_files_pattern(icecast_t, icecast_log_t, icecast_log_t) -logging_log_filetrans(icecast_t, icecast_log_t, { file dir } ) +logging_log_filetrans(icecast_t, icecast_log_t, { file dir }) manage_dirs_pattern(icecast_t, icecast_var_run_t, icecast_var_run_t) manage_files_pattern(icecast_t, icecast_var_run_t, icecast_var_run_t) diff --git a/policy/modules/services/ifplugd.if b/policy/modules/services/ifplugd.if index dfb4232..7665429 100644 --- a/policy/modules/services/ifplugd.if +++ b/policy/modules/services/ifplugd.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run ifplugd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`ifplugd_domtrans',` @@ -113,8 +113,8 @@ interface(`ifplugd_read_pid_files',` # interface(`ifplugd_admin',` gen_require(` - type ifplugd_t, ifplugd_etc_t; - type ifplugd_var_run_t, ifplugd_initrc_exec_t; + type ifplugd_t, ifplugd_etc_t, ifplugd_var_run_t; + type ifplugd_initrc_exec_t; ') allow $1 ifplugd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/inetd.if b/policy/modules/services/inetd.if index df48e5e..6985546 100644 --- a/policy/modules/services/inetd.if +++ b/policy/modules/services/inetd.if @@ -55,7 +55,6 @@ interface(`inetd_core_service_domain',` ## # interface(`inetd_tcp_service_domain',` - gen_require(` type inetd_t; ') diff --git a/policy/modules/services/inn.if b/policy/modules/services/inn.if index ebc9e0d..2f3d8dc 100644 --- a/policy/modules/services/inn.if +++ b/policy/modules/services/inn.if @@ -93,6 +93,7 @@ interface(`inn_read_config',` type innd_etc_t; ') + files_search_etc($1) allow $1 innd_etc_t:dir list_dir_perms; allow $1 innd_etc_t:file read_file_perms; allow $1 innd_etc_t:lnk_file read_lnk_file_perms; @@ -113,6 +114,7 @@ interface(`inn_read_news_lib',` type innd_var_lib_t; ') + files_search_var_lib($1) allow $1 innd_var_lib_t:dir list_dir_perms; allow $1 innd_var_lib_t:file read_file_perms; allow $1 innd_var_lib_t:lnk_file read_lnk_file_perms; @@ -133,6 +135,7 @@ interface(`inn_read_news_spool',` type news_spool_t; ') + files_search_spool($1) allow $1 news_spool_t:dir list_dir_perms; allow $1 news_spool_t:file read_file_perms; allow $1 news_spool_t:lnk_file read_lnk_file_perms; @@ -195,8 +198,8 @@ interface(`inn_domtrans',` interface(`inn_admin',` gen_require(` type innd_t, innd_etc_t, innd_log_t; - type news_spool_t, innd_var_lib_t; - type innd_var_run_t, innd_initrc_exec_t; + type news_spool_t, innd_var_lib_t, innd_var_run_t; + type innd_initrc_exec_t; ') allow $1 innd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/inn.te b/policy/modules/services/inn.te index 05119f7..dc7dd01 100644 --- a/policy/modules/services/inn.te +++ b/policy/modules/services/inn.te @@ -4,6 +4,7 @@ policy_module(inn, 1.9.0) # # Declarations # + type innd_t; type innd_exec_t; init_daemon_domain(innd_t, innd_exec_t) @@ -30,6 +31,7 @@ files_mountpoint(news_spool_t) # # Local policy # + allow innd_t self:capability { dac_override kill setgid setuid }; dontaudit innd_t self:capability sys_tty_config; allow innd_t self:process { setsched signal_perms }; @@ -46,7 +48,7 @@ read_lnk_files_pattern(innd_t, innd_etc_t, innd_etc_t) can_exec(innd_t, innd_exec_t) manage_files_pattern(innd_t, innd_log_t, innd_log_t) -allow innd_t innd_log_t:dir setattr; +allow innd_t innd_log_t:dir setattr_dir_perms; logging_log_filetrans(innd_t, innd_log_t, file) manage_dirs_pattern(innd_t, innd_var_lib_t, innd_var_lib_t) diff --git a/policy/modules/services/jabber.if b/policy/modules/services/jabber.if index f17e629..9167dc9 100644 --- a/policy/modules/services/jabber.if +++ b/policy/modules/services/jabber.if @@ -2,95 +2,95 @@ ####################################### ## -## Execute a domain transition to run jabberd services +## Execute a domain transition to run jabberd services ## ## -## -## Domain allowed to transition. -## +## +## Domain allowed to transition. +## ## # interface(`jabber_domtrans_jabberd',` - gen_require(` - type jabberd_t, jabberd_exec_t; - ') + gen_require(` + type jabberd_t, jabberd_exec_t; + ') - domtrans_pattern($1, jabberd_exec_t, jabberd_t) + domtrans_pattern($1, jabberd_exec_t, jabberd_t) ') ###################################### ## -## Execute a domain transition to run jabberd router service +## Execute a domain transition to run jabberd router service ## ## -## -## Domain allowed to transition. -## +## +## Domain allowed to transition. +## ## # interface(`jabber_domtrans_jabberd_router',` - gen_require(` - type jabberd_router_t, jabberd_router_exec_t; - ') + gen_require(` + type jabberd_router_t, jabberd_router_exec_t; + ') - domtrans_pattern($1, jabberd_router_exec_t, jabberd_router_t) + domtrans_pattern($1, jabberd_router_exec_t, jabberd_router_t) ') ####################################### ## -## Read jabberd lib files. +## Read jabberd lib files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`jabberd_read_lib_files',` - gen_require(` - type jabberd_var_lib_t; - ') + gen_require(` + type jabberd_var_lib_t; + ') - files_search_var_lib($1) - read_files_pattern($1, jabberd_var_lib_t, jabberd_var_lib_t) + files_search_var_lib($1) + read_files_pattern($1, jabberd_var_lib_t, jabberd_var_lib_t) ') ####################################### ## -## Dontaudit inherited read jabberd lib files. +## Dontaudit inherited read jabberd lib files. ## ## -## -## Domain to not audit. -## +## +## Domain to not audit. +## ## # interface(`jabberd_dontaudit_read_lib_files',` - gen_require(` - type jabberd_var_lib_t; - ') + gen_require(` + type jabberd_var_lib_t; + ') - dontaudit $1 jabberd_var_lib_t:file read_inherited_file_perms; + dontaudit $1 jabberd_var_lib_t:file read_inherited_file_perms; ') ####################################### ## -## Create, read, write, and delete -## jabberd lib files. +## Create, read, write, and delete +## jabberd lib files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`jabberd_manage_lib_files',` - gen_require(` - type jabberd_var_lib_t; - ') + gen_require(` + type jabberd_var_lib_t; + ') - files_search_var_lib($1) - manage_files_pattern($1, jabberd_var_lib_t, jabberd_var_lib_t) + files_search_var_lib($1) + manage_files_pattern($1, jabberd_var_lib_t, jabberd_var_lib_t) ') ######################################## @@ -113,15 +113,14 @@ interface(`jabberd_manage_lib_files',` interface(`jabber_admin',` gen_require(` type jabberd_t, jabberd_log_t, jabberd_var_lib_t; - type jabberd_var_run_t, jabberd_initrc_exec_t; - type jabberd_router_t; + type jabberd_var_run_t, jabberd_initrc_exec_t, jabberd_router_t; ') allow $1 jabberd_t:process { ptrace signal_perms }; ps_process_pattern($1, jabberd_t) allow $1 jabberd_router_t:process { ptrace signal_perms }; - ps_process_pattern($1, jabberd_router_t) + ps_process_pattern($1, jabberd_router_t) init_labeled_script_domtrans($1, jabberd_initrc_exec_t) domain_system_change_exemption($1) diff --git a/policy/modules/services/jabber.te b/policy/modules/services/jabber.te index 975bbcd..5f8840f 100644 --- a/policy/modules/services/jabber.te +++ b/policy/modules/services/jabber.te @@ -1,4 +1,3 @@ - policy_module(jabber, 1.8.0) ######################################## @@ -84,7 +83,7 @@ corenet_tcp_bind_jabber_router_port(jabberd_router_t) corenet_sendrecv_jabber_router_server_packets(jabberd_router_t) optional_policy(` - kerberos_use(jabberd_router_t) + kerberos_use(jabberd_router_t) ') ######################################## diff --git a/policy/modules/services/kerberos.if b/policy/modules/services/kerberos.if index 604f67b..8c72504 100644 --- a/policy/modules/services/kerberos.if +++ b/policy/modules/services/kerberos.if @@ -26,9 +26,9 @@ ## Execute kadmind in the current domain ## ## -## +## ## Domain allowed access. -## +## ## # interface(`kerberos_exec_kadmind',` @@ -44,9 +44,9 @@ interface(`kerberos_exec_kadmind',` ## Execute a domain transition to run kpropd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`kerberos_domtrans_kpropd',` @@ -69,8 +69,7 @@ interface(`kerberos_domtrans_kpropd',` # interface(`kerberos_use',` gen_require(` - type krb5_conf_t, krb5kdc_conf_t; - type krb5_host_rcache_t; + type krb5_conf_t, krb5kdc_conf_t, krb5_host_rcache_t; ') files_search_etc($1) @@ -103,7 +102,7 @@ interface(`kerberos_use',` corenet_sendrecv_kerberos_client_packets($1) corenet_sendrecv_ocsp_client_packets($1) - allow $1 krb5_host_rcache_t:file getattr; + allow $1 krb5_host_rcache_t:file getattr_file_perms; ') optional_policy(` @@ -235,7 +234,7 @@ template(`kerberos_keytab_template',` type $1_keytab_t; files_type($1_keytab_t) - allow $2 $1_keytab_t:file read_file_perms; + allow $2 $1_keytab_t:file read_file_perms; kerberos_read_keytab($2) kerberos_use($2) @@ -338,9 +337,8 @@ interface(`kerberos_admin',` type kadmind_t, krb5kdc_t, kerberos_initrc_exec_t; type kadmind_log_t, kadmind_tmp_t, kadmind_var_run_t; type krb5_conf_t, krb5_keytab_t, krb5kdc_conf_t; - type krb5kdc_principal_t, krb5kdc_tmp_t; + type krb5kdc_principal_t, krb5kdc_tmp_t, kpropd_t; type krb5kdc_var_run_t, krb5_host_rcache_t; - type kpropd_t; ') allow $1 kadmind_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/kerberos.te b/policy/modules/services/kerberos.te index 225e33f..744e7d6 100644 --- a/policy/modules/services/kerberos.te +++ b/policy/modules/services/kerberos.te @@ -6,9 +6,9 @@ policy_module(kerberos, 1.11.0) # ## -##

-## Allow confined applications to run with kerberos. -##

+##

+## Allow confined applications to run with kerberos. +##

##
gen_tunable(allow_kerberos, false) @@ -93,9 +93,9 @@ allow kadmind_t krb5_conf_t:file read_file_perms; dontaudit kadmind_t krb5_conf_t:file write; read_files_pattern(kadmind_t, krb5kdc_conf_t, krb5kdc_conf_t) -dontaudit kadmind_t krb5kdc_conf_t:file { write setattr }; +dontaudit kadmind_t krb5kdc_conf_t:file { write_file_perms setattr_file_perms }; -allow kadmind_t krb5kdc_lock_t:file { rw_file_perms setattr }; +allow kadmind_t krb5kdc_lock_t:file { rw_file_perms setattr_file_perms }; allow kadmind_t krb5kdc_principal_t:file manage_file_perms; filetrans_pattern(kadmind_t, krb5kdc_conf_t, krb5kdc_principal_t, file) @@ -197,7 +197,7 @@ can_exec(krb5kdc_t, krb5kdc_exec_t) read_files_pattern(krb5kdc_t, krb5kdc_conf_t, krb5kdc_conf_t) dontaudit krb5kdc_t krb5kdc_conf_t:file write; -allow krb5kdc_t krb5kdc_lock_t:file { rw_file_perms setattr }; +allow krb5kdc_t krb5kdc_lock_t:file { rw_file_perms setattr_file_perms }; allow krb5kdc_t krb5kdc_log_t:file manage_file_perms; logging_log_filetrans(krb5kdc_t, krb5kdc_log_t, file) diff --git a/policy/modules/services/kerneloops.if b/policy/modules/services/kerneloops.if index 835b16b..dd32883 100644 --- a/policy/modules/services/kerneloops.if +++ b/policy/modules/services/kerneloops.if @@ -5,15 +5,14 @@ ## Execute a domain transition to run kerneloops. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`kerneloops_domtrans',` gen_require(` - type kerneloops_t; - type kerneloops_exec_t; + type kerneloops_t, kerneloops_exec_t; ') domtrans_pattern($1, kerneloops_exec_t, kerneloops_t) @@ -99,8 +98,7 @@ interface(`kerneloops_manage_tmp_files',` # interface(`kerneloops_admin',` gen_require(` - type kerneloops_t, kerneloops_initrc_exec_t; - type kerneloops_tmp_t; + type kerneloops_t, kerneloops_initrc_exec_t, kerneloops_tmp_t; ') allow $1 kerneloops_t:process { ptrace signal_perms }; @@ -111,5 +109,6 @@ interface(`kerneloops_admin',` role_transition $2 kerneloops_initrc_exec_t system_r; allow $2 system_r; + files_list_tmp($1) admin_pattern($1, kerneloops_tmp_t) ') diff --git a/policy/modules/services/ksmtuned.if b/policy/modules/services/ksmtuned.if index d17f349..b733e45 100644 --- a/policy/modules/services/ksmtuned.if +++ b/policy/modules/services/ksmtuned.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run ksmtuned. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`ksmtuned_domtrans',` @@ -55,8 +55,7 @@ interface(`ksmtuned_initrc_domtrans',` # interface(`ksmtuned_admin',` gen_require(` - type ksmtuned_t, ksmtuned_var_run_t; - type ksmtuned_initrc_exec_t; + type ksmtuned_t, ksmtuned_var_run_t, ksmtuned_initrc_exec_t; ') allow $1 ksmtuned_t:process { ptrace signal_perms }; @@ -70,5 +69,4 @@ interface(`ksmtuned_admin',` domain_system_change_exemption($1) role_transition $2 ksmtuned_initrc_exec_t system_r; allow $2 system_r; - ') diff --git a/policy/modules/services/ksmtuned.te b/policy/modules/services/ksmtuned.te index ffe035c..01adbed 100644 --- a/policy/modules/services/ksmtuned.te +++ b/policy/modules/services/ksmtuned.te @@ -49,4 +49,3 @@ mls_file_read_to_clearance(ksmtuned_t) term_use_all_terms(ksmtuned_t) miscfiles_read_localization(ksmtuned_t) - diff --git a/policy/modules/services/ldap.if b/policy/modules/services/ldap.if index d15f94d..c51c1f6 100644 --- a/policy/modules/services/ldap.if +++ b/policy/modules/services/ldap.if @@ -2,42 +2,40 @@ ####################################### ## -## Execute OpenLDAP in the ldap domain. +## Execute OpenLDAP in the ldap domain. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`ldap_domtrans',` - gen_require(` - type slapd_t, slapd_exec_t; - ') - - domtrans_pattern($1, slapd_exec_t, slapd_t) + gen_require(` + type slapd_t, slapd_exec_t; + ') + domtrans_pattern($1, slapd_exec_t, slapd_t) ') ####################################### ## -## Execute OpenLDAP server in the ldap domain. +## Execute OpenLDAP server in the ldap domain. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`ldap_initrc_domtrans',` - gen_require(` - type slapd_initrc_exec_t; - ') + gen_require(` + type slapd_initrc_exec_t; + ') - init_labeled_script_domtrans($1, slapd_initrc_exec_t) + init_labeled_script_domtrans($1, slapd_initrc_exec_t) ') - ######################################## ## ## Read the contents of the OpenLDAP @@ -189,6 +187,7 @@ interface(`ldap_admin',` admin_pattern($1, slapd_lock_t) + files_list_var_lib($1) admin_pattern($1, slapd_replog_t) files_list_tmp($1) diff --git a/policy/modules/services/ldap.te b/policy/modules/services/ldap.te index ee5e345..10c2d54 100644 --- a/policy/modules/services/ldap.te +++ b/policy/modules/services/ldap.te @@ -82,7 +82,7 @@ manage_files_pattern(slapd_t, slapd_tmp_t, slapd_tmp_t) files_tmp_filetrans(slapd_t, slapd_tmp_t, { file dir }) manage_files_pattern(slapd_t, slapd_tmpfs_t, slapd_tmpfs_t) -fs_tmpfs_filetrans(slapd_t, slapd_tmpfs_t,file) +fs_tmpfs_filetrans(slapd_t, slapd_tmpfs_t, file) manage_dirs_pattern(slapd_t, slapd_var_run_t, slapd_var_run_t) manage_files_pattern(slapd_t, slapd_var_run_t, slapd_var_run_t) diff --git a/policy/modules/services/likewise.if b/policy/modules/services/likewise.if index 771e04b..81d98b3 100644 --- a/policy/modules/services/likewise.if +++ b/policy/modules/services/likewise.if @@ -63,7 +63,7 @@ template(`likewise_domain_template',` allow $1_t self:tcp_socket create_stream_socket_perms; allow $1_t self:udp_socket create_socket_perms; - allow $1_t likewise_var_lib_t:dir setattr; + allow $1_t likewise_var_lib_t:dir setattr_dir_perms; manage_files_pattern($1_t, $1_var_run_t, $1_var_run_t) files_pid_filetrans($1_t, $1_var_run_t, file) diff --git a/policy/modules/services/likewise.te b/policy/modules/services/likewise.te index ae9d49f..65e6d81 100644 --- a/policy/modules/services/likewise.te +++ b/policy/modules/services/likewise.te @@ -205,7 +205,7 @@ stream_connect_pattern(lwsmd_t, likewise_var_lib_t, lwregd_var_socket_t, lwregd_ # Likewise DC location service local policy # -allow netlogond_t self:capability {dac_override}; +allow netlogond_t self:capability dac_override; manage_files_pattern(netlogond_t, likewise_etc_t, likewise_etc_t) diff --git a/policy/modules/services/lircd.if b/policy/modules/services/lircd.if index 418cc81..5cfe950 100644 --- a/policy/modules/services/lircd.if +++ b/policy/modules/services/lircd.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run lircd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`lircd_domtrans',` @@ -16,7 +16,6 @@ interface(`lircd_domtrans',` ') domain_auto_trans($1, lircd_exec_t, lircd_t) - ') ###################################### @@ -44,9 +43,9 @@ interface(`lircd_stream_connect',` ## Read lircd etc file ## ## -## +## ## Domain allowed access. -## +## ## # interface(`lircd_read_config',` @@ -76,8 +75,8 @@ interface(`lircd_read_config',` # interface(`lircd_admin',` gen_require(` - type lircd_t, lircd_var_run_t; - type lircd_initrc_exec_t, lircd_etc_t; + type lircd_t, lircd_var_run_t, lircd_etc_t; + type lircd_initrc_exec_t; ') allow $1 lircd_t:process { ptrace signal_perms }; @@ -88,9 +87,9 @@ interface(`lircd_admin',` role_transition $2 lircd_initrc_exec_t system_r; allow $2 system_r; - files_search_etc($1) + files_list_etc($1) admin_pattern($1, lircd_etc_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, lircd_var_run_t) ') diff --git a/policy/modules/services/lpd.if b/policy/modules/services/lpd.if index d801ec0..ea7dca0 100644 --- a/policy/modules/services/lpd.if +++ b/policy/modules/services/lpd.if @@ -14,6 +14,7 @@ ## User domain for the role ## ## +## # interface(`lpd_role',` gen_require(` @@ -27,7 +28,7 @@ interface(`lpd_role',` dontaudit lpr_t $2:unix_stream_socket { read write }; ps_process_pattern($2, lpr_t) - allow $2 lpr_t:process signull; + allow $2 lpr_t:process { ptrace signal_perms }; optional_policy(` cups_read_config($2) @@ -186,7 +187,7 @@ interface(`lpd_read_config',` ## ## # -template(`lpd_domtrans_lpr',` +interface(`lpd_domtrans_lpr',` gen_require(` type lpr_t, lpr_exec_t; ') diff --git a/policy/modules/services/lpd.te b/policy/modules/services/lpd.te index 4d31118..80671d9 100644 --- a/policy/modules/services/lpd.te +++ b/policy/modules/services/lpd.te @@ -6,9 +6,9 @@ policy_module(lpd, 1.12.0) # ## -##

-## Use lpd server instead of cups -##

+##

+## Use lpd server instead of cups +##

##
gen_tunable(use_lpd_server, false) @@ -80,7 +80,7 @@ rw_files_pattern(checkpc_t, print_spool_t, print_spool_t) delete_files_pattern(checkpc_t, print_spool_t, print_spool_t) files_search_spool(checkpc_t) -allow checkpc_t printconf_t:file getattr; +allow checkpc_t printconf_t:file getattr_file_perms; allow checkpc_t printconf_t:dir list_dir_perms; kernel_read_system_state(checkpc_t) @@ -284,13 +284,13 @@ userdom_read_user_tmp_files(lpr_t) tunable_policy(`use_lpd_server',` # lpr can run in lightweight mode, without a local print spooler. - allow lpr_t lpd_var_run_t:dir search; - allow lpr_t lpd_var_run_t:sock_file write; + allow lpr_t lpd_var_run_t:dir search_dir_perms; + allow lpr_t lpd_var_run_t:sock_file write_sock_file_perms; files_read_var_files(lpr_t) # Connect to lpd via a Unix domain socket. - allow lpr_t printer_t:sock_file rw_sock_file_perms; - allow lpr_t lpd_t:unix_stream_socket connectto; + allow lpr_t printer_t:sock_file read_sock_file_perms; + stream_connect_pattern(lpr_t, printer_t, printer_t, lpd_t) # Send SIGHUP to lpd. allow lpr_t lpd_t:process signal; diff --git a/policy/modules/services/mailman.if b/policy/modules/services/mailman.if index 19bcae2..84b7626 100644 --- a/policy/modules/services/mailman.if +++ b/policy/modules/services/mailman.if @@ -16,7 +16,7 @@ ## ## # -template(`mailman_domain_template', ` +template(`mailman_domain_template',` type mailman_$1_t; domain_type(mailman_$1_t) role system_r types mailman_$1_t; diff --git a/policy/modules/services/mailman.te b/policy/modules/services/mailman.te index ac97ed9..96e3c80 100644 --- a/policy/modules/services/mailman.te +++ b/policy/modules/services/mailman.te @@ -61,9 +61,9 @@ optional_policy(` # Mailman mail local policy # -allow mailman_mail_t self:unix_dgram_socket create_socket_perms; -allow mailman_mail_t self:process { signal signull }; allow mailman_mail_t self:capability { kill dac_override setuid setgid sys_tty_config }; +allow mailman_mail_t self:process { signal signull }; +allow mailman_mail_t self:unix_dgram_socket create_socket_perms; manage_dirs_pattern(mailman_mail_t, mailman_archive_t, mailman_archive_t) manage_files_pattern(mailman_mail_t, mailman_archive_t, mailman_archive_t) diff --git a/policy/modules/services/memcached.if b/policy/modules/services/memcached.if index ee60e59..5008a6c 100644 --- a/policy/modules/services/memcached.if +++ b/policy/modules/services/memcached.if @@ -5,15 +5,14 @@ ## Execute a domain transition to run memcached. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`memcached_domtrans',` gen_require(` - type memcached_t; - type memcached_exec_t; + type memcached_t, memcached_exec_t; ') domtrans_pattern($1, memcached_exec_t, memcached_t) @@ -57,9 +56,7 @@ interface(`memcached_read_pid_files',` # interface(`memcached_admin',` gen_require(` - type memcached_t; - type memcached_initrc_exec_t; - type memcached_var_run_t; + type memcached_t, memcached_initrc_exec_t, memcached_var_run_t; ') allow $1 memcached_t:process { ptrace signal_perms }; @@ -70,6 +67,6 @@ interface(`memcached_admin',` role_transition $2 memcached_initrc_exec_t system_r; allow $2 system_r; - files_search_pids($1) + files_list_pids($1) admin_pattern($1, memcached_var_run_t) ') diff --git a/policy/modules/services/milter.if b/policy/modules/services/milter.if index a000225..d7e81f3 100644 --- a/policy/modules/services/milter.if +++ b/policy/modules/services/milter.if @@ -59,7 +59,7 @@ interface(`milter_stream_connect_all',` attribute milter_data_type, milter_domains; ') - getattr_dirs_pattern($1, milter_data_type, milter_data_type) + files_search_pids($1) stream_connect_pattern($1, milter_data_type, milter_data_type, milter_domains) ') @@ -78,7 +78,6 @@ interface(`milter_getattr_all_sockets',` attribute milter_data_type; ') - getattr_dirs_pattern($1, milter_data_type, milter_data_type) getattr_sock_files_pattern($1, milter_data_type, milter_data_type) ') @@ -123,19 +122,19 @@ interface(`milter_manage_spamass_state',` ####################################### ## -## Delete dkim-milter PID files. +## Delete dkim-milter PID files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`milter_delete_dkim_pid_files',` - gen_require(` - type dkim_milter_data_t; - ') + gen_require(` + type dkim_milter_data_t; + ') - files_search_pids($1) - delete_files_pattern($1, dkim_milter_data_t, dkim_milter_data_t) + files_search_pids($1) + delete_files_pattern($1, dkim_milter_data_t, dkim_milter_data_t) ') diff --git a/policy/modules/services/milter.te b/policy/modules/services/milter.te index 6ba48ff..f42a489 100644 --- a/policy/modules/services/milter.te +++ b/policy/modules/services/milter.te @@ -33,7 +33,6 @@ files_type(spamass_milter_state_t) # allow dkim_milter_t self:capability { kill setgid setuid }; - allow dkim_milter_t self:unix_stream_socket create_stream_socket_perms; read_files_pattern(dkim_milter_t, dkim_milter_private_key_t, dkim_milter_private_key_t) @@ -47,8 +46,8 @@ mta_read_config(dkim_milter_t) ######################################## # # milter-greylist local policy -# ensure smtp clients retry mail like real MTAs and not spamware -# http://hcpnet.free.fr/milter-greylist/ +# ensure smtp clients retry mail like real MTAs and not spamware +# http://hcpnet.free.fr/milter-greylist/ # # It removes any existing socket (not owned by root) whilst running as root, @@ -76,8 +75,8 @@ mta_read_config(greylist_milter_t) ######################################## # # milter-regex local policy -# filter emails using regular expressions -# http://www.benzedrine.cx/milter-regex.html +# filter emails using regular expressions +# http://www.benzedrine.cx/milter-regex.html # # It removes any existing socket (not owned by root) whilst running as root @@ -96,8 +95,8 @@ mta_read_config(regex_milter_t) ######################################## # # spamass-milter local policy -# pipe emails through SpamAssassin -# http://savannah.nongnu.org/projects/spamass-milt/ +# pipe emails through SpamAssassin +# http://savannah.nongnu.org/projects/spamass-milt/ # # The milter runs from /var/lib/spamass-milter diff --git a/policy/modules/services/mock.if b/policy/modules/services/mock.if index 5a1698c..d76fb11 100644 --- a/policy/modules/services/mock.if +++ b/policy/modules/services/mock.if @@ -1,4 +1,3 @@ - ## policy for mock ######################################## @@ -6,9 +5,9 @@ ## Execute a domain transition to run mock. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`mock_domtrans',` @@ -19,7 +18,6 @@ interface(`mock_domtrans',` domtrans_pattern($1, mock_exec_t, mock_t) ') - ######################################## ## ## Search mock lib directories. @@ -55,7 +53,7 @@ interface(`mock_read_lib_files',` ') files_search_var_lib($1) - read_files_pattern($1, mock_var_lib_t, mock_var_lib_t) + read_files_pattern($1, mock_var_lib_t, mock_var_lib_t) ') ######################################## @@ -75,7 +73,7 @@ interface(`mock_manage_lib_files',` ') files_search_var_lib($1) - manage_files_pattern($1, mock_var_lib_t, mock_var_lib_t) + manage_files_pattern($1, mock_var_lib_t, mock_var_lib_t) ') ######################################## @@ -94,7 +92,7 @@ interface(`mock_manage_lib_dirs',` ') files_search_var_lib($1) - manage_dirs_pattern($1, mock_var_lib_t, mock_var_lib_t) + manage_dirs_pattern($1, mock_var_lib_t, mock_var_lib_t) ') ######################################### @@ -113,7 +111,7 @@ interface(`mock_manage_lib_symlinks',` ') files_search_var_lib($1) - manage_lnk_files_pattern($1, mock_var_lib_t, mock_var_lib_t) + manage_lnk_files_pattern($1, mock_var_lib_t, mock_var_lib_t) ') ######################################## @@ -132,7 +130,7 @@ interface(`mock_manage_lib_chr_files',` ') files_search_var_lib($1) - manage_chr_files_pattern($1, mock_var_lib_t, mock_var_lib_t) + manage_chr_files_pattern($1, mock_var_lib_t, mock_var_lib_t) ') ######################################## @@ -150,6 +148,7 @@ interface(`mock_manage_lib_chr_files',` ## The role to be allowed the mock domain. ## ## +## # interface(`mock_run',` gen_require(` @@ -174,10 +173,11 @@ interface(`mock_run',` ## User domain for the role ## ## +## # interface(`mock_role',` gen_require(` - type mock_t; + type mock_t; ') role $1 types mock_t; @@ -185,7 +185,7 @@ interface(`mock_role',` mock_domtrans($2) ps_process_pattern($2, mock_t) - allow $2 mock_t:process signal; + allow $2 mock_t:process { ptrace signal_perms }; ') ####################################### @@ -225,14 +225,12 @@ interface(`mock_signal',` # interface(`mock_admin',` gen_require(` - type mock_t; - type mock_var_lib_t; + type mock_t, mock_var_lib_t; ') allow $1 mock_t:process { ptrace signal_perms }; ps_process_pattern($1, mock_t) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, mock_var_lib_t) - ') diff --git a/policy/modules/services/mock.te b/policy/modules/services/mock.te index 6f8fda5..b05a9cd 100644 --- a/policy/modules/services/mock.te +++ b/policy/modules/services/mock.te @@ -27,6 +27,7 @@ files_type(mock_var_lib_t) # # mock local policy # + allow mock_t self:capability { sys_admin setfcap setuid sys_ptrace sys_chroot chown audit_write dac_override sys_nice mknod fsetid setgid fowner }; allow mock_t self:process { siginh noatsecure signull transition rlimitinh setsched setpgid sigkill }; dontaudit mock_t self:process { siginh noatsecure rlimitinh }; @@ -40,14 +41,14 @@ files_var_filetrans(mock_t, mock_cache_t, { dir file } ) manage_dirs_pattern(mock_t, mock_tmp_t, mock_tmp_t) manage_files_pattern(mock_t, mock_tmp_t, mock_tmp_t) -files_tmp_filetrans(mock_t, mock_tmp_t, { dir file } ) +files_tmp_filetrans(mock_t, mock_tmp_t, { dir file }) can_exec(mock_t, mock_tmp_t) manage_dirs_pattern(mock_t, mock_var_lib_t, mock_var_lib_t) manage_files_pattern(mock_t, mock_var_lib_t, mock_var_lib_t) manage_lnk_files_pattern(mock_t, mock_var_lib_t, mock_var_lib_t) manage_chr_files_pattern(mock_t, mock_var_lib_t, mock_var_lib_t) -files_var_lib_filetrans(mock_t, mock_var_lib_t, { dir file } ) +files_var_lib_filetrans(mock_t, mock_var_lib_t, { dir file }) can_exec(mock_t, mock_var_lib_t) allow mock_t mock_var_lib_t:dir mounton; diff --git a/policy/modules/services/modemmanager.if b/policy/modules/services/modemmanager.if index 3368699..7a7fc02 100644 --- a/policy/modules/services/modemmanager.if +++ b/policy/modules/services/modemmanager.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run modemmanager. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`modemmanager_domtrans',` diff --git a/policy/modules/services/mojomojo.if b/policy/modules/services/mojomojo.if index cf7968d..88e7330 100644 --- a/policy/modules/services/mojomojo.if +++ b/policy/modules/services/mojomojo.if @@ -19,10 +19,9 @@ # interface(`mojomojo_admin',` gen_require(` - type httpd_mojomojo_script_t; - type httpd_mojomojo_content_t, httpd_mojomojo_ra_content_t; - type httpd_mojomojo_rw_content_t, httpd_mojomojo_tmp_t; - type httpd_mojomojo_script_exec_t, httpd_mojomojo_htaccess_t; + type httpd_mojomojo_script_t, httpd_mojomojo_content_t, httpd_mojomojo_ra_content_t; + type httpd_mojomojo_rw_content_t, httpd_mojomojo_tmp_t, httpd_mojomojo_htaccess_t; + type httpd_mojomojo_script_exec_t; ') allow $1 httpd_mojomojo_script_t:process { ptrace signal_perms }; @@ -31,9 +30,9 @@ interface(`mojomojo_admin',` files_list_tmp($1) admin_pattern($1, httpd_mojomojo_tmp_t) - files_search_var_lib(httpd_mojomojo_script_t) + files_list_var_lib(httpd_mojomojo_script_t) - apache_search_sys_content($1) + apache_list_sys_content($1) admin_pattern($1, httpd_mojomojo_script_exec_t) admin_pattern($1, httpd_mojomojo_script_t) admin_pattern($1, httpd_mojomojo_content_t) diff --git a/policy/modules/services/mpd.if b/policy/modules/services/mpd.if index 5599d14..311aaed 100644 --- a/policy/modules/services/mpd.if +++ b/policy/modules/services/mpd.if @@ -1,4 +1,3 @@ - ## policy for daemon for playing music ######################################## @@ -6,9 +5,9 @@ ## Execute a domain transition to run mpd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`mpd_domtrans',` @@ -19,7 +18,6 @@ interface(`mpd_domtrans',` domtrans_pattern($1, mpd_exec_t, mpd_t) ') - ######################################## ## ## Execute mpd server in the mpd domain. @@ -40,79 +38,79 @@ interface(`mpd_initrc_domtrans',` ####################################### ## -## Read mpd data files. +## Read mpd data files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`mpd_read_data_files',` - gen_require(` - type mpd_data_t; - ') + gen_require(` + type mpd_data_t; + ') mpd_search_lib($1) - read_files_pattern($1, mpd_data_t, mpd_data_t) + read_files_pattern($1, mpd_data_t, mpd_data_t) ') ####################################### ## -## Read mpd tmpfs files. +## Read mpd tmpfs files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`mpd_read_tmpfs_files',` - gen_require(` - type mpd_tmpfs_t; - ') + gen_require(` + type mpd_tmpfs_t; + ') fs_search_tmpfs($1) - read_files_pattern($1, mpd_tmpfs_t, mpd_tmpfs_t) + read_files_pattern($1, mpd_tmpfs_t, mpd_tmpfs_t) ') ################################### ## -## Manage mpd tmpfs files. +## Manage mpd tmpfs files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`mpd_manage_tmpfs_files',` - gen_require(` - type mpd_tmpfs_t; - ') + gen_require(` + type mpd_tmpfs_t; + ') fs_search_tmpfs($1) - manage_files_pattern($1, mpd_tmpfs_t, mpd_tmpfs_t) - manage_lnk_files_pattern($1, mpd_tmpfs_t, mpd_tmpfs_t) + manage_files_pattern($1, mpd_tmpfs_t, mpd_tmpfs_t) + manage_lnk_files_pattern($1, mpd_tmpfs_t, mpd_tmpfs_t) ') ###################################### ## -## Manage mpd data files. +## Manage mpd data files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`mpd_manage_data_files',` - gen_require(` - type mpd_data_t; - ') + gen_require(` + type mpd_data_t; + ') - mpd_search_lib($1) - manage_files_pattern($1, mpd_data_t, mpd_data_t) + mpd_search_lib($1) + manage_files_pattern($1, mpd_data_t, mpd_data_t) ') ######################################## @@ -150,7 +148,7 @@ interface(`mpd_read_lib_files',` ') files_search_var_lib($1) - read_files_pattern($1, mpd_var_lib_t, mpd_var_lib_t) + read_files_pattern($1, mpd_var_lib_t, mpd_var_lib_t) ') ######################################## @@ -170,36 +168,37 @@ interface(`mpd_manage_lib_files',` ') files_search_var_lib($1) - manage_files_pattern($1, mpd_var_lib_t, mpd_var_lib_t) + manage_files_pattern($1, mpd_var_lib_t, mpd_var_lib_t) ') ####################################### ## -## Create an object in the root directory, with a private -## type using a type transition. +## Create an object in the root directory, with a private +## type using a type transition. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## ## -## -## The type of the object to be created. -## +## +## The type of the object to be created. +## ## ## -## -## The object class of the object being created. -## +## +## The object class of the object being created. +## ## # interface(`mpd_var_lib_filetrans',` - gen_require(` - type mpd_var_lib_t; - ') + gen_require(` + type mpd_var_lib_t; + ') - filetrans_pattern($1, mpd_var_lib_t, $2, $3) + files_search_var_lib($1) + filetrans_pattern($1, mpd_var_lib_t, $2, $3) ') ######################################## @@ -218,7 +217,7 @@ interface(`mpd_manage_lib_dirs',` ') files_search_var_lib($1) - manage_dirs_pattern($1, mpd_var_lib_t, mpd_var_lib_t) + manage_dirs_pattern($1, mpd_var_lib_t, mpd_var_lib_t) ') ######################################## @@ -240,12 +239,8 @@ interface(`mpd_manage_lib_dirs',` # interface(`mpd_admin',` gen_require(` - type mpd_t; - type mpd_initrc_exec_t; - type mpd_etc_t; - type mpd_data_t; - type mpd_log_t; - type mpd_var_lib_t; + type mpd_t, mpd_initrc_exec_t, mpd_etc_t; + type mpd_data_t, mpd_log_t, mpd_var_lib_t; type mpd_tmpfs_t; ') @@ -258,16 +253,15 @@ interface(`mpd_admin',` allow $2 system_r; admin_pattern($1, mpd_etc_t) - files_search_etc($1) + files_list_etc($1) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, mpd_var_lib_t) - - mpd_search_lib($1) + admin_pattern($1, mpd_data_t) admin_pattern($1, mpd_log_t) - fs_search_tmpfs($1) + fs_list_tmpfs($1) admin_pattern($1, mpd_tmpfs_t) ') diff --git a/policy/modules/services/mpd.te b/policy/modules/services/mpd.te index 71464f6..84bc8bb 100644 --- a/policy/modules/services/mpd.te +++ b/policy/modules/services/mpd.te @@ -1,4 +1,4 @@ -policy_module(mpd,1.0.0) +policy_module(mpd, 1.0.0) ######################################## # @@ -41,7 +41,6 @@ files_type(mpd_var_lib_t) #cjp: dac_override bug in mpd relating to mpd.log file allow mpd_t self:capability { dac_override kill setgid setuid }; allow mpd_t self:process { getsched setsched setrlimit signal signull }; - allow mpd_t self:fifo_file rw_fifo_file_perms; allow mpd_t self:unix_stream_socket { connectto create_stream_socket_perms }; allow mpd_t self:tcp_socket create_stream_socket_perms; @@ -102,10 +101,10 @@ optional_policy(` optional_policy(` pulseaudio_exec(mpd_t) - pulseaudio_stream_connect(mpd_t) - pulseaudio_signull(mpd_t) + pulseaudio_stream_connect(mpd_t) + pulseaudio_signull(mpd_t) ') optional_policy(` - udev_read_db(mpd_t) + udev_read_db(mpd_t) ') diff --git a/policy/modules/services/mta.if b/policy/modules/services/mta.if index a9ebda2..2f948ad 100644 --- a/policy/modules/services/mta.if +++ b/policy/modules/services/mta.if @@ -37,9 +37,9 @@ interface(`mta_stub',` ## is the prefix for user_t). ## ## +## # template(`mta_base_mail_template',` - gen_require(` attribute user_mail_domain; type sendmail_exec_t; @@ -158,6 +158,7 @@ template(`mta_base_mail_template',` ## User domain for the role ## ## +## # interface(`mta_role',` gen_require(` @@ -169,7 +170,7 @@ interface(`mta_role',` # Transition from the user domain to the derived domain. domtrans_pattern($2, sendmail_exec_t, user_mail_t) - allow $2 sendmail_exec_t:lnk_file { getattr read }; + allow $2 sendmail_exec_t:lnk_file read_lnk_file_perms; allow mta_user_agent $2:fd use; allow mta_user_agent $2:process sigchld; @@ -225,18 +226,18 @@ interface(`mta_agent_executable',` ## Dontaudit read and write an leaked file descriptors ## ## -## -## Domain allowed access. -## +## +## Domain to not audit. +## ## # interface(`mta_dontaudit_leaks_system_mail',` - gen_require(` - type system_mail_t; - ') + gen_require(` + type system_mail_t; + ') - dontaudit $1 system_mail_t:fifo_file write; - dontaudit $1 system_mail_t:tcp_socket { read write }; + dontaudit $1 system_mail_t:fifo_file write; + dontaudit $1 system_mail_t:tcp_socket { read write }; ') ######################################## @@ -325,7 +326,6 @@ interface(`mta_mailserver_sender',` interface(`mta_mailserver_delivery',` gen_require(` attribute mailserver_delivery; - type mail_spool_t; ') typeattribute $1 mailserver_delivery; @@ -363,9 +363,8 @@ interface(`mta_mailserver_user_agent',` # interface(`mta_send_mail',` gen_require(` - attribute mta_user_agent; + attribute mta_user_agent, mta_exec_type; type system_mail_t; - attribute mta_exec_type; ') allow $1 mta_exec_type:lnk_file read_lnk_file_perms; @@ -376,7 +375,7 @@ interface(`mta_send_mail',` allow mta_user_agent $1:process sigchld; allow mta_user_agent $1:fifo_file rw_fifo_file_perms; - ifdef(`hide_broken_symptoms', ` + ifdef(`hide_broken_symptoms',` dontaudit system_mail_t $1:socket_class_set { read write }; ') ') @@ -429,7 +428,6 @@ interface(`mta_sendmail_domtrans',` ## ## # -# interface(`mta_signal_system_mail',` gen_require(` type system_mail_t; @@ -448,7 +446,6 @@ interface(`mta_signal_system_mail',` ## ## # -# interface(`mta_kill_system_mail',` gen_require(` type system_mail_t; @@ -514,7 +511,7 @@ interface(`mta_write_config',` ') manage_files_pattern($1, etc_mail_t, etc_mail_t) - allow $1 etc_mail_t:file setattr; + allow $1 etc_mail_t:file setattr_file_perms; ') ######################################## @@ -592,7 +589,7 @@ interface(`mta_rw_aliases',` ') files_search_etc($1) - allow $1 etc_aliases_t:file { rw_file_perms setattr }; + allow $1 etc_aliases_t:file { rw_file_perms setattr_file_perms }; ') ####################################### @@ -686,8 +683,8 @@ interface(`mta_dontaudit_getattr_spool_files',` files_dontaudit_search_spool($1) dontaudit $1 mail_spool_t:dir search_dir_perms; - dontaudit $1 mail_spool_t:lnk_file read; - dontaudit $1 mail_spool_t:file getattr; + dontaudit $1 mail_spool_t:lnk_file read_lnk_file_perms; + dontaudit $1 mail_spool_t:file getattr_file_perms; ') ####################################### @@ -737,7 +734,7 @@ interface(`mta_rw_spool',` files_search_spool($1) allow $1 mail_spool_t:dir list_dir_perms; - allow $1 mail_spool_t:file setattr; + allow $1 mail_spool_t:file setattr_file_perms; manage_files_pattern($1, mail_spool_t, mail_spool_t) read_lnk_files_pattern($1, mail_spool_t, mail_spool_t) ') @@ -878,7 +875,7 @@ interface(`mta_dontaudit_rw_queue',` ') dontaudit $1 mqueue_spool_t:dir search_dir_perms; - dontaudit $1 mqueue_spool_t:file { getattr read write }; + dontaudit $1 mqueue_spool_t:file rw_file_perms; ') ######################################## @@ -957,25 +954,32 @@ interface(`mta_rw_user_mail_stream_sockets',` ## # interface(`mta_filetrans_aliases',` + gen_require(` + type etc_aliases_t; + ') + filetrans_pattern($1, $2, etc_aliases_t, file) ') ###################################### ## -## ALlow domain to read mail content in the homedir +## ALlow domain to read mail content in the homedir ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`mta_read_home',` - gen_require(` - type mail_home_t; - ') + gen_require(` + type mail_home_t; + ') + + userdom_search_user_home_dirs($1) + read_files_pattern($1, mail_home_t, mail_home_t) - userdom_search_user_home_dirs($1) - userdom_search_admin_dir($1) - read_files_pattern($1, mail_home_t, mail_home_t) + ifdef(`distro_redhat',` + userdom_search_admin_dir($1) + ') ') diff --git a/policy/modules/services/mta.te b/policy/modules/services/mta.te index f99b9fc..36e64e9 100644 --- a/policy/modules/services/mta.te +++ b/policy/modules/services/mta.te @@ -93,7 +93,7 @@ optional_policy(` optional_policy(` arpwatch_manage_tmp_files(system_mail_t) - ifdef(`hide_broken_symptoms', ` + ifdef(`hide_broken_symptoms',` arpwatch_dontaudit_rw_packet_sockets(system_mail_t) ') ') @@ -194,7 +194,7 @@ optional_policy(` arpwatch_search_data(mailserver_delivery) arpwatch_manage_tmp_files(mta_user_agent) - ifdef(`hide_broken_symptoms', ` + ifdef(`hide_broken_symptoms',` arpwatch_dontaudit_rw_packet_sockets(mta_user_agent) ') @@ -314,8 +314,6 @@ kernel_read_system_state(user_mail_domain) kernel_read_network_state(user_mail_domain) kernel_request_load_module(user_mail_domain) - - optional_policy(` # postfix needs this for newaliases files_getattr_tmp_dirs(user_mail_domain) diff --git a/policy/modules/services/munin.if b/policy/modules/services/munin.if index dda8ca9..92c9dca 100644 --- a/policy/modules/services/munin.if +++ b/policy/modules/services/munin.if @@ -37,8 +37,7 @@ template(`munin_plugin_template',` # automatic transition rules from munin domain # to specific munin plugin domain domtrans_pattern(munin_t, $1_munin_plugin_exec_t, $1_munin_plugin_t) - allow munin_t $1_munin_plugin_t:process signal; - + allow munin_t $1_munin_plugin_t:process signal; ') ######################################## @@ -79,26 +78,26 @@ interface(`munin_read_config',` allow $1 munin_etc_t:dir list_dir_perms; allow $1 munin_etc_t:file read_file_perms; - allow $1 munin_etc_t:lnk_file { getattr read }; + allow $1 munin_etc_t:lnk_file read_lnk_file_perms; files_search_etc($1) ') ###################################### ## -## dontaudit read and write an leaked file descriptors +## dontaudit read and write an leaked file descriptors ## ## -## -## Domain allowed access. -## +## +## Domain to not audit. +## ## # interface(`munin_dontaudit_leaks',` - gen_require(` - type munin_t; - ') + gen_require(` + type munin_t; + ') - dontaudit $1 munin_t:tcp_socket { read write }; + dontaudit $1 munin_t:tcp_socket { read write }; ') ####################################### @@ -181,8 +180,7 @@ interface(`munin_admin',` gen_require(` type munin_t, munin_etc_t, munin_tmp_t; type munin_log_t, munin_var_lib_t, munin_var_run_t; - type httpd_munin_content_t; - type munin_initrc_exec_t; + type httpd_munin_content_t, munin_initrc_exec_t; ') allow $1 munin_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/munin.te b/policy/modules/services/munin.te index 13d365d..6f8b0fd 100644 --- a/policy/modules/services/munin.te +++ b/policy/modules/services/munin.te @@ -193,7 +193,7 @@ optional_policy(` # local policy for disk plugins # -allow munin_disk_plugin_t self:capability { sys_admin sys_rawio }; +allow munin_disk_plugin_t self:capability { sys_admin sys_rawio }; allow disk_munin_plugin_t self:tcp_socket create_stream_socket_perms; rw_files_pattern(disk_munin_plugin_t, munin_var_lib_t, munin_var_lib_t) diff --git a/policy/modules/services/mysql.if b/policy/modules/services/mysql.if index b81e257..4d3b208 100644 --- a/policy/modules/services/mysql.if +++ b/policy/modules/services/mysql.if @@ -253,7 +253,7 @@ interface(`mysql_write_log',` ') logging_search_logs($1) - allow $1 mysqld_log_t:file { write_file_perms setattr }; + allow $1 mysqld_log_t:file { write_file_perms setattr_file_perms }; ') ###################################### @@ -330,10 +330,9 @@ interface(`mysql_search_pid_files',` # interface(`mysql_admin',` gen_require(` - type mysqld_t, mysqld_var_run_t; - type mysqld_tmp_t, mysqld_db_t; - type mysqld_etc_t, mysqld_log_t; - type mysqld_initrc_exec_t; + type mysqld_t, mysqld_var_run_t, mysqld_initrc_exec_t; + type mysqld_tmp_t, mysqld_db_t, mysqld_log_t; + type mysqld_etc_t; ') allow $1 mysqld_t:process { ptrace signal_perms }; @@ -344,13 +343,17 @@ interface(`mysql_admin',` role_transition $2 mysqld_initrc_exec_t system_r; allow $2 system_r; + files_list_pids($1) admin_pattern($1, mysqld_var_run_t) admin_pattern($1, mysqld_db_t) + files_list_etc($1) admin_pattern($1, mysqld_etc_t) + logging_list_logs($1) admin_pattern($1, mysqld_log_t) + files_list_tmp($1) admin_pattern($1, mysqld_tmp_t) ') diff --git a/policy/modules/services/mysql.te b/policy/modules/services/mysql.te index b370d53..086df22 100644 --- a/policy/modules/services/mysql.te +++ b/policy/modules/services/mysql.te @@ -6,9 +6,9 @@ policy_module(mysql, 1.12.0) # ## -##

-## Allow mysqld to connect to all ports -##

+##

+## Allow mysqld to connect to all ports +##

##
gen_tunable(mysql_connect_any, false) @@ -69,7 +69,7 @@ manage_lnk_files_pattern(mysqld_t, mysqld_db_t, mysqld_db_t) files_var_lib_filetrans(mysqld_t, mysqld_db_t, { dir file lnk_file }) allow mysqld_t mysqld_etc_t:file read_file_perms; -allow mysqld_t mysqld_etc_t:lnk_file { getattr read }; +allow mysqld_t mysqld_etc_t:lnk_file read_lnk_file_perms; allow mysqld_t mysqld_etc_t:dir list_dir_perms; allow mysqld_t mysqld_log_t:file manage_file_perms; @@ -129,8 +129,7 @@ userdom_dontaudit_use_unpriv_user_fds(mysqld_t) userdom_read_user_home_content_files(mysqld_t) ifdef(`distro_redhat',` - # because Fedora has the sock_file in the database directory - type_transition mysqld_t mysqld_db_t:sock_file mysqld_var_run_t; + filetrans_pattern(mysqld_t, mysqld_db_t, mysqld_var_run_t, sock_file) ') tunable_policy(`mysql_connect_any',` @@ -157,8 +156,8 @@ optional_policy(` allow mysqld_safe_t self:capability { chown dac_override fowner kill }; dontaudit mysqld_safe_t self:capability sys_ptrace; -allow mysqld_safe_t self:fifo_file rw_fifo_file_perms; allow mysqld_safe_t self:process { setsched getsched setrlimit }; +allow mysqld_safe_t self:fifo_file rw_fifo_file_perms; read_lnk_files_pattern(mysqld_safe_t, mysqld_db_t, mysqld_db_t) diff --git a/policy/modules/services/nagios.if b/policy/modules/services/nagios.if index 33d9d44..89e1edf 100644 --- a/policy/modules/services/nagios.if +++ b/policy/modules/services/nagios.if @@ -12,10 +12,8 @@ ## # template(`nagios_plugin_template',` - gen_require(` - type nagios_t, nrpe_t; - type nagios_log_t; + type nagios_t, nrpe_t, nagios_log_t; ') type nagios_$1_plugin_t; @@ -50,7 +48,6 @@ template(`nagios_plugin_template',` ## Domain to not audit. ## ## -## # interface(`nagios_dontaudit_rw_pipes',` gen_require(` @@ -216,11 +213,9 @@ interface(`nagios_domtrans_nrpe',` # interface(`nagios_admin',` gen_require(` - type nagios_t, nrpe_t; - type nagios_tmp_t, nagios_log_t; - type nagios_etc_t, nrpe_etc_t; - type nagios_spool_t, nagios_var_run_t; - type nagios_initrc_exec_t; + type nagios_t, nrpe_t, nagios_initrc_exec_t; + type nagios_tmp_t, nagios_log_t, nagios_var_run_t; + type nagios_etc_t, nrpe_etc_t, nagios_spool_t; ') allow $1 nagios_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/nagios.te b/policy/modules/services/nagios.te index 1029389..61a3920 100644 --- a/policy/modules/services/nagios.te +++ b/policy/modules/services/nagios.te @@ -141,6 +141,7 @@ optional_policy(` # # Nagios CGI local policy # + optional_policy(` apache_content_template(nagios) typealias httpd_nagios_script_t alias nagios_cgi_t; @@ -268,7 +269,6 @@ files_getattr_all_file_type_fs(nagios_admin_plugin_t) # allow nagios_mail_plugin_t self:capability { setuid setgid dac_override }; - allow nagios_mail_plugin_t self:netlink_route_socket r_netlink_socket_perms; allow nagios_mail_plugin_t self:tcp_socket create_stream_socket_perms; allow nagios_mail_plugin_t self:udp_socket create_socket_perms; @@ -321,7 +321,6 @@ storage_raw_read_fixed_disk(nagios_checkdisk_plugin_t) allow nagios_services_plugin_t self:capability { net_bind_service net_raw }; allow nagios_services_plugin_t self:process { signal sigkill }; - allow nagios_services_plugin_t self:tcp_socket create_stream_socket_perms; allow nagios_services_plugin_t self:udp_socket create_socket_perms; diff --git a/policy/modules/services/networkmanager.if b/policy/modules/services/networkmanager.if index 1a1bfe4..8069487 100644 --- a/policy/modules/services/networkmanager.if +++ b/policy/modules/services/networkmanager.if @@ -43,9 +43,9 @@ interface(`networkmanager_rw_packet_sockets',` ## Allow caller to relabel tun_socket ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`networkmanager_attach_tun_iface',` @@ -137,12 +137,13 @@ interface(`networkmanager_dbus_chat',` ######################################## ## -## Send and receive messages from -## NetworkManager over dbus. +## Do not audit attempts to send and +## receive messages from NetworkManager +## over dbus. ## ## ## -## Domain allowed access. +## Domain to not audit. ## ## # @@ -220,12 +221,12 @@ interface(`networkmanager_read_pid_files',` ## ## ## -## Domain allowed access. +## Domain allowed to transition. ## ## ## ## -## The role to be allowed the NetworkManager domain. +## Role allowed access. ## ## ## diff --git a/policy/modules/services/nis.if b/policy/modules/services/nis.if index c42c268..995a6cb 100644 --- a/policy/modules/services/nis.if +++ b/policy/modules/services/nis.if @@ -34,7 +34,7 @@ interface(`nis_use_ypbind_uncond',` allow $1 self:udp_socket create_socket_perms; allow $1 var_yp_t:dir list_dir_perms; - allow $1 var_yp_t:lnk_file { getattr read }; + allow $1 var_yp_t:lnk_file read_lnk_file_perms; allow $1 var_yp_t:file read_file_perms; corenet_all_recvfrom_unlabeled($1) @@ -243,25 +243,6 @@ interface(`nis_read_ypbind_pid',` ######################################## ## -## Delete ypbind pid files. -## -## -## -## Domain allowed access. -## -## -# -interface(`nis_delete_ypbind_pid',` - gen_require(` - type ypbind_t; - ') - - # TODO: add delete pid from dir call to files - allow $1 ypbind_t:file unlink; -') - -######################################## -## ## Read ypserv configuration files. ## ## @@ -354,10 +335,10 @@ interface(`nis_initrc_domtrans_ypbind',` # interface(`nis_admin',` gen_require(` - type ypbind_t, yppasswdd_t, ypserv_t, ypxfr_t; + type ypbind_t, yppasswdd_t, ypserv_t; type ypbind_tmp_t, ypserv_tmp_t, ypserv_conf_t; type ypbind_var_run_t, yppasswdd_var_run_t, ypserv_var_run_t; - type ypbind_initrc_exec_t, nis_initrc_exec_t; + type ypbind_initrc_exec_t, nis_initrc_exec_t, ypxfr_t; ') allow $1 ypbind_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/nis.te b/policy/modules/services/nis.te index 4876cae..5f2ba87 100644 --- a/policy/modules/services/nis.te +++ b/policy/modules/services/nis.te @@ -55,10 +55,11 @@ files_pid_file(ypxfr_var_run_t) ######################################## # # ypbind local policy +# dontaudit ypbind_t self:capability { net_admin sys_tty_config }; -allow ypbind_t self:fifo_file rw_fifo_file_perms; allow ypbind_t self:process signal_perms; +allow ypbind_t self:fifo_file rw_fifo_file_perms; allow ypbind_t self:{ unix_dgram_socket unix_stream_socket } create_socket_perms; allow ypbind_t self:netlink_route_socket r_netlink_socket_perms; allow ypbind_t self:tcp_socket create_stream_socket_perms; @@ -142,8 +143,8 @@ optional_policy(` allow yppasswdd_t self:capability dac_override; dontaudit yppasswdd_t self:capability sys_tty_config; -allow yppasswdd_t self:fifo_file rw_fifo_file_perms; allow yppasswdd_t self:process { getsched setfscreate signal_perms }; +allow yppasswdd_t self:fifo_file rw_fifo_file_perms; allow yppasswdd_t self:unix_dgram_socket create_socket_perms; allow yppasswdd_t self:unix_stream_socket create_stream_socket_perms; allow yppasswdd_t self:netlink_route_socket r_netlink_socket_perms; @@ -224,8 +225,8 @@ optional_policy(` # dontaudit ypserv_t self:capability sys_tty_config; -allow ypserv_t self:fifo_file rw_fifo_file_perms; allow ypserv_t self:process signal_perms; +allow ypserv_t self:fifo_file rw_fifo_file_perms; allow ypserv_t self:unix_dgram_socket create_socket_perms; allow ypserv_t self:unix_stream_socket create_stream_socket_perms; allow ypserv_t self:netlink_route_socket r_netlink_socket_perms; diff --git a/policy/modules/services/nscd.if b/policy/modules/services/nscd.if index ded2734..99cefb8 100644 --- a/policy/modules/services/nscd.if +++ b/policy/modules/services/nscd.if @@ -116,7 +116,7 @@ interface(`nscd_socket_use',` dontaudit $1 nscd_t:nscd { getserv shmempwd shmemgrp shmemhost shmemserv }; files_search_pids($1) stream_connect_pattern($1, nscd_var_run_t, nscd_var_run_t, nscd_t) - dontaudit $1 nscd_var_run_t:file { getattr read }; + dontaudit $1 nscd_var_run_t:file read_file_perms; ') ######################################## @@ -164,11 +164,14 @@ interface(`nscd_shm_use',` # nscd_socket_domain macro. need to investigate # if they are all actually required allow $1 self:unix_stream_socket create_stream_socket_perms; - allow $1 nscd_t:unix_stream_socket connectto; - allow $1 nscd_var_run_t:sock_file rw_file_perms; + + # dg: This may not be required. + allow $1 nscd_var_run_t:sock_file read_sock_file_perms; + + stream_connect_pattern($1, nscd_var_run_t, nscd_var_run_t, nscd_t) files_search_pids($1) allow $1 nscd_t:nscd { getpwd getgrp gethost }; - dontaudit $1 nscd_var_run_t:file { getattr read }; + dontaudit $1 nscd_var_run_t:file read_file_perms; ') ######################################## @@ -242,6 +245,7 @@ interface(`nscd_unconfined',` ## Role allowed access. ## ## +## # interface(`nscd_run',` gen_require(` diff --git a/policy/modules/services/nscd.te b/policy/modules/services/nscd.te index 6a174f5..6b54db7 100644 --- a/policy/modules/services/nscd.te +++ b/policy/modules/services/nscd.te @@ -5,9 +5,9 @@ gen_require(` ') ## -##

-## Allow confined applications to use nscd shared memory. -##

+##

+## Allow confined applications to use nscd shared memory. +##

##
gen_tunable(nscd_use_shm, false) @@ -146,6 +146,7 @@ optional_policy(` samba_append_log(nscd_t) samba_dontaudit_use_fds(nscd_t) ') + samba_read_config(nscd_t) samba_read_var_files(nscd_t) ') diff --git a/policy/modules/services/nslcd.if b/policy/modules/services/nslcd.if index b94add1..be5a5b4 100644 --- a/policy/modules/services/nslcd.if +++ b/policy/modules/services/nslcd.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run nslcd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`nslcd_domtrans',` @@ -93,8 +93,8 @@ interface(`nslcd_stream_connect',` # interface(`nslcd_admin',` gen_require(` - type nslcd_t, nslcd_initrc_exec_t; - type nslcd_conf_t, nslcd_var_run_t; + type nslcd_t, nslcd_initrc_exec_t, nslcd_var_run_t; + type nslcd_conf_t; ') ps_process_pattern($1, nslcd_t) @@ -106,9 +106,9 @@ interface(`nslcd_admin',` role_transition $2 nslcd_initrc_exec_t system_r; allow $2 system_r; - files_search_etc($1) + files_list_etc($1) admin_pattern($1, nslcd_conf_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, nslcd_var_run_t, nslcd_var_run_t) ') diff --git a/policy/modules/services/ntp.if b/policy/modules/services/ntp.if index 6b240d9..694b002 100644 --- a/policy/modules/services/ntp.if +++ b/policy/modules/services/ntp.if @@ -140,8 +140,7 @@ interface(`ntp_rw_shm',` interface(`ntp_admin',` gen_require(` type ntpd_t, ntpd_tmp_t, ntpd_log_t; - type ntpd_key_t, ntpd_var_run_t; - type ntpd_initrc_exec_t; + type ntpd_key_t, ntpd_var_run_t, ntpd_initrc_exec_t; ') allow $1 ntpd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/nx.if b/policy/modules/services/nx.if index b1384ad..cbb2bce 100644 --- a/policy/modules/services/nx.if +++ b/policy/modules/services/nx.if @@ -33,6 +33,7 @@ interface(`nx_read_home_files',` type nx_server_home_ssh_t, nx_server_var_lib_t; ') + files_search_var_lib($1) allow $1 nx_server_var_lib_t:dir search_dir_perms; read_files_pattern($1, nx_server_home_ssh_t, nx_server_home_ssh_t) read_lnk_files_pattern($1, nx_server_home_ssh_t, nx_server_home_ssh_t) @@ -53,6 +54,7 @@ interface(`nx_search_var_lib',` type nx_server_var_lib_t; ') + files_search_var_lib($1) allow $1 nx_server_var_lib_t:dir search_dir_perms; ') @@ -82,5 +84,6 @@ interface(`nx_var_lib_filetrans',` type nx_server_var_lib_t; ') + files_search_var_lib($1) filetrans_pattern($1, nx_server_var_lib_t, $2, $3) ') diff --git a/policy/modules/services/oddjob.if b/policy/modules/services/oddjob.if index ca33ae3..ca6517b 100644 --- a/policy/modules/services/oddjob.if +++ b/policy/modules/services/oddjob.if @@ -9,9 +9,9 @@ ## Execute a domain transition to run oddjob. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`oddjob_domtrans',` @@ -24,21 +24,21 @@ interface(`oddjob_domtrans',` ##################################### ## -## Do not audit attempts to read and write -## oddjob fifo file. +## Do not audit attempts to read and write +## oddjob fifo file. ## ## -## -## Domain to not audit. -## +## +## Domain to not audit. +## ## # interface(`oddjob_dontaudit_rw_fifo_file',` - gen_require(` - type shutdown_t; - ') + gen_require(` + type oddjob_t; + ') - dontaudit $1 oddjob_t:fifo_file rw_inherited_fifo_file_perms; + dontaudit $1 oddjob_t:fifo_file rw_inherited_fifo_file_perms; ') ######################################## @@ -89,20 +89,20 @@ interface(`oddjob_dbus_chat',` ###################################### ## -## Send a SIGCHLD signal to oddjob. +## Send a SIGCHLD signal to oddjob. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`oddjob_sigchld',` - gen_require(` - type oddjob_t; - ') + gen_require(` + type oddjob_t; + ') - allow $1 oddjob_t:process sigchld; + allow $1 oddjob_t:process sigchld; ') ######################################## diff --git a/policy/modules/services/oident.if b/policy/modules/services/oident.if index bb4fae5..b1b5e51 100644 --- a/policy/modules/services/oident.if +++ b/policy/modules/services/oident.if @@ -18,7 +18,7 @@ ## ## # -interface(`oident_read_user_content', ` +interface(`oident_read_user_content',` gen_require(` type oidentd_home_t; ') @@ -38,7 +38,7 @@ interface(`oident_read_user_content', ` ## ## # -interface(`oident_manage_user_content', ` +interface(`oident_manage_user_content',` gen_require(` type oidentd_home_t; ') @@ -58,7 +58,7 @@ interface(`oident_manage_user_content', ` ## ## # -interface(`oident_relabel_user_content', ` +interface(`oident_relabel_user_content',` gen_require(` type oidentd_home_t; ') @@ -66,3 +66,37 @@ interface(`oident_relabel_user_content', ` allow $1 oidentd_home_t:file relabel_file_perms; userdom_search_user_home_dirs($1) ') + +######################################## +## +## All of the rules required to administrate +## an oident environment +## +## +## +## Domain allowed access. +## +## +## +## +## Role allowed access. +## +## +## +# +interface(`oident_admin',` + gen_require(` + type oidentd_t, oidentd_initrc_exec_t, oidentd_config_t; + ') + + allow $1 oidentd_t:process { ptrace signal_perms }; + ps_process_pattern($1, oidentd_t) + + init_labeled_script_domtrans($1, oidentd_initrc_exec_t) + domain_system_change_exemption($1) + role_transition $2 oidentd_initrc_exec_t system_r; + allow $2 system_r; + + files_list_etc($1) + admin_pattern($1, oidentd_config_t) +') diff --git a/policy/modules/services/openct.if b/policy/modules/services/openct.if index 9d0a67b..9197ef0 100644 --- a/policy/modules/services/openct.if +++ b/policy/modules/services/openct.if @@ -23,9 +23,9 @@ interface(`openct_signull',` ## Execute openct in the caller domain. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`openct_exec',` @@ -42,9 +42,9 @@ interface(`openct_exec',` ## Execute a domain transition to run openct. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`openct_domtrans',` diff --git a/policy/modules/services/pads.if b/policy/modules/services/pads.if index 4452d3b..8235fb6 100644 --- a/policy/modules/services/pads.if +++ b/policy/modules/services/pads.if @@ -25,10 +25,10 @@ ## ## # -interface(`pads_admin', ` +interface(`pads_admin',` gen_require(` - type pads_t, pads_config_t; - type pads_var_run_t, pads_initrc_exec_t; + type pads_t, pads_config_t, pads_initrc_exec_t; + type pads_var_run_t; ') allow $1 pads_t:process { ptrace signal_perms }; @@ -39,9 +39,9 @@ interface(`pads_admin', ` role_transition $2 pads_initrc_exec_t system_r; allow $2 system_r; - files_search_pids($1) + files_list_pids($1) admin_pattern($1, pads_var_run_t) - files_search_etc($1) + files_list_etc($1) admin_pattern($1, pads_config_t) ') diff --git a/policy/modules/services/passenger.if b/policy/modules/services/passenger.if index 7ca90f6..66f9799 100644 --- a/policy/modules/services/passenger.if +++ b/policy/modules/services/passenger.if @@ -2,19 +2,18 @@ ###################################### ## -## Execute passenger in the passenger domain. +## Execute passenger in the passenger domain. ## ## -## -## The type of the process performing this action. -## +## +## Domain allowed to transition. +## ## # interface(`passenger_domtrans',` - gen_require(` - type passenger_t; - type passenger_exec_t; - ') + gen_require(` + type passenger_t, passenger_exec_t; + ') allow $1 self:capability { fowner fsetid }; @@ -27,43 +26,42 @@ interface(`passenger_domtrans',` ###################################### ## -## Manage passenger var_run content. +## Manage passenger var_run content. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`passenger_manage_pid_content',` - gen_require(` - type passenger_var_run_t; - ') + gen_require(` + type passenger_var_run_t; + ') - files_search_pids($1) + files_search_pids($1) manage_dirs_pattern($1, passenger_var_run_t, passenger_var_run_t) - manage_files_pattern($1, passenger_var_run_t, passenger_var_run_t) + manage_files_pattern($1, passenger_var_run_t, passenger_var_run_t) manage_fifo_files_pattern($1, passenger_var_run_t, passenger_var_run_t) manage_sock_files_pattern($1, passenger_var_run_t, passenger_var_run_t) ') ######################################## ## -## Read passenger lib files +## Read passenger lib files ## ## -## -## Domain to not audit. -## +## +## Domain allowed access. +## ## # interface(`passenger_read_lib_files',` - gen_require(` - type passenger_var_lib_t; - ') + gen_require(` + type passenger_var_lib_t; + ') files_search_var_lib($1) - read_files_pattern($1, passenger_var_lib_t, passenger_var_lib_t) - read_lnk_files_pattern($1, passenger_var_lib_t, passenger_var_lib_t) + read_files_pattern($1, passenger_var_lib_t, passenger_var_lib_t) + read_lnk_files_pattern($1, passenger_var_lib_t, passenger_var_lib_t) ') - diff --git a/policy/modules/services/pcscd.if b/policy/modules/services/pcscd.if index 1c2a091..ea5ae69 100644 --- a/policy/modules/services/pcscd.if +++ b/policy/modules/services/pcscd.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run pcscd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`pcscd_domtrans',` diff --git a/policy/modules/services/pingd.if b/policy/modules/services/pingd.if index 8688aae..1bfd8d2 100644 --- a/policy/modules/services/pingd.if +++ b/policy/modules/services/pingd.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run pingd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`pingd_domtrans',` @@ -55,7 +55,6 @@ interface(`pingd_manage_config',` files_search_etc($1) manage_dirs_pattern($1, pingd_etc_t, pingd_etc_t) manage_files_pattern($1, pingd_etc_t, pingd_etc_t) - ') ####################################### @@ -77,8 +76,8 @@ interface(`pingd_manage_config',` # interface(`pingd_admin',` gen_require(` - type pingd_t, pingd_etc_t; - type pingd_initrc_exec_t, pingd_modules_t; + type pingd_t, pingd_etc_t, pingd_modules_t; + type pingd_initrc_exec_t; ') allow $1 pingd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/piranha.if b/policy/modules/services/piranha.if index 8ecd276..6403c17 100644 --- a/policy/modules/services/piranha.if +++ b/policy/modules/services/piranha.if @@ -1,44 +1,42 @@ - ## policy for piranha ####################################### ## -## Creates types and rules for a basic -## cluster init daemon domain. +## Creates types and rules for a basic +## cluster init daemon domain. ## ## -## -## Prefix for the domain. -## +## +## Prefix for the domain. +## ## # template(`piranha_domain_template',` - - gen_require(` - attribute piranha_domain; - ') + gen_require(` + attribute piranha_domain; + ') ############################## - # - # piranha_$1_t declarations - # + # + # piranha_$1_t declarations + # type piranha_$1_t, piranha_domain; type piranha_$1_exec_t; init_daemon_domain(piranha_$1_t, piranha_$1_exec_t) # pid files - type piranha_$1_var_run_t; - files_pid_file(piranha_$1_var_run_t) + type piranha_$1_var_run_t; + files_pid_file(piranha_$1_var_run_t) ############################## - # - # piranha_$1_t local policy - # + # + # piranha_$1_t local policy + # - manage_files_pattern(piranha_$1_t, piranha_$1_var_run_t, piranha_$1_var_run_t) + manage_files_pattern(piranha_$1_t, piranha_$1_var_run_t, piranha_$1_var_run_t) manage_dirs_pattern(piranha_$1_t, piranha_$1_var_run_t, piranha_$1_var_run_t) - files_pid_filetrans(piranha_$1_t, piranha_$1_var_run_t, { file }) + files_pid_filetrans(piranha_$1_t, piranha_$1_var_run_t, { dir file }) ') ######################################## @@ -46,9 +44,9 @@ template(`piranha_domain_template',` ## Execute a domain transition to run fos. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`piranha_domtrans_fos',` @@ -61,56 +59,56 @@ interface(`piranha_domtrans_fos',` ####################################### ## -## Execute a domain transition to run lvsd. +## Execute a domain transition to run lvsd. ## ## -## -## Domain allowed to transition. -## +## +## Domain allowed to transition. +## ## # interface(`piranha_domtrans_lvs',` - gen_require(` - type piranha_lvs_t, piranha_lvs_exec_t; - ') + gen_require(` + type piranha_lvs_t, piranha_lvs_exec_t; + ') - domtrans_pattern($1, piranha_lvs_exec_t, piranha_lvs_t) + domtrans_pattern($1, piranha_lvs_exec_t, piranha_lvs_t) ') ####################################### ## -## Execute a domain transition to run pulse. +## Execute a domain transition to run pulse. ## ## -## -## Domain allowed to transition. -## +## +## Domain allowed to transition. +## ## # interface(`piranha_domtrans_pulse',` - gen_require(` - type piranha_pulse_t, piranha_pulse_exec_t; - ') + gen_require(` + type piranha_pulse_t, piranha_pulse_exec_t; + ') - domtrans_pattern($1, piranha_pulse_exec_t, piranha_pulse_t) + domtrans_pattern($1, piranha_pulse_exec_t, piranha_pulse_t) ') ####################################### ## -## Execute pulse server in the pulse domain. +## Execute pulse server in the pulse domain. ## ## -## -## Domain allowed access. -## +## +## Domain allowed to transition. +## ## # interface(`piranha_pulse_initrc_domtrans',` - gen_require(` - type piranha_pulse_initrc_exec_t; - ') + gen_require(` + type piranha_pulse_initrc_exec_t; + ') - init_labeled_script_domtrans($1, piranha_pulse_initrc_exec_t) + init_labeled_script_domtrans($1, piranha_pulse_initrc_exec_t) ') ######################################## @@ -130,7 +128,7 @@ interface(`piranha_read_log',` ') logging_search_logs($1) - read_files_pattern($1, piranha_log_t, piranha_log_t) + read_files_pattern($1, piranha_log_t, piranha_log_t) ') ######################################## @@ -139,9 +137,9 @@ interface(`piranha_read_log',` ## piranha log files. ## ## -## -## Domain allowed to transition. -## +## +## Domain allowed access. +## ## # interface(`piranha_append_log',` @@ -159,7 +157,7 @@ interface(`piranha_append_log',` ## ## ## -## Domain to not audit. +## Domain allowed access. ## ## # @@ -169,7 +167,7 @@ interface(`piranha_manage_log',` ') logging_search_logs($1) - manage_dirs_pattern($1, piranha_log_t, piranha_log_t) - manage_files_pattern($1, piranha_log_t, piranha_log_t) - manage_lnk_files_pattern($1, piranha_log_t, piranha_log_t) + manage_dirs_pattern($1, piranha_log_t, piranha_log_t) + manage_files_pattern($1, piranha_log_t, piranha_log_t) + manage_lnk_files_pattern($1, piranha_log_t, piranha_log_t) ') diff --git a/policy/modules/services/plymouthd.if b/policy/modules/services/plymouthd.if index fecc0dc..07dd3ff 100644 --- a/policy/modules/services/plymouthd.if +++ b/policy/modules/services/plymouthd.if @@ -5,12 +5,12 @@ ## Execute a domain transition to run plymouthd. ## ## -## +## ## Domain allowed to transition. -## +## ## # -interface(`plymouthd_domtrans', ` +interface(`plymouthd_domtrans',` gen_require(` type plymouthd_t, plymouthd_exec_t; ') @@ -23,12 +23,12 @@ interface(`plymouthd_domtrans', ` ## Execute the plymoth daemon in the current domain ## ## -## +## ## Domain allowed access. -## +## ## # -interface(`plymouthd_exec', ` +interface(`plymouthd_exec',` gen_require(` type plymouthd_exec_t; ') @@ -47,7 +47,7 @@ interface(`plymouthd_exec', ` ## ## # -interface(`plymouthd_stream_connect', ` +interface(`plymouthd_stream_connect',` gen_require(` type plymouthd_t; ') @@ -60,12 +60,12 @@ interface(`plymouthd_stream_connect', ` ## Execute the plymoth command in the current domain ## ## -## +## ## Domain allowed access. -## +## ## # -interface(`plymouthd_exec_plymouth', ` +interface(`plymouthd_exec_plymouth',` gen_require(` type plymouth_exec_t; ') @@ -78,12 +78,12 @@ interface(`plymouthd_exec_plymouth', ` ## Execute a domain transition to run plymouthd. ## ## -## +## ## Domain allowed to transition. -## +## ## # -interface(`plymouthd_domtrans_plymouth', ` +interface(`plymouthd_domtrans_plymouth',` gen_require(` type plymouth_t, plymouth_exec_t; ') @@ -101,7 +101,7 @@ interface(`plymouthd_domtrans_plymouth', ` ## ## # -interface(`plymouthd_search_spool', ` +interface(`plymouthd_search_spool',` gen_require(` type plymouthd_spool_t; ') @@ -120,7 +120,7 @@ interface(`plymouthd_search_spool', ` ## ## # -interface(`plymouthd_read_spool_files', ` +interface(`plymouthd_read_spool_files',` gen_require(` type plymouthd_spool_t; ') @@ -140,7 +140,7 @@ interface(`plymouthd_read_spool_files', ` ## ## # -interface(`plymouthd_manage_spool_files', ` +interface(`plymouthd_manage_spool_files',` gen_require(` type plymouthd_spool_t; ') @@ -159,7 +159,7 @@ interface(`plymouthd_manage_spool_files', ` ## ## # -interface(`plymouthd_search_lib', ` +interface(`plymouthd_search_lib',` gen_require(` type plymouthd_var_lib_t; ') @@ -178,7 +178,7 @@ interface(`plymouthd_search_lib', ` ## ## # -interface(`plymouthd_read_lib_files', ` +interface(`plymouthd_read_lib_files',` gen_require(` type plymouthd_var_lib_t; ') @@ -198,7 +198,7 @@ interface(`plymouthd_read_lib_files', ` ## ## # -interface(`plymouthd_manage_lib_files', ` +interface(`plymouthd_manage_lib_files',` gen_require(` type plymouthd_var_lib_t; ') @@ -217,7 +217,7 @@ interface(`plymouthd_manage_lib_files', ` ## ## # -interface(`plymouthd_read_pid_files', ` +interface(`plymouthd_read_pid_files',` gen_require(` type plymouthd_var_run_t; ') @@ -243,7 +243,7 @@ interface(`plymouthd_read_pid_files', ` ## ## # -interface(`plymouthd_admin', ` +interface(`plymouthd_admin',` gen_require(` type plymouthd_t, plymouthd_spool_t, plymouthd_var_lib_t; type plymouthd_var_run_t; @@ -252,11 +252,11 @@ interface(`plymouthd_admin', ` allow $1 plymouthd_t:process { ptrace signal_perms }; ps_process_pattern($1, plymouthd_t) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, plymouthd_spool_t) admin_pattern($1, plymouthd_var_lib_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, plymouthd_var_run_t) ') diff --git a/policy/modules/services/policykit.if b/policy/modules/services/policykit.if index 29c9906..13cdc77 100644 --- a/policy/modules/services/policykit.if +++ b/policy/modules/services/policykit.if @@ -51,9 +51,9 @@ interface(`policykit_dbus_chat_auth',` ## Execute a domain transition to run polkit_auth. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`policykit_domtrans_auth',` @@ -79,6 +79,7 @@ interface(`policykit_domtrans_auth',` ## Role allowed access. ## ## +## # interface(`policykit_run_auth',` gen_require(` @@ -97,9 +98,9 @@ interface(`policykit_run_auth',` ## Execute a domain transition to run polkit_grant. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`policykit_domtrans_grant',` @@ -183,9 +184,9 @@ interface(`policykit_rw_reload',` ## Execute a domain transition to run polkit_resolve. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`policykit_domtrans_resolve',` @@ -261,14 +262,15 @@ template(`policykit_role',` policykit_read_reload($2) policykit_dbus_chat($2) ') + ######################################## ## ## Send generic signal to policy_auth ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`policykit_signal_auth',` diff --git a/policy/modules/services/portreserve.if b/policy/modules/services/portreserve.if index d91c1f5..7385056 100644 --- a/policy/modules/services/portreserve.if +++ b/policy/modules/services/portreserve.if @@ -24,11 +24,11 @@ interface(`portreserve_domtrans',` ## ## ## -## Domain allowed access. +## Domain allowed to transition. ## ## # -interface(`portreserve_initrc_domtrans', ` +interface(`portreserve_initrc_domtrans',` gen_require(` type portreserve_initrc_exec_t; ') @@ -47,7 +47,6 @@ interface(`portreserve_initrc_domtrans', ` ## ## ## -## # interface(`portreserve_read_config',` gen_require(` @@ -70,7 +69,6 @@ interface(`portreserve_read_config',` ## Domain allowed access. ## ## -## # interface(`portreserve_manage_config',` gen_require(` @@ -98,24 +96,25 @@ interface(`portreserve_manage_config',` ## Role allowed access. ## ## +## # -interface(`portreserve_admin', ` +interface(`portreserve_admin',` gen_require(` - type portreserve_t, portreserve_etc_t; - type portreserve_initrc_exec_t, portreserve_var_run_t; + type portreserve_t, portreserve_etc_t, portreserve_var_run_t; + type portreserve_initrc_exec_t; ') allow $1 portreserve_t:process { ptrace signal_perms }; ps_process_pattern($1, portreserve_t) - + portreserve_initrc_domtrans($1) domain_system_change_exemption($1) role_transition $2 portreserve_initrc_exec_t system_r; allow $2 system_r; - files_search_etc($1) + files_list_etc($1) admin_pattern($1, portreserve_etc_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, portreserve_var_run_t) ') diff --git a/policy/modules/services/postfix.if b/policy/modules/services/postfix.if index cfcbac7..7391f7e 100644 --- a/policy/modules/services/postfix.if +++ b/policy/modules/services/postfix.if @@ -50,7 +50,7 @@ template(`postfix_domain_template',` can_exec(postfix_$1_t, postfix_$1_exec_t) - allow postfix_$1_t postfix_exec_t:file { mmap_file_perms lock ioctl }; + allow postfix_$1_t postfix_exec_t:file { mmap_file_perms lock }; allow postfix_$1_t postfix_master_t:process sigchld; @@ -273,7 +273,8 @@ interface(`postfix_read_local_state',` type postfix_local_t; ') - read_files_pattern($1, postfix_local_t, postfix_local_t) + kernel_search_proc($1) + ps_process_pattern($1, postfix_local_t) ') ######################################## @@ -291,7 +292,8 @@ interface(`postfix_read_master_state',` type postfix_master_t; ') - read_files_pattern($1, postfix_master_t, postfix_master_t) + kernel_search_proc($1) + ps_process_pattern($1, postfix_master_t) ') ######################################## @@ -388,7 +390,7 @@ interface(`postfix_domtrans_master',` ## ## # -interface(`postfix_initrc_domtrans', ` +interface(`postfix_initrc_domtrans',` gen_require(` type postfix_initrc_exec_t; ') @@ -424,7 +426,6 @@ interface(`postfix_exec_master',` ## Domain allowed access. ## ## -## # interface(`postfix_stream_connect_master',` gen_require(` @@ -676,19 +677,16 @@ interface(`postfix_domtrans_user_mail_handler',` ## Role allowed access. ## ## +## # -interface(`postfix_admin', ` +interface(`postfix_admin',` gen_require(` - type postfix_bounce_t, postfix_cleanup_t, postfix_local_t; - type postfix_master_t, postfix_pickup_t, postfix_qmgr_t; - type postfix_smtpd_t; - attribute postfix_spool_type; - + type postfix_bounce_t, postfix_cleanup_t, postfix_local_t; + type postfix_master_t, postfix_pickup_t, postfix_qmgr_t; type postfix_initrc_exec_t, postfix_data_t, postfix_etc_t; - type postfix_var_run_t; - type postfix_map_tmp_t, postfix_prng_t, postfix_public_t; + type postfix_smtpd_t, postfix_var_run_t; ') allow $1 postfix_bounce_t:process { ptrace signal_perms }; @@ -712,9 +710,9 @@ interface(`postfix_admin', ` allow $1 postfix_smtpd_t:process { ptrace signal_perms }; ps_process_pattern($1, postfix_smtpd_t) - postfix_run_map($1,$2) - postfix_run_postdrop($1,$2) - + postfix_run_map($1, $2) + postfix_run_postdrop($1, $2) + postfix_initrc_domtrans($1) domain_system_change_exemption($1) role_transition $2 postfix_initrc_exec_t system_r; @@ -725,12 +723,12 @@ interface(`postfix_admin', ` files_list_etc($1) admin_pattern($1, postfix_etc_t) - files_search_spool($1) - admin_pattern($1,postfix_spool_type) + files_list_spool($1) + admin_pattern($1, postfix_spool_type) admin_pattern($1, postfix_var_run_t) - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, postfix_map_tmp_t) admin_pattern($1, postfix_prng_t) @@ -745,9 +743,10 @@ interface(`postfix_admin', ` ## ## ## -## Domain allowed access. +## Domain allowed to transition. ## ## +## # interface(`postfix_run_postdrop',` gen_require(` @@ -757,4 +756,3 @@ interface(`postfix_run_postdrop',` postfix_domtrans_postdrop($1) role $2 types postfix_postdrop_t; ') - diff --git a/policy/modules/services/postfixpolicyd.if b/policy/modules/services/postfixpolicyd.if index feae93b..d960d3f 100644 --- a/policy/modules/services/postfixpolicyd.if +++ b/policy/modules/services/postfixpolicyd.if @@ -20,8 +20,7 @@ interface(`postfixpolicyd_admin',` gen_require(` type postfix_policyd_t, postfix_policyd_conf_t; - type postfix_policyd_var_run_t; - type postfix_policyd_initrc_exec_t; + type postfix_policyd_var_run_t, postfix_policyd_initrc_exec_t; ') allow $1 postfix_policyd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/postgresql.if b/policy/modules/services/postgresql.if index 2c6b723..4782bdb 100644 --- a/policy/modules/services/postgresql.if +++ b/policy/modules/services/postgresql.if @@ -10,7 +10,7 @@ ## ## ## -## +## ## The type of the user domain. ## ## @@ -45,14 +45,6 @@ interface(`postgresql_role',` # Client local policy # - tunable_policy(`sepgsql_enable_users_ddl',` - allow $2 user_sepgsql_table_t:db_table { create drop setattr }; - allow $2 user_sepgsql_table_t:db_column { create drop setattr }; - - allow $2 user_sepgsql_sysobj_t:db_tuple { update insert delete }; - allow $2 user_sepgsql_proc_exec_t:db_procedure { create drop setattr }; - ') - allow $2 user_sepgsql_table_t:db_table { getattr use select update insert delete lock }; allow $2 user_sepgsql_table_t:db_column { getattr use select update insert }; allow $2 user_sepgsql_table_t:db_tuple { use select update insert delete }; @@ -69,6 +61,14 @@ interface(`postgresql_role',` allow $2 sepgsql_trusted_proc_t:process transition; type_transition $2 sepgsql_trusted_proc_exec_t:process sepgsql_trusted_proc_t; + + tunable_policy(`sepgsql_enable_users_ddl',` + allow $2 user_sepgsql_table_t:db_table { create drop setattr }; + allow $2 user_sepgsql_table_t:db_column { create drop setattr }; + + allow $2 user_sepgsql_sysobj_t:db_tuple { update insert delete }; + allow $2 user_sepgsql_proc_exec_t:db_procedure { create drop setattr }; + ') ') ######################################## @@ -195,7 +195,7 @@ interface(`postgresql_search_db',` type postgresql_db_t; ') - allow $1 postgresql_db_t:dir search; + allow $1 postgresql_db_t:dir search_dir_perms; ') ######################################## @@ -207,6 +207,7 @@ interface(`postgresql_search_db',` ## Domain allowed access. ## ## +# interface(`postgresql_manage_db',` gen_require(` type postgresql_db_t; @@ -214,7 +215,7 @@ interface(`postgresql_manage_db',` allow $1 postgresql_db_t:dir rw_dir_perms; allow $1 postgresql_db_t:file rw_file_perms; - allow $1 postgresql_db_t:lnk_file { getattr read }; + allow $1 postgresql_db_t:lnk_file read_lnk_file_perms; ') ######################################## @@ -304,7 +305,6 @@ interface(`postgresql_tcp_connect',` ## Domain allowed access. ## ## -## # interface(`postgresql_stream_connect',` gen_require(` @@ -313,7 +313,7 @@ interface(`postgresql_stream_connect',` files_search_pids($1) files_search_tmp($1) - stream_connect_pattern($1, { postgresql_var_run_t postgresql_tmp_t}, { postgresql_var_run_t postgresql_tmp_t}, postgresql_t) + stream_connect_pattern($1, { postgresql_var_run_t postgresql_tmp_t }, { postgresql_var_run_t postgresql_tmp_t }, postgresql_t) ') ######################################## @@ -359,13 +359,6 @@ interface(`postgresql_unpriv_client',` type_transition $1 sepgsql_trusted_proc_exec_t:process sepgsql_trusted_proc_t; allow $1 sepgsql_trusted_proc_t:process transition; - tunable_policy(`sepgsql_enable_users_ddl',` - allow $1 unpriv_sepgsql_table_t:db_table { create drop setattr }; - allow $1 unpriv_sepgsql_table_t:db_column { create drop setattr }; - allow $1 unpriv_sepgsql_sysobj_t:db_tuple { update insert delete }; - allow $1 unpriv_sepgsql_proc_exec_t:db_procedure { create drop setattr }; - ') - allow $1 unpriv_sepgsql_table_t:db_table { getattr use select update insert delete lock }; allow $1 unpriv_sepgsql_table_t:db_column { getattr use select update insert }; allow $1 unpriv_sepgsql_table_t:db_tuple { use select update insert delete }; @@ -379,6 +372,13 @@ interface(`postgresql_unpriv_client',` allow $1 unpriv_sepgsql_blob_t:db_blob { create drop getattr setattr read write import export }; type_transition $1 sepgsql_database_type:db_blob unpriv_sepgsql_blob_t; + + tunable_policy(`sepgsql_enable_users_ddl',` + allow $1 unpriv_sepgsql_table_t:db_table { create drop setattr }; + allow $1 unpriv_sepgsql_table_t:db_column { create drop setattr }; + allow $1 unpriv_sepgsql_sysobj_t:db_tuple { update insert delete }; + allow $1 unpriv_sepgsql_proc_exec_t:db_procedure { create drop setattr }; + ') ') ######################################## @@ -418,13 +418,10 @@ interface(`postgresql_unconfined',` # interface(`postgresql_admin',` gen_require(` - attribute sepgsql_admin_type; - attribute sepgsql_client_type; - - type postgresql_t, postgresql_var_run_t; - type postgresql_tmp_t, postgresql_db_t; - type postgresql_etc_t, postgresql_log_t; - type postgresql_initrc_exec_t; + attribute sepgsql_admin_type, sepgsql_client_type; + type postgresql_t, postgresql_var_run_t, postgresql_initrc_exec_t; + type postgresql_tmp_t, postgresql_db_t, postgresql_log_t; + type postgresql_etc_t; ') typeattribute $1 sepgsql_admin_type; @@ -437,17 +434,19 @@ interface(`postgresql_admin',` role_transition $2 postgresql_initrc_exec_t system_r; allow $2 system_r; + files_list_pids($1) admin_pattern($1, postgresql_var_run_t) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, postgresql_db_t) - files_search_etc($1) + files_list_etc($1) admin_pattern($1, postgresql_etc_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, postgresql_log_t) + files_list_tmp($1) admin_pattern($1, postgresql_tmp_t) postgresql_tcp_connect($1) diff --git a/policy/modules/services/postgrey.if b/policy/modules/services/postgrey.if index ad15fde..6f55445 100644 --- a/policy/modules/services/postgrey.if +++ b/policy/modules/services/postgrey.if @@ -15,9 +15,9 @@ interface(`postgrey_stream_connect',` type postgrey_var_run_t, postgrey_t, postgrey_spool_t; ') - stream_connect_pattern($1, postgrey_var_run_t, postgrey_var_run_t, postgrey_t) - stream_connect_pattern($1, postgrey_spool_t, postgrey_spool_t, postgrey_t) + stream_connect_pattern($1, { postgrey_spool_t postgrey_var_run_t }, { postgrey_spool_t postgrey_var_run_t }, postgrey_t) files_search_pids($1) + files_search_spool($1) ') ######################################## @@ -35,6 +35,7 @@ interface(`postgrey_search_spool',` type postgrey_spool_t; ') + files_search_spool($1) allow $1 postgrey_spool_t:dir search_dir_perms; ') @@ -57,9 +58,8 @@ interface(`postgrey_search_spool',` # interface(`postgrey_admin',` gen_require(` - type postgrey_t, postgrey_etc_t; + type postgrey_t, postgrey_etc_t, postgrey_initrc_exec_t; type postgrey_var_lib_t, postgrey_var_run_t; - type postgrey_initrc_exec_t; ') allow $1 postgrey_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/ppp.if b/policy/modules/services/ppp.if index f916c76..09699d1 100644 --- a/policy/modules/services/ppp.if +++ b/policy/modules/services/ppp.if @@ -66,7 +66,6 @@ interface(`ppp_sigchld',` ## ## # -# interface(`ppp_kill',` gen_require(` type pppd_t; @@ -180,8 +179,7 @@ interface(`ppp_run',` ') ppp_domtrans($1) - role $2 types pppd_t; - role $2 types pptp_t; + role $2 types { pppd_t pptp_t }; optional_policy(` ddclient_run(pppd_t, $2) @@ -281,6 +279,7 @@ interface(`ppp_read_pid_files',` type pppd_var_run_t; ') + files_search_pids($1) allow $1 pppd_var_run_t:file read_file_perms; ') @@ -299,6 +298,7 @@ interface(`ppp_manage_pid_files',` type pppd_var_run_t; ') + files_search_pids($1) allow $1 pppd_var_run_t:file manage_file_perms; ') @@ -353,16 +353,17 @@ interface(`ppp_initrc_domtrans',` interface(`ppp_admin',` gen_require(` type pppd_t, pppd_tmp_t, pppd_log_t, pppd_lock_t; - type pppd_etc_t, pppd_secret_t; - type pppd_etc_rw_t, pppd_var_run_t; - + type pppd_etc_t, pppd_secret_t, pppd_var_run_t; type pptp_t, pptp_log_t, pptp_var_run_t; - type pppd_initrc_exec_t; + type pppd_initrc_exec_t, pppd_etc_rw_t; ') allow $1 pppd_t:process { ptrace signal_perms }; ps_process_pattern($1, pppd_t) + allow $1 pptp_t:process { ptrace signal_perms }; + ps_process_pattern($1, pptp_t) + ppp_initrc_domtrans($1) domain_system_change_exemption($1) role_transition $2 pppd_initrc_exec_t system_r; @@ -374,6 +375,7 @@ interface(`ppp_admin',` logging_list_logs($1) admin_pattern($1, pppd_log_t) + files_list_locks($1) admin_pattern($1, pppd_lock_t) files_list_etc($1) @@ -386,9 +388,6 @@ interface(`ppp_admin',` files_list_pids($1) admin_pattern($1, pppd_var_run_t) - allow $1 pptp_t:process { ptrace signal_perms }; - ps_process_pattern($1, pptp_t) - admin_pattern($1, pptp_log_t) admin_pattern($1, pptp_var_run_t) diff --git a/policy/modules/services/prelude.if b/policy/modules/services/prelude.if index e4d8797..77ef768 100644 --- a/policy/modules/services/prelude.if +++ b/policy/modules/services/prelude.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run prelude. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`prelude_domtrans',` @@ -23,9 +23,9 @@ interface(`prelude_domtrans',` ## Execute a domain transition to run prelude_audisp. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`prelude_domtrans_audisp',` @@ -41,9 +41,9 @@ interface(`prelude_domtrans_audisp',` ## Signal the prelude_audisp domain. ## ## -## +## ## Domain allowed acccess. -## +## ## # interface(`prelude_signal_audisp',` @@ -78,9 +78,9 @@ interface(`prelude_read_spool',` ## Manage to prelude-manager spool files. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`prelude_manage_spool',` @@ -112,13 +112,10 @@ interface(`prelude_manage_spool',` # interface(`prelude_admin',` gen_require(` - type prelude_t, prelude_spool_t; - type prelude_var_run_t, prelude_var_lib_t; - type prelude_audisp_t, prelude_audisp_var_run_t; - type prelude_initrc_exec_t; - - type prelude_lml_t, prelude_lml_tmp_t; - type prelude_lml_var_run_t; + type prelude_t, prelude_spool_t, prelude_initrc_exec_t; + type prelude_var_run_t, prelude_var_lib_t, prelude_lml_var_run_t; + type prelude_audisp_t, prelude_audisp_var_run_t, prelude_lml_tmp_t; + type prelude_lml_t; ') allow $1 prelude_t:process { ptrace signal_perms }; @@ -135,17 +132,17 @@ interface(`prelude_admin',` role_transition $2 prelude_initrc_exec_t system_r; allow $2 system_r; + files_list_spool($1) admin_pattern($1, prelude_spool_t) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, prelude_var_lib_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, prelude_var_run_t) admin_pattern($1, prelude_audisp_var_run_t) + admin_pattern($1, prelude_lml_var_run_t) - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, prelude_lml_tmp_t) - - admin_pattern($1, prelude_lml_var_run_t) ') diff --git a/policy/modules/services/privoxy.if b/policy/modules/services/privoxy.if index c8f6cb5..7221526 100644 --- a/policy/modules/services/privoxy.if +++ b/policy/modules/services/privoxy.if @@ -19,9 +19,8 @@ # interface(`privoxy_admin',` gen_require(` - type privoxy_t, privoxy_log_t; + type privoxy_t, privoxy_log_t, privoxy_initrc_exec_t; type privoxy_etc_rw_t, privoxy_var_run_t; - type privoxy_initrc_exec_t; ') allow $1 privoxy_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/procmail.if b/policy/modules/services/procmail.if index 5bfbd7b..166e9c3 100644 --- a/policy/modules/services/procmail.if +++ b/policy/modules/services/procmail.if @@ -93,7 +93,6 @@ interface(`procmail_read_home_files',` type procmail_home_t; ') - userdom_search_user_home_dirs($1) + userdom_search_user_home_dirs($1) read_files_pattern($1, procmail_home_t, procmail_home_t) ') - diff --git a/policy/modules/services/psad.if b/policy/modules/services/psad.if index a5ec9f5..d1a3745 100644 --- a/policy/modules/services/psad.if +++ b/policy/modules/services/psad.if @@ -91,7 +91,6 @@ interface(`psad_manage_config',` files_search_etc($1) manage_dirs_pattern($1, psad_etc_t, psad_etc_t) manage_files_pattern($1, psad_etc_t, psad_etc_t) - ') ######################################## @@ -115,7 +114,7 @@ interface(`psad_read_pid_files',` ######################################## ## -## Read psad PID files. +## Read and write psad PID files. ## ## ## @@ -253,8 +252,8 @@ interface(`psad_rw_tmp_files',` interface(`psad_admin',` gen_require(` type psad_t, psad_var_run_t, psad_var_log_t; - type psad_initrc_exec_t, psad_var_lib_t; - type psad_tmp_t, psad_etc_t; + type psad_initrc_exec_t, psad_var_lib_t, psad_etc_t; + type psad_tmp_t; ') allow $1 psad_t:process { ptrace signal_perms }; @@ -265,18 +264,18 @@ interface(`psad_admin',` role_transition $2 psad_initrc_exec_t system_r; allow $2 system_r; - files_search_etc($1) + files_list_etc($1) admin_pattern($1, psad_etc_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, psad_var_run_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, psad_var_log_t) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, psad_var_lib_t) - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, psad_tmp_t) ') diff --git a/policy/modules/services/puppet.if b/policy/modules/services/puppet.if index 2855a44..0456b11 100644 --- a/policy/modules/services/puppet.if +++ b/policy/modules/services/puppet.if @@ -21,7 +21,7 @@ ## ## # -interface(`puppet_rw_tmp', ` +interface(`puppet_rw_tmp',` gen_require(` type puppet_tmp_t; ') diff --git a/policy/modules/services/pyzor.if b/policy/modules/services/pyzor.if index 6443f30..aa3d0b4 100644 --- a/policy/modules/services/pyzor.if +++ b/policy/modules/services/pyzor.if @@ -14,6 +14,7 @@ ## User domain for the role ## ## +## # interface(`pyzor_role',` gen_require(` @@ -28,7 +29,7 @@ interface(`pyzor_role',` # allow ps to show pyzor and allow the user to kill it ps_process_pattern($2, pyzor_t) - allow $2 pyzor_t:process signal; + allow $2 pyzor_t:process { ptrace signal_perms }; ') ######################################## @@ -109,13 +110,12 @@ interface(`pyzor_exec',` interface(`pyzor_admin',` gen_require(` type pyzord_t, pyzor_tmp_t, pyzord_log_t; - type pyzor_etc_t, pyzor_var_lib_t; - type pyzord_initrc_exec_t; + type pyzor_etc_t, pyzor_var_lib_t, pyzord_initrc_exec_t; ') allow $1 pyzord_t:process { ptrace signal_perms }; ps_process_pattern($1, pyzord_t) - + init_labeled_script_domtrans($1, pyzord_initrc_exec_t) domain_system_change_exemption($1) role_transition $2 pyzord_initrc_exec_t system_r; @@ -133,5 +133,3 @@ interface(`pyzor_admin',` files_list_var_lib($1) admin_pattern($1, pyzor_var_lib_t) ') - - diff --git a/policy/modules/services/qmail.if b/policy/modules/services/qmail.if index a55bf44..77a25f5 100644 --- a/policy/modules/services/qmail.if +++ b/policy/modules/services/qmail.if @@ -62,14 +62,13 @@ interface(`qmail_domtrans_inject',` type qmail_inject_t, qmail_inject_exec_t; ') + corecmd_search_bin($1) domtrans_pattern($1, qmail_inject_exec_t, qmail_inject_t) ifdef(`distro_debian',` files_search_usr($1) - corecmd_search_bin($1) ',` files_search_var($1) - corecmd_search_bin($1) ') ') @@ -88,14 +87,13 @@ interface(`qmail_domtrans_queue',` type qmail_queue_t, qmail_queue_exec_t; ') + corecmd_search_bin($1) domtrans_pattern($1, qmail_queue_exec_t, qmail_queue_t) ifdef(`distro_debian',` files_search_usr($1) - corecmd_search_bin($1) ',` files_search_var($1) - corecmd_search_bin($1) ') ') diff --git a/policy/modules/services/qpidd.if b/policy/modules/services/qpidd.if index 5dbca44..c403abc 100644 --- a/policy/modules/services/qpidd.if +++ b/policy/modules/services/qpidd.if @@ -1,4 +1,3 @@ - ## policy for qpidd ######################################## @@ -6,9 +5,9 @@ ## Execute a domain transition to run qpidd. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`qpidd_domtrans',` @@ -19,7 +18,6 @@ interface(`qpidd_domtrans',` domtrans_pattern($1, qpidd_exec_t, qpidd_t) ') - ######################################## ## ## Execute qpidd server in the qpidd domain. @@ -72,12 +70,12 @@ interface(`qpidd_manage_var_run',` type qpidd_var_run_t; ') - manage_dirs_pattern($1, qpidd_var_run_t, qpidd_var_run_t) - manage_files_pattern($1, qpidd_var_run_t, qpidd_var_run_t) - manage_lnk_files_pattern($1, qpidd_var_run_t, qpidd_var_run_t) + files_search_pids($1) + manage_dirs_pattern($1, qpidd_var_run_t, qpidd_var_run_t) + manage_files_pattern($1, qpidd_var_run_t, qpidd_var_run_t) + manage_lnk_files_pattern($1, qpidd_var_run_t, qpidd_var_run_t) ') - ######################################## ## ## Search qpidd lib directories. @@ -113,7 +111,7 @@ interface(`qpidd_read_lib_files',` ') files_search_var_lib($1) - read_files_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) + read_files_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) ') ######################################## @@ -133,7 +131,7 @@ interface(`qpidd_manage_lib_files',` ') files_search_var_lib($1) - manage_files_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) + manage_files_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) ') ######################################## @@ -151,12 +149,12 @@ interface(`qpidd_manage_var_lib',` type qpidd_var_lib_t; ') - manage_dirs_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) - manage_files_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) - manage_lnk_files_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) + files_search_var_lib($1) + manage_dirs_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) + manage_files_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) + manage_lnk_files_pattern($1, qpidd_var_lib_t, qpidd_var_lib_t) ') - ######################################## ## ## All of the rules required to administrate @@ -176,16 +174,11 @@ interface(`qpidd_manage_var_lib',` # interface(`qpidd_admin',` gen_require(` - type qpidd_t; + type qpidd_t, qpidd_initrc_exec_t; ') allow $1 qpidd_t:process { ptrace signal_perms }; ps_process_pattern($1, qpidd_t) - - - gen_require(` - type qpidd_initrc_exec_t; - ') # Allow qpidd_t to restart the apache service qpidd_initrc_domtrans($1) @@ -196,41 +189,40 @@ interface(`qpidd_admin',` qpidd_manage_var_run($1) qpidd_manage_var_lib($1) - ') ##################################### ## -## Allow read and write access to qpidd semaphores. +## Allow read and write access to qpidd semaphores. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`qpidd_rw_semaphores',` - gen_require(` - type qpidd_t; - ') + gen_require(` + type qpidd_t; + ') - allow $1 qpidd_t:sem rw_sem_perms; + allow $1 qpidd_t:sem rw_sem_perms; ') ######################################## ## -## Read and write to qpidd shared memory. +## Read and write to qpidd shared memory. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`qpidd_rw_shm',` - gen_require(` - type qpidd_t; - ') + gen_require(` + type qpidd_t; + ') - allow $1 qpidd_t:shm rw_shm_perms; + allow $1 qpidd_t:shm rw_shm_perms; ') diff --git a/policy/modules/services/radvd.if b/policy/modules/services/radvd.if index be05bff..2bd662a 100644 --- a/policy/modules/services/radvd.if +++ b/policy/modules/services/radvd.if @@ -19,8 +19,8 @@ # interface(`radvd_admin',` gen_require(` - type radvd_t, radvd_etc_t; - type radvd_var_run_t, radvd_initrc_exec_t; + type radvd_t, radvd_etc_t, radvd_initrc_exec_t; + type radvd_var_run_t; ') allow $1 radvd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/razor.if b/policy/modules/services/razor.if index 13ad2fe..3203212 100644 --- a/policy/modules/services/razor.if +++ b/policy/modules/services/razor.if @@ -26,6 +26,7 @@ template(`razor_common_domain_template',` gen_require(` type razor_exec_t, razor_etc_t, razor_log_t, razor_var_lib_t; ') + type $1_t; domain_type($1_t) domain_entry_file($1_t, razor_exec_t) @@ -46,7 +47,7 @@ template(`razor_common_domain_template',` # Read system config file allow $1_t razor_etc_t:dir list_dir_perms; allow $1_t razor_etc_t:file read_file_perms; - allow $1_t razor_etc_t:lnk_file { getattr read }; + allow $1_t razor_etc_t:lnk_file read_lnk_file_perms; manage_dirs_pattern($1_t, razor_log_t, razor_log_t) manage_files_pattern($1_t, razor_log_t, razor_log_t) @@ -117,6 +118,7 @@ template(`razor_common_domain_template',` ## User domain for the role ## ## +## # interface(`razor_role',` gen_require(` @@ -130,7 +132,7 @@ interface(`razor_role',` # allow ps to show razor and allow the user to kill it ps_process_pattern($2, razor_t) - allow $2 razor_t:process signal; + allow $2 razor_t:process { ptrace signal_perms }; manage_dirs_pattern($2, razor_home_t, razor_home_t) manage_files_pattern($2, razor_home_t, razor_home_t) @@ -169,7 +171,7 @@ interface(`razor_domtrans',` ## ## # -template(`razor_manage_user_home_files',` +interface(`razor_manage_user_home_files',` gen_require(` type razor_home_t; ') @@ -197,4 +199,3 @@ interface(`razor_read_lib_files',` files_search_var_lib($1) read_files_pattern($1, razor_var_lib_t, razor_var_lib_t) ') - diff --git a/policy/modules/services/rgmanager.if b/policy/modules/services/rgmanager.if index aaf7c85..9c2c963 100644 --- a/policy/modules/services/rgmanager.if +++ b/policy/modules/services/rgmanager.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run rgmanager. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`rgmanager_domtrans',` @@ -78,20 +78,20 @@ interface(`rgmanager_manage_tmpfs_files',` ####################################### ## -## Allow read and write access to rgmanager semaphores. +## Allow read and write access to rgmanager semaphores. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`rgmanager_rw_semaphores',` - gen_require(` - type rgmanager_t; - ') + gen_require(` + type rgmanager_t; + ') - allow $1 rgmanager_t:sem { unix_read unix_write associate read write }; + allow $1 rgmanager_t:sem rw_sem_perms; ') ###################################### @@ -100,9 +100,9 @@ interface(`rgmanager_rw_semaphores',` ## an rgmanager environment ## ## -## +## ## Domain allowed access. -## +## ## ## ## @@ -115,7 +115,7 @@ interface(`rgmanager_admin',` gen_require(` type rgmanager_t, rgmanager_initrc_exec_t, rgmanager_tmp_t; type rgmanager_tmpfs_t, rgmanager_var_log_t, rgmanager_var_run_t; - ') + ') allow $1 rgmanager_t:process { ptrace signal_perms }; ps_process_pattern($1, rgmanager_t) @@ -125,14 +125,14 @@ interface(`rgmanager_admin',` role_transition $2 rgmanager_initrc_exec_t system_r; allow $2 system_r; - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, rgmanager_tmp_t) admin_pattern($1, rgmanager_tmpfs_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, rgmanager_var_log_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, rgmanager_var_run_t) ') diff --git a/policy/modules/services/rhcs.if b/policy/modules/services/rhcs.if index d8b97c2..229a3c7 100644 --- a/policy/modules/services/rhcs.if +++ b/policy/modules/services/rhcs.if @@ -13,9 +13,7 @@ # template(`rhcs_domain_template',` gen_require(` - attribute cluster_domain; - attribute cluster_tmpfs; - attribute cluster_pid; + attribute cluster_domain, cluster_tmpfs, cluster_pid; ') ############################## @@ -53,7 +51,6 @@ template(`rhcs_domain_template',` manage_fifo_files_pattern($1_t, $1_var_run_t, $1_var_run_t) manage_sock_files_pattern($1_t, $1_var_run_t, $1_var_run_t) files_pid_filetrans($1_t, $1_var_run_t, { file fifo_file }) - ') ###################################### @@ -61,9 +58,9 @@ template(`rhcs_domain_template',` ## Execute a domain transition to run dlm_controld. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`rhcs_domtrans_dlm_controld',` @@ -171,9 +168,8 @@ interface(`rhcs_stream_connect_fenced',` type fenced_var_run_t, fenced_t; ') - allow $1 fenced_t:unix_stream_socket connectto; - allow $1 fenced_var_run_t:sock_file { getattr write }; files_search_pids($1) + stream_connect_pattern($1, fenced_var_run_t, fenced_var_run_t, fenced_t) ') ##################################### @@ -349,8 +345,7 @@ interface(`rhcs_rw_groupd_shm',` # interface(`rhcs_rw_cluster_shm',` gen_require(` - attribute cluster_domain; - attribute cluster_tmpfs; + attribute cluster_domain, cluster_tmpfs; ') allow $1 cluster_domain:shm { rw_shm_perms destroy }; @@ -361,41 +356,40 @@ interface(`rhcs_rw_cluster_shm',` #################################### ## -## Read and write access to cluster domains semaphores. +## Read and write access to cluster domains semaphores. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`rhcs_rw_cluster_semaphores',` - gen_require(` + gen_require(` attribute cluster_domain; - ') + ') - allow $1 cluster_domain:sem { rw_sem_perms destroy }; + allow $1 cluster_domain:sem { rw_sem_perms destroy }; ') #################################### ## -## Connect to cluster domains over a unix domain -## stream socket. +## Connect to cluster domains over a unix domain +## stream socket. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`rhcs_stream_connect_cluster',` - gen_require(` - attribute cluster_domain; - attribute cluster_pid; - ') + gen_require(` + attribute cluster_domain, cluster_pid; + ') - files_search_pids($1) - stream_connect_pattern($1, cluster_pid, cluster_pid, cluster_domain) + files_search_pids($1) + stream_connect_pattern($1, cluster_pid, cluster_pid, cluster_domain) ') ###################################### @@ -432,24 +426,25 @@ interface(`rhcs_read_qdiskd_tmpfs_files',` type qdiskd_tmpfs_t; ') + fs_search_tmpfs($1) allow $1 qdiskd_tmpfs_t:file read_file_perms; ') ###################################### ## -## Allow domain to read cluster lib files +## Allow domain to read cluster lib files ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`rhcs_read_cluster_lib_files',` - gen_require(` - type cluster_var_lib_t; - ') + gen_require(` + type cluster_var_lib_t; + ') - files_search_var_lib($1) - read_files_pattern($1, cluster_var_lib_t, cluster_var_lib_t) + files_search_var_lib($1) + read_files_pattern($1, cluster_var_lib_t, cluster_var_lib_t) ') diff --git a/policy/modules/services/rhgb.if b/policy/modules/services/rhgb.if index 96efae7..793a29f 100644 --- a/policy/modules/services/rhgb.if +++ b/policy/modules/services/rhgb.if @@ -194,5 +194,6 @@ interface(`rhgb_rw_tmpfs_files',` type rhgb_tmpfs_t; ') + fs_search_tmpfs($1) allow $1 rhgb_tmpfs_t:file rw_file_perms; ') diff --git a/policy/modules/services/ricci.if b/policy/modules/services/ricci.if index ecc341c..3128dd8 100644 --- a/policy/modules/services/ricci.if +++ b/policy/modules/services/ricci.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run ricci. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`ricci_domtrans',` @@ -20,20 +20,20 @@ interface(`ricci_domtrans',` ####################################### ## -## Execute ricci server in the ricci domain. +## Execute ricci server in the ricci domain. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # -interface(`ricci_initrc_domtrans', ` - gen_require(` - type ricci_initrc_exec_t; - ') +interface(`ricci_initrc_domtrans',` + gen_require(` + type ricci_initrc_exec_t; + ') - init_labeled_script_domtrans($1, ricci_initrc_exec_t) + init_labeled_script_domtrans($1, ricci_initrc_exec_t) ') ######################################## @@ -41,9 +41,9 @@ interface(`ricci_initrc_domtrans', ` ## Execute a domain transition to run ricci_modcluster. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`ricci_domtrans_modcluster',` @@ -89,7 +89,7 @@ interface(`ricci_dontaudit_rw_modcluster_pipes',` type ricci_modcluster_t; ') - dontaudit $1 ricci_modcluster_t:fifo_file { read write }; + dontaudit $1 ricci_modcluster_t:fifo_file rw_inherited_fifo_file_perms; ') ######################################## @@ -126,6 +126,7 @@ interface(`ricci_rw_modclusterd_tmpfs_files',` type ricci_modcluserd_tmpfs_t; ') + fs_search_tmpfs($1) allow $1 ricci_modcluserd_tmpfs_t:file rw_file_perms; ') @@ -134,9 +135,9 @@ interface(`ricci_rw_modclusterd_tmpfs_files',` ## Execute a domain transition to run ricci_modlog. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`ricci_domtrans_modlog',` @@ -152,9 +153,9 @@ interface(`ricci_domtrans_modlog',` ## Execute a domain transition to run ricci_modrpm. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`ricci_domtrans_modrpm',` @@ -170,9 +171,9 @@ interface(`ricci_domtrans_modrpm',` ## Execute a domain transition to run ricci_modservice. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`ricci_domtrans_modservice',` @@ -188,9 +189,9 @@ interface(`ricci_domtrans_modservice',` ## Execute a domain transition to run ricci_modstorage. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`ricci_domtrans_modstorage',` @@ -203,22 +204,22 @@ interface(`ricci_domtrans_modstorage',` #################################### ## -## Allow the specified domain to manage ricci's lib files. +## Allow the specified domain to manage ricci's lib files. ## ## -## -## Domain allowed access. -## +## +## Domain allowed access. +## ## # interface(`ricci_manage_lib_files',` - gen_require(` - type ricci_var_lib_t; - ') + gen_require(` + type ricci_var_lib_t; + ') - files_search_var_lib($1) - manage_dirs_pattern($1, ricci_var_lib_t, ricci_var_lib_t) - manage_files_pattern($1, ricci_var_lib_t, ricci_var_lib_t) + files_search_var_lib($1) + manage_dirs_pattern($1, ricci_var_lib_t, ricci_var_lib_t) + manage_files_pattern($1, ricci_var_lib_t, ricci_var_lib_t) ') ######################################## @@ -252,15 +253,15 @@ interface(`ricci_admin',` role_transition $2 ricci_initrc_exec_t system_r; allow $2 system_r; - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, ricci_tmp_t) - - files_search_var_lib($1) + + files_list_var_lib($1) admin_pattern($1, ricci_var_lib_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, ricci_var_log_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, ricci_var_run_t) ') diff --git a/policy/modules/services/rpc.if b/policy/modules/services/rpc.if index b65be0c..28e7576 100644 --- a/policy/modules/services/rpc.if +++ b/policy/modules/services/rpc.if @@ -32,7 +32,11 @@ interface(`rpc_stub',` ## ## # -template(`rpc_domain_template', ` +template(`rpc_domain_template',` + gen_require(` + type var_lib_nfs_t; + ') + ######################################## # # Declarations @@ -152,7 +156,7 @@ interface(`rpc_dontaudit_getattr_exports',` type exports_t; ') - dontaudit $1 exports_t:file getattr; + dontaudit $1 exports_t:file getattr_file_perms; ') ######################################## @@ -188,7 +192,7 @@ interface(`rpc_write_exports',` type exports_t; ') - allow $1 exports_t:file write; + allow $1 exports_t:file write_file_perms; ') ######################################## @@ -302,7 +306,7 @@ interface(`rpc_read_nfs_content',` allow $1 { nfsd_ro_t nfsd_rw_t }:dir list_dir_perms; allow $1 { nfsd_ro_t nfsd_rw_t }:file read_file_perms; - allow $1 { nfsd_ro_t nfsd_rw_t }:lnk_file { getattr read }; + allow $1 { nfsd_ro_t nfsd_rw_t }:lnk_file read_lnk_file_perms; ') ######################################## @@ -395,7 +399,7 @@ interface(`rpc_search_nfs_state_data',` ') files_search_var_lib($1) - allow $1 var_lib_nfs_t:dir search; + allow $1 var_lib_nfs_t:dir search_dir_perms; ') ######################################## diff --git a/policy/modules/services/rpcbind.if b/policy/modules/services/rpcbind.if index 5a4d69d..0458ba7 100644 --- a/policy/modules/services/rpcbind.if +++ b/policy/modules/services/rpcbind.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run rpcbind. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`rpcbind_domtrans',` @@ -145,9 +145,9 @@ interface(`rpcbind_admin',` role_transition $2 rpcbind_initrc_exec_t system_r; allow $2 system_r; - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, rpcbind_var_lib_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, rpcbind_var_run_t) ') diff --git a/policy/modules/services/rsync.if b/policy/modules/services/rsync.if index eefa329..b28cae5 100644 --- a/policy/modules/services/rsync.if +++ b/policy/modules/services/rsync.if @@ -109,9 +109,9 @@ interface(`rsync_exec',` ## Read rsync config files. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`rsync_read_config',` @@ -128,9 +128,9 @@ interface(`rsync_read_config',` ## Write to rsync config files. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`rsync_write_config',` @@ -147,9 +147,9 @@ interface(`rsync_write_config',` ## Manage rsync config files. ## ## -## -## Domain allowed. -## +## +## Domain allowed access. +## ## # interface(`rsync_manage_config',` diff --git a/policy/modules/services/rtkit.if b/policy/modules/services/rtkit.if index 21079f8..d632bc0 100644 --- a/policy/modules/services/rtkit.if +++ b/policy/modules/services/rtkit.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run rtkit_daemon. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`rtkit_daemon_domtrans',` @@ -46,7 +46,7 @@ interface(`rtkit_daemon_dbus_chat',` ## ## ## -## Domain allowed access. +## Domain to not audit. ## ## # @@ -75,6 +75,7 @@ interface(`rtkit_scheduled',` type rtkit_daemon_t; ') + kernel_search_proc($1) ps_process_pattern(rtkit_daemon_t, $1) allow rtkit_daemon_t $1:process { getsched setsched }; rtkit_daemon_dbus_chat($1) diff --git a/policy/modules/services/rwho.if b/policy/modules/services/rwho.if index 71ea0ea..664e68e 100644 --- a/policy/modules/services/rwho.if +++ b/policy/modules/services/rwho.if @@ -5,9 +5,9 @@ ## Execute a domain transition to run rwho. ## ## -## +## ## Domain allowed to transition. -## +## ## # interface(`rwho_domtrans',` diff --git a/policy/modules/services/samba.if b/policy/modules/services/samba.if index 84732e5..9e72970 100644 --- a/policy/modules/services/samba.if +++ b/policy/modules/services/samba.if @@ -83,7 +83,7 @@ interface(`samba_domtrans_net',` ## ## ## -## Domain allowed access. +## Domain allowed to transition. ## ## # @@ -133,7 +133,7 @@ interface(`samba_run_net',` ## ## # -template(`samba_role_notrans',` +interface(`samba_role_notrans',` gen_require(` type smbd_t; ') @@ -148,7 +148,7 @@ template(`samba_role_notrans',` ## ## ## -## Domain allowed access. +## Domain allowed to transition. ## ## ## @@ -391,7 +391,6 @@ interface(`samba_search_var',` type samba_var_t; ') - files_search_var($1) files_search_var_lib($1) allow $1 samba_var_t:dir search_dir_perms; ') @@ -412,7 +411,6 @@ interface(`samba_read_var_files',` type samba_var_t; ') - files_search_var($1) files_search_var_lib($1) read_files_pattern($1, samba_var_t, samba_var_t) ') @@ -452,7 +450,6 @@ interface(`samba_rw_var_files',` type samba_var_t; ') - files_search_var($1) files_search_var_lib($1) rw_files_pattern($1, samba_var_t, samba_var_t) ') @@ -473,7 +470,6 @@ interface(`samba_manage_var_files',` type samba_var_t; ') - files_search_var($1) files_search_var_lib($1) manage_files_pattern($1, samba_var_t, samba_var_t) manage_lnk_files_pattern($1, samba_var_t, samba_var_t) @@ -761,9 +757,8 @@ interface(`samba_admin',` type smbd_t, smbd_tmp_t, samba_secrets_t; type samba_initrc_exec_t, samba_log_t, samba_var_t; type samba_etc_t, samba_share_t, winbind_log_t; - type swat_var_run_t, swat_tmp_t; - type winbind_var_run_t, winbind_tmp_t; - type samba_unconfined_script_t, samba_unconfined_script_exec_t; + type swat_var_run_t, swat_tmp_t, samba_unconfined_script_exec_t; + type winbind_var_run_t, winbind_tmp_t, samba_unconfined_script_t; ') allow $1 smbd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/sendmail.if b/policy/modules/services/sendmail.if index cf9fdcd..5700fb8 100644 --- a/policy/modules/services/sendmail.if +++ b/policy/modules/services/sendmail.if @@ -329,7 +329,7 @@ interface(`sendmail_run_unconfined',` # interface(`sendmail_admin',` gen_require(` - type sendmail_t, sendmail_initrc_exec_t, sendmail_log_t; + type sendmail_t, sendmail_initrc_exec_t, sendmail_log_t; type sendmail_tmp_t, sendmail_var_run_t, unconfined_sendmail_t; type mail_spool_t; ') @@ -344,15 +344,15 @@ interface(`sendmail_admin',` domain_system_change_exemption($1) role_transition $2 sendmail_initrc_exec_t system_r; - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, sendmail_log_t) - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, sendmail_tmp_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, sendmail_var_run_t) - files_search_spool($1) + files_list_spool($1) admin_pattern($1, mail_spool_t) ') diff --git a/policy/modules/services/setroubleshoot.if b/policy/modules/services/setroubleshoot.if index a7fbedc..d9f5dbc 100644 --- a/policy/modules/services/setroubleshoot.if +++ b/policy/modules/services/setroubleshoot.if @@ -136,8 +136,8 @@ interface(`setroubleshoot_fixit_dontaudit_leaks',` # interface(`setroubleshoot_admin',` gen_require(` - type setroubleshootd_t, setroubleshoot_var_log_t; - type setroubleshoot_var_lib_t, setroubleshoot_var_run_t; + type setroubleshootd_t, setroubleshoot_var_log_t, setroubleshoot_var_run_t; + type setroubleshoot_var_lib_t; ') allow $1 setroubleshootd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/snmp.if b/policy/modules/services/snmp.if index 6aa68d8..bfdf197 100644 --- a/policy/modules/services/snmp.if +++ b/policy/modules/services/snmp.if @@ -125,9 +125,8 @@ interface(`snmp_dontaudit_write_snmp_var_lib_files',` # interface(`snmp_admin',` gen_require(` - type snmpd_t, snmpd_log_t; + type snmpd_t, snmpd_log_t, snmpd_initrc_exec_t; type snmpd_var_lib_t, snmpd_var_run_t; - type snmpd_initrc_exec_t; ') allow $1 snmpd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/snort.if b/policy/modules/services/snort.if index 215f425..88ebedb 100644 --- a/policy/modules/services/snort.if +++ b/policy/modules/services/snort.if @@ -50,11 +50,11 @@ interface(`snort_admin',` allow $2 system_r; admin_pattern($1, snort_etc_t) - files_search_etc($1) + files_list_etc($1) admin_pattern($1, snort_log_t) - logging_search_logs($1) + logging_list_logs($1) admin_pattern($1, snort_var_run_t) - files_search_pids($1) + files_list_pids($1) ') diff --git a/policy/modules/services/soundserver.if b/policy/modules/services/soundserver.if index 93fe7bf..4a15633 100644 --- a/policy/modules/services/soundserver.if +++ b/policy/modules/services/soundserver.if @@ -33,9 +33,8 @@ interface(`soundserver_tcp_connect',` # interface(`soundserver_admin',` gen_require(` - type soundd_t, soundd_etc_t; + type soundd_t, soundd_etc_t, soundd_initrc_exec_t; type soundd_tmp_t, soundd_var_run_t; - type soundd_initrc_exec_t; ') allow $1 soundd_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/squid.if b/policy/modules/services/squid.if index dc4f590..1d0c078 100644 --- a/policy/modules/services/squid.if +++ b/policy/modules/services/squid.if @@ -206,8 +206,7 @@ interface(`squid_use',` interface(`squid_admin',` gen_require(` type squid_t, squid_cache_t, squid_conf_t; - type squid_log_t, squid_var_run_t; - type squid_initrc_exec_t; + type squid_log_t, squid_var_run_t, squid_initrc_exec_t; ') allow $1 squid_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/tuned.if b/policy/modules/services/tuned.if index 329f139..752697f 100644 --- a/policy/modules/services/tuned.if +++ b/policy/modules/services/tuned.if @@ -123,6 +123,6 @@ interface(`tuned_admin',` role_transition $2 tuned_initrc_exec_t system_r; allow $2 system_r; - files_search_pids($1) + files_list_pids($1) admin_pattern($1, tuned_var_run_t) ') diff --git a/policy/modules/services/ulogd.if b/policy/modules/services/ulogd.if index e3c66d8..fd72fe8 100644 --- a/policy/modules/services/ulogd.if +++ b/policy/modules/services/ulogd.if @@ -131,12 +131,12 @@ interface(`ulogd_admin',` role_transition $2 ulogd_initrc_exec_t system_r; allow $2 system_r; - files_search_etc($1) + files_list_etc($1) admin_pattern($1, ulogd_etc_t) logging_list_logs($1) admin_pattern($1, ulogd_var_log_t) - files_search_usr($1) + files_list_usr($1) admin_pattern($1, ulogd_modules_t) ') diff --git a/policy/modules/services/varnishd.if b/policy/modules/services/varnishd.if index e0f819e..fe5ce10 100644 --- a/policy/modules/services/varnishd.if +++ b/policy/modules/services/varnishd.if @@ -58,7 +58,7 @@ interface(`varnishd_read_config',` ##################################### ## -## Read varnish lib files. +## Read varnish lib files. ## ## ## @@ -151,8 +151,8 @@ interface(`varnishd_manage_log',` # interface(`varnishd_admin_varnishlog',` gen_require(` - type varnishlog_t, varnishlog_initrc_exec_t; - type varnishlog_var_run_t, varnishlog_log_t; + type varnishlog_t, varnishlog_initrc_exec_t, varnishlog_log_t; + type varnishlog_var_run_t; ') allow $1 varnishlog_t:process { ptrace signal_perms }; @@ -163,7 +163,7 @@ interface(`varnishd_admin_varnishlog',` role_transition $2 varnishlog_initrc_exec_t system_r; allow $2 system_r; - files_search_pids($1) + files_list_pids($1) admin_pattern($1, varnishlog_var_run_t) logging_list_logs($1) @@ -202,15 +202,15 @@ interface(`varnishd_admin',` role_transition $2 varnishd_initrc_exec_t system_r; allow $2 system_r; - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, varnishd_var_lib_t) - files_search_etc($1) + files_list_etc($1) admin_pattern($1, varnishd_etc_t) - files_search_pids($1) + files_list_pids($1) admin_pattern($1, varnishd_var_run_t) - files_search_tmp($1) + files_list_tmp($1) admin_pattern($1, varnishd_tmp_t) ') diff --git a/policy/modules/services/virt.if b/policy/modules/services/virt.if index 0198dc2..dbdc0e0 100644 --- a/policy/modules/services/virt.if +++ b/policy/modules/services/virt.if @@ -597,7 +597,7 @@ interface(`virt_transition_svirt',` ## ## ## -## Domain allowed access. +## Domain to not audit. ## ## # diff --git a/policy/modules/services/vnstatd.if b/policy/modules/services/vnstatd.if index 85dba86..14f8906 100644 --- a/policy/modules/services/vnstatd.if +++ b/policy/modules/services/vnstatd.if @@ -1,15 +1,13 @@ - ## policy for vnstatd - ######################################## ## ## Execute a domain transition to run vnstatd. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`vnstatd_domtrans',` @@ -20,16 +18,14 @@ interface(`vnstatd_domtrans',` domtrans_pattern($1, vnstatd_exec_t, vnstatd_t) ') - - ######################################## ## ## Execute a domain transition to run vnstat. ## ## -## +## ## Domain allowed access. -## +## ## # interface(`vnstatd_domtrans_vnstat',` @@ -75,7 +71,7 @@ interface(`vnstatd_read_lib_files',` ') files_search_var_lib($1) - read_files_pattern($1, vnstatd_var_lib_t, vnstatd_var_lib_t) + read_files_pattern($1, vnstatd_var_lib_t, vnstatd_var_lib_t) ') ######################################## @@ -95,7 +91,7 @@ interface(`vnstatd_manage_lib_files',` ') files_search_var_lib($1) - manage_files_pattern($1, vnstatd_var_lib_t, vnstatd_var_lib_t) + manage_files_pattern($1, vnstatd_var_lib_t, vnstatd_var_lib_t) ') ######################################## @@ -114,7 +110,7 @@ interface(`vnstatd_manage_lib_dirs',` ') files_search_var_lib($1) - manage_dirs_pattern($1, vnstatd_var_lib_t, vnstatd_var_lib_t) + manage_dirs_pattern($1, vnstatd_var_lib_t, vnstatd_var_lib_t) ') @@ -137,14 +133,12 @@ interface(`vnstatd_manage_lib_dirs',` # interface(`vnstatd_admin',` gen_require(` - type vnstatd_t; - type vnstatd_var_lib_t; + type vnstatd_t, vnstatd_var_lib_t; ') allow $1 vnstatd_t:process { ptrace signal_perms }; ps_process_pattern($1, vnstatd_t) - files_search_var_lib($1) + files_list_var_lib($1) admin_pattern($1, vnstatd_var_lib_t) - ') diff --git a/policy/modules/services/xserver.if b/policy/modules/services/xserver.if index 265c5df..61cc021 100644 --- a/policy/modules/services/xserver.if +++ b/policy/modules/services/xserver.if @@ -47,7 +47,7 @@ interface(`xserver_restricted_role',` manage_files_pattern($2, user_fonts_cache_t, user_fonts_cache_t) stream_connect_pattern($2, xserver_tmp_t, xserver_tmp_t, xserver_t) - allow $2 xserver_tmp_t:sock_file unlink; + allow $2 xserver_tmp_t:sock_file delete_sock_file_perms; files_search_tmp($2) # Communicate via System V shared memory. @@ -248,7 +248,7 @@ interface(`xserver_rw_session',` type xserver_t, xserver_tmpfs_t; ') - xserver_ro_session($1,$2) + xserver_ro_session($1, $2) allow $1 xserver_t:shm rw_shm_perms; allow $1 xserver_tmpfs_t:file rw_file_perms; ') @@ -276,7 +276,7 @@ interface(`xserver_non_drawing_client',` allow $1 self:x_gc { create setattr }; - allow $1 xdm_var_run_t:dir search; + allow $1 xdm_var_run_t:dir search_dir_perms; allow $1 xserver_t:unix_stream_socket connectto; allow $1 xextension_t:x_extension { query use }; @@ -318,7 +318,7 @@ interface(`xserver_user_client',` # for when /tmp/.X11-unix is created by the system allow $1 xdm_t:fd use; allow $1 xdm_t:fifo_file rw_inherited_fifo_file_perms; - allow $1 xdm_tmp_t:dir search; + allow $1 xdm_tmp_t:dir search_dir_perms; allow $1 xdm_tmp_t:sock_file { read write }; dontaudit $1 xdm_t:tcp_socket { read write }; @@ -363,7 +363,7 @@ interface(`xserver_user_client',` # template(`xserver_common_x_domain_template',` gen_require(` - type root_xdrawable_t; + type root_xdrawable_t, xdm_t, xserver_t; type xproperty_t, $1_xproperty_t; type xevent_t, client_xevent_t; type input_xevent_t, $1_input_xevent_t; @@ -380,7 +380,6 @@ template(`xserver_common_x_domain_template',` class x_screen { saver_setattr saver_hide saver_show }; class x_pointer { get_property set_property manage }; class x_keyboard { read manage }; - type xdm_t, xserver_t; ') ############################## @@ -479,8 +478,8 @@ template(`xserver_object_types_template',` # template(`xserver_user_x_domain_template',` gen_require(` - type xdm_t, xdm_tmp_t; - type xauth_home_t, iceauth_home_t, xserver_t, xserver_tmpfs_t; + type xdm_t, xdm_tmp_t, xserver_tmpfs_t; + type xauth_home_t, iceauth_home_t, xserver_t; ') allow $2 self:shm create_shm_perms; @@ -792,8 +791,7 @@ interface(`xserver_stream_connect_xdm',` files_search_tmp($1) files_search_pids($1) - stream_connect_pattern($1, xdm_tmp_t, xdm_tmp_t, xdm_t) - stream_connect_pattern($1, xdm_var_run_t, xdm_var_run_t, xdm_t) + stream_connect_pattern($1, { xdm_tmp_t xdm_var_run_t }, { xdm_tmp_t xdm_var_run_t }, xdm_t) ') ######################################## @@ -1549,7 +1547,7 @@ interface(`xserver_xdm_append_log',` ## ## # -template(`xserver_read_user_iceauth',` +interface(`xserver_read_user_iceauth',` gen_require(` type iceauth_home_t; ') diff --git a/policy/modules/services/zarafa.if b/policy/modules/services/zarafa.if index 78fc104..4f2dde8 100644 --- a/policy/modules/services/zarafa.if +++ b/policy/modules/services/zarafa.if @@ -98,5 +98,5 @@ interface(`zarafa_stream_connect_server',` ') files_search_var_lib($1) - stream_connect_pattern($1, zarafa_server_t, zarafa_server_var_run_t, zarafa_server_t) + stream_connect_pattern($1, zarafa_server_var_run_t, zarafa_server_var_run_t, zarafa_server_t) ') diff --git a/policy/modules/services/zebra.if b/policy/modules/services/zebra.if index 5860687..347f754 100644 --- a/policy/modules/services/zebra.if +++ b/policy/modules/services/zebra.if @@ -61,8 +61,7 @@ interface(`zebra_stream_connect',` interface(`zebra_admin',` gen_require(` type zebra_t, zebra_tmp_t, zebra_log_t; - type zebra_conf_t, zebra_var_run_t; - type zebra_initrc_exec_t; + type zebra_conf_t, zebra_var_run_t, zebra_initrc_exec_t; ') allow $1 zebra_t:process { ptrace signal_perms }; diff --git a/policy/modules/services/zosremote.if b/policy/modules/services/zosremote.if index 1d24e1e..13f0eef 100644 --- a/policy/modules/services/zosremote.if +++ b/policy/modules/services/zosremote.if @@ -34,6 +34,7 @@ interface(`zosremote_domtrans',` ## Role allowed access. ## ## +## # interface(`zosremote_run',` gen_require(` diff --git a/policy/modules/system/init.if b/policy/modules/system/init.if index 447aaec..666a58f 100644 --- a/policy/modules/system/init.if +++ b/policy/modules/system/init.if @@ -1207,12 +1207,7 @@ interface(`init_read_script_state',` ') kernel_search_proc($1) - read_files_pattern($1, initrc_t, initrc_t) - read_lnk_files_pattern($1, initrc_t, initrc_t) - list_dirs_pattern($1, initrc_t, initrc_t) - - # should move this to separate interface - allow $1 initrc_t:process getattr; + ps_process_pattern($1, initrc_t) ') ######################################## diff --git a/policy/modules/system/kdump.if b/policy/modules/system/kdump.if index 4198ff5..672d323 100644 --- a/policy/modules/system/kdump.if +++ b/policy/modules/system/kdump.if @@ -106,6 +106,6 @@ interface(`kdump_admin',` role_transition $2 kdump_initrc_exec_t system_r; allow $2 system_r; - files_search_etc($1) + files_list_etc($1) admin_pattern($1, kdump_etc_t) ')