diff --git a/policy-rawhide-base.patch b/policy-rawhide-base.patch index 38ad120..c0a639e 100644 --- a/policy-rawhide-base.patch +++ b/policy-rawhide-base.patch @@ -5481,7 +5481,7 @@ index 8e0f9cd..b9f45b9 100644 define(`create_packet_interfaces',`` diff --git a/policy/modules/kernel/corenetwork.te.in b/policy/modules/kernel/corenetwork.te.in -index b191055..2f2f2b9 100644 +index b191055..87df0ad 100644 --- a/policy/modules/kernel/corenetwork.te.in +++ b/policy/modules/kernel/corenetwork.te.in @@ -5,6 +5,7 @@ policy_module(corenetwork, 1.19.2) @@ -5659,12 +5659,13 @@ index b191055..2f2f2b9 100644 network_port(iscsi, tcp,3260,s0) network_port(isns, tcp,3205,s0, udp,3205,s0) network_port(jabber_client, tcp,5222,s0, tcp,5223,s0) - network_port(jabber_interserver, tcp,5269,s0) +-network_port(jabber_interserver, tcp,5269,s0) -network_port(jboss_iiop, tcp,3528,s0, udp,3528,s0) -network_port(kerberos, tcp,88,s0, udp,88,s0, tcp,750,s0, udp,750,s0) -network_port(kerberos_admin, tcp,464,s0, udp,464,s0, tcp,749,s0) -network_port(kerberos_master, tcp,4444,s0, udp,4444,s0) -network_port(kismet, tcp,2501,s0) ++network_port(jabber_interserver, tcp,5269,s0, tcp,5280,s0) +network_port(jabber_router, tcp,5347,s0) +network_port(jacorb, tcp,3528,s0, tcp,3529,s0) +network_port(jboss_debug, tcp,8787,s0, udp,8787,s0) @@ -8755,7 +8756,7 @@ index 0b1a871..f260e6f 100644 +allow devices_unconfined_type device_node:{ file chr_file } ~{ execmod entrypoint }; +allow devices_unconfined_type mtrr_device_t:file ~{ execmod entrypoint }; diff --git a/policy/modules/kernel/domain.if b/policy/modules/kernel/domain.if -index 6a1e4d1..1b9b0b5 100644 +index 6a1e4d1..7ac2831 100644 --- a/policy/modules/kernel/domain.if +++ b/policy/modules/kernel/domain.if @@ -76,33 +76,8 @@ interface(`domain_type',` @@ -8830,7 +8831,33 @@ index 6a1e4d1..1b9b0b5 100644 ## Send a stop signal to all domains. ## ## -@@ -631,7 +626,7 @@ interface(`domain_read_all_domains_state',` +@@ -571,6 +566,25 @@ interface(`domain_kill_all_domains',` + + ######################################## + ## ++## Destroy all domains semaphores ++## ++## ++## ++## Domain allowed access. ++## ++## ++## ++# ++interface(`domain_destroy_all_semaphores',` ++ gen_require(` ++ attribute domain; ++ ') ++ ++ allow $1 domain:sem destroy; ++') ++ ++######################################## ++## + ## Search the process state directory (/proc/pid) of all domains. + ## + ## +@@ -631,7 +645,7 @@ interface(`domain_read_all_domains_state',` ######################################## ## @@ -8839,7 +8866,7 @@ index 6a1e4d1..1b9b0b5 100644 ## ## ## -@@ -655,7 +650,7 @@ interface(`domain_getattr_all_domains',` +@@ -655,7 +669,7 @@ interface(`domain_getattr_all_domains',` ## ## ## @@ -8848,7 +8875,7 @@ index 6a1e4d1..1b9b0b5 100644 ## ## # -@@ -1356,6 +1351,24 @@ interface(`domain_manage_all_entry_files',` +@@ -1356,6 +1370,24 @@ interface(`domain_manage_all_entry_files',` ######################################## ## @@ -8873,7 +8900,7 @@ index 6a1e4d1..1b9b0b5 100644 ## Relabel to and from all entry point ## file types. ## -@@ -1421,7 +1434,7 @@ interface(`domain_entry_file_spec_domtrans',` +@@ -1421,7 +1453,7 @@ interface(`domain_entry_file_spec_domtrans',` ## ## Ability to mmap a low area of the address ## space conditionally, as configured by @@ -8882,7 +8909,7 @@ index 6a1e4d1..1b9b0b5 100644 ## Preventing such mappings helps protect against ## exploiting null deref bugs in the kernel. ## -@@ -1448,7 +1461,7 @@ interface(`domain_mmap_low',` +@@ -1448,7 +1480,7 @@ interface(`domain_mmap_low',` ## ## Ability to mmap a low area of the address ## space unconditionally, as configured @@ -8891,7 +8918,7 @@ index 6a1e4d1..1b9b0b5 100644 ## Preventing such mappings helps protect against ## exploiting null deref bugs in the kernel. ## -@@ -1508,6 +1521,24 @@ interface(`domain_unconfined_signal',` +@@ -1508,6 +1540,24 @@ interface(`domain_unconfined_signal',` ######################################## ## @@ -8916,7 +8943,7 @@ index 6a1e4d1..1b9b0b5 100644 ## Unconfined access to domains. ## ## -@@ -1530,4 +1561,63 @@ interface(`domain_unconfined',` +@@ -1530,4 +1580,63 @@ interface(`domain_unconfined',` typeattribute $1 can_change_object_identity; typeattribute $1 set_curr_context; typeattribute $1 process_uncond_exempt; @@ -8981,7 +9008,7 @@ index 6a1e4d1..1b9b0b5 100644 + dontaudit $1 domain:dir_file_class_set audit_access; ') diff --git a/policy/modules/kernel/domain.te b/policy/modules/kernel/domain.te -index cf04cb5..c2776d0 100644 +index cf04cb5..a0d747a 100644 --- a/policy/modules/kernel/domain.te +++ b/policy/modules/kernel/domain.te @@ -4,17 +4,41 @@ policy_module(domain, 1.11.0) @@ -9130,7 +9157,7 @@ index cf04cb5..c2776d0 100644 # Create/access any System V IPC objects. allow unconfined_domain_type domain:{ sem msgq shm } *; -@@ -166,5 +238,352 @@ allow unconfined_domain_type domain:lnk_file { read_lnk_file_perms ioctl lock }; +@@ -166,5 +238,356 @@ allow unconfined_domain_type domain:lnk_file { read_lnk_file_perms ioctl lock }; # act on all domains keys allow unconfined_domain_type domain:key *; @@ -9159,6 +9186,10 @@ index cf04cb5..c2776d0 100644 +') + +optional_policy(` ++ snapper_filetrans_named_content(named_filetrans_domain) ++') ++ ++optional_policy(` + seutil_filetrans_named_content(named_filetrans_domain) +') + @@ -20428,7 +20459,7 @@ index 0000000..63bc797 +logging_stream_connect_syslog(sysadm_t) diff --git a/policy/modules/roles/unconfineduser.fc b/policy/modules/roles/unconfineduser.fc new file mode 100644 -index 0000000..0e8654b +index 0000000..b680867 --- /dev/null +++ b/policy/modules/roles/unconfineduser.fc @@ -0,0 +1,8 @@ @@ -20436,7 +20467,7 @@ index 0000000..0e8654b +# e.g.: +# /usr/local/bin/appsrv -- gen_context(system_u:object_r:unconfined_exec_t,s0) +# For the time being until someone writes a sane policy, we need initrc to transition to unconfined_t -+/usr/bin/vncserver -- gen_context(system_u:object_r:unconfined_exec_t,s0) ++#/usr/bin/vncserver -- gen_context(system_u:object_r:unconfined_exec_t,s0) + +/usr/sbin/xrdp -- gen_context(system_u:object_r:unconfined_exec_t,s0) +/usr/sbin/xrdp-sesman -- gen_context(system_u:object_r:unconfined_exec_t,s0) @@ -27255,7 +27286,7 @@ index 2479587..890e1e2 100644 /var/(db|adm)/sudo(/.*)? gen_context(system_u:object_r:pam_var_run_t,s0) /var/lib/sudo(/.*)? gen_context(system_u:object_r:pam_var_run_t,s0) diff --git a/policy/modules/system/authlogin.if b/policy/modules/system/authlogin.if -index 3efd5b6..f645c21 100644 +index 3efd5b6..9e85ea0 100644 --- a/policy/modules/system/authlogin.if +++ b/policy/modules/system/authlogin.if @@ -23,11 +23,17 @@ interface(`auth_role',` @@ -27317,7 +27348,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -95,69 +117,68 @@ interface(`auth_use_pam',` +@@ -95,69 +117,67 @@ interface(`auth_use_pam',` interface(`auth_login_pgm_domain',` gen_require(` type var_auth_t, auth_cache_t; @@ -27375,7 +27406,6 @@ index 3efd5b6..f645c21 100644 mls_file_downgrade($1) mls_process_set_level($1) + mls_process_write_to_clearance($1) -+ mls_process_write_all_levels($1) mls_fd_share_all_levels($1) auth_use_pam($1) @@ -27427,7 +27457,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -231,6 +252,25 @@ interface(`auth_domtrans_login_program',` +@@ -231,6 +251,25 @@ interface(`auth_domtrans_login_program',` ######################################## ## @@ -27453,7 +27483,7 @@ index 3efd5b6..f645c21 100644 ## Execute a login_program in the target domain, ## with a range transition. ## -@@ -322,6 +362,24 @@ interface(`auth_rw_cache',` +@@ -322,6 +361,24 @@ interface(`auth_rw_cache',` ######################################## ## @@ -27478,7 +27508,7 @@ index 3efd5b6..f645c21 100644 ## Manage authentication cache ## ## -@@ -402,6 +460,8 @@ interface(`auth_domtrans_chk_passwd',` +@@ -402,6 +459,8 @@ interface(`auth_domtrans_chk_passwd',` optional_policy(` samba_stream_connect_winbind($1) ') @@ -27487,7 +27517,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -428,6 +488,24 @@ interface(`auth_domtrans_chkpwd',` +@@ -428,6 +487,24 @@ interface(`auth_domtrans_chkpwd',` ######################################## ## @@ -27512,7 +27542,7 @@ index 3efd5b6..f645c21 100644 ## Execute chkpwd programs in the chkpwd domain. ## ## -@@ -448,6 +526,25 @@ interface(`auth_run_chk_passwd',` +@@ -448,6 +525,25 @@ interface(`auth_run_chk_passwd',` auth_domtrans_chk_passwd($1) role $2 types chkpwd_t; @@ -27538,7 +27568,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -467,7 +564,6 @@ interface(`auth_domtrans_upd_passwd',` +@@ -467,7 +563,6 @@ interface(`auth_domtrans_upd_passwd',` domtrans_pattern($1, updpwd_exec_t, updpwd_t) auth_dontaudit_read_shadow($1) @@ -27546,7 +27576,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -664,6 +760,10 @@ interface(`auth_manage_shadow',` +@@ -664,6 +759,10 @@ interface(`auth_manage_shadow',` allow $1 shadow_t:file manage_file_perms; typeattribute $1 can_read_shadow_passwords, can_write_shadow_passwords; @@ -27557,7 +27587,7 @@ index 3efd5b6..f645c21 100644 ') ####################################### -@@ -763,7 +863,50 @@ interface(`auth_rw_faillog',` +@@ -763,7 +862,50 @@ interface(`auth_rw_faillog',` ') logging_search_logs($1) @@ -27609,7 +27639,7 @@ index 3efd5b6..f645c21 100644 ') ####################################### -@@ -824,9 +967,29 @@ interface(`auth_rw_lastlog',` +@@ -824,9 +966,29 @@ interface(`auth_rw_lastlog',` allow $1 lastlog_t:file { rw_file_perms lock setattr }; ') @@ -27640,7 +27670,7 @@ index 3efd5b6..f645c21 100644 ## ## ## -@@ -834,12 +997,27 @@ interface(`auth_rw_lastlog',` +@@ -834,12 +996,27 @@ interface(`auth_rw_lastlog',` ## ## # @@ -27671,7 +27701,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -854,15 +1032,15 @@ interface(`auth_domtrans_pam',` +@@ -854,15 +1031,15 @@ interface(`auth_domtrans_pam',` # interface(`auth_signal_pam',` gen_require(` @@ -27690,7 +27720,7 @@ index 3efd5b6..f645c21 100644 ## ## ## -@@ -875,13 +1053,33 @@ interface(`auth_signal_pam',` +@@ -875,13 +1052,33 @@ interface(`auth_signal_pam',` ## ## # @@ -27728,7 +27758,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -959,9 +1157,30 @@ interface(`auth_manage_var_auth',` +@@ -959,9 +1156,30 @@ interface(`auth_manage_var_auth',` ') files_search_var($1) @@ -27762,7 +27792,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -1040,6 +1259,10 @@ interface(`auth_manage_pam_pid',` +@@ -1040,6 +1258,10 @@ interface(`auth_manage_pam_pid',` files_search_pids($1) allow $1 pam_var_run_t:dir manage_dir_perms; allow $1 pam_var_run_t:file manage_file_perms; @@ -27773,7 +27803,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -1176,6 +1399,7 @@ interface(`auth_manage_pam_console_data',` +@@ -1176,6 +1398,7 @@ interface(`auth_manage_pam_console_data',` files_search_pids($1) manage_files_pattern($1, pam_var_console_t, pam_var_console_t) manage_lnk_files_pattern($1, pam_var_console_t, pam_var_console_t) @@ -27781,7 +27811,7 @@ index 3efd5b6..f645c21 100644 ') ####################################### -@@ -1576,6 +1800,25 @@ interface(`auth_setattr_login_records',` +@@ -1576,6 +1799,25 @@ interface(`auth_setattr_login_records',` ######################################## ## @@ -27807,7 +27837,7 @@ index 3efd5b6..f645c21 100644 ## Read login records files (/var/log/wtmp). ## ## -@@ -1726,24 +1969,7 @@ interface(`auth_manage_login_records',` +@@ -1726,24 +1968,7 @@ interface(`auth_manage_login_records',` logging_rw_generic_log_dirs($1) allow $1 wtmp_t:file manage_file_perms; @@ -27833,7 +27863,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -1767,11 +1993,13 @@ interface(`auth_relabel_login_records',` +@@ -1767,11 +1992,13 @@ interface(`auth_relabel_login_records',` ## # interface(`auth_use_nsswitch',` @@ -27850,7 +27880,7 @@ index 3efd5b6..f645c21 100644 ') ######################################## -@@ -1805,3 +2033,280 @@ interface(`auth_unconfined',` +@@ -1805,3 +2032,280 @@ interface(`auth_unconfined',` typeattribute $1 can_write_shadow_passwords; typeattribute $1 can_relabelto_shadow_passwords; ') @@ -35546,15 +35576,16 @@ index 79048c4..ce6f0ce 100644 udev_read_pid_files(lvm_t) ') diff --git a/policy/modules/system/miscfiles.fc b/policy/modules/system/miscfiles.fc -index 9fe8e01..83acb32 100644 +index 9fe8e01..3d71062 100644 --- a/policy/modules/system/miscfiles.fc +++ b/policy/modules/system/miscfiles.fc -@@ -9,11 +9,13 @@ ifdef(`distro_gentoo',` +@@ -9,11 +9,14 @@ ifdef(`distro_gentoo',` # /etc # /etc/avahi/etc/localtime -- gen_context(system_u:object_r:locale_t,s0) -/etc/httpd/alias/[^/]*\.db(\.[^/]*)* -- gen_context(system_u:object_r:cert_t,s0) -/etc/localtime -- gen_context(system_u:object_r:locale_t,s0) ++/etc/docker/certs\.d(/.*)? gen_context(system_u:object_r:cert_t,s0) +/etc/httpd/alias(/.*)? gen_context(system_u:object_r:cert_t,s0) +/etc/localtime gen_context(system_u:object_r:locale_t,s0) +/etc/locale.conf -- gen_context(system_u:object_r:locale_t,s0) @@ -35565,7 +35596,7 @@ index 9fe8e01..83acb32 100644 ifdef(`distro_redhat',` /etc/sysconfig/clock -- gen_context(system_u:object_r:locale_t,s0) -@@ -37,24 +39,20 @@ ifdef(`distro_redhat',` +@@ -37,24 +40,20 @@ ifdef(`distro_redhat',` /usr/lib/perl5/man(/.*)? gen_context(system_u:object_r:man_t,s0) @@ -35595,7 +35626,7 @@ index 9fe8e01..83acb32 100644 /usr/X11R6/lib/X11/fonts(/.*)? gen_context(system_u:object_r:fonts_t,s0) -@@ -77,7 +75,7 @@ ifdef(`distro_redhat',` +@@ -77,7 +76,7 @@ ifdef(`distro_redhat',` /var/cache/fontconfig(/.*)? gen_context(system_u:object_r:fonts_cache_t,s0) /var/cache/fonts(/.*)? gen_context(system_u:object_r:tetex_data_t,s0) @@ -35604,7 +35635,7 @@ index 9fe8e01..83acb32 100644 /var/named/chroot/etc/pki(/.*)? gen_context(system_u:object_r:cert_t,s0) -@@ -90,6 +88,7 @@ ifdef(`distro_debian',` +@@ -90,6 +89,7 @@ ifdef(`distro_debian',` ') ifdef(`distro_redhat',` @@ -41338,10 +41369,10 @@ index 0000000..d2a8fc7 +') diff --git a/policy/modules/system/systemd.te b/policy/modules/system/systemd.te new file mode 100644 -index 0000000..a75ffd3 +index 0000000..769e942 --- /dev/null +++ b/policy/modules/system/systemd.te -@@ -0,0 +1,700 @@ +@@ -0,0 +1,703 @@ +policy_module(systemd, 1.0.0) + +####################################### @@ -41482,6 +41513,7 @@ index 0000000..a75ffd3 +domain_signal_all_domains(systemd_logind_t) +domain_signull_all_domains(systemd_logind_t) +domain_kill_all_domains(systemd_logind_t) ++domain_destroy_all_semaphores(systemd_logind_t) + +# /etc/udev/udev.conf should probably have a private type if only for confined administration +# /etc/nsswitch.conf @@ -42016,6 +42048,8 @@ index 0000000..a75ffd3 + +dev_read_urand(systemd_domain) + ++fs_search_all(systemd_domain) ++ +files_read_etc_files(systemd_domain) +files_read_etc_runtime_files(systemd_domain) +files_read_usr_files(systemd_domain) diff --git a/policy-rawhide-contrib.patch b/policy-rawhide-contrib.patch index a40dcab..d8016be 100644 --- a/policy-rawhide-contrib.patch +++ b/policy-rawhide-contrib.patch @@ -1,3 +1,10 @@ +diff --git a/.gitignore b/.gitignore +new file mode 100644 +index 0000000..bea5755 +--- /dev/null ++++ b/.gitignore +@@ -0,0 +1 @@ ++TAGS diff --git a/abrt.fc b/abrt.fc index 1a93dc5..f2b26f5 100644 --- a/abrt.fc @@ -3635,7 +3642,7 @@ index 7caefc3..3009a35 100644 +/var/run/dirsrv/admin-serv.* gen_context(system_u:object_r:httpd_var_run_t,s0) +/opt/dirsrv/var/run/dirsrv/dsgw/cookies(/.*)? gen_context(system_u:object_r:httpd_var_run_t,s0) diff --git a/apache.if b/apache.if -index f6eb485..f6d065e 100644 +index f6eb485..dffbc52 100644 --- a/apache.if +++ b/apache.if @@ -1,9 +1,9 @@ @@ -3755,7 +3762,7 @@ index f6eb485..f6d065e 100644 + + type $1_rw_content_t; # customizable + typeattribute $1_rw_content_t httpd_content_type; -+ typealias $1_rw_content_t alias { $1_script_rw_t }; ++ typealias $1_rw_content_t alias { $1_script_rw_t $1_content_rw_t }; + files_type($1_rw_content_t) + + type $1_ra_content_t, httpd_content_type; # customizable @@ -40175,7 +40182,7 @@ index e88fb16..f20248c 100644 + ') ') diff --git a/keystone.te b/keystone.te -index 9929647..3144a89 100644 +index 9929647..c573d0e 100644 --- a/keystone.te +++ b/keystone.te @@ -18,13 +18,20 @@ logging_log_file(keystone_log_t) @@ -40195,7 +40202,7 @@ index 9929647..3144a89 100644 # # Local policy # -+allow keystone_t self:process { getsched setsched }; ++allow keystone_t self:process { getsched setsched signal }; allow keystone_t self:fifo_file rw_fifo_file_perms; allow keystone_t self:unix_stream_socket { accept listen }; @@ -50907,7 +50914,7 @@ index ed81cac..837a43a 100644 + mta_filetrans_admin_home_content($1) +') diff --git a/mta.te b/mta.te -index ff1d68c..bc8340d 100644 +index ff1d68c..a2854c1 100644 --- a/mta.te +++ b/mta.te @@ -14,8 +14,6 @@ attribute mailserver_sender; @@ -51045,11 +51052,10 @@ index ff1d68c..bc8340d 100644 +dev_read_rand(system_mail_t) +dev_read_urand(system_mail_t) --fs_rw_anon_inodefs_files(system_mail_t) + fs_rw_anon_inodefs_files(system_mail_t) -selinux_getattr_fs(system_mail_t) -+fs_rw_anon_inodefs_files(system_mail_t) - +- term_dontaudit_use_unallocated_ttys(system_mail_t) init_use_script_ptys(system_mail_t) @@ -51059,6 +51065,7 @@ index ff1d68c..bc8340d 100644 +userdom_use_inherited_user_terminals(system_mail_t) +userdom_dontaudit_list_user_home_dirs(system_mail_t) +userdom_dontaudit_list_admin_dir(system_mail_t) ++userdom_dontaudit_list_user_tmp(system_mail_t) + +manage_dirs_pattern(system_mail_t, mail_home_rw_t, mail_home_rw_t) +manage_files_pattern(system_mail_t, mail_home_rw_t, mail_home_rw_t) @@ -73987,7 +73994,7 @@ index 7cb8b1f..9422c90 100644 + allow $1 puppet_var_run_t:dir search_dir_perms; ') diff --git a/puppet.te b/puppet.te -index 618dcfe..0903e67 100644 +index 618dcfe..4dd18a3 100644 --- a/puppet.te +++ b/puppet.te @@ -6,25 +6,32 @@ policy_module(puppet, 1.4.0) @@ -74049,7 +74056,7 @@ index 618dcfe..0903e67 100644 type puppetmaster_t; type puppetmaster_exec_t; -@@ -56,161 +62,156 @@ files_tmp_file(puppetmaster_tmp_t) +@@ -56,161 +62,158 @@ files_tmp_file(puppetmaster_tmp_t) ######################################## # @@ -74161,6 +74168,7 @@ index 618dcfe..0903e67 100644 +allow puppetagent_t self:udp_socket create_socket_perms; + +read_files_pattern(puppetagent_t, puppet_etc_t, puppet_etc_t) ++read_lnk_files_pattern(puppetagent_t, puppet_etc_t, puppet_etc_t) + +manage_dirs_pattern(puppetagent_t, puppet_var_lib_t, puppet_var_lib_t) +manage_files_pattern(puppetagent_t, puppet_var_lib_t, puppet_var_lib_t) @@ -74319,10 +74327,11 @@ index 618dcfe..0903e67 100644 -allow puppetca_t puppet_etc_t:file read_file_perms; -allow puppetca_t puppet_etc_t:lnk_file read_lnk_file_perms; +read_files_pattern(puppetca_t, puppet_etc_t, puppet_etc_t) ++read_lnk_files_pattern(puppetca_t, puppet_etc_t, puppet_etc_t) allow puppetca_t puppet_var_lib_t:dir list_dir_perms; manage_files_pattern(puppetca_t, puppet_var_lib_t, puppet_var_lib_t) -@@ -221,6 +222,7 @@ allow puppetca_t puppet_log_t:dir search_dir_perms; +@@ -221,6 +224,7 @@ allow puppetca_t puppet_log_t:dir search_dir_perms; allow puppetca_t puppet_var_run_t:dir search_dir_perms; kernel_read_system_state(puppetca_t) @@ -74330,7 +74339,7 @@ index 618dcfe..0903e67 100644 kernel_read_kernel_sysctls(puppetca_t) corecmd_exec_bin(puppetca_t) -@@ -229,15 +231,12 @@ corecmd_exec_shell(puppetca_t) +@@ -229,15 +233,12 @@ corecmd_exec_shell(puppetca_t) dev_read_urand(puppetca_t) dev_search_sysfs(puppetca_t) @@ -74346,7 +74355,7 @@ index 618dcfe..0903e67 100644 miscfiles_read_generic_certs(puppetca_t) seutil_read_file_contexts(puppetca_t) -@@ -246,38 +245,47 @@ optional_policy(` +@@ -246,38 +247,48 @@ optional_policy(` hostname_exec(puppetca_t) ') @@ -74376,6 +74385,7 @@ index 618dcfe..0903e67 100644 -allow puppetmaster_t puppet_etc_t:lnk_file read_lnk_file_perms; +list_dirs_pattern(puppetmaster_t, puppet_etc_t, puppet_etc_t) +read_files_pattern(puppetmaster_t, puppet_etc_t, puppet_etc_t) ++read_lnk_files_pattern(puppetmaster_t, puppet_etc_t, puppet_etc_t) -allow puppetmaster_t puppet_log_t:dir setattr_dir_perms; -append_files_pattern(puppetmaster_t, puppet_log_t, puppet_log_t) @@ -74410,7 +74420,7 @@ index 618dcfe..0903e67 100644 kernel_dontaudit_search_kernel_sysctl(puppetmaster_t) kernel_read_network_state(puppetmaster_t) -@@ -289,23 +297,24 @@ corecmd_exec_bin(puppetmaster_t) +@@ -289,23 +300,24 @@ corecmd_exec_bin(puppetmaster_t) corecmd_exec_shell(puppetmaster_t) corenet_all_recvfrom_netlabel(puppetmaster_t) @@ -74441,7 +74451,7 @@ index 618dcfe..0903e67 100644 selinux_validate_context(puppetmaster_t) -@@ -314,26 +323,31 @@ auth_use_nsswitch(puppetmaster_t) +@@ -314,26 +326,31 @@ auth_use_nsswitch(puppetmaster_t) logging_send_syslog_msg(puppetmaster_t) miscfiles_read_generic_certs(puppetmaster_t) @@ -74478,7 +74488,7 @@ index 618dcfe..0903e67 100644 ') optional_policy(` -@@ -342,3 +356,9 @@ optional_policy(` +@@ -342,3 +359,9 @@ optional_policy(` rpm_exec(puppetmaster_t) rpm_read_db(puppetmaster_t) ') @@ -78035,7 +78045,7 @@ index 4460582..60cf556 100644 + ') diff --git a/radius.te b/radius.te -index 403a4fe..f6923e3 100644 +index 403a4fe..870d7b3 100644 --- a/radius.te +++ b/radius.te @@ -27,6 +27,9 @@ files_type(radiusd_var_lib_t) @@ -78072,7 +78082,7 @@ index 403a4fe..f6923e3 100644 corenet_all_recvfrom_netlabel(radiusd_t) corenet_tcp_sendrecv_generic_if(radiusd_t) corenet_udp_sendrecv_generic_if(radiusd_t) -@@ -74,6 +75,9 @@ corenet_tcp_sendrecv_all_ports(radiusd_t) +@@ -74,10 +75,14 @@ corenet_tcp_sendrecv_all_ports(radiusd_t) corenet_udp_sendrecv_all_ports(radiusd_t) corenet_udp_bind_generic_node(radiusd_t) @@ -78082,7 +78092,12 @@ index 403a4fe..f6923e3 100644 corenet_sendrecv_radacct_server_packets(radiusd_t) corenet_udp_bind_radacct_port(radiusd_t) -@@ -97,7 +101,6 @@ domain_use_interactive_fds(radiusd_t) + corenet_sendrecv_radius_server_packets(radiusd_t) ++corenet_tcp_bind_radius_port(radiusd_t) + corenet_udp_bind_radius_port(radiusd_t) + + corenet_sendrecv_snmp_client_packets(radiusd_t) +@@ -97,7 +102,6 @@ domain_use_interactive_fds(radiusd_t) fs_getattr_all_fs(radiusd_t) fs_search_auto_mountpoints(radiusd_t) @@ -78090,7 +78105,7 @@ index 403a4fe..f6923e3 100644 files_read_etc_runtime_files(radiusd_t) files_dontaudit_list_tmp(radiusd_t) -@@ -109,7 +112,6 @@ libs_exec_lib_files(radiusd_t) +@@ -109,7 +113,6 @@ libs_exec_lib_files(radiusd_t) logging_send_syslog_msg(radiusd_t) @@ -78098,7 +78113,7 @@ index 403a4fe..f6923e3 100644 miscfiles_read_generic_certs(radiusd_t) sysnet_use_ldap(radiusd_t) -@@ -122,6 +124,11 @@ optional_policy(` +@@ -122,6 +125,11 @@ optional_policy(` ') optional_policy(` @@ -78110,7 +78125,7 @@ index 403a4fe..f6923e3 100644 logrotate_exec(radiusd_t) ') -@@ -140,5 +147,10 @@ optional_policy(` +@@ -140,5 +148,10 @@ optional_policy(` ') optional_policy(` @@ -82440,10 +82455,10 @@ index 0000000..bf11e25 +') diff --git a/rhev.te b/rhev.te new file mode 100644 -index 0000000..eeee78a +index 0000000..8b7aa12 --- /dev/null +++ b/rhev.te -@@ -0,0 +1,124 @@ +@@ -0,0 +1,128 @@ +policy_module(rhev,1.0) + +######################################## @@ -82539,6 +82554,10 @@ index 0000000..eeee78a +') + +optional_policy(` ++ udev_read_db(rhev_agentd_t) ++') ++ ++optional_policy(` + xserver_stream_connect(rhev_agentd_t) +') + @@ -83171,7 +83190,7 @@ index 6dbc905..4b17c93 100644 - admin_pattern($1, rhsmcertd_lock_t) ') diff --git a/rhsmcertd.te b/rhsmcertd.te -index d32e1a2..a76de40 100644 +index d32e1a2..581e801 100644 --- a/rhsmcertd.te +++ b/rhsmcertd.te @@ -18,6 +18,9 @@ logging_log_file(rhsmcertd_log_t) @@ -83210,7 +83229,7 @@ index d32e1a2..a76de40 100644 manage_dirs_pattern(rhsmcertd_t, rhsmcertd_var_lib_t, rhsmcertd_var_lib_t) manage_files_pattern(rhsmcertd_t, rhsmcertd_var_lib_t, rhsmcertd_var_lib_t) -@@ -50,25 +56,65 @@ manage_files_pattern(rhsmcertd_t, rhsmcertd_var_run_t, rhsmcertd_var_run_t) +@@ -50,25 +56,69 @@ manage_files_pattern(rhsmcertd_t, rhsmcertd_var_run_t, rhsmcertd_var_run_t) files_pid_filetrans(rhsmcertd_t, rhsmcertd_var_run_t, { file dir }) kernel_read_network_state(rhsmcertd_t) @@ -83280,6 +83299,10 @@ index d32e1a2..a76de40 100644 +optional_policy(` + rpm_manage_db(rhsmcertd_t) + rpm_signull(rhsmcertd_t) ++') ++ ++optional_policy(` ++ virt_signull(rhsmcertd_t) ') diff --git a/ricci.if b/ricci.if index 2ab3ed1..23d579c 100644 @@ -91477,7 +91500,7 @@ index 98c9e0a..562666e 100644 files_search_pids($1) admin_pattern($1, sblim_var_run_t) diff --git a/sblim.te b/sblim.te -index 299756b..1edabdf 100644 +index 299756b..135baca 100644 --- a/sblim.te +++ b/sblim.te @@ -7,13 +7,11 @@ policy_module(sblim, 1.1.0) @@ -91583,7 +91606,7 @@ index 299756b..1edabdf 100644 ') optional_policy(` -@@ -117,6 +133,43 @@ optional_policy(` +@@ -117,6 +133,54 @@ optional_policy(` # Reposd local policy # @@ -91609,12 +91632,15 @@ index 299756b..1edabdf 100644 +fs_tmpfs_filetrans(sblim_sfcbd_t, sblim_sfcb_tmpfs_t, { dir file }) + +auth_use_nsswitch(sblim_sfcbd_t) ++auth_domtrans_chkpwd(sblim_sfcbd_t) + +corenet_tcp_bind_pegasus_http_port(sblim_sfcbd_t) +corenet_tcp_connect_pegasus_http_port(sblim_sfcbd_t) +corenet_tcp_bind_pegasus_https_port(sblim_sfcbd_t) +corenet_tcp_connect_pegasus_https_port(sblim_sfcbd_t) + ++corenet_tcp_connect_http_port(sblim_sfcbd_t) ++ +corecmd_exec_shell(sblim_sfcbd_t) +corecmd_exec_bin(sblim_sfcbd_t) + @@ -91624,10 +91650,18 @@ index 299756b..1edabdf 100644 +domain_read_all_domains_state(sblim_sfcbd_t) +domain_use_interactive_fds(sblim_sfcbd_t) + ++logging_send_audit_msgs(sblim_sfcbd_t) ++ +optional_policy(` + rpm_exec(sblim_sfcbd_t) + rpm_dontaudit_manage_db(sblim_sfcbd_t) +') ++ ++optional_policy(` ++ virt_manage_config(sblim_sfcbd_t) ++ virt_stream_connect(sblim_sfcbd_t) ++ virt_search_images(sblim_sfcbd_t) ++') diff --git a/screen.fc b/screen.fc index e7c2cf7..435aaa6 100644 --- a/screen.fc @@ -94582,10 +94616,10 @@ index cbfe369..6594af3 100644 files_search_var_lib($1) diff --git a/snapper.fc b/snapper.fc new file mode 100644 -index 0000000..e43fdd8 +index 0000000..4f4bdb3 --- /dev/null +++ b/snapper.fc -@@ -0,0 +1,8 @@ +@@ -0,0 +1,14 @@ +/usr/sbin/snapperd -- gen_context(system_u:object_r:snapperd_exec_t,s0) + +/etc/snapper(/.*)? gen_context(system_u:object_r:snapperd_conf_t,s0) @@ -94593,13 +94627,19 @@ index 0000000..e43fdd8 + +/var/log/snapper\.log.* -- gen_context(system_u:object_r:snapperd_log_t,s0) + -+/mnt/(.*/)?.snapshots(/.*)? gen_context(system_u:object_r:snapperd_data_t,s0) ++/mnt/(.*/)?\.snapshots(/.*)? gen_context(system_u:object_r:snapperd_data_t,s0) ++/\.snapshots(/.*)? gen_context(system_u:object_r:snapperd_data_t,s0) ++/usr/\.snapshots(/.*)? gen_context(system_u:object_r:snapperd_data_t,s0) ++/var/\.snapshots(/.*)? gen_context(system_u:object_r:snapperd_data_t,s0) ++/etc/\.snapshots(/.*)? gen_context(system_u:object_r:snapperd_data_t,s0) ++/home/\.snapshots(/.*)? gen_context(system_u:object_r:snapperd_data_t,s0) ++/home/(.*/)?\.snapshots(/.*)? gen_context(system_u:object_r:snapperd_data_t,s0) diff --git a/snapper.if b/snapper.if new file mode 100644 -index 0000000..94105ee +index 0000000..5a3cb30 --- /dev/null +++ b/snapper.if -@@ -0,0 +1,42 @@ +@@ -0,0 +1,62 @@ + +## policy for snapperd + @@ -94642,12 +94682,32 @@ index 0000000..94105ee + allow $1 snapperd_t:dbus send_msg; + allow snapperd_t $1:dbus send_msg; +') ++ ++####################################### ++## ++## Allow domain to create .smapshot ++## ++## ++## ++## Domain allowed access. ++## ++## ++# ++interface(`snapper_filetrans_named_content',` ++ ++ gen_require(` ++ type snapperd_data_t; ++ ') ++ ++ files_mountpoint_filetrans($1, snapperd_data_t, dir, ".snapshots") ++') ++ diff --git a/snapper.te b/snapper.te new file mode 100644 -index 0000000..1da64f9 +index 0000000..90903a9 --- /dev/null +++ b/snapper.te -@@ -0,0 +1,74 @@ +@@ -0,0 +1,75 @@ +policy_module(snapper, 1.0.0) + +######################################## @@ -94686,6 +94746,7 @@ index 0000000..1da64f9 +manage_files_pattern(snapperd_t, snapperd_data_t, snapperd_data_t) +manage_dirs_pattern(snapperd_t, snapperd_data_t, snapperd_data_t) +manage_lnk_files_pattern(snapperd_t, snapperd_data_t, snapperd_data_t) ++snapper_filetrans_named_content(snapperd_t) + +domain_read_all_domains_state(snapperd_t) + @@ -95868,7 +95929,7 @@ index 1499b0b..6950cab 100644 - spamassassin_role($2, $1) ') diff --git a/spamassassin.te b/spamassassin.te -index cc58e35..025b7d5 100644 +index cc58e35..b1878b4 100644 --- a/spamassassin.te +++ b/spamassassin.te @@ -7,50 +7,23 @@ policy_module(spamassassin, 2.6.1) @@ -96322,7 +96383,7 @@ index cc58e35..025b7d5 100644 sendmail_stub(spamc_t) ') -@@ -267,36 +375,38 @@ optional_policy(` +@@ -267,36 +375,40 @@ optional_policy(` ######################################## # @@ -96367,6 +96428,8 @@ index cc58e35..025b7d5 100644 -manage_sock_files_pattern(spamd_t, spamassassin_home_t, spamassassin_home_t) -userdom_user_home_dir_filetrans(spamd_t, spamassassin_home_t, dir, ".spamassassin") +# needed by razor ++list_dirs_pattern(spamd_t, spamd_etc_t, spamd_etc_t) ++read_lnk_files_pattern(spamd_t, spamd_etc_t, spamd_etc_t) +rw_files_pattern(spamd_t, spamd_etc_t, spamd_etc_t) +can_exec(spamd_t, spamd_compiled_t) @@ -96378,7 +96441,7 @@ index cc58e35..025b7d5 100644 logging_log_filetrans(spamd_t, spamd_log_t, file) manage_dirs_pattern(spamd_t, spamd_spool_t, spamd_spool_t) -@@ -308,7 +418,8 @@ manage_dirs_pattern(spamd_t, spamd_tmp_t, spamd_tmp_t) +@@ -308,7 +420,8 @@ manage_dirs_pattern(spamd_t, spamd_tmp_t, spamd_tmp_t) manage_files_pattern(spamd_t, spamd_tmp_t, spamd_tmp_t) files_tmp_filetrans(spamd_t, spamd_tmp_t, { file dir }) @@ -96388,7 +96451,7 @@ index cc58e35..025b7d5 100644 manage_files_pattern(spamd_t, spamd_var_lib_t, spamd_var_lib_t) manage_lnk_files_pattern(spamd_t, spamd_var_lib_t, spamd_var_lib_t) -@@ -317,12 +428,13 @@ manage_files_pattern(spamd_t, spamd_var_run_t, spamd_var_run_t) +@@ -317,12 +430,13 @@ manage_files_pattern(spamd_t, spamd_var_run_t, spamd_var_run_t) manage_sock_files_pattern(spamd_t, spamd_var_run_t, spamd_var_run_t) files_pid_filetrans(spamd_t, spamd_var_run_t, { file dir }) @@ -96404,7 +96467,7 @@ index cc58e35..025b7d5 100644 corenet_all_recvfrom_netlabel(spamd_t) corenet_tcp_sendrecv_generic_if(spamd_t) corenet_udp_sendrecv_generic_if(spamd_t) -@@ -331,78 +443,59 @@ corenet_udp_sendrecv_generic_node(spamd_t) +@@ -331,78 +445,59 @@ corenet_udp_sendrecv_generic_node(spamd_t) corenet_tcp_sendrecv_all_ports(spamd_t) corenet_udp_sendrecv_all_ports(spamd_t) corenet_tcp_bind_generic_node(spamd_t) @@ -96508,7 +96571,7 @@ index cc58e35..025b7d5 100644 ') optional_policy(` -@@ -421,21 +514,13 @@ optional_policy(` +@@ -421,21 +516,13 @@ optional_policy(` ') optional_policy(` @@ -96532,7 +96595,7 @@ index cc58e35..025b7d5 100644 ') optional_policy(` -@@ -443,8 +528,8 @@ optional_policy(` +@@ -443,8 +530,8 @@ optional_policy(` ') optional_policy(` @@ -96542,7 +96605,7 @@ index cc58e35..025b7d5 100644 ') optional_policy(` -@@ -455,7 +540,17 @@ optional_policy(` +@@ -455,7 +542,17 @@ optional_policy(` optional_policy(` razor_domtrans(spamd_t) razor_read_lib_files(spamd_t) @@ -96561,7 +96624,7 @@ index cc58e35..025b7d5 100644 ') optional_policy(` -@@ -463,9 +558,9 @@ optional_policy(` +@@ -463,9 +560,9 @@ optional_policy(` ') optional_policy(` @@ -96572,7 +96635,7 @@ index cc58e35..025b7d5 100644 ') optional_policy(` -@@ -474,32 +569,32 @@ optional_policy(` +@@ -474,32 +571,32 @@ optional_policy(` ######################################## # @@ -96615,7 +96678,7 @@ index cc58e35..025b7d5 100644 corecmd_exec_bin(spamd_update_t) corecmd_exec_shell(spamd_update_t) -@@ -508,25 +603,21 @@ dev_read_urand(spamd_update_t) +@@ -508,25 +605,21 @@ dev_read_urand(spamd_update_t) domain_use_interactive_fds(spamd_update_t) @@ -102452,7 +102515,7 @@ index 279e511..4f79ad6 100644 + modutils_read_module_deps(usbmodules_t) +') diff --git a/usbmuxd.fc b/usbmuxd.fc -index 220f6ad..39b6acf 100644 +index 220f6ad..ccbb5da 100644 --- a/usbmuxd.fc +++ b/usbmuxd.fc @@ -1,3 +1,6 @@ @@ -102462,7 +102525,7 @@ index 220f6ad..39b6acf 100644 +/var/run/usbmuxd.* gen_context(system_u:object_r:usbmuxd_var_run_t,s0) +/usr/lib/systemd/system/usbmuxd.* -- gen_context(system_u:object_r:usbmuxd_unit_file_t,s0) + -+/var/lib/lockdown -- gen_context(system_u:object_r:usbmuxd_var_lib_t,s0) ++/var/lib/lockdown(/.*)? gen_context(system_u:object_r:usbmuxd_var_lib_t,s0) diff --git a/usbmuxd.if b/usbmuxd.if index 1ec5e99..88e287d 100644 --- a/usbmuxd.if @@ -103688,10 +103751,10 @@ index 3d11c6a..b19a117 100644 optional_policy(` diff --git a/virt.fc b/virt.fc -index a4f20bc..9ccc90c 100644 +index a4f20bc..88a2dc6 100644 --- a/virt.fc +++ b/virt.fc -@@ -1,51 +1,97 @@ +@@ -1,51 +1,98 @@ -HOME_DIR/\.libvirt(/.*)? gen_context(system_u:object_r:virt_home_t,s0) -HOME_DIR/\.libvirt/qemu(/.*)? gen_context(system_u:object_r:svirt_home_t,s0) -HOME_DIR/\.virtinst(/.*)? gen_context(system_u:object_r:virt_home_t,s0) @@ -103742,6 +103805,7 @@ index a4f20bc..9ccc90c 100644 /usr/sbin/libvirt-qmf -- gen_context(system_u:object_r:virt_qmf_exec_t,s0) /usr/sbin/libvirtd -- gen_context(system_u:object_r:virtd_exec_t,s0) +/usr/sbin/virtlockd -- gen_context(system_u:object_r:virtd_exec_t,s0) ++/usr/bin/virt-who -- gen_context(system_u:object_r:virtd_exec_t,s0) +/usr/bin/virsh -- gen_context(system_u:object_r:virsh_exec_t,s0) +/usr/sbin/condor_vm-gahp -- gen_context(system_u:object_r:virtd_exec_t,s0) +/usr/sbin/xl -- gen_context(system_u:object_r:virsh_exec_t,s0) @@ -103828,7 +103892,7 @@ index a4f20bc..9ccc90c 100644 +/var/log/qemu-ga\.log.* -- gen_context(system_u:object_r:virt_qemu_ga_log_t,s0) +/var/log/qemu-ga(/.*)? gen_context(system_u:object_r:virt_qemu_ga_log_t,s0) diff --git a/virt.if b/virt.if -index facdee8..c7a2d97 100644 +index facdee8..e52b362 100644 --- a/virt.if +++ b/virt.if @@ -1,120 +1,51 @@ @@ -104877,7 +104941,7 @@ index facdee8..c7a2d97 100644 ## ## ## -@@ -860,74 +695,266 @@ interface(`virt_read_lib_files',` +@@ -860,94 +695,266 @@ interface(`virt_read_lib_files',` ## ## # @@ -104940,12 +105004,10 @@ index facdee8..c7a2d97 100644 + manage_dirs_pattern($1, virt_image_t, virt_image_t) + manage_files_pattern($1, virt_image_t, virt_image_t) + read_lnk_files_pattern($1, virt_image_t, virt_image_t) - ') - - ######################################## - ## --## Create objects in virt pid --## directories with a private type. ++') ++ ++######################################## ++## +## Execute virt server in the virt domain. +## +## @@ -104965,10 +105027,12 @@ index facdee8..c7a2d97 100644 + allow $1 virtd_unit_file_t:service manage_service_perms; + + ps_process_pattern($1, virtd_t) -+') -+ -+######################################## -+## + ') + + ######################################## + ## +-## Create objects in virt pid +-## directories with a private type. +## Ptrace the svirt domain +## +## @@ -104988,13 +105052,12 @@ index facdee8..c7a2d97 100644 +####################################### +## +## Execute Sandbox Files - ## - ## - ## - ## Domain allowed access. - ## - ## --## ++## ++## ++## ++## Domain allowed access. ++## ++## +# +interface(`virt_exec_sandbox_files',` + gen_require(` @@ -105007,14 +105070,13 @@ index facdee8..c7a2d97 100644 +####################################### +## +## Manage Sandbox Files -+## -+## + ## + ## ## --## The type of the object to be created. -+## Domain allowed access. + ## Domain allowed access. ## ## --## +-## +# +interface(`virt_manage_sandbox_files',` + gen_require(` @@ -105035,11 +105097,11 @@ index facdee8..c7a2d97 100644 +## +## ## --## The object class of the object being created. +-## The type of the object to be created. +## Domain allowed access. ## ## --## +-## +# +interface(`virt_relabel_sandbox_filesystem',` + gen_require(` @@ -105055,16 +105117,14 @@ index facdee8..c7a2d97 100644 +## +## ## --## The name of the object being created. +-## The object class of the object being created. +## Domain allowed access. ## ## --## - # --interface(`virt_pid_filetrans',` +-## ++# +interface(`virt_mounton_sandbox_file',` - gen_require(` -- type virt_var_run_t; ++ gen_require(` + type svirt_sandbox_file_t; + ') + @@ -105076,13 +105136,17 @@ index facdee8..c7a2d97 100644 +## Connect to virt over a unix domain stream socket. +## +## -+## + ## +-## The name of the object being created. +## Domain allowed access. -+## -+## -+# + ## + ## +-## + # +-interface(`virt_pid_filetrans',` +interface(`virt_stream_connect_sandbox',` -+ gen_require(` + gen_require(` +- type virt_var_run_t; + attribute svirt_sandbox_domain; + type svirt_sandbox_file_t; ') @@ -105138,89 +105202,72 @@ index facdee8..c7a2d97 100644 + optional_policy(` + ptchown_run(virt_domain, $2) + ') -+') -+ -+######################################## -+## -+## Do not audit attempts to write virt daemon unnamed pipes. -+## -+## -+## -+## Domain to not audit. -+## -+## -+# -+interface(`virt_dontaudit_write_pipes',` -+ gen_require(` -+ type virtd_t; -+ ') -+ -+ dontaudit $1 virtd_t:fd use; -+ dontaudit $1 virtd_t:fifo_file write_fifo_file_perms; ') ######################################## ## -## Append virt log files. -+## Send a sigkill to virtual machines ++## Do not audit attempts to write virt daemon unnamed pipes. ## ## ## -@@ -935,19 +962,17 @@ interface(`virt_read_log',` +-## Domain allowed access. ++## Domain to not audit. ## ## # -interface(`virt_append_log',` -+interface(`virt_kill_svirt',` ++interface(`virt_dontaudit_write_pipes',` gen_require(` - type virt_log_t; -+ attribute virt_domain; ++ type virtd_t; ') - logging_search_logs($1) - append_files_pattern($1, virt_log_t, virt_log_t) -+ allow $1 virt_domain:process sigkill; ++ dontaudit $1 virtd_t:fd use; ++ dontaudit $1 virtd_t:fifo_file write_fifo_file_perms; ') ######################################## ## -## Create, read, write, and delete -## virt log files. -+## Send a sigkill to virtd daemon. ++## Send a sigkill to virtual machines ## ## ## -@@ -955,20 +980,17 @@ interface(`virt_append_log',` +@@ -955,20 +962,17 @@ interface(`virt_append_log',` ## ## # -interface(`virt_manage_log',` -+interface(`virt_kill',` ++interface(`virt_kill_svirt',` gen_require(` - type virt_log_t; -+ type virtd_t; ++ attribute virt_domain; ') - logging_search_logs($1) - manage_dirs_pattern($1, virt_log_t, virt_log_t) - manage_files_pattern($1, virt_log_t, virt_log_t) - manage_lnk_files_pattern($1, virt_log_t, virt_log_t) -+ allow $1 virtd_t:process sigkill; ++ allow $1 virt_domain:process sigkill; ') ######################################## ## -## Search virt image directories. -+## Send a signal to virtd daemon. ++## Send a sigkill to virtd daemon. ## ## ## -@@ -976,18 +998,17 @@ interface(`virt_manage_log',` +@@ -976,18 +980,17 @@ interface(`virt_manage_log',` ## ## # -interface(`virt_search_images',` -+interface(`virt_signal',` ++interface(`virt_kill',` gen_require(` - attribute virt_image_type; + type virtd_t; @@ -105228,26 +105275,26 @@ index facdee8..c7a2d97 100644 - virt_search_lib($1) - allow $1 virt_image_type:dir search_dir_perms; -+ allow $1 virtd_t:process signal; ++ allow $1 virtd_t:process sigkill; ') ######################################## ## -## Read virt image files. -+## Send a signal to virtual machines ++## Send a signal to virtd daemon. ## ## ## -@@ -995,57 +1016,75 @@ interface(`virt_search_images',` +@@ -995,36 +998,35 @@ interface(`virt_search_images',` ## ## # -interface(`virt_read_images',` -+interface(`virt_signal_svirt',` ++interface(`virt_signal',` gen_require(` - type virt_var_lib_t; - attribute virt_image_type; -+ attribute virt_domain; ++ type virtd_t; ') - virt_search_lib($1) @@ -105256,7 +105303,7 @@ index facdee8..c7a2d97 100644 - read_files_pattern($1, virt_image_type, virt_image_type) - read_lnk_files_pattern($1, virt_image_type, virt_image_type) - read_blk_files_pattern($1, virt_image_type, virt_image_type) -+ allow $1 virt_domain:process signal; ++ allow $1 virtd_t:process signal; +') - tunable_policy(`virt_use_nfs',` @@ -105265,7 +105312,7 @@ index facdee8..c7a2d97 100644 - fs_read_nfs_symlinks($1) +######################################## +## -+## Manage virt home files. ++## Send null signal to virtd daemon. +## +## +## @@ -105273,87 +105320,131 @@ index facdee8..c7a2d97 100644 +## +## +# -+interface(`virt_manage_home_files',` ++interface(`virt_signull',` + gen_require(` -+ type virt_home_t; ++ type virtd_t; ') - tunable_policy(`virt_use_samba',` - fs_list_cifs($1) - fs_read_cifs_files($1) - fs_read_cifs_symlinks($1) -+ userdom_search_user_home_dirs($1) -+ manage_files_pattern($1, virt_home_t, virt_home_t) -+') -+ -+######################################## -+## -+## allow domain to read -+## virt tmpfs files -+## -+## -+## -+## Domain allowed access -+## -+## -+# -+interface(`virt_read_tmpfs_files',` -+ gen_require(` -+ attribute virt_tmpfs_type; - ') -+ -+ allow $1 virt_tmpfs_type:file read_file_perms; +- ') ++ allow $1 virtd_t:process signull; ') ######################################## ## -## Read and write all virt image -## character files. -+## allow domain to manage -+## virt tmpfs files ++## Send a signal to virtual machines ## ## ## --## Domain allowed access. -+## Domain allowed access +@@ -1032,20 +1034,17 @@ interface(`virt_read_images',` ## ## # -interface(`virt_rw_all_image_chr_files',` -+interface(`virt_manage_tmpfs_files',` ++interface(`virt_signal_svirt',` gen_require(` - attribute virt_image_type; -+ attribute virt_tmpfs_type; ++ attribute virt_domain; ') - virt_search_lib($1) - allow $1 virt_image_type:dir list_dir_perms; - rw_chr_files_pattern($1, virt_image_type, virt_image_type) -+ allow $1 virt_tmpfs_type:file manage_file_perms; ++ allow $1 virt_domain:process signal; ') ######################################## ## -## Create, read, write, and delete -## svirt cache files. -+## Create .virt directory in the user home directory -+## with an correct label. ++## Manage virt home files. ## ## ## -@@ -1053,15 +1092,28 @@ interface(`virt_rw_all_image_chr_files',` +@@ -1053,15 +1052,57 @@ interface(`virt_rw_all_image_chr_files',` ## ## # -interface(`virt_manage_svirt_cache',` - refpolicywarn(`$0($*) has been deprecated, use virt_manage_virt_cache() instead.') - virt_manage_virt_cache($1) -+interface(`virt_filetrans_home_content',` ++interface(`virt_manage_home_files',` + gen_require(` + type virt_home_t; -+ type svirt_home_t; + ') + ++ userdom_search_user_home_dirs($1) ++ manage_files_pattern($1, virt_home_t, virt_home_t) + ') + + ######################################## + ## +-## Create, read, write, and delete +-## virt cache content. ++## allow domain to read ++## virt tmpfs files ++## ++## ++## ++## Domain allowed access ++## ++## ++# ++interface(`virt_read_tmpfs_files',` ++ gen_require(` ++ attribute virt_tmpfs_type; ++ ') ++ ++ allow $1 virt_tmpfs_type:file read_file_perms; ++') ++ ++######################################## ++## ++## allow domain to manage ++## virt tmpfs files ++## ++## ++## ++## Domain allowed access ++## ++## ++# ++interface(`virt_manage_tmpfs_files',` ++ gen_require(` ++ attribute virt_tmpfs_type; ++ ') ++ ++ allow $1 virt_tmpfs_type:file manage_file_perms; ++') ++ ++######################################## ++## ++## Create .virt directory in the user home directory ++## with an correct label. + ## + ## + ## +@@ -1069,21 +1110,28 @@ interface(`virt_manage_svirt_cache',` + ## + ## + # +-interface(`virt_manage_virt_cache',` ++interface(`virt_filetrans_home_content',` + gen_require(` +- type virt_cache_t; ++ type virt_home_t; ++ type svirt_home_t; + ') + +- files_search_var($1) +- manage_dirs_pattern($1, virt_cache_t, virt_cache_t) +- manage_files_pattern($1, virt_cache_t, virt_cache_t) +- manage_lnk_files_pattern($1, virt_cache_t, virt_cache_t) + userdom_user_home_dir_filetrans($1, virt_home_t, dir, ".libvirt") + userdom_user_home_dir_filetrans($1, virt_home_t, dir, ".virtinst") + filetrans_pattern($1, virt_home_t, svirt_home_t, dir, "qemu") @@ -105370,33 +105461,37 @@ index facdee8..c7a2d97 100644 ######################################## ## -## Create, read, write, and delete --## virt cache content. +-## virt image files. +## Dontaudit attempts to Read virt_image_type devices. ## ## ## -@@ -1069,21 +1121,133 @@ interface(`virt_manage_svirt_cache',` +@@ -1091,36 +1139,188 @@ interface(`virt_manage_virt_cache',` ## ## # --interface(`virt_manage_virt_cache',` +-interface(`virt_manage_images',` +interface(`virt_dontaudit_read_chr_dev',` gen_require(` -- type virt_cache_t; -+ attribute virt_image_type; +- type virt_var_lib_t; + attribute virt_image_type; ') -- files_search_var($1) -- manage_dirs_pattern($1, virt_cache_t, virt_cache_t) -- manage_files_pattern($1, virt_cache_t, virt_cache_t) -- manage_lnk_files_pattern($1, virt_cache_t, virt_cache_t) +- virt_search_lib($1) +- allow $1 virt_image_type:dir list_dir_perms; +- manage_dirs_pattern($1, virt_image_type, virt_image_type) +- manage_files_pattern($1, virt_image_type, virt_image_type) +- read_lnk_files_pattern($1, virt_image_type, virt_image_type) +- rw_blk_files_pattern($1, virt_image_type, virt_image_type) + dontaudit $1 virt_image_type:chr_file read_chr_file_perms; - ') ++') - ######################################## - ## --## Create, read, write, and delete --## virt image files. +- tunable_policy(`virt_use_nfs',` +- fs_manage_nfs_dirs($1) +- fs_manage_nfs_files($1) +- fs_read_nfs_symlinks($1) ++######################################## ++## +## Creates types and rules for a basic +## virt_lxc process domain. +## @@ -105409,8 +105504,12 @@ index facdee8..c7a2d97 100644 +template(`virt_sandbox_domain_template',` + gen_require(` + attribute svirt_sandbox_domain; -+ ') -+ + ') + +- tunable_policy(`virt_use_samba',` +- fs_manage_cifs_files($1) +- fs_manage_cifs_files($1) +- fs_read_cifs_symlinks($1) + type $1_t, svirt_sandbox_domain; + domain_type($1_t) + domain_user_exemption_target($1_t) @@ -105514,34 +105613,21 @@ index facdee8..c7a2d97 100644 +######################################## +## +## Read and write to svirt_image devices. - ## - ## - ## -@@ -1091,36 +1255,54 @@ interface(`virt_manage_virt_cache',` - ## - ## - # --interface(`virt_manage_images',` ++## ++## ++## ++## Domain allowed access. ++## ++## ++# +interface(`virt_rw_svirt_dev',` - gen_require(` -- type virt_var_lib_t; -- attribute virt_image_type; ++ gen_require(` + type svirt_image_t; - ') - -- virt_search_lib($1) -- allow $1 virt_image_type:dir list_dir_perms; -- manage_dirs_pattern($1, virt_image_type, virt_image_type) -- manage_files_pattern($1, virt_image_type, virt_image_type) -- read_lnk_files_pattern($1, virt_image_type, virt_image_type) -- rw_blk_files_pattern($1, virt_image_type, virt_image_type) ++ ') ++ + allow $1 svirt_image_t:chr_file rw_file_perms; +') - -- tunable_policy(`virt_use_nfs',` -- fs_manage_nfs_dirs($1) -- fs_manage_nfs_files($1) -- fs_read_nfs_symlinks($1) ++ +######################################## +## +## Read and write to svirt_image devices. @@ -105555,12 +105641,8 @@ index facdee8..c7a2d97 100644 +interface(`virt_rlimitinh',` + gen_require(` + type virtd_t; - ') - -- tunable_policy(`virt_use_samba',` -- fs_manage_cifs_files($1) -- fs_manage_cifs_files($1) -- fs_read_cifs_symlinks($1) ++ ') ++ + allow $1 virtd_t:process { rlimitinh }; +') + @@ -105591,7 +105673,7 @@ index facdee8..c7a2d97 100644 ## ## ## -@@ -1136,50 +1318,53 @@ interface(`virt_manage_images',` +@@ -1136,50 +1336,53 @@ interface(`virt_manage_images',` # interface(`virt_admin',` gen_require(` @@ -105633,27 +105715,27 @@ index facdee8..c7a2d97 100644 - - files_search_tmp($1) - admin_pattern($1, { virt_tmp_type virt_tmp_t }) -- ++ allow $1 virt_domain:process signal_perms; + - files_search_etc($1) - admin_pattern($1, { virt_etc_t virt_etc_rw_t virtd_keytab_t }) -- ++ admin_pattern($1, virt_file_type) ++ admin_pattern($1, svirt_file_type) + - logging_search_logs($1) - admin_pattern($1, virt_log_t) -- ++ virt_systemctl($1) ++ allow $1 virtd_unit_file_t:service all_service_perms; + - files_search_pids($1) - admin_pattern($1, { virt_var_run_t virtd_lxc_var_run_t svirt_var_run_t }) -+ allow $1 virt_domain:process signal_perms; - +- - files_search_var($1) - admin_pattern($1, svirt_cache_t) -+ admin_pattern($1, virt_file_type) -+ admin_pattern($1, svirt_file_type) - +- - files_search_var_lib($1) - admin_pattern($1, { virt_image_type virt_var_lib_t svirt_lxc_file_t }) -+ virt_systemctl($1) -+ allow $1 virtd_unit_file_t:service all_service_perms; - +- - files_search_locks($1) - admin_pattern($1, virt_lock_t) + virt_stream_connect_sandbox($1) diff --git a/selinux-policy.spec b/selinux-policy.spec index 8b69712..9abfc76 100644 --- a/selinux-policy.spec +++ b/selinux-policy.spec @@ -19,7 +19,7 @@ Summary: SELinux policy configuration Name: selinux-policy Version: 3.13.1 -Release: 96%{?dist} +Release: 97%{?dist} License: GPLv2+ Group: System Environment/Base Source: serefpolicy-%{version}.tgz @@ -604,6 +604,27 @@ SELinux Reference policy mls base module. %endif %changelog +* Fri Nov 27 2014 Lukas Vrabec 3.13.1-97 +- Allow reading of symlinks in /etc/puppet +- Added TAGS to gitignore +- I guess there can be content under /var/lib/lockdown #1167502 +- Allow rhev-agentd to read /dev/.udev/db to make deploying hosted engine via iSCSI working. +- Allow keystone to send a generic signal to own process. +- Allow radius to bind tcp/1812 radius port. +- Dontaudit list user_tmp files for system_mail_t +- label virt-who as virtd_exec_t +- Allow rhsmcertd to send a null signal to virt-who running as virtd_t +- Add virt_signull() interface +- Add missing alias for _content_rw_t +- Allow .snapshots to be created in other directories, on all mountpoints +- Allow spamd to access razor-agent.log +- Add fixes for sfcb from libvirt-cim TestOnly bug. (#1152104) +- Allow .snapshots to be created in other directories, on all mountpoints +- Label tcp port 5280 as ejabberd port. BZ(1059930) +- Make /usr/bin/vncserver running as unconfined_service_t +- Label /etc/docker/certs.d as cert_t +- Allow all systemd domains to search file systems + * Thu Nov 20 2014 Lukas Vrabec 3.13.1-96 - Allow NetworkManager stream connect on openvpn. BZ(1165110)