--- nsaserefpolicy/policy/modules/roles/xguest.fc 1969-12-31 19:00:00.000000000 -0500
+++ serefpolicy-3.5.5/policy/modules/roles/xguest.fc 2008-08-14 13:53:54.000000000 -0400
@@ -0,0 +1 @@
+# file contexts handled by userdomain and genhomedircon
--- nsaserefpolicy/policy/modules/roles/xguest.if 1969-12-31 19:00:00.000000000 -0500
+++ serefpolicy-3.5.5/policy/modules/roles/xguest.if 2008-08-14 13:53:54.000000000 -0400
@@ -0,0 +1,161 @@
+## Least privledge X Windows user role
+
+########################################
+##
+## Change to the xguest role.
+##
+##
+##
+## The prefix of the user role (e.g., user
+## is the prefix for user_r).
+##
+##
+##
+#
+template(`xguest_role_change_template',`
+ userdom_role_change_template($1, xguest)
+')
+
+########################################
+##
+## Change from the xguest role.
+##
+##
+##
+## Change from the xguest role to
+## the specified role.
+##
+##
+## This is a template to support third party modules
+## and its use is not allowed in upstream reference
+## policy.
+##
+##
+##
+##
+## The prefix of the user role (e.g., user
+## is the prefix for user_r).
+##
+##
+##
+#
+template(`xguest_role_change_to_template',`
+ userdom_role_change_template(xguest, $1)
+')
+
+########################################
+##
+## Search the xguest users home directory.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`xguest_search_home_dirs',`
+ gen_require(`
+ type xguest_home_dir_t;
+ ')
+
+ files_search_home($1)
+ allow $1 xguest_home_dir_t:dir search_dir_perms;
+')
+
+########################################
+##
+## Do not audit attempts to search the xguest
+## users home directory.
+##
+##
+##
+## Domain to not audit.
+##
+##
+#
+interface(`xguest_dontaudit_search_home_dirs',`
+ gen_require(`
+ type xguest_home_dir_t;
+ ')
+
+ dontaudit $1 xguest_home_dir_t:dir search_dir_perms;
+')
+
+########################################
+##
+## Create, read, write, and delete xguest
+## home directories.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`xguest_manage_home_dirs',`
+ gen_require(`
+ type xguest_home_dir_t;
+ ')
+
+ files_search_home($1)
+ allow $1 xguest_home_dir_t:dir manage_dir_perms;
+')
+
+########################################
+##
+## Relabel to xguest home directories.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`xguest_relabelto_home_dirs',`
+ gen_require(`
+ type xguest_home_dir_t;
+ ')
+
+ files_search_home($1)
+ allow $1 xguest_home_dir_t:dir relabelto;
+')
+
+########################################
+##
+## Do not audit attempts to append to the xguest
+## users home directory.
+##
+##
+##
+## Domain to not audit.
+##
+##
+#
+interface(`xguest_dontaudit_append_home_content_files',`
+ gen_require(`
+ type xguest_home_t;
+ ')
+
+ dontaudit $1 xguest_home_t:file append;
+')
+
+########################################
+##
+## Read files in the xguest users home directory.
+##
+##
+##
+## Domain allowed access.
+##
+##
+#
+interface(`xguest_read_home_content_files',`
+ gen_require(`
+ type xguest_home_dir_t, xguest_home_t;
+ ')
+
+ files_search_home($1)
+ allow $1 { xguest_home_dir_t xguest_home_t }:dir list_dir_perms;
+ read_files_pattern($1, { xguest_home_dir_t xguest_home_t }, xguest_home_t)
+ read_lnk_files_pattern($1, { xguest_home_dir_t xguest_home_t }, xguest_home_t)
+')
--- nsaserefpolicy/policy/modules/roles/xguest.te 1969-12-31 19:00:00.000000000 -0500
+++ serefpolicy-3.5.5/policy/modules/roles/xguest.te 2008-08-14 13:53:54.000000000 -0400
@@ -0,0 +1,83 @@
+
+policy_module(xguest, 1.0.0)
+
+##
+##
+## Allow xguest users to mount removable media
+##
+##
+gen_tunable(xguest_mount_media, false)
+
+##
+##
+## Allow xguest to configure Network Manager
+##
+##
+gen_tunable(xguest_connect_network, false)
+
+##
+##
+## Allow xguest to use blue tooth devices
+##
+##
+gen_tunable(xguest_use_bluetooth, false)
+
+########################################
+#
+# Declarations
+#
+
+role xguest_r;
+
+userdom_restricted_xwindows_user_template(xguest)
+
+########################################
+#
+# Local policy
+#
+
+optional_policy(`
+ mozilla_per_role_template(xguest, xguest_t, xguest_r)
+')
+
+optional_policy(`
+ java_per_role_template(xguest, xguest_t, xguest_r)
+')
+
+optional_policy(`
+ mono_per_role_template(xguest, xguest_t, xguest_r)
+')
+
+# Allow mounting of file systems
+optional_policy(`
+ tunable_policy(`xguest_mount_media',`
+ hal_dbus_chat(xguest_t)
+ init_read_utmp(xguest_t)
+ auth_list_pam_console_data(xguest_t)
+ kernel_read_fs_sysctls(xguest_t)
+ files_dontaudit_getattr_boot_dirs(xguest_t)
+ files_search_mnt(xguest_t)
+ fs_manage_noxattr_fs_files(xguest_t)
+ fs_manage_noxattr_fs_dirs(xguest_t)
+ fs_manage_noxattr_fs_dirs(xguest_t)
+ fs_getattr_noxattr_fs(xguest_t)
+ fs_read_noxattr_fs_symlinks(xguest_t)
+ ')
+')
+
+optional_policy(`
+ hal_dbus_chat(xguest_t)
+')
+
+optional_policy(`
+ tunable_policy(`xguest_connect_network',`
+ networkmanager_dbus_chat(xguest_t)
+ ')
+')
+
+optional_policy(`
+ tunable_policy(`xguest_use_bluetooth',`
+ bluetooth_dbus_chat(xguest_t)
+ ')
+')
+