1ec3d1a
## <summary>Policy for cdrecord</summary>
1ec3d1a
1ec3d1a
########################################
1ec3d1a
## <summary>
1ec3d1a
##	Role access for cdrecord
1ec3d1a
## </summary>
1ec3d1a
## <param name="role">
1ec3d1a
##	<summary>
1ec3d1a
##	Role allowed access
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
## <param name="domain">
1ec3d1a
##	<summary>
1ec3d1a
##	User domain for the role
1ec3d1a
##	</summary>
1ec3d1a
## </param>
1ec3d1a
#
1ec3d1a
interface(`cdrecord_role',`
1ec3d1a
	gen_require(`
1ec3d1a
		type cdrecord_t, cdrecord_exec_t;
1ec3d1a
	')
1ec3d1a
1ec3d1a
	role $1 types cdrecord_t;
1ec3d1a
1ec3d1a
	# Transition from the user domain to the derived domain.
1ec3d1a
	domtrans_pattern($2, cdrecord_exec_t, cdrecord_t)
1ec3d1a
1ec3d1a
	allow cdrecord_t $2:unix_stream_socket { getattr read write ioctl };
1ec3d1a
1ec3d1a
	# allow ps to show cdrecord and allow the user to kill it 
1ec3d1a
	ps_process_pattern($2, cdrecord_t)
1ec3d1a
	allow $2 cdrecord_t:process signal;
1ec3d1a
')