## GNU terminal multiplexer ####################################### ## ## The role template for the screen module. ## ## ## ## The prefix of the user role (e.g., user ## is the prefix for user_r). ## ## ## ## ## The role associated with the user domain. ## ## ## ## ## The type of the user domain. ## ## # template(`screen_role_template',` gen_require(` type screen_exec_t, screen_tmp_t; type screen_home_t, screen_var_run_t; attribute screen_domain; ') ######################################## # # Declarations # type $1_screen_t, screen_domain; application_domain($1_screen_t, screen_exec_t) domain_interactive_fd($1_screen_t) ubac_constrained($1_screen_t) role $2 types $1_screen_t; tunable_policy(`deny_ptrace',`',` allow $3 $1_screen_t:process ptrace; ') userdom_home_reader($1_screen_t) domtrans_pattern($3, screen_exec_t, $1_screen_t) allow $3 $1_screen_t:process { signal sigchld }; dontaudit $3 $1_screen_t:unix_stream_socket { read write }; allow $1_screen_t $3:unix_stream_socket { connectto }; allow $1_screen_t $3:process signal; ps_process_pattern($1_screen_t, $3) manage_fifo_files_pattern($3, screen_home_t, screen_home_t) manage_dirs_pattern($3, screen_home_t, screen_home_t) manage_files_pattern($3, screen_home_t, screen_home_t) manage_lnk_files_pattern($3, screen_home_t, screen_home_t) relabel_dirs_pattern($3, screen_home_t, screen_home_t) relabel_files_pattern($3, screen_home_t, screen_home_t) relabel_lnk_files_pattern($3, screen_home_t, screen_home_t) manage_dirs_pattern($3, screen_var_run_t, screen_var_run_t) manage_fifo_files_pattern($3, screen_var_run_t, screen_var_run_t) kernel_read_system_state($1_screen_t) # Revert to the user domain when a shell is executed. corecmd_shell_domtrans($1_screen_t, $3) corecmd_bin_domtrans($1_screen_t, $3) auth_domtrans_chk_passwd($1_screen_t) auth_use_nsswitch($1_screen_t) logging_send_syslog_msg($1_screen_t) userdom_user_home_domtrans($1_screen_t, $3) userdom_manage_tmp_role($2, $1_screen_t) tunable_policy(`use_samba_home_dirs',` fs_cifs_domtrans($1_screen_t, $3) ') tunable_policy(`use_nfs_home_dirs',` fs_nfs_domtrans($1_screen_t, $3) ') ') ####################################### ## ## Execute the rssh program ## in the caller domain. ## ## ## ## Domain allowed access. ## ## # interface(`screen_exec',` gen_require(` type screen_exec_t; ') can_exec($1, screen_exec_t) ')