1ec3d1a
policy_module(nsplugin, 1.0.0)
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
1ec3d1a
# Declarations
1ec3d1a
#
1ec3d1a
1ec3d1a
## <desc>
1ec3d1a
## 

1ec3d1a
## Allow nsplugin code to execmem/execstack
1ec3d1a
## 

1ec3d1a
## </desc>
b28be49
gen_tunable(nsplugin_execmem, false)
1ec3d1a
1ec3d1a
## <desc>
1ec3d1a
## 

1ec3d1a
## Allow nsplugin code to connect to unreserved ports
1ec3d1a
## 

1ec3d1a
## </desc>
1ec3d1a
gen_tunable(nsplugin_can_network, true)
1ec3d1a
1ec3d1a
type nsplugin_exec_t;
1ec3d1a
application_executable_file(nsplugin_exec_t)
1ec3d1a
1ec3d1a
type nsplugin_config_exec_t;
1ec3d1a
application_executable_file(nsplugin_config_exec_t)
1ec3d1a
1ec3d1a
type nsplugin_rw_t;
1ec3d1a
files_poly_member(nsplugin_rw_t)
1ec3d1a
files_type(nsplugin_rw_t)
1ec3d1a
1ec3d1a
type nsplugin_tmp_t;
1ec3d1a
files_tmp_file(nsplugin_tmp_t)
1ec3d1a
1ec3d1a
type nsplugin_home_t;
1ec3d1a
files_poly_member(nsplugin_home_t)
1ec3d1a
userdom_user_home_content(nsplugin_home_t)
1ec3d1a
typealias nsplugin_home_t alias user_nsplugin_home_t;
1ec3d1a
1ec3d1a
type nsplugin_t;
1ec3d1a
application_domain(nsplugin_t, nsplugin_exec_t)
1ec3d1a
1ec3d1a
type nsplugin_config_t;
1ec3d1a
domain_type(nsplugin_config_t)
1ec3d1a
domain_entry_file(nsplugin_config_t, nsplugin_config_exec_t)
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
1ec3d1a
# nsplugin local policy
1ec3d1a
#
1ec3d1a
dontaudit nsplugin_t self:capability { sys_nice sys_tty_config };
1ec3d1a
allow nsplugin_t self:fifo_file rw_file_perms;
1ec3d1a
allow nsplugin_t self:process { setpgid getsched setsched signal_perms };
1ec3d1a
1ec3d1a
allow nsplugin_t self:sem create_sem_perms;
1ec3d1a
allow nsplugin_t self:shm create_shm_perms;
1ec3d1a
allow nsplugin_t self:msgq create_msgq_perms;
1ec3d1a
allow nsplugin_t self:netlink_kobject_uevent_socket create_socket_perms;
1ec3d1a
allow nsplugin_t self:unix_stream_socket { connectto create_stream_socket_perms };
1ec3d1a
allow nsplugin_t self:unix_dgram_socket { sendto create_socket_perms };
1ec3d1a
allow nsplugin_t self:tcp_socket create_stream_socket_perms;
1ec3d1a
allow nsplugin_t nsplugin_rw_t:dir list_dir_perms;
1ec3d1a
read_lnk_files_pattern(nsplugin_t, nsplugin_rw_t, nsplugin_rw_t)
1ec3d1a
read_files_pattern(nsplugin_t, nsplugin_rw_t, nsplugin_rw_t)
1ec3d1a
b28be49
tunable_policy(`nsplugin_execmem',`
1ec3d1a
	allow nsplugin_t self:process { execstack execmem };
1ec3d1a
	allow nsplugin_config_t self:process { execstack execmem };
1ec3d1a
')
1ec3d1a
	
1ec3d1a
tunable_policy(`nsplugin_can_network',`
1ec3d1a
	corenet_tcp_connect_all_unreserved_ports(nsplugin_t)
1ec3d1a
	corenet_tcp_connect_all_ephemeral_ports(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
manage_dirs_pattern(nsplugin_t, nsplugin_home_t, nsplugin_home_t)
1ec3d1a
exec_files_pattern(nsplugin_t, nsplugin_home_t, nsplugin_home_t)
1ec3d1a
manage_files_pattern(nsplugin_t, nsplugin_home_t, nsplugin_home_t)
1ec3d1a
manage_fifo_files_pattern(nsplugin_t, nsplugin_home_t, nsplugin_home_t)
1ec3d1a
manage_sock_files_pattern(nsplugin_t, nsplugin_home_t, nsplugin_home_t)
1ec3d1a
manage_lnk_files_pattern(nsplugin_t, nsplugin_home_t, nsplugin_home_t)
1ec3d1a
userdom_user_home_dir_filetrans(nsplugin_t, nsplugin_home_t, {file dir})
1ec3d1a
userdom_user_home_content_filetrans(nsplugin_t, nsplugin_home_t, {file dir})
1ec3d1a
userdom_dontaudit_getattr_user_home_content(nsplugin_t)
1ec3d1a
userdom_dontaudit_search_user_bin_dirs(nsplugin_t)
1ec3d1a
userdom_dontaudit_write_user_home_content_files(nsplugin_t)
1ec3d1a
userdom_dontaudit_search_admin_dir(nsplugin_t)
1ec3d1a
1ec3d1a
corecmd_exec_bin(nsplugin_t)
1ec3d1a
corecmd_exec_shell(nsplugin_t)
1ec3d1a
1ec3d1a
corenet_all_recvfrom_netlabel(nsplugin_t)
1ec3d1a
corenet_tcp_connect_flash_port(nsplugin_t)
1f86dac
corenet_tcp_connect_ms_streaming_port(nsplugin_t)
1f86dac
corenet_tcp_connect_rtsp_port(nsplugin_t)
1ec3d1a
corenet_tcp_connect_pulseaudio_port(nsplugin_t)
1ec3d1a
corenet_tcp_connect_http_port(nsplugin_t)
1ec3d1a
corenet_tcp_connect_http_cache_port(nsplugin_t)
1ec3d1a
corenet_tcp_connect_squid_port(nsplugin_t)
1ec3d1a
corenet_tcp_sendrecv_generic_if(nsplugin_t)
1ec3d1a
corenet_tcp_sendrecv_generic_node(nsplugin_t)
1ec3d1a
corenet_tcp_connect_ipp_port(nsplugin_t)
1ec3d1a
corenet_tcp_connect_speech_port(nsplugin_t)
1ec3d1a
1ec3d1a
domain_dontaudit_read_all_domains_state(nsplugin_t)
1ec3d1a
1ec3d1a
dev_read_urand(nsplugin_t)
1ec3d1a
dev_read_rand(nsplugin_t)
1ec3d1a
dev_read_sound(nsplugin_t)
1ec3d1a
dev_write_sound(nsplugin_t)
1ec3d1a
dev_read_video_dev(nsplugin_t)
1ec3d1a
dev_write_video_dev(nsplugin_t)
1ec3d1a
dev_getattr_dri_dev(nsplugin_t)
1ec3d1a
dev_getattr_mouse_dev(nsplugin_t)
1ec3d1a
dev_rwx_zero(nsplugin_t)
1ec3d1a
dev_read_sysfs(nsplugin_t)
1ec3d1a
dev_dontaudit_getattr_all(nsplugin_t)
1ec3d1a
1ec3d1a
kernel_read_kernel_sysctls(nsplugin_t)
1ec3d1a
kernel_read_system_state(nsplugin_t)
1ec3d1a
kernel_read_network_state(nsplugin_t)
1ec3d1a
1ec3d1a
files_dontaudit_getattr_lost_found_dirs(nsplugin_t)
1ec3d1a
files_dontaudit_list_home(nsplugin_t)
1ec3d1a
files_read_config_files(nsplugin_t)
1ec3d1a
1ec3d1a
fs_getattr_tmpfs(nsplugin_t)
1ec3d1a
fs_getattr_xattr_fs(nsplugin_t)
1ec3d1a
fs_search_auto_mountpoints(nsplugin_t)
1ec3d1a
fs_rw_anon_inodefs_files(nsplugin_t)
1ec3d1a
fs_list_inotifyfs(nsplugin_t)
1ec3d1a
fs_dontaudit_list_fusefs(nsplugin_t)
1ec3d1a
1ec3d1a
storage_dontaudit_getattr_fixed_disk_dev(nsplugin_t)
1ec3d1a
storage_dontaudit_getattr_removable_dev(nsplugin_t)
1ec3d1a
1ec3d1a
term_dontaudit_getattr_all_ptys(nsplugin_t)
1ec3d1a
term_dontaudit_getattr_all_ttys(nsplugin_t)
1ec3d1a
1ec3d1a
auth_use_nsswitch(nsplugin_t)
1ec3d1a
1ec3d1a
libs_exec_ld_so(nsplugin_t)
1ec3d1a
1ec3d1a
miscfiles_read_fonts(nsplugin_t)
1ec3d1a
miscfiles_dontaudit_write_fonts(nsplugin_t)
1ec3d1a
miscfiles_setattr_fonts_cache_dirs(nsplugin_t)
1ec3d1a
1ec3d1a
userdom_manage_user_tmp_dirs(nsplugin_t)
1ec3d1a
userdom_manage_user_tmp_files(nsplugin_t)
1ec3d1a
userdom_manage_user_tmp_sockets(nsplugin_t)
1ec3d1a
userdom_tmp_filetrans_user_tmp(nsplugin_t, { file dir sock_file })
1ec3d1a
userdom_rw_semaphores(nsplugin_t)
1ec3d1a
userdom_dontaudit_rw_user_tmp_pipes(nsplugin_t)
1ec3d1a
1ec3d1a
userdom_read_user_home_content_symlinks(nsplugin_t)
1ec3d1a
userdom_read_user_home_content_files(nsplugin_t)
1ec3d1a
userdom_read_user_tmp_files(nsplugin_t)
1ec3d1a
userdom_write_user_tmp_sockets(nsplugin_t)
1ec3d1a
userdom_dontaudit_append_user_home_content_files(nsplugin_t)
1ec3d1a
userdom_read_home_audio_files(nsplugin_t)
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	alsa_read_rw_config(nsplugin_t)
1ec3d1a
	alsa_read_home_files(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	chrome_dontaudit_sandbox_leaks(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	cups_stream_connect(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	dbus_session_bus_client(nsplugin_t)
1ec3d1a
	dbus_connect_session_bus(nsplugin_t)
1ec3d1a
	dbus_system_bus_client(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	gnome_exec_gconf(nsplugin_t)
1ec3d1a
	gnome_manage_config(nsplugin_t)
1ec3d1a
	gnome_read_gconf_home_files(nsplugin_t)
1ec3d1a
	gnome_read_usr_config(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	gpm_getattr_gpmctl(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	mozilla_exec_user_home_files(nsplugin_t)
1ec3d1a
	mozilla_read_user_home_files(nsplugin_t)
1ec3d1a
	mozilla_write_user_home_files(nsplugin_t)
1ec3d1a
	mozilla_plugin_delete_tmpfs_files(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	mplayer_exec(nsplugin_t)
1ec3d1a
	mplayer_read_user_home_files(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	sandbox_read_tmpfs_files(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	gen_require(`
1ec3d1a
		type user_tmpfs_t;
1ec3d1a
	')
1ec3d1a
	xserver_user_x_domain_template(nsplugin, nsplugin_t, user_tmpfs_t)
1ec3d1a
	xserver_rw_shm(nsplugin_t)
1ec3d1a
	xserver_read_xdm_pid(nsplugin_t)
1ec3d1a
	xserver_read_xdm_tmp_files(nsplugin_t)
1ec3d1a
	xserver_read_user_xauth(nsplugin_t)
1ec3d1a
	xserver_read_user_iceauth(nsplugin_t)
1ec3d1a
	xserver_use_user_fonts(nsplugin_t)
1ec3d1a
	xserver_rw_inherited_user_fonts(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
1ec3d1a
# nsplugin_config local policy
1ec3d1a
#
1ec3d1a
1ec3d1a
allow nsplugin_config_t self:capability { dac_override dac_read_search sys_nice setuid setgid };
1ec3d1a
allow nsplugin_config_t self:process { setsched signal_perms getsched execmem };
1ec3d1a
#execing pulseaudio
1ec3d1a
dontaudit nsplugin_t self:process { getcap setcap };
1ec3d1a
1ec3d1a
allow nsplugin_config_t self:fifo_file rw_file_perms;
1ec3d1a
allow nsplugin_config_t self:unix_stream_socket create_stream_socket_perms;
1ec3d1a
1ec3d1a
dev_search_sysfs(nsplugin_config_t)
1ec3d1a
dev_read_urand(nsplugin_config_t)
1ec3d1a
dev_dontaudit_read_rand(nsplugin_config_t)
1ec3d1a
dev_dontaudit_rw_dri(nsplugin_config_t)
1ec3d1a
1ec3d1a
fs_search_auto_mountpoints(nsplugin_config_t)
1ec3d1a
fs_list_inotifyfs(nsplugin_config_t)
1ec3d1a
1ec3d1a
can_exec(nsplugin_config_t, nsplugin_rw_t)
1ec3d1a
manage_dirs_pattern(nsplugin_config_t, nsplugin_rw_t, nsplugin_rw_t)
1ec3d1a
manage_files_pattern(nsplugin_config_t, nsplugin_rw_t, nsplugin_rw_t)
1ec3d1a
manage_lnk_files_pattern(nsplugin_config_t, nsplugin_rw_t, nsplugin_rw_t)
1ec3d1a
1ec3d1a
manage_dirs_pattern(nsplugin_config_t, nsplugin_home_t, nsplugin_home_t)
1ec3d1a
manage_files_pattern(nsplugin_config_t, nsplugin_home_t, nsplugin_home_t)
1ec3d1a
manage_lnk_files_pattern(nsplugin_config_t, nsplugin_home_t, nsplugin_home_t)
1ec3d1a
1ec3d1a
corecmd_exec_bin(nsplugin_config_t)
1ec3d1a
corecmd_exec_shell(nsplugin_config_t)
1ec3d1a
1ec3d1a
kernel_read_system_state(nsplugin_config_t)
1ec3d1a
kernel_request_load_module(nsplugin_config_t)
1ec3d1a
1ec3d1a
domain_use_interactive_fds(nsplugin_config_t)
1ec3d1a
1ec3d1a
files_dontaudit_search_home(nsplugin_config_t)
1ec3d1a
files_list_tmp(nsplugin_config_t)
1ec3d1a
1ec3d1a
auth_use_nsswitch(nsplugin_config_t)
1ec3d1a
1ec3d1a
miscfiles_read_fonts(nsplugin_config_t)
1ec3d1a
1ec3d1a
userdom_search_user_home_content(nsplugin_config_t)
1ec3d1a
userdom_read_user_home_content_symlinks(nsplugin_config_t)
1ec3d1a
userdom_read_user_home_content_files(nsplugin_config_t)
1ec3d1a
userdom_dontaudit_search_admin_dir(nsplugin_config_t)
1ec3d1a
1ec3d1a
tunable_policy(`use_nfs_home_dirs',`
1ec3d1a
	fs_getattr_nfs(nsplugin_t)
1ec3d1a
	fs_manage_nfs_dirs(nsplugin_t)
1ec3d1a
	fs_manage_nfs_files(nsplugin_t)
1ec3d1a
	fs_manage_nfs_symlinks(nsplugin_t)
1ec3d1a
	fs_manage_nfs_named_pipes(nsplugin_t)
1ec3d1a
	fs_manage_nfs_dirs(nsplugin_config_t)
1ec3d1a
	fs_manage_nfs_files(nsplugin_config_t)
1ec3d1a
	fs_manage_nfs_named_pipes(nsplugin_config_t)
1ec3d1a
	fs_manage_nfs_symlinks(nsplugin_config_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
tunable_policy(`use_samba_home_dirs',`
1ec3d1a
	fs_getattr_cifs(nsplugin_t)
1ec3d1a
	fs_manage_cifs_dirs(nsplugin_t)
1ec3d1a
	fs_manage_cifs_files(nsplugin_t)
1ec3d1a
	fs_manage_cifs_symlinks(nsplugin_t)
1ec3d1a
	fs_manage_cifs_named_pipes(nsplugin_t)
1ec3d1a
	fs_manage_cifs_dirs(nsplugin_config_t)
1ec3d1a
	fs_manage_cifs_files(nsplugin_config_t)
1ec3d1a
	fs_manage_cifs_named_pipes(nsplugin_config_t)
1ec3d1a
	fs_manage_cifs_symlinks(nsplugin_config_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
domtrans_pattern(nsplugin_config_t, nsplugin_exec_t, nsplugin_t)
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	xserver_use_user_fonts(nsplugin_config_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	mozilla_read_user_home_files(nsplugin_config_t)
1ec3d1a
	mozilla_write_user_home_files(nsplugin_config_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
application_signull(nsplugin_t)
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	devicekit_dbus_chat_power(nsplugin_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	pulseaudio_exec(nsplugin_t)
1ec3d1a
	pulseaudio_stream_connect(nsplugin_t)
1ec3d1a
	pulseaudio_manage_home_files(nsplugin_t)
1ec3d1a
	pulseaudio_setattr_home_dir(nsplugin_t)
1ec3d1a
')