1- policy_module(container, 2 .194 .0 )
1+ policy_module(container, 2 .195 .0 )
22
33gen_require(`
44 class passwd rootok;
@@ -48,6 +48,8 @@ can_exec(container_runtime_t,container_runtime_exec_t)
4848attribute container_domain;
4949attribute container_user_domain;
5050attribute container_net_domain;
51+ attribute container_init_domain;
52+ attribute container_file_type;
5153allow container_runtime_domain container_domain:process { dyntransition transition };
5254allow container_domain container_runtime_domain:process sigchld;
5355allow container_runtime_domain container_domain:process2 { nnp_transition nosuid_transition };
@@ -175,13 +177,13 @@ corenet_rw_tun_tap_dev(container_runtime_domain)
175177
176178container_auth_stream_connect(container_runtime_domain)
177179
178- manage_files_pattern(container_runtime_domain, container_file_t, container_file_t )
179- manage_lnk_files_pattern(container_runtime_domain, container_file_t, container_file_t )
180- manage_blk_files_pattern(container_runtime_domain, container_file_t, container_file_t )
180+ manage_files_pattern(container_runtime_domain, container_file_type, container_file_type )
181+ manage_lnk_files_pattern(container_runtime_domain, container_file_type, container_file_type )
182+ manage_blk_files_pattern(container_runtime_domain, container_file_type, container_file_type )
181183allow container_runtime_domain container_domain:key manage_key_perms;
182- manage_sock_files_pattern(container_runtime_domain, container_file_t, container_file_t )
183- allow container_runtime_domain container_file_t :dir_file_class_set {relabelfrom relabelto execmod};
184- allow container_runtime_domain container_file_t :dir_file_class_set mmap_file_perms;
184+ manage_sock_files_pattern(container_runtime_domain, container_file_type, container_file_type )
185+ allow container_runtime_domain container_file_type :dir_file_class_set {relabelfrom relabelto execmod};
186+ allow container_runtime_domain container_file_type :dir_file_class_set mmap_file_perms;
185187
186188manage_files_pattern(container_runtime_domain, container_home_t, container_home_t)
187189manage_dirs_pattern(container_runtime_domain, container_home_t, container_home_t)
@@ -377,7 +379,7 @@ optional_policy(`
377379 container_read_state(iptables_t)
378380 container_append_file(iptables_t)
379381 allow iptables_t container_runtime_domain:fifo_file rw_fifo_file_perms;
380- allow iptables_t container_file_t :dir list_dir_perms;
382+ allow iptables_t container_file_type :dir list_dir_perms;
381383')
382384
383385optional_policy(`
@@ -564,7 +566,6 @@ optional_policy(`
564566 container_spc_stream_connect(container_domain)
565567 fs_dontaudit_remount_tmpfs(container_domain)
566568 dev_dontaudit_mounton_sysfs(container_domain)
567- allow container_domain container_file_t:dir_file_class_set { relabelfrom relabelto map };
568569')
569570
570571optional_policy(`
@@ -776,7 +777,9 @@ sysnet_dns_name_resolve(container_auth_t)
776777# typealias container_t alias svirt_lxc_net_t;
777778gen_require(`
778779 type container_t;
780+ type container_file_t;
779781')
782+ typeattribute container_file_t container_file_type;
780783typeattribute container_t container_domain, container_net_domain, container_user_domain;
781784allow container_user_domain self:process getattr;
782785allow container_domain { container_var_lib_t container_ro_file_t container_file_t }:file entrypoint;
@@ -819,19 +822,7 @@ allow container_domain self:unix_stream_socket { sendto create_stream_socket_per
819822fs_rw_onload_sockets(container_domain)
820823fs_fusefs_entrypoint(container_domain)
821824
822- manage_files_pattern(container_domain, container_file_t, container_file_t)
823- exec_files_pattern(container_domain, container_file_t, container_file_t)
824- manage_lnk_files_pattern(container_domain, container_file_t, container_file_t)
825- manage_dirs_pattern(container_domain, container_file_t, container_file_t)
826- manage_chr_files_pattern(container_domain, container_file_t, container_file_t)
827- allow container_domain container_file_t:chr_file mmap_file_perms;
828- manage_blk_files_pattern(container_domain, container_file_t, container_file_t)
829- manage_fifo_files_pattern(container_domain, container_file_t, container_file_t)
830- manage_sock_files_pattern(container_domain, container_file_t, container_file_t)
831- allow container_domain container_file_t:{file dir} mounton;
832- allow container_domain container_file_t:filesystem { mount remount unmount };
833- fs_tmpfs_filetrans(container_domain, container_file_t, { dir file lnk_file })
834- allow container_domain container_file_t:dir_file_class_set { relabelfrom relabelto map };
825+
835826container_read_share_files(container_domain)
836827container_exec_share_files(container_domain)
837828container_use_ptys(container_domain)
@@ -1090,7 +1081,7 @@ optional_policy(`
10901081#
10911082# container_userns_t policy
10921083#
1093- container_domain_template(container_userns)
1084+ container_domain_template(container_userns, container )
10941085
10951086typeattribute container_userns_t sandbox_net_domain, container_user_domain;
10961087dev_mount_sysfs_fs(container_userns_t)
@@ -1136,7 +1127,7 @@ tunable_policy(`virt_sandbox_use_sys_admin',`
11361127')
11371128
11381129# Container Logreader
1139- container_domain_template(container_logreader)
1130+ container_domain_template(container_logreader, container )
11401131typeattribute container_logreader_t container_net_domain;
11411132logging_read_all_logs(container_logreader_t)
11421133# Remove once https://github.com/fedora-selinux/selinux-policy/pull/898 merges
@@ -1145,7 +1136,7 @@ logging_read_audit_log(container_logreader_t)
11451136logging_list_logs(container_logreader_t)
11461137
11471138# Container Logwriter
1148- container_domain_template(container_logwriter)
1139+ container_domain_template(container_logwriter, container )
11491140typeattribute container_logwriter_t container_net_domain;
11501141logging_read_all_logs(container_logwriter_t)
11511142manage_files_pattern(container_logwriter_t, logfile, logfile)
@@ -1207,7 +1198,7 @@ allow container_domain init_t:unix_stream_socket { accept ioctl read getattr loc
12071198allow container_t proc_t:filesystem remount;
12081199
12091200# Container kvm - Policy for running kata containers
1210- container_domain_template(container_kvm)
1201+ container_domain_template(container_kvm, container )
12111202typeattribute container_kvm_t container_net_domain, container_user_domain;
12121203
12131204type container_kvm_var_run_t;
@@ -1260,21 +1251,21 @@ dev_rw_kvm(container_kvm_t)
12601251sssd_read_public_files(container_kvm_t)
12611252
12621253# Container init - Policy for running systemd based containers
1263- container_domain_template(container_init)
1264- typeattribute container_init_t container_net_domain, container_user_domain;
1254+ container_domain_template(container_init, container )
1255+ typeattribute container_init_t container_init_domain, container_net_domain, container_user_domain;
12651256
12661257corenet_unconfined(container_init_t)
12671258
1268- dev_mounton_sysfs(container_init_t )
1259+ dev_mounton_sysfs(container_init_domain )
12691260
1270- fs_mounton_cgroup(container_init_t )
1271- fs_unmount_cgroup(container_init_t )
1272- fs_manage_cgroup_dirs(container_init_t )
1273- fs_manage_cgroup_files(container_init_t )
1261+ fs_mounton_cgroup(container_init_domain )
1262+ fs_unmount_cgroup(container_init_domain )
1263+ fs_manage_cgroup_dirs(container_init_domain )
1264+ fs_manage_cgroup_files(container_init_domain )
12741265
12751266logging_send_syslog_msg(container_init_t)
12761267
1277- allow container_init_t proc_t:filesystem remount;
1268+ allow container_init_domain proc_t:filesystem remount;
12781269
12791270optional_policy(`
12801271 virt_default_capabilities(container_init_t)
@@ -1290,11 +1281,11 @@ tunable_policy(`virt_sandbox_use_sys_admin',`
12901281 allow container_init_t self:cap_userns sys_admin;
12911282')
12921283
1293- allow container_init_t self:netlink_audit_socket nlmsg_relay;
1284+ allow container_init_domain self:netlink_audit_socket nlmsg_relay;
12941285
12951286# container_engine_t is for running a container engine within a container
12961287#
1297- container_domain_template(container_engine)
1288+ container_domain_template(container_engine, container )
12981289typeattribute container_engine_t container_net_domain;
12991290
13001291fs_mounton_cgroup(container_engine_t)
@@ -1359,19 +1350,19 @@ optional_policy(`
13591350')
13601351
13611352# Standard container which needs to be allowed to use any device
1362- container_domain_template(container_device)
1353+ container_domain_template(container_device, container )
13631354allow container_device_t device_node:chr_file rw_chr_file_perms;
13641355
13651356# Standard container which needs to be allowed to use any device and
13661357# communicate with kubelet
1367- container_domain_template(container_device_plugin)
1358+ container_domain_template(container_device_plugin, container )
13681359allow container_device_plugin_t device_node:chr_file rw_chr_file_perms;
13691360dev_rw_sysfs(container_device_plugin_t)
13701361container_kubelet_stream_connect(container_device_plugin_t)
13711362
13721363# Standard container which needs to be allowed to use any device and
13731364# modify kubelet configuration
1374- container_domain_template(container_device_plugin_init)
1365+ container_domain_template(container_device_plugin_init, container )
13751366allow container_device_plugin_init_t device_node:chr_file rw_chr_file_perms;
13761367dev_rw_sysfs(container_device_plugin_init_t)
13771368manage_dirs_pattern(container_device_plugin_init_t, kubernetes_file_t, kubernetes_file_t)
0 commit comments