diff --git a/refpolicy/policy/modules/services/inetd.if b/refpolicy/policy/modules/services/inetd.if
index 062f13fa..0dd31e51 100644
--- a/refpolicy/policy/modules/services/inetd.if
+++ b/refpolicy/policy/modules/services/inetd.if
@@ -111,6 +111,23 @@ interface(`inetd_service_domain',`
allow $1 inetd_t:udp_socket rw_socket_perms;
')
+########################################
+##
+## Inherit and use file descriptors from inetd.
+##
+##
+## Domain allowed access.
+##
+#
+interface(`inetd_use_fd',`
+ gen_require(`
+ type inetd_t;
+ class fd use;
+ ')
+
+ allow $1 inetd_t:fd use;
+')
+
########################################
##
## Connect to the inetd service using a TCP connection.
diff --git a/refpolicy/policy/modules/system/userdomain.if b/refpolicy/policy/modules/system/userdomain.if
index a7342bd8..19969fc7 100644
--- a/refpolicy/policy/modules/system/userdomain.if
+++ b/refpolicy/policy/modules/system/userdomain.if
@@ -366,11 +366,11 @@ template(`base_user_template',`
ifdef(`inetd.te', `
# Connect to inetd.
- can_tcp_connect($1_t, inetd_t)
+ inetd_tcp_connect($1_t)
can_udp_send($1_t, inetd_t)
can_udp_send(inetd_t, $1_t)
# Inherit and use sockets from inetd
- allow $1_t inetd_t:fd use;
+ inetd_use_fd($1_t)
allow $1_t inetd_t:tcp_socket rw_stream_socket_perms;
')
@@ -453,12 +453,10 @@ template(`unpriv_user_template', `
typeattribute $1_t unpriv_userdomain; #, web_client_domain
domain_wide_inherit_fd($1_t)
- #typeattribute $1_devpts_t userpty_type, user_tty_type;
- #typeattribute $1_home_dir_t user_home_dir_type;
- #typeattribute $1_home_t user_home_type;
-
+ typeattribute $1_devpts_t user_ptynode;
+ typeattribute $1_home_dir_t user_home_dir_type;
+ typeattribute $1_home_t user_home_type;
typeattribute $1_tmp_t user_tmpfile;
-
typeattribute $1_tty_device_t user_ttynode;
##############################
@@ -813,8 +811,6 @@ template(`admin_user_template',`
# for lsof
allow $1_t mtrr_device_t:file getattr;
-
- # for lsof
allow $1_t eventpollfs_t:file getattr;
allow $1_t serial_device:chr_file setattr;
diff --git a/refpolicy/policy/modules/system/userdomain.te b/refpolicy/policy/modules/system/userdomain.te
index 2ad973e2..def32250 100644
--- a/refpolicy/policy/modules/system/userdomain.te
+++ b/refpolicy/policy/modules/system/userdomain.te
@@ -20,6 +20,13 @@ attribute home_type;
# a user in writing regular files)
attribute privhome;
+# all unprivileged users home directories
+attribute user_home_dir_type;
+attribute user_home_type;
+
+# all unprivileged users ptys
+attribute user_ptynode;
+
# all unprivileged users tmp files
attribute user_tmpfile;