diff --git a/policy/modules/admin/sudo.if b/policy/modules/admin/sudo.if
index b6debf340..329eb3922 100644
--- a/policy/modules/admin/sudo.if
+++ b/policy/modules/admin/sudo.if
@@ -55,6 +55,7 @@ template(`sudo_role_template',`
files_tmp_filetrans($1_sudo_t, $1_sudo_tmp_t, file)
allow $1_sudo_t $3:dir search_dir_perms;;
+ allow $1_sudo_t $3:file read_file_perms;;
allow $1_sudo_t $3:key search;
# Enter this derived domain from the user domain
diff --git a/policy/modules/admin/sudo.te b/policy/modules/admin/sudo.te
index 5c11b48e1..ef069d779 100644
--- a/policy/modules/admin/sudo.te
+++ b/policy/modules/admin/sudo.te
@@ -119,6 +119,10 @@ optional_policy(`
')
')
+optional_policy(`
+ systemd_write_inherited_logind_sessions_pipes(sudodomain)
+')
+
optional_policy(`
fprintd_dbus_chat(sudodomain)
')
diff --git a/policy/modules/kernel/domain.if b/policy/modules/kernel/domain.if
index 5fa83a2fb..34fd0b0f1 100644
--- a/policy/modules/kernel/domain.if
+++ b/policy/modules/kernel/domain.if
@@ -602,6 +602,42 @@ interface(`domain_search_all_domains_state',`
allow $1 domain:dir search_dir_perms;
')
+########################################
+##
+## Allow read and write of process kernel keyrings
+##
+##
+##
+## Domain to dontaudit.
+##
+##
+#
+interface(`domain_rw_all_domains_keyrings',`
+ gen_require(`
+ attribute domain;
+ ')
+
+ allow $1 domain:key { read write};
+')
+
+########################################
+##
+## Allow manage of process kernel keyrings
+##
+##
+##
+## Domain to dontaudit.
+##
+##
+#
+interface(`domain_manage_all_domains_keyrings',`
+ gen_require(`
+ attribute domain;
+ ')
+
+ allow $1 domain:key manage_key_perms;
+')
+
########################################
##
## Do not audit attempts to search the process
diff --git a/policy/modules/roles/staff.te b/policy/modules/roles/staff.te
index c03a52c04..8569b19db 100644
--- a/policy/modules/roles/staff.te
+++ b/policy/modules/roles/staff.te
@@ -55,6 +55,7 @@ storage_read_scsi_generic(staff_t)
storage_write_scsi_generic(staff_t)
term_use_unallocated_ttys(staff_t)
+term_use_generic_ptys(staff_t)
auth_domtrans_pam_console(staff_t)
diff --git a/policy/modules/system/systemd.if b/policy/modules/system/systemd.if
index 8f75416ce..d5f2f5b4a 100644
--- a/policy/modules/system/systemd.if
+++ b/policy/modules/system/systemd.if
@@ -351,6 +351,26 @@ interface(`systemd_use_fds_logind',`
allow $1 systemd_logind_t:fd use;
')
+########################################
+##
+## Read the process state (/proc/pid) of systemd_logind_t.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`systemd_logind_read_state',`
+ gen_require(`
+ type systemd_logind_t;
+ ')
+
+ allow $1 systemd_logind_t:dir search_dir_perms;
+ allow $1 systemd_logind_t:file read_file_perms;
+ allow $1 systemd_logind_t:lnk_file read_lnk_file_perms;
+')
+
######################################
##
## Read logind sessions files.
diff --git a/policy/modules/system/userdomain.te b/policy/modules/system/userdomain.te
index cceb511fc..f5139efd2 100644
--- a/policy/modules/system/userdomain.te
+++ b/policy/modules/system/userdomain.te
@@ -381,6 +381,7 @@ dontaudit confined_admindomain self:socket create;
allow confined_admindomain user_devpts_t:chr_file { setattr rw_chr_file_perms };
term_create_pty(confined_admindomain, user_devpts_t)
+term_use_generic_ptys(confined_admindomain)
# avoid annoying messages on terminal hangup on role change
dontaudit confined_admindomain user_devpts_t:chr_file ioctl;