1ec3d1a
policy_module(logrotate, 1.14.0)
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
1ec3d1a
# Declarations
1ec3d1a
#
1ec3d1a
1ec3d1a
type logrotate_t;
1ec3d1a
domain_type(logrotate_t)
1ec3d1a
domain_obj_id_change_exemption(logrotate_t)
1ec3d1a
domain_system_change_exemption(logrotate_t)
1ec3d1a
role system_r types logrotate_t;
1ec3d1a
1ec3d1a
type logrotate_exec_t;
1ec3d1a
domain_entry_file(logrotate_t, logrotate_exec_t)
1ec3d1a
1ec3d1a
type logrotate_lock_t;
1ec3d1a
files_lock_file(logrotate_lock_t)
1ec3d1a
1ec3d1a
type logrotate_tmp_t;
1ec3d1a
files_tmp_file(logrotate_tmp_t)
1ec3d1a
1ec3d1a
type logrotate_var_lib_t;
1ec3d1a
files_type(logrotate_var_lib_t)
1ec3d1a
1ec3d1a
########################################
1ec3d1a
#
1ec3d1a
# Local policy
1ec3d1a
#
1ec3d1a
1ec3d1a
# Change ownership on log files.
dd1bb72
allow logrotate_t self:capability { chown dac_override dac_read_search kill fsetid fowner setuid setgid sys_resource sys_nice sys_ptrace };
9fc4c03
dontaudit logrotate_t self:capability sys_resource;
1ec3d1a
1ec3d1a
allow logrotate_t self:process ~{ ptrace setcurrent setexec setfscreate setrlimit execmem execstack execheap };
1ec3d1a
1ec3d1a
# Set a context other than the default one for newly created files.
1ec3d1a
allow logrotate_t self:process setfscreate;
1ec3d1a
1ec3d1a
allow logrotate_t self:fd use;
1ec3d1a
allow logrotate_t self:key manage_key_perms;
1ec3d1a
allow logrotate_t self:fifo_file rw_fifo_file_perms;
1ec3d1a
allow logrotate_t self:unix_dgram_socket create_socket_perms;
1ec3d1a
allow logrotate_t self:unix_stream_socket create_stream_socket_perms;
1ec3d1a
allow logrotate_t self:unix_dgram_socket sendto;
1ec3d1a
allow logrotate_t self:unix_stream_socket connectto;
1ec3d1a
allow logrotate_t self:shm create_shm_perms;
1ec3d1a
allow logrotate_t self:sem create_sem_perms;
1ec3d1a
allow logrotate_t self:msgq create_msgq_perms;
1ec3d1a
allow logrotate_t self:msg { send receive };
1ec3d1a
1ec3d1a
allow logrotate_t logrotate_lock_t:file manage_file_perms;
1ec3d1a
files_lock_filetrans(logrotate_t, logrotate_lock_t, file)
1ec3d1a
1ec3d1a
can_exec(logrotate_t, logrotate_tmp_t)
1ec3d1a
1ec3d1a
manage_dirs_pattern(logrotate_t, logrotate_tmp_t, logrotate_tmp_t)
1ec3d1a
manage_files_pattern(logrotate_t, logrotate_tmp_t, logrotate_tmp_t)
1ec3d1a
files_tmp_filetrans(logrotate_t, logrotate_tmp_t, { file dir })
1ec3d1a
1ec3d1a
# for /var/lib/logrotate.status and /var/lib/logcheck
1ec3d1a
create_dirs_pattern(logrotate_t, logrotate_var_lib_t, logrotate_var_lib_t)
1ec3d1a
manage_files_pattern(logrotate_t, logrotate_var_lib_t, logrotate_var_lib_t)
1ec3d1a
read_lnk_files_pattern(logrotate_t, logrotate_var_lib_t, logrotate_var_lib_t)
1ec3d1a
files_var_lib_filetrans(logrotate_t, logrotate_var_lib_t, file)
1ec3d1a
1ec3d1a
kernel_read_system_state(logrotate_t)
1ec3d1a
kernel_read_kernel_sysctls(logrotate_t)
1ec3d1a
1ec3d1a
dev_read_urand(logrotate_t)
1ec3d1a
1ec3d1a
fs_search_auto_mountpoints(logrotate_t)
1ec3d1a
fs_getattr_xattr_fs(logrotate_t)
1ec3d1a
fs_list_inotifyfs(logrotate_t)
1ec3d1a
1ec3d1a
mls_file_read_all_levels(logrotate_t)
1ec3d1a
mls_file_write_all_levels(logrotate_t)
1ec3d1a
mls_file_upgrade(logrotate_t)
1ec3d1a
mls_process_write_to_clearance(logrotate_t)
1ec3d1a
1ec3d1a
selinux_get_fs_mount(logrotate_t)
1ec3d1a
selinux_get_enforce_mode(logrotate_t)
1ec3d1a
1ec3d1a
auth_manage_login_records(logrotate_t)
1ec3d1a
auth_use_nsswitch(logrotate_t)
1ec3d1a
1ec3d1a
# Run helper programs.
1ec3d1a
corecmd_exec_bin(logrotate_t)
1ec3d1a
corecmd_exec_shell(logrotate_t)
1ec3d1a
corecmd_getattr_all_executables(logrotate_t)
1ec3d1a
1ec3d1a
domain_signal_all_domains(logrotate_t)
1ec3d1a
domain_use_interactive_fds(logrotate_t)
1ec3d1a
domain_getattr_all_entry_files(logrotate_t)
1ec3d1a
# Read /proc/PID directories for all domains.
1ec3d1a
domain_read_all_domains_state(logrotate_t)
1ec3d1a
1ec3d1a
files_read_etc_runtime_files(logrotate_t)
1ec3d1a
files_read_all_pids(logrotate_t)
1ec3d1a
files_search_all(logrotate_t)
1ec3d1a
files_read_var_lib_files(logrotate_t)
1ec3d1a
# Write to /var/spool/slrnpull - should be moved into its own type.
1ec3d1a
files_manage_generic_spool(logrotate_t)
1ec3d1a
files_manage_generic_spool_dirs(logrotate_t)
1ec3d1a
files_getattr_generic_locks(logrotate_t)
1ec3d1a
files_dontaudit_list_mnt(logrotate_t)
1ec3d1a
1ec3d1a
# cjp: why is this needed?
1ec3d1a
init_domtrans_script(logrotate_t)
1ec3d1a
1ec3d1a
logging_manage_all_logs(logrotate_t)
1ec3d1a
logging_send_syslog_msg(logrotate_t)
1ec3d1a
logging_send_audit_msgs(logrotate_t)
1ec3d1a
# cjp: why is this needed?
1ec3d1a
logging_exec_all_logs(logrotate_t)
1ec3d1a
1ec3d1a
systemd_exec_systemctl(logrotate_t)
65b3ac6
systemd_getattr_unit_files(logrotate_t)
8b069de
systemd_start_all_unit_files(logrotate_t)
d6eceb0
systemd_reload_all_services(logrotate_t)
4533232
systemd_status_all_unit_files(logrotate_t)
1ec3d1a
init_stream_connect(logrotate_t)
1ec3d1a
1ec3d1a
userdom_use_inherited_user_terminals(logrotate_t)
1ec3d1a
userdom_list_user_home_dirs(logrotate_t)
1ec3d1a
userdom_use_unpriv_users_fds(logrotate_t)
fc35ad0
userdom_list_admin_dir(logrotate_t)
1ec3d1a
userdom_dontaudit_getattr_user_home_content(logrotate_t)
1ec3d1a
1ec3d1a
ifdef(`distro_debian', `
1ec3d1a
	allow logrotate_t logrotate_tmp_t:file relabel_file_perms;
1ec3d1a
	# for savelog
1ec3d1a
	can_exec(logrotate_t, logrotate_exec_t)
1ec3d1a
1ec3d1a
	# for syslogd-listfiles
1ec3d1a
	logging_read_syslog_config(logrotate_t)
1ec3d1a
1ec3d1a
	# for "test -x /sbin/syslogd"
1ec3d1a
	logging_check_exec_syslog(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	abrt_manage_cache(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	acct_domtrans(logrotate_t)
1ec3d1a
	acct_manage_data(logrotate_t)
1ec3d1a
	acct_exec_data(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	apache_read_config(logrotate_t)
1ec3d1a
	apache_domtrans(logrotate_t)
1ec3d1a
	apache_signull(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	awstats_domtrans(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	asterisk_domtrans(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	bind_manage_cache(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	callweaver_exec(logrotate_t)
1ec3d1a
	callweaver_stream_connect(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	consoletype_exec(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	cron_system_entry(logrotate_t, logrotate_exec_t)
1ec3d1a
	cron_search_spool(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	cups_domtrans(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	fail2ban_stream_connect(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	hostname_exec(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	chronyd_read_keys(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	icecast_signal(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	mailman_domtrans(logrotate_t)
1ec3d1a
	mailman_search_data(logrotate_t)
1ec3d1a
	mailman_manage_log(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	munin_read_config(logrotate_t)
1ec3d1a
	munin_stream_connect(logrotate_t)
1ec3d1a
	munin_search_lib(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	mysql_read_home_content(logrotate_t)
1ec3d1a
	mysql_read_config(logrotate_t)
1ec3d1a
	mysql_search_db(logrotate_t)
1ec3d1a
	mysql_stream_connect(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	polipo_named_filetrans_log_files(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	psad_domtrans(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	samba_exec_log(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	sssd_domtrans(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	slrnpull_manage_spool(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
889a9bf
	openvswitch_read_pid_files(logrotate_t)
889a9bf
	openvswitch_domtrans(logrotate_t)
889a9bf
')
889a9bf
889a9bf
optional_policy(`
1ec3d1a
	squid_domtrans(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	#Red Hat bug 564565
1ec3d1a
	su_exec(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
optional_policy(`
1ec3d1a
	varnishd_manage_log(logrotate_t)
1ec3d1a
')
1ec3d1a
1ec3d1a
#######################################
1ec3d1a
#
1ec3d1a
# logrotate_mail local policy
1ec3d1a
#
1ec3d1a
1ec3d1a
mta_base_mail_template(logrotate)
1ec3d1a
mta_sendmail_domtrans(logrotate_t, logrotate_mail_t)
1ec3d1a
role system_r types logrotate_mail_t;
1ec3d1a
logging_read_all_logs(logrotate_mail_t)
1ec3d1a
manage_files_pattern(logrotate_mail_t, logrotate_tmp_t, logrotate_tmp_t)