aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2023-08-15 19:37:46 +0200
committerStefano Brivio <sbrivio@redhat.com>2023-08-18 18:47:46 +0200
commit56b8633a6b23a81496401c8bbbcc04b25ebf19b2 (patch)
tree6ee56ba7f12797e55c50c246eb8431b8ae155757
parent62059058cf2422e909952b26f3947df23885fd7e (diff)
downloadpasst-56b8633a6b23a81496401c8bbbcc04b25ebf19b2.tar
passt-56b8633a6b23a81496401c8bbbcc04b25ebf19b2.tar.gz
passt-56b8633a6b23a81496401c8bbbcc04b25ebf19b2.tar.bz2
passt-56b8633a6b23a81496401c8bbbcc04b25ebf19b2.tar.lz
passt-56b8633a6b23a81496401c8bbbcc04b25ebf19b2.tar.xz
passt-56b8633a6b23a81496401c8bbbcc04b25ebf19b2.tar.zst
passt-56b8633a6b23a81496401c8bbbcc04b25ebf19b2.zip
selinux: Update policy to fix user/group settings
Somehow most of this used to work on older kernels, but now we need to explicitly permit setuid, setgid, and setcap capabilities, as well as read-only access to passwd (as we support running under a given login name) and sssd library facilities. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r--contrib/selinux/passt.te9
-rw-r--r--contrib/selinux/pasta.te8
2 files changed, 13 insertions, 4 deletions
diff --git a/contrib/selinux/passt.te b/contrib/selinux/passt.te
index 5868a41..507fc89 100644
--- a/contrib/selinux/passt.te
+++ b/contrib/selinux/passt.te
@@ -47,9 +47,11 @@ require {
type port_t;
type http_port_t;
+ type passwd_file_t;
+
class netlink_route_socket { bind create nlmsg_read };
- class capability sys_tty_config;
+ class capability { sys_tty_config setuid setgid };
class cap_userns { setpcap sys_admin sys_ptrace };
class user_namespace create;
}
@@ -89,10 +91,13 @@ logging_send_syslog_msg(passt_t)
allow syslogd_t self:cap_userns sys_ptrace;
allow passt_t self:process setcap;
-allow passt_t self:capability { sys_tty_config setpcap net_bind_service };
+allow passt_t self:capability { sys_tty_config setpcap net_bind_service setuid setgid};
allow passt_t self:cap_userns { setpcap sys_admin sys_ptrace };
allow passt_t self:user_namespace create;
+allow passt_t passwd_file_t:file read_file_perms;
+sssd_search_lib(passt_t)
+
allow passt_t proc_net_t:file read;
allow passt_t net_conf_t:file { open read };
allow passt_t net_conf_t:lnk_file read;
diff --git a/contrib/selinux/pasta.te b/contrib/selinux/pasta.te
index 645ccee..ee82b0f 100644
--- a/contrib/selinux/pasta.te
+++ b/contrib/selinux/pasta.te
@@ -79,6 +79,7 @@ require {
type shell_exec_t;
type init_t;
+ class capability { sys_tty_config setuid setgid };
class cap_userns { setpcap sys_admin sys_ptrace net_bind_service net_admin };
class user_namespace create;
}
@@ -103,10 +104,13 @@ allow unconfined_t pasta_t : process transition ;
init_daemon_domain(pasta_t, pasta_exec_t)
-allow pasta_t self:capability { setpcap net_bind_service sys_tty_config dac_read_search net_admin sys_resource };
+allow pasta_t self:capability { setpcap net_bind_service sys_tty_config dac_read_search net_admin sys_resource setuid setgid };
allow pasta_t self:cap_userns { setpcap sys_admin sys_ptrace net_admin net_bind_service };
allow pasta_t self:user_namespace create;
+allow pasta_t passwd_file_t:file read_file_perms;
+sssd_search_lib(pasta_t)
+
allow pasta_t bin_t:file { execute execute_no_trans map };
allow pasta_t nsfs_t:file { open read };
@@ -162,7 +166,7 @@ allow pasta_t unconfined_t:dir search;
allow pasta_t unconfined_t:file read;
allow pasta_t unconfined_t:lnk_file read;
allow pasta_t passwd_file_t:file { getattr open read };
-allow pasta_t self:process setpgid;
+allow pasta_t self:process { setpgid setcap };
allow pasta_t shell_exec_t:file { execute execute_no_trans map };
allow pasta_t sssd_var_lib_t:dir search;