selinux-policy/policy/modules/services/apm.te
Dominick Grift 9a0f7994cb Whitespace, newline and tab fixes.
Whitespace, newline and tab fixes.

Whitespace, newline and tab fixes.

Whitespace, newline and tab fixes.

Whitespace, newline and tab fixes.

Whitespace, newline and tab fixes.

Whitespace, newline and tab fixes.
2010-09-22 15:35:31 +02:00

244 lines
5.4 KiB
Plaintext

policy_module(apm, 1.11.0)
########################################
#
# Declarations
#
type apmd_t;
type apmd_exec_t;
init_daemon_domain(apmd_t, apmd_exec_t)
type apm_t;
type apm_exec_t;
application_domain(apm_t, apm_exec_t)
role system_r types apm_t;
type apmd_log_t;
logging_log_file(apmd_log_t)
type apmd_tmp_t;
files_tmp_file(apmd_tmp_t)
type apmd_var_run_t;
files_pid_file(apmd_var_run_t)
ifdef(`distro_redhat',`
type apmd_lock_t;
files_lock_file(apmd_lock_t)
')
ifdef(`distro_suse',`
type apmd_var_lib_t;
files_type(apmd_var_lib_t)
')
########################################
#
# apm client Local policy
#
allow apm_t self:capability { dac_override sys_admin };
kernel_read_system_state(apm_t)
dev_rw_apm_bios(apm_t)
fs_getattr_xattr_fs(apm_t)
term_use_all_terms(apm_t)
domain_use_interactive_fds(apm_t)
logging_send_syslog_msg(apm_t)
########################################
#
# apm daemon Local policy
#
# mknod: controlling an orderly resume of PCMCIA requires creating device
# nodes 254,{0,1,2} for some reason.
allow apmd_t self:capability { sys_admin sys_nice sys_time kill mknod };
dontaudit apmd_t self:capability { setuid dac_override dac_read_search sys_ptrace sys_tty_config };
allow apmd_t self:process { signal_perms getsession };
allow apmd_t self:fifo_file rw_fifo_file_perms;
allow apmd_t self:netlink_socket create_socket_perms;
allow apmd_t self:unix_dgram_socket create_socket_perms;
allow apmd_t self:unix_stream_socket create_stream_socket_perms;
allow apmd_t apmd_log_t:file manage_file_perms;
logging_log_filetrans(apmd_t, apmd_log_t, file)
manage_dirs_pattern(apmd_t, apmd_tmp_t, apmd_tmp_t)
manage_files_pattern(apmd_t, apmd_tmp_t, apmd_tmp_t)
files_tmp_filetrans(apmd_t, apmd_tmp_t, { file dir })
manage_files_pattern(apmd_t, apmd_var_run_t, apmd_var_run_t)
manage_sock_files_pattern(apmd_t, apmd_var_run_t, apmd_var_run_t)
files_pid_filetrans(apmd_t, apmd_var_run_t, { file sock_file })
kernel_read_kernel_sysctls(apmd_t)
kernel_rw_all_sysctls(apmd_t)
kernel_read_system_state(apmd_t)
kernel_write_proc_files(apmd_t)
dev_read_input(apmd_t)
dev_read_realtime_clock(apmd_t)
dev_read_urand(apmd_t)
dev_rw_apm_bios(apmd_t)
dev_rw_sysfs(apmd_t)
dev_dontaudit_getattr_all_chr_files(apmd_t) # Excessive?
dev_dontaudit_getattr_all_blk_files(apmd_t) # Excessive?
fs_dontaudit_list_tmpfs(apmd_t)
fs_getattr_all_fs(apmd_t)
fs_search_auto_mountpoints(apmd_t)
fs_dontaudit_getattr_all_files(apmd_t) # Excessive?
fs_dontaudit_getattr_all_symlinks(apmd_t) # Excessive?
fs_dontaudit_getattr_all_pipes(apmd_t) # Excessive?
fs_dontaudit_getattr_all_sockets(apmd_t) # Excessive?
selinux_search_fs(apmd_t)
corecmd_exec_all_executables(apmd_t)
domain_read_all_domains_state(apmd_t)
domain_dontaudit_ptrace_all_domains(apmd_t)
domain_use_interactive_fds(apmd_t)
domain_dontaudit_getattr_all_sockets(apmd_t)
domain_dontaudit_getattr_all_key_sockets(apmd_t) # Excessive?
domain_dontaudit_list_all_domains_state(apmd_t) # Excessive?
files_exec_etc_files(apmd_t)
files_read_etc_runtime_files(apmd_t)
files_dontaudit_getattr_all_files(apmd_t) # Excessive?
files_dontaudit_getattr_all_symlinks(apmd_t) # Excessive?
files_dontaudit_getattr_all_pipes(apmd_t) # Excessive?
files_dontaudit_getattr_all_sockets(apmd_t) # Excessive?
init_domtrans_script(apmd_t)
init_rw_utmp(apmd_t)
init_telinit(apmd_t)
libs_exec_ld_so(apmd_t)
libs_exec_lib_files(apmd_t)
logging_send_syslog_msg(apmd_t)
logging_send_audit_msgs(apmd_t)
miscfiles_read_localization(apmd_t)
miscfiles_read_hwdata(apmd_t)
modutils_domtrans_insmod(apmd_t)
modutils_read_module_config(apmd_t)
seutil_dontaudit_read_config(apmd_t)
userdom_dontaudit_use_unpriv_user_fds(apmd_t)
userdom_dontaudit_search_user_home_dirs(apmd_t)
userdom_dontaudit_search_user_home_content(apmd_t) # Excessive?
ifdef(`distro_redhat',`
allow apmd_t apmd_lock_t:file manage_file_perms;
files_lock_filetrans(apmd_t, apmd_lock_t, file)
can_exec(apmd_t, apmd_var_run_t)
optional_policy(`
fstools_domtrans(apmd_t)
')
optional_policy(`
iptables_domtrans(apmd_t)
')
optional_policy(`
netutils_domtrans(apmd_t)
')
# ifconfig_exec_t needs to be run in its own domain for Red Hat
optional_policy(`
sssd_search_lib(apmd_t)
')
optional_policy(`
sysnet_domtrans_ifconfig(apmd_t)
')
',`
# for ifconfig which is run all the time
kernel_dontaudit_search_sysctl(apmd_t)
')
ifdef(`distro_suse',`
manage_dirs_pattern(apmd_t, apmd_var_lib_t, apmd_var_lib_t)
manage_files_pattern(apmd_t, apmd_var_lib_t, apmd_var_lib_t)
files_var_lib_filetrans(apmd_t, apmd_var_lib_t, file)
')
optional_policy(`
automount_domtrans(apmd_t)
')
optional_policy(`
clock_domtrans(apmd_t)
clock_rw_adjtime(apmd_t)
')
optional_policy(`
cron_system_entry(apmd_t, apmd_exec_t)
cron_anacron_domtrans_system_job(apmd_t)
')
optional_policy(`
dbus_system_bus_client(apmd_t)
optional_policy(`
consolekit_dbus_chat(apmd_t)
')
optional_policy(`
networkmanager_dbus_chat(apmd_t)
')
')
optional_policy(`
logrotate_use_fds(apmd_t)
')
optional_policy(`
mta_send_mail(apmd_t)
')
optional_policy(`
nscd_socket_use(apmd_t)
')
optional_policy(`
pcmcia_domtrans_cardmgr(apmd_t)
pcmcia_domtrans_cardctl(apmd_t)
')
optional_policy(`
seutil_sigchld_newrole(apmd_t)
')
optional_policy(`
udev_read_db(apmd_t)
udev_read_state(apmd_t) #necessary?
')
optional_policy(`
unconfined_domain(apmd_t)
')
optional_policy(`
vbetool_domtrans(apmd_t)
')
# cjp: related to sleep/resume (?)
optional_policy(`
xserver_domtrans(apmd_t)
')