Dominick Grift 3768077
## <summary>SMB and CIFS client/server programs.</summary>
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute nmbd in the nmbd domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_domtrans_nmbd',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type nmbd_t, nmbd_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, nmbd_exec_t, nmbd_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
#######################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Send generic signals to nmbd.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_signal_nmbd',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type nmbd_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
	allow $1 nmbd_t:process signal;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift bdd7830
##	Connect to nmbd with a unix domain
Dominick Grift bdd7830
##	stream socket.
Dominick Grift bdd7830
## </summary>
Dominick Grift bdd7830
## <param name="domain">
Dominick Grift bdd7830
##	<summary>
Dominick Grift bdd7830
##	Domain allowed access.
Dominick Grift bdd7830
##	</summary>
Dominick Grift bdd7830
## </param>
Dominick Grift bdd7830
#
Dominick Grift bdd7830
interface(`samba_stream_connect_nmbd',`
Dominick Grift bdd7830
	gen_require(`
Dominick Grift 3768077
		type samba_var_t, nmbd_t, nmbd_var_run_t, smbd_var_run_t;
Dominick Grift bdd7830
	')
Dominick Grift bdd7830
Dominick Grift bdd7830
	files_search_pids($1)
Dominick Grift 3768077
	stream_connect_pattern($1, { smbd_var_run_t samba_var_t nmbd_var_run_t }, nmbd_var_run_t, nmbd_t)
Dominick Grift bdd7830
')
Dominick Grift bdd7830
Dominick Grift bdd7830
########################################
Dominick Grift bdd7830
## <summary>
Dominick Grift 3768077
##	Execute samba init scripts in
Dominick Grift 3768077
##	the init script domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_initrc_domtrans',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_initrc_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	init_labeled_script_domtrans($1, samba_initrc_exec_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute samba net in the samba net domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_domtrans_net',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_net_t, samba_net_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, samba_net_exec_t, samba_net_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute samba net in the samba net
Dominick Grift 3768077
##	domain, and allow the specified
Dominick Grift 3768077
##	role the samba net domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <param name="role">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Role allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_run_net',`
Chris PeBenito 9401ae1
	gen_require(`
Dominick Grift 3768077
		attribute_role samba_net_roles;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	samba_domtrans_net($1)
Dominick Grift 3768077
	roleattribute $2 samba_net_roles;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Chris PeBenito 9401ae1
##	Execute smbmount in the smbmount domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_domtrans_smbmount',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type smbmount_t, smbmount_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, smbmount_exec_t, smbmount_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute smbmount in the smbmount
Dominick Grift 3768077
##	domain, and allow the specified
Dominick Grift 3768077
##	role the smbmount domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <param name="role">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Role allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_run_smbmount',`
Chris PeBenito 9401ae1
	gen_require(`
Dominick Grift 3768077
		attribute_role smbmount_roles;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	samba_domtrans_smbmount($1)
Dominick Grift 3768077
	roleattribute $2 smbmount_roles;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Read samba configuration files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_read_config',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_etc_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_etc($1)
Chris PeBenito 9401ae1
	read_files_pattern($1, samba_etc_t, samba_etc_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Read and write samba configuration files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_rw_config',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_etc_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_etc($1)
Chris PeBenito 9401ae1
	rw_files_pattern($1, samba_etc_t, samba_etc_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Create, read, write, and delete
Dominick Grift 3768077
##	samba configuration files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_manage_config',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_etc_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_etc($1)
Chris PeBenito 9401ae1
	manage_dirs_pattern($1, samba_etc_t, samba_etc_t)
Chris PeBenito 9401ae1
	manage_files_pattern($1, samba_etc_t, samba_etc_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Read samba log files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_read_log',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_log_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	logging_search_logs($1)
Chris PeBenito 9401ae1
	allow $1 samba_log_t:dir list_dir_perms;
Chris PeBenito 9401ae1
	read_files_pattern($1, samba_log_t, samba_log_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Append to samba log files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_append_log',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_log_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	logging_search_logs($1)
Chris PeBenito 9401ae1
	allow $1 samba_log_t:dir list_dir_perms;
Chris PeBenito 9401ae1
	allow $1 samba_log_t:file append_file_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute samba log files in the caller domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_exec_log',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_log_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	logging_search_logs($1)
Chris PeBenito 9401ae1
	can_exec($1, samba_log_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Read samba secret files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_read_secrets',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_secrets_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_etc($1)
Chris PeBenito 9401ae1
	allow $1 samba_secrets_t:file read_file_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Read samba share files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_read_share_files',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_share_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	allow $1 samba_share_t:filesystem getattr;
Chris PeBenito 9401ae1
	read_files_pattern($1, samba_share_t, samba_share_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Search samba var directories.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_search_var',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_var_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_var_lib($1)
Chris PeBenito 9401ae1
	allow $1 samba_var_t:dir search_dir_perms;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Read samba var files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_read_var_files',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_var_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_var_lib($1)
Chris PeBenito 9401ae1
	read_files_pattern($1, samba_var_t, samba_var_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Do not audit attempts to write
Dominick Grift 3768077
##	samba var files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain to not audit.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_dontaudit_write_var_files',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_var_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	dontaudit $1 samba_var_t:file write;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Read and write samba var files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_rw_var_files',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_var_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_var_lib($1)
Chris PeBenito 9401ae1
	rw_files_pattern($1, samba_var_t, samba_var_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Create, read, write, and delete
Dominick Grift 3768077
##	samba var files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_manage_var_files',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type samba_var_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_var_lib($1)
Chris PeBenito 9401ae1
	manage_files_pattern($1, samba_var_t, samba_var_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute smbcontrol in the smbcontrol domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Dominick Grift 3768077
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Dominick Grift 3768077
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_domtrans_smbcontrol',`
Chris PeBenito 9401ae1
	gen_require(`
Dominick Grift 3768077
		type smbcontrol_t, smbcontrol_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift 3768077
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, smbcontrol_exec_t, smbcontrol_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute smbcontrol in the smbcontrol
Dominick Grift 3768077
##	domain, and allow the specified
Dominick Grift 3768077
##	role the smbcontrol domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <param name="role">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Role allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_run_smbcontrol',`
Chris PeBenito 9401ae1
	gen_require(`
Dominick Grift 3768077
		attribute_role smbcontrol_roles;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	samba_domtrans_smbcontrol($1)
Dominick Grift 3768077
	roleattribute $2 smbcontrol_roles;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute smbd in the smbd domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_domtrans_smbd',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type smbd_t, smbd_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, smbd_exec_t, smbd_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
######################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Send generic signals to smbd.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_signal_smbd',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type smbd_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
	allow $1 smbd_t:process signal;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Do not audit attempts to inherit
Dominick Grift 3768077
##	and use smbd file descriptors.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain to not audit.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_dontaudit_use_fds',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type smbd_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	dontaudit $1 smbd_t:fd use; 
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Write smbmount tcp sockets.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_write_smbmount_tcp_sockets',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type smbmount_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	allow $1 smbmount_t:tcp_socket write;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Read and write smbmount tcp sockets.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_rw_smbmount_tcp_sockets',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type smbmount_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	allow $1 smbmount_t:tcp_socket { read write };
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute winbind helper in the
Dominick Grift 3768077
##	winbind helper domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_domtrans_winbind_helper',`
Chris PeBenito 9401ae1
	gen_require(`
Chris PeBenito 9401ae1
		type winbind_helper_t, winbind_helper_exec_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift 3768077
	corecmd_search_bin($1)
Chris PeBenito 9401ae1
	domtrans_pattern($1, winbind_helper_exec_t, winbind_helper_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Dominick Grift 4de4e7e
#######################################
Dominick Grift 4de4e7e
## <summary>
Dominick Grift 4de4e7e
##	Get attributes of winbind executable files.
Dominick Grift 4de4e7e
## </summary>
Dominick Grift 4de4e7e
## <param name="domain">
Dominick Grift 4de4e7e
##	<summary>
Dominick Grift 4de4e7e
##	Domain allowed access.
Dominick Grift 4de4e7e
##	</summary>
Dominick Grift 4de4e7e
## </param>
Dominick Grift 4de4e7e
#
Dominick Grift 4de4e7e
interface(`samba_getattr_winbind_exec',`
Dominick Grift 4de4e7e
	gen_require(`
Dominick Grift 4de4e7e
		type winbind_exec_t;
Dominick Grift 4de4e7e
	')
Dominick Grift 4de4e7e
Dominick Grift 4de4e7e
	allow $1 winbind_exec_t:file getattr_file_perms;
Dominick Grift 4de4e7e
')
Dominick Grift 4de4e7e
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Execute winbind helper in the winbind
Dominick Grift 3768077
##	helper domain, and allow the specified
Dominick Grift 3768077
##	role the winbind helper domain.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed to transition.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <param name="role">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Role allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_run_winbind_helper',`
Chris PeBenito 9401ae1
	gen_require(`
Dominick Grift 3768077
		attribute_role winbind_helper_roles;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	samba_domtrans_winbind_helper($1)
Dominick Grift 3768077
	roleattribute $2 winbind_helper_roles;
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Read winbind pid files.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_read_winbind_pid',`
Chris PeBenito 9401ae1
	gen_require(`
Dominick Grift 3768077
		type winbind_var_run_t, smbd_var_run_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_pids($1)
Dominick Grift 3768077
	read_files_pattern($1, { smbd_var_run_t winbind_var_run_t }, winbind_var_run_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	Connect to winbind with a unix
Dominick Grift 3768077
##	domain stream socket.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_stream_connect_winbind',`
Chris PeBenito 9401ae1
	gen_require(`
Dominick Grift 3768077
		type samba_var_t, winbind_t, winbind_var_run_t, smbd_var_run_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_search_pids($1)
Dominick Grift 3768077
	stream_connect_pattern($1, { smbd_var_run_t samba_var_t winbind_var_run_t }, winbind_var_run_t, winbind_t)
Chris PeBenito 9401ae1
')
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
########################################
Chris PeBenito 9401ae1
## <summary>
Dominick Grift 3768077
##	All of the rules required to
Dominick Grift 3768077
##	administrate an samba environment.
Chris PeBenito 9401ae1
## </summary>
Chris PeBenito 9401ae1
## <param name="domain">
Chris PeBenito 9401ae1
##	<summary>
Chris PeBenito 9401ae1
##	Domain allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <param name="role">
Chris PeBenito 9401ae1
##	<summary>
Dominick Grift 3768077
##	Role allowed access.
Chris PeBenito 9401ae1
##	</summary>
Chris PeBenito 9401ae1
## </param>
Chris PeBenito 9401ae1
## <rolecap/>
Chris PeBenito 9401ae1
#
Chris PeBenito 9401ae1
interface(`samba_admin',`
Chris PeBenito 9401ae1
	gen_require(`
Dominick Grift 3768077
		type nmbd_t, nmbd_var_run_t, smbd_var_run_t;
Dominick Grift 3768077
		type smbd_t, smbd_tmp_t, smbd_spool_t;
Dominick Grift 3768077
		type samba_log_t, samba_var_t, samba_secrets_t;
Dominick Grift 3768077
		type samba_etc_t, samba_share_t, samba_initrc_exec_t;
Dominick Grift 3768077
		type swat_var_run_t, swat_tmp_t, winbind_log_t;
Chris PeBenito 9401ae1
		type winbind_var_run_t, winbind_tmp_t;
Chris PeBenito 9401ae1
	')
Chris PeBenito 9401ae1
Dominick Grift 3768077
	allow $1 { nmbd_t smbd_t }:process { ptrace signal_perms };
Dominick Grift 3768077
	ps_process_pattern($1, { nmbd_t smbd_t })
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	init_labeled_script_domtrans($1, samba_initrc_exec_t)
Chris PeBenito 9401ae1
	domain_system_change_exemption($1)
Chris PeBenito 9401ae1
	role_transition $2 samba_initrc_exec_t system_r;
Chris PeBenito 9401ae1
	allow $2 system_r;
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_list_etc($1)
Dominick Grift 3768077
	admin_pattern($1, samba_etc_t)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	logging_list_logs($1)
Dominick Grift 3768077
	admin_pattern($1, { samba_log_t winbind_log_t })
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_list_var($1)
Dominick Grift 3768077
	admin_pattern($1, { samba_share_t samba_var_t samba_secrets_t })
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_list_spool($1)
Dominick Grift 3768077
	admin_pattern($1, smbd_spool_t)
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_list_pids($1)
Dominick Grift 3768077
	admin_pattern($1, { winbind_var_run_t smbd_var_run_t swat_var_run_t nmbd_var_run_t })
Chris PeBenito 9401ae1
Chris PeBenito 9401ae1
	files_list_tmp($1)
Dominick Grift 3768077
	admin_pattern($1, { swat_tmp_t smbd_tmp_t winbind_tmp_t })
Chris PeBenito 9401ae1
Dominick Grift 3768077
	samba_run_smbcontrol($1, $2)
Dominick Grift 3768077
	samba_run_winbind_helper($1, $2)
Dominick Grift 3768077
	samba_run_smbmount($1, $2)
Dominick Grift 3768077
	samba_run_net($1, $2)
Chris PeBenito 9401ae1
')