Skip to content

Commit aea4812

Browse files
committed
Allow confined users to transition to container domains.
Make sure that confined users can NOT run containers in spc_t domains. Only domains supported are container_t, container_init_t and container_kvm_t. Signed-off-by: Daniel J Walsh <[email protected]>
1 parent 8573f8d commit aea4812

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

container.if

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -796,10 +796,12 @@ template(`container_runtime_domain_template',`
796796
type container_runtime_t;
797797
type container_var_lib_t;
798798
type container_ro_file_t;
799+
role system_r, sysadm_r;
799800
')
800801

801802
type $1_t, container_runtime_domain;
802803
role system_r types $1_t;
804+
role sysadm_r types $1_t;
803805
domain_type($1_t)
804806
domain_subj_id_change_exemption($1_t)
805807
domain_role_change_exemption($1_t)

container.te

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
policy_module(container, 2.153.0)
1+
policy_module(container, 2.154.0)
22
gen_require(`
33
class passwd rootok;
44
')
@@ -37,6 +37,7 @@ typealias container_runtime_t alias docker_t;
3737
type container_runtime_exec_t alias docker_exec_t;
3838
can_exec(container_runtime_t,container_runtime_exec_t)
3939
attribute container_domain;
40+
attribute container_user_domain;
4041
attribute container_net_domain;
4142
allow container_runtime_domain container_domain:process { dyntransition transition };
4243
allow container_domain container_runtime_domain:process sigchld;
@@ -570,13 +571,6 @@ optional_policy(`
570571
udev_read_db(container_runtime_domain)
571572
')
572573

573-
optional_policy(`
574-
gen_require(`
575-
role staff_r;
576-
')
577-
role_transition staff_r container_runtime_exec_t system_r;
578-
')
579-
580574
optional_policy(`
581575
unconfined_stub_role()
582576
unconfined_domain(container_runtime_t)
@@ -733,7 +727,7 @@ sysnet_dns_name_resolve(container_auth_t)
733727
gen_require(`
734728
type container_t;
735729
')
736-
typeattribute container_t container_domain, container_net_domain;
730+
typeattribute container_t container_domain, container_net_domain, container_user_domain;
737731
allow container_domain { container_var_lib_t container_ro_file_t container_file_t }:file entrypoint;
738732
allow container_runtime_domain container_domain:fifo_file rw_fifo_file_perms;
739733
allow container_domain container_runtime_domain:fifo_file { rw_fifo_file_perms map };
@@ -1044,7 +1038,7 @@ optional_policy(`
10441038
#
10451039
container_domain_template(container_userns)
10461040

1047-
typeattribute container_userns_t sandbox_net_domain;
1041+
typeattribute container_userns_t sandbox_net_domain, container_user_domain;
10481042
dev_mount_sysfs_fs(container_userns_t)
10491043
dev_mounton_sysfs(container_userns_t)
10501044

@@ -1112,10 +1106,10 @@ optional_policy(`
11121106
role sysadm_r types spc_t;
11131107

11141108
container_runtime_run(staff_t, staff_r)
1115-
role staff_r types container_domain;
1109+
role staff_r types container_user_domain;
11161110

11171111
container_runtime_run(user_t, user_r)
1118-
role user_r types container_domain;
1112+
role user_r types container_user_domain;
11191113
')
11201114

11211115
gen_require(`
@@ -1139,7 +1133,7 @@ allow container_t proc_t:filesystem remount;
11391133

11401134
# Container kvm - Policy for running kata containers
11411135
container_domain_template(container_kvm)
1142-
typeattribute container_kvm_t container_net_domain;
1136+
typeattribute container_kvm_t container_net_domain, container_user_domain;
11431137

11441138
type container_kvm_var_run_t;
11451139
files_pid_file(container_kvm_var_run_t)
@@ -1192,7 +1186,7 @@ sssd_read_public_files(container_kvm_t)
11921186

11931187
# Container init - Policy for running systemd based containers
11941188
container_domain_template(container_init)
1195-
typeattribute container_init_t container_net_domain;
1189+
typeattribute container_init_t container_net_domain, container_user_domain;
11961190

11971191
corenet_unconfined(container_init_t)
11981192

0 commit comments

Comments
 (0)