Blob Blame History Raw
#
# Specified domain transition patterns
#
define(`domain_transition_pattern',`
	allow $1 $2:file { getattr open read execute };
	allow $1 $3:process transition;
	dontaudit $1 $3:process { noatsecure siginh rlimitinh };
')

# compatibility:
define(`domain_trans',`domain_transition_pattern($*)')

define(`spec_domtrans_pattern',`
	allow $1 self:process setexec;
	domain_transition_pattern($1,$2,$3)

	allow $3 $1:fd use;
	allow $3 $1:fifo_file rw_inherited_fifo_file_perms;
	allow $3 $1:process sigchld;
')

#
# Automatic domain transition patterns
#
define(`domain_auto_transition_pattern',`
	domain_transition_pattern($1,$2,$3)
	type_transition $1 $2:process $3;
')

# compatibility:
define(`domain_auto_trans',`domain_auto_transition_pattern($*)')

define(`domtrans_pattern',`
	domain_auto_transition_pattern($1,$2,$3)

	allow $3 $1:fd use;
	allow $3 $1:fifo_file rw_inherited_fifo_file_perms;
	allow $3 $1:process sigchld;

	ifdef(`hide_broken_symptoms', `
		dontaudit $3 $1:socket_class_set { read write };
	')
')

#
# Dynamic transition pattern
#
define(`dyntrans_pattern',`
	allow $1 self:process setcurrent;
	allow $1 $2:process dyntransition;
	allow $2 $1:process sigchld;
')

#
# Other process permissions
#
define(`send_audit_msgs_pattern',`
	refpolicywarn(`$0($*) has been deprecated, please use logging_send_audit_msgs($1) instead.')
	allow $1 self:capability audit_write;
	allow $1 self:netlink_audit_socket { create_netlink_socket_perms nlmsg_relay };
')

define(`ps_process_pattern',`
	allow $1 $2:dir list_dir_perms;
	allow $1 $2:file read_file_perms;
	allow $1 $2:lnk_file read_lnk_file_perms;
	allow $1 $2:process getattr;
')