selinux-refpolicy/policy/modules/services/automount.te
Chris PeBenito 1900668638 trunk: Unified labeled networking policy from Paul Moore.
The latest revision of the labeled policy patches which enable both labeled 
and unlabeled policy support for NetLabel.  This revision takes into account
Chris' feedback from the first version and reduces the number of interface
calls in each domain down to two at present: one for unlabeled access, one for
NetLabel access.  The older, transport layer specific interfaces, are still  
present for use by third-party modules but are not used in the default policy
modules.

trunk: Use netmsg initial SID for MLS-only Netlabel packets, from Paul Moore.

This patch changes the policy to use the netmsg initial SID as the "base"
SID/context for NetLabel packets which only have MLS security attributes.
Currently we use the unlabeled initial SID which makes it very difficult to
distinquish between actual unlabeled packets and those packets which have MLS
security attributes.
2007-06-27 15:23:21 +00:00

188 lines
5.4 KiB
Plaintext

policy_module(automount,1.5.1)
########################################
#
# Declarations
#
type automount_t;
type automount_exec_t;
init_daemon_domain(automount_t,automount_exec_t)
type automount_var_run_t;
files_pid_file(automount_var_run_t)
type automount_lock_t;
files_lock_file(automount_lock_t)
type automount_tmp_t;
files_tmp_file(automount_tmp_t)
files_mountpoint(automount_tmp_t)
########################################
#
# Local policy
#
allow automount_t self:capability { net_bind_service setgid setuid sys_nice sys_resource dac_override sys_admin };
dontaudit automount_t self:capability sys_tty_config;
allow automount_t self:process { signal_perms getpgid setpgid setsched setrlimit };
allow automount_t self:fifo_file rw_fifo_file_perms;
allow automount_t self:unix_stream_socket create_socket_perms;
allow automount_t self:unix_dgram_socket create_socket_perms;
allow automount_t self:tcp_socket create_stream_socket_perms;
allow automount_t self:udp_socket create_socket_perms;
allow automount_t self:rawip_socket create_socket_perms;
allow automount_t self:netlink_route_socket r_netlink_socket_perms;
can_exec(automount_t, automount_exec_t)
allow automount_t automount_lock_t:file manage_file_perms;
files_lock_filetrans(automount_t,automount_lock_t,file)
manage_dirs_pattern(automount_t,automount_tmp_t,automount_tmp_t)
manage_files_pattern(automount_t,automount_tmp_t,automount_tmp_t)
files_tmp_filetrans(automount_t, automount_tmp_t, { file dir })
# Allow automount to create and delete directories in / and /home
allow automount_t automount_tmp_t:dir manage_dir_perms;
files_home_filetrans(automount_t,automount_tmp_t,dir)
files_root_filetrans(automount_t,automount_tmp_t,dir)
manage_files_pattern(automount_t,automount_var_run_t,automount_var_run_t)
files_pid_filetrans(automount_t,automount_var_run_t,file)
kernel_read_kernel_sysctls(automount_t)
kernel_read_irq_sysctls(automount_t)
kernel_read_fs_sysctls(automount_t)
kernel_read_proc_symlinks(automount_t)
kernel_read_system_state(automount_t)
kernel_read_network_state(automount_t)
kernel_list_proc(automount_t)
kernel_dontaudit_search_xen_state(automount_t)
files_search_boot(automount_t)
# Automount is slowly adding all mount functionality internally
files_search_all(automount_t)
files_mounton_all_mountpoints(automount_t)
files_mount_all_file_type_fs(automount_t)
files_unmount_all_file_type_fs(automount_t)
fs_mount_all_fs(automount_t)
fs_unmount_all_fs(automount_t)
corecmd_exec_bin(automount_t)
corecmd_exec_shell(automount_t)
corenet_all_recvfrom_unlabeled(automount_t)
corenet_all_recvfrom_netlabel(automount_t)
corenet_tcp_sendrecv_generic_if(automount_t)
corenet_udp_sendrecv_generic_if(automount_t)
corenet_tcp_sendrecv_all_nodes(automount_t)
corenet_udp_sendrecv_all_nodes(automount_t)
corenet_tcp_sendrecv_all_ports(automount_t)
corenet_udp_sendrecv_all_ports(automount_t)
corenet_tcp_bind_all_nodes(automount_t)
corenet_udp_bind_all_nodes(automount_t)
corenet_tcp_connect_portmap_port(automount_t)
corenet_tcp_connect_all_ports(automount_t)
corenet_dontaudit_tcp_connect_all_reserved_ports(automount_t)
corenet_sendrecv_all_client_packets(automount_t)
# Automount execs showmount when you browse /net. This is required until
# Someone writes a showmount policy
corenet_tcp_bind_reserved_port(automount_t)
corenet_tcp_bind_all_rpc_ports(automount_t)
corenet_udp_bind_reserved_port(automount_t)
corenet_udp_bind_all_rpc_ports(automount_t)
dev_read_sysfs(automount_t)
# for SSP
dev_read_urand(automount_t)
domain_use_interactive_fds(automount_t)
domain_dontaudit_read_all_domains_state(automount_t)
files_dontaudit_write_var_dirs(automount_t)
files_getattr_all_dirs(automount_t)
files_list_mnt(automount_t)
files_getattr_home_dir(automount_t)
files_read_etc_files(automount_t)
files_read_etc_runtime_files(automount_t)
# for if the mount point is not labelled
files_getattr_isid_type_dirs(automount_t)
files_getattr_default_dirs(automount_t)
# because config files can be shell scripts
files_exec_etc_files(automount_t)
files_mounton_mnt(automount_t)
fs_getattr_all_fs(automount_t)
fs_getattr_all_dirs(automount_t)
fs_search_auto_mountpoints(automount_t)
fs_manage_auto_mountpoints(automount_t)
fs_unmount_autofs(automount_t)
fs_mount_autofs(automount_t)
fs_manage_autofs_symlinks(automount_t)
term_dontaudit_getattr_pty_dirs(automount_t)
libs_use_ld_so(automount_t)
libs_use_shared_libs(automount_t)
logging_send_syslog_msg(automount_t)
logging_search_logs(automount_t)
miscfiles_read_localization(automount_t)
miscfiles_read_certs(automount_t)
# Run mount in the mount_t domain.
mount_domtrans(automount_t)
sysnet_dns_name_resolve(automount_t)
sysnet_use_ldap(automount_t)
sysnet_read_config(automount_t)
userdom_dontaudit_use_unpriv_user_fds(automount_t)
userdom_dontaudit_search_sysadm_home_dirs(automount_t)
ifdef(`targeted_policy', `
files_dontaudit_read_root_files(automount_t)
term_dontaudit_use_unallocated_ttys(automount_t)
term_dontaudit_use_generic_ptys(automount_t)
')
optional_policy(`
corecmd_exec_bin(automount_t)
')
optional_policy(`
bind_search_cache(automount_t)
')
optional_policy(`
fstools_domtrans(automount_t)
')
optional_policy(`
kerberos_read_keytab(automount_t)
kerberos_read_config(automount_t)
kerberos_dontaudit_write_config(automount_t)
')
optional_policy(`
nis_use_ypbind(automount_t)
')
optional_policy(`
rpc_search_nfs_state_data(automount_t)
')
optional_policy(`
seutil_sigchld_newrole(automount_t)
')
optional_policy(`
udev_read_db(automount_t)
')