diff --git a/policy/modules/services/xserver.fc b/policy/modules/services/xserver.fc index e588faba2..3a642b8e1 100644 --- a/policy/modules/services/xserver.fc +++ b/policy/modules/services/xserver.fc @@ -1,6 +1,7 @@ # # HOME_DIR # +HOME_DIR/\.dmrc -- gen_context(system_u:object_r:dmrc_home_t,s0) HOME_DIR/\.fonts\.conf -- gen_context(system_u:object_r:user_fonts_config_t,s0) HOME_DIR/\.fonts(/.*)? gen_context(system_u:object_r:user_fonts_t,s0) HOME_DIR/\.fonts/auto(/.*)? gen_context(system_u:object_r:user_fonts_cache_t,s0) diff --git a/policy/modules/services/xserver.if b/policy/modules/services/xserver.if index afc157fb4..a5dbdaad1 100644 --- a/policy/modules/services/xserver.if +++ b/policy/modules/services/xserver.if @@ -600,6 +600,25 @@ interface(`xserver_read_user_xauth',` userdom_search_user_home_dirs($1) ') +######################################## +## +## Read all users .dmrc. +## +## +## +## Domain allowed access. +## +## +# +interface(`xserver_read_user_dmrc',` + gen_require(` + type dmrc_home_t; + ') + + allow $1 dmrc_home_t:file read_file_perms; + userdom_search_user_home_dirs($1) +') + ######################################## ## ## Set the attributes of the X windows console named pipes. diff --git a/policy/modules/services/xserver.te b/policy/modules/services/xserver.te index 54fbf1241..ff3d0cfd6 100644 --- a/policy/modules/services/xserver.te +++ b/policy/modules/services/xserver.te @@ -211,6 +211,9 @@ corecmd_executable_file(xsession_exec_t) type xserver_log_t; logging_log_file(xserver_log_t) +type dmrc_home_t; +userdom_user_home_content(dmrc_home_t) + ifdef(`enable_mcs',` init_ranged_domain(xdm_t, xdm_exec_t, s0 - mcs_systemhigh) init_ranged_daemon_domain(xdm_t, xdm_exec_t, s0 - mcs_systemhigh) @@ -467,12 +470,14 @@ sysnet_read_config(xdm_t) userdom_dontaudit_use_unpriv_user_fds(xdm_t) userdom_create_all_users_keys(xdm_t) -# for .dmrc -userdom_read_user_home_content_files(xdm_t) # Search /proc for any user domain processes. userdom_read_all_users_state(xdm_t) userdom_signal_all_users(xdm_t) +# for .dmrc: this was used by the Gnome Display Manager (gdm) +# and it is now obsolete in Gnome3 +xserver_read_user_dmrc(xdm_t) + xserver_rw_session(xdm_t, xdm_tmpfs_t) xserver_unconfined(xdm_t)