Re: [PATCH] machinectl shell and login fixes
Chris PeBenito <[email protected]> Mon, 25 Apr 2022 09:23:27 -0400
| Newsgroups | org.kernel.vger.selinux-refpolicy |
|---|---|
| Message-ID | <[email protected]> |
On 4/6/22 10:52, Russell Coker wrote: > This patch fixes a delay in login and allows machinectl shell to work. > > Signed-off-by: Russell Coker <[email protected]> > > Index: refpolicy-2.20220325/policy/modules/system/init.if > =================================================================== > --- refpolicy-2.20220325.orig/policy/modules/system/init.if > +++ refpolicy-2.20220325/policy/modules/system/init.if > @@ -3301,6 +3301,24 @@ interface(`init_tcp_recvfrom_all_daemons > corenet_tcp_recvfrom_labeled($1, daemon) > ') > > +###################################### > +## <summary> > +## restart systemd units, for /run/systemd/transient/* There is a new type for these transient units. > +## </summary> > +## <param name="domain"> > +## <summary> > +## Domain allowed access. > +## </summary> > +## </param> > +# > +interface(`init_restart_units',` > + gen_require(` > + type init_var_run_t; > + ') > + > + allow $1 init_var_run_t:service { start status stop }; > +') > + > ######################################## > ## <summary> > ## Allow the specified domain to connect to daemon with a udp socket > Index: refpolicy-2.20220325/policy/modules/system/locallogin.te > =================================================================== > --- refpolicy-2.20220325.orig/policy/modules/system/locallogin.te > +++ refpolicy-2.20220325/policy/modules/system/locallogin.te > @@ -129,7 +129,8 @@ auth_manage_pam_runtime_files(local_logi > auth_manage_pam_console_data(local_login_t) > auth_domtrans_pam_console(local_login_t) > > -init_dontaudit_use_fds(local_login_t) > +# if local_login_t can not inherit fd from init it takes ages to login > +init_use_fds(local_login_t) > > miscfiles_read_localization(local_login_t) > > Index: refpolicy-2.20220325/policy/modules/system/systemd.te > =================================================================== > --- refpolicy-2.20220325.orig/policy/modules/system/systemd.te > +++ refpolicy-2.20220325/policy/modules/system/systemd.te > @@ -851,6 +851,9 @@ init_start_system(systemd_logind_t) > init_stop_system(systemd_logind_t) > init_watch_utmp(systemd_logind_t) > > +# for /run/systemd/transient/* > +init_restart_units(systemd_logind_t) > + > locallogin_read_state(systemd_logind_t) > > seutil_libselinux_linked(systemd_logind_t) > Index: refpolicy-2.20220325/policy/modules/system/systemd.if > =================================================================== > --- refpolicy-2.20220325.orig/policy/modules/system/systemd.if > +++ refpolicy-2.20220325/policy/modules/system/systemd.if > @@ -19,11 +19,6 @@ > ## The user domain for the role. > ## </summary> > ## </param> > -## <param name="pty_type"> > -## <summary> > -## The type for the user pty > -## </summary> > -## </param> > # > template(`systemd_role_template',` > gen_require(` > @@ -33,6 +28,7 @@ template(`systemd_role_template',` > type systemd_conf_home_t, systemd_data_home_t; > type systemd_user_runtime_t, systemd_user_runtime_notify_t; > type systemd_user_unit_t, systemd_user_runtime_unit_t; > + type systemd_machined_t, user_devpts_t; > ') > > ################################# > @@ -60,6 +56,7 @@ template(`systemd_role_template',` > allow $1_systemd_t $3:process { setsched rlimitinh signal_perms }; > corecmd_shell_domtrans($1_systemd_t, $3) > corecmd_bin_domtrans($1_systemd_t, $3) > + corecmd_shell_entry_type($1_systemd_t) > > # systemctl --user rules > allow $1_systemd_t systemd_user_unix_stream_activated_socket_type:unix_stream_socket { create_socket_perms listen }; > @@ -114,6 +111,10 @@ template(`systemd_role_template',` > seutil_search_default_contexts($1_systemd_t) > seutil_read_file_contexts($1_systemd_t) > > + # for machinectl shell > + term_user_pty($1_systemd_t, user_devpts_t) > + allow $1_systemd_t user_devpts_t:chr_file rw_file_perms; > + > systemd_manage_conf_home_content($1_systemd_t) > systemd_manage_data_home_content($1_systemd_t) > > @@ -144,6 +145,12 @@ template(`systemd_role_template',` > allow $3 systemd_user_runtime_t:lnk_file { manage_lnk_file_perms relabel_lnk_file_perms }; > allow $3 systemd_user_runtime_t:sock_file { manage_sock_file_perms relabel_sock_file_perms }; > > + # for "machinectl shell" > + allow $1_systemd_t systemd_machined_t:fd use; > + allow $3 systemd_machined_t:fd use; > + allow $3 systemd_machined_t:dbus send_msg; > + allow systemd_machined_t $3:dbus send_msg; > + > allow $3 systemd_user_runtime_notify_t:sock_file { manage_sock_file_perms relabel_sock_file_perms }; > > allow $3 systemd_user_unit_t:service { reload start status stop }; -- Chris PeBenito