Public feed
#725496
policy_module(ut2004,1.0.2)
########################################
#
# Declarations
#
type ut2004_t;
type ut2004_exec_t;
application_domain(ut2004_t, ut2004_exec_t)
role system_r types ut2004_t;
# unused
# type ut2004_tmp_t;
# files_tmp_file(ut2004_tmp_t)
type ut2004_rw_t;
files_type(ut2004_rw_t)
type ut2004_port_t;
corenet_port(ut2004_port_t)
########################################
#
# Local policy
#
# self
allow ut2004_t self:fifo_file rw_file_perms;
allow ut2004_t self:unix_stream_socket create_stream_socket_perms;
allow ut2004_t self:tcp_socket create_stream_socket_perms;
allow ut2004_t self:udp_socket { create_socket_perms listen };
allow ut2004_t self:process execmem;
allow ut2004_t self:process signal;
allow ut2004_t self:shm { write unix_read unix_write read destroy create };
# run in our domain
optional_policy(`
ut2004_run(guest_t, guest_r, { guest_tty_device_t guest_devpts_t })
')
optional_policy(`
ut2004_run(staff_t, staff_r, { staff_tty_device_t staff_devpts_t })
')
optional_policy(`
ut2004_run(sysadm_t, sysadm_r, { sysadm_tty_device_t sysadm_devpts_t })
')
optional_policy(`
ut2004_run(unconfined_t, unconfined_r, { unconfined_tty_device_t unconfined_devpts_t })
')
optional_policy(`
ut2004_run(user_t, user_r, { user_tty_device_t user_devpts_t })
')
optional_policy(`
ut2004_run(xguest_t, xguest_r, { xguest_tty_device_t xguest_devpts_t })
')
# manage rw files in our domain
ut2004_manage_rw_files(ut2004_t)
# bind sockets to ports in out domain
ut2004_bind_tcp_ports(ut2004_t)
ut2004_bind_udp_ports(ut2004_t)
# connect to tcp ports in our domain
ut2004_connect_tcp_ports(ut2004_t)
# manage tmp files in our domain
# unused
# ut2004_manage_tmp_files(ut2004_t)
# write to ut2004 files on shm device
ut2004_write_shm_files(xdm_xserver_t)
# reference for other domain interfaces
#
# file:///usr/share/doc/selinux-policy-3.0.8/html/index.html
# read in other domains
files_read_etc_files(ut2004_t)
init_read_utmp(ut2004_t)
kernel_read_system_state(ut2004_t)
kernel_read_network_state(ut2004_t)
xserver_read_xdm_tmp_files(ut2004_t)
files_read_usr_files(ut2004_t)
files_read_usr_symlinks(ut2004_t)
dev_read_sound(ut2004_t)
dev_read_input(ut2004_t)
userdom_read_unpriv_users_home_content_files(ut2004_t)
xserver_read_user_iceauth(user,ut2004_t)
miscfiles_read_localization(ut2004_t)
# use in other domains
auth_use_nsswitch(ut2004_t)
libs_use_ld_so(ut2004_t)
libs_use_shared_libs(ut2004_t)
# dont audit
term_dontaudit_search_ptys(ut2004_t)
term_dontaudit_use_ptmx(ut2004_t)
init_dontaudit_write_utmp(ut2004_t)
nscd_dontaudit_search_pid(ut2004_t)
corenet_dontaudit_udp_bind_all_reserved_ports(ut2004_t)
corenet_dontaudit_udp_bind_all_ports(ut2004_t)
corenet_dontaudit_tcp_bind_all_reserved_ports(ut2004_t)
corenet_dontaudit_tcp_bind_all_ports(ut2004_t)
corenet_dontaudit_tcp_connect_all_reserved_ports(ut2004_t)
corenet_dontaudit_tcp_connect_all_ports(ut2004_t)
term_dontaudit_use_generic_ptys(ut2004_t)
# read and write in other domains
dev_rw_null(ut2004_t)
dev_rw_dri(ut2004_t)
# getattr in other domains
dev_getattr_event_dev(ut2004_t)
dev_getattr_dri_dev(ut2004_t)
files_getattr_usr_files(ut2004_t)
term_getattr_pty_fs(ut2004_t)
# search in other domains
files_search_home(ut2004_t)
files_search_tmp(ut2004_t)
# bind to any node
corenet_tcp_bind_inaddr_any_node(ut2004_t)
corenet_udp_bind_inaddr_any_node(ut2004_t)
# bind
corenet_tcp_sendrecv_all_if(ut2004_t)
corenet_tcp_sendrecv_all_nodes(ut2004_t)
corenet_tcp_sendrecv_all_ports(ut2004_t)
corenet_udp_sendrecv_all_if(ut2004_t)
corenet_udp_sendrecv_all_nodes(ut2004_t)
corenet_udp_sendrecv_all_ports(ut2004_t)
corenet_udp_bind_all_nodes(ut2004_t)
# various actions in other domains
sysnet_dns_name_resolve(ut2004_t)
logging_send_syslog_msg(ut2004_t)
xserver_create_xdm_tmp_sockets(ut2004_t)
xserver_stream_connect_xdm_xserver(ut2004_t)
fs_manage_tmpfs_files(ut2004_t)
dev_write_sound(ut2004_t)
# find existing interface
allow ut2004_t xdm_xserver_t:shm { unix_read read getattr associate };
# find existing interface
require {
type unconfined_t;
}
dontaudit ut2004_t unconfined_t:unix_stream_socket connectto;