policy_module(dmesg, 1.0)
########################################
#
# Declarations
#
ifdef(`targeted_policy',`
# for compatibility with strict:
corecmd_bin_alias(dmesg_exec_t)
',`
type dmesg_t;
type dmesg_exec_t;
init_system_domain(dmesg_t,dmesg_exec_t)
role system_r types dmesg_t;
')
########################################
#
# Local policy
#
ifdef(`targeted_policy',`
# dmesg domain disabled in targeted policy
',`
allow dmesg_t self:capability sys_admin;
dontaudit dmesg_t self:capability sys_tty_config;
allow dmesg_t self:process signal_perms;
kernel_read_kernel_sysctl(dmesg_t)
kernel_read_ring_buffer(dmesg_t)
kernel_clear_ring_buffer(dmesg_t)
kernel_change_ring_buffer_level(dmesg_t)
kernel_list_proc(dmesg_t)
kernel_read_proc_symlinks(dmesg_t)
dev_read_sysfs(dmesg_t)
fs_search_auto_mountpoints(dmesg_t)
term_dontaudit_use_console(dmesg_t)
domain_use_wide_inherit_fd(dmesg_t)
files_list_etc(dmesg_t)
# for when /usr is not mounted:
files_dontaudit_search_isid_type_dir(dmesg_t)
init_use_fd(dmesg_t)
init_use_script_pty(dmesg_t)
libs_use_ld_so(dmesg_t)
libs_use_shared_libs(dmesg_t)
logging_send_syslog_msg(dmesg_t)
logging_write_generic_logs(dmesg_t)
miscfiles_read_localization(dmesg_t)
userdom_use_sysadm_terms(dmesg_t)
userdom_dontaudit_use_unpriv_user_fd(dmesg_t)
optional_policy(`selinuxutil.te',`
seutil_sigchld_newrole(dmesg_t)
')
optional_policy(`udev.te', `
udev_read_db(dmesg_t)
')
ifdef(`TODO',`
optional_policy(`rhgb.te',`
rhgb_domain(dmesg_t)
')
') dnl endif TODO
')