policy_module(usernetctl,1.1.0) ######################################## # # Declarations # ifdef(`strict_policy',` ## ##

## Allow users to control network interfaces ## (also needs USERCTL=true) ##

##
gen_tunable(user_net_control,false) ') type usernetctl_t; type usernetctl_exec_t; domain_type(usernetctl_t) domain_entry_file(usernetctl_t,usernetctl_exec_t) domain_interactive_fd(usernetctl_t) ######################################## # # Local policy # allow usernetctl_t self:capability { setuid setgid dac_override }; allow usernetctl_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap }; allow usernetctl_t self:fd use; allow usernetctl_t self:fifo_file rw_fifo_file_perms; allow usernetctl_t self:shm create_shm_perms; allow usernetctl_t self:sem create_sem_perms; allow usernetctl_t self:msgq create_msgq_perms; allow usernetctl_t self:msg { send receive }; allow usernetctl_t self:unix_dgram_socket create_socket_perms; allow usernetctl_t self:unix_stream_socket create_stream_socket_perms; allow usernetctl_t self:unix_dgram_socket sendto; allow usernetctl_t self:unix_stream_socket connectto; can_exec(usernetctl_t,usernetctl_exec_t) kernel_read_system_state(usernetctl_t) kernel_read_kernel_sysctls(usernetctl_t) corecmd_list_bin(usernetctl_t) corecmd_exec_bin(usernetctl_t) corecmd_exec_shell(usernetctl_t) domain_dontaudit_read_all_domains_state(usernetctl_t) files_read_etc_files(usernetctl_t) files_exec_etc_files(usernetctl_t) files_read_etc_runtime_files(usernetctl_t) files_list_pids(usernetctl_t) files_list_home(usernetctl_t) files_read_usr_files(usernetctl_t) fs_search_auto_mountpoints(usernetctl_t) libs_use_ld_so(usernetctl_t) libs_use_shared_libs(usernetctl_t) miscfiles_read_localization(usernetctl_t) seutil_read_config(usernetctl_t) sysnet_read_config(usernetctl_t) optional_policy(` hostname_exec(usernetctl_t) ') optional_policy(` nis_use_ypbind(usernetctl_t) ')