diff --git a/policy/modules/apps/rssh.if b/policy/modules/apps/rssh.if
index 6ecadcbc1..1b2c22f1c 100644
--- a/policy/modules/apps/rssh.if
+++ b/policy/modules/apps/rssh.if
@@ -4,25 +4,36 @@
##
## Role access for rssh.
##
-##
+##
##
-## Role allowed access.
+## The prefix of the user role (e.g., user
+## is the prefix for user_r).
##
##
-##
+##
##
## User domain for the role.
##
##
+##
+##
+## User exec domain for execute and transition access.
+##
+##
+##
+##
+## Role allowed access
+##
+##
#
-interface(`rssh_role',`
+template(`rssh_role',`
gen_require(`
attribute_role rssh_roles;
type rssh_t, rssh_exec_t, rssh_ro_t;
type rssh_rw_t;
')
- roleattribute $1 rssh_roles;
+ roleattribute $4 rssh_roles;
domtrans_pattern($2, rssh_exec_t, rssh_t)
diff --git a/policy/modules/roles/staff.te b/policy/modules/roles/staff.te
index 834a33ee5..685f183d1 100644
--- a/policy/modules/roles/staff.te
+++ b/policy/modules/roles/staff.te
@@ -163,7 +163,7 @@ ifndef(`distro_redhat',`
')
optional_policy(`
- rssh_role(staff_r, staff_t)
+ rssh_role(staff, staff_t, staff_application_exec_domain, staff_r)
')
optional_policy(`
diff --git a/policy/modules/roles/sysadm.te b/policy/modules/roles/sysadm.te
index ae3048301..b0cc530fe 100644
--- a/policy/modules/roles/sysadm.te
+++ b/policy/modules/roles/sysadm.te
@@ -885,7 +885,7 @@ optional_policy(`
')
optional_policy(`
- rssh_role(sysadm_r, sysadm_t)
+ rssh_role(sysadm, sysadm_t, sysadm_application_exec_domain, sysadm_r)
')
optional_policy(`
diff --git a/policy/modules/roles/unprivuser.te b/policy/modules/roles/unprivuser.te
index 532f10ecc..07c7d71a6 100644
--- a/policy/modules/roles/unprivuser.te
+++ b/policy/modules/roles/unprivuser.te
@@ -135,7 +135,7 @@ ifndef(`distro_redhat',`
')
optional_policy(`
- rssh_role(user_r, user_t)
+ rssh_role(user, user_t, user_application_exec_domain, user_r)
')
optional_policy(`