Chris PeBenito 79cde3
## <summary>
Chris PeBenito 79cde3
##	SMB and CIFS client/server programs for UNIX and
Chris PeBenito 79cde3
##	name  Service  Switch  daemon for resolving names
Chris PeBenito 79cde3
##	from Windows NT servers.
Chris PeBenito 79cde3
## </summary>
Chris PeBenito 84c922
Chris PeBenito 84c922
#######################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	The per user domain template for the samba module.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <desc>
Chris PeBenito 84c922
##	

Chris PeBenito 84c922
##	This template allows smbd to manage files in
Chris PeBenito 84c922
##	a user home directory, creating files with the
Chris PeBenito 84c922
##	correct type.
Chris PeBenito 84c922
##	

Chris PeBenito 84c922
##	

Chris PeBenito 84c922
##	This template is invoked automatically for each user, and
Chris PeBenito 84c922
##	generally does not need to be invoked directly
Chris PeBenito 84c922
##	by policy writers.
Chris PeBenito 84c922
##	

Chris PeBenito 84c922
## </desc>
Chris PeBenito 84c922
## <param name="userdomain_prefix">
Chris PeBenito 84c922
##	The prefix of the user domain (e.g., user
Chris PeBenito 84c922
##	is the prefix for user_t).
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
template(`samba_per_userdomain_template',`
Chris PeBenito a996bd
	gen_require(`
Chris PeBenito a996bd
		type smbd_t;
Chris PeBenito 84c922
	')
Chris PeBenito a996bd
Chris PeBenito 671673
	tunable_policy(`samba_enable_home_dirs',`
Chris PeBenito 671673
		userdom_manage_user_home_subdir_files($1,smbd_t)
Chris PeBenito 671673
		userdom_manage_user_home_subdir_symlinks($1,smbd_t)
Chris PeBenito 671673
		userdom_manage_user_home_subdir_sockets($1,smbd_t)
Chris PeBenito 671673
		userdom_manage_user_home_subdir_pipes($1,smbd_t)
Chris PeBenito 671673
		userdom_create_user_home($1,smbd_t,{ dir file lnk_file sock_file fifo_file })
Chris PeBenito 671673
	')
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	Execute samba net in the samba_net domain.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	The type of the process performing this action.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_domtrans_net',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type samba_net_t, samba_net_exec_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	corecmd_search_bin($1)
Chris PeBenito 84c922
	domain_auto_trans($1,samba_net_exec_t,samba_net_t)
Chris PeBenito 84c922
Chris PeBenito 84c922
	allow $1 samba_net_t:fd use;
Chris PeBenito 84c922
	allow samba_net_t $1:fd use;
Chris PeBenito 84c922
	allow samba_net_t $1:fifo_file rw_file_perms;
Chris PeBenito 84c922
	allow samba_net_t $1:process sigchld;
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	Execute samba net in the samba_net domain, and
Chris PeBenito 84c922
##	allow the specified role the samba_net domain.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	The type of the process performing this action.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
## <param name="role">
Chris PeBenito 84c922
##	The role to be allowed the samba_net domain.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
## <param name="terminal">
Chris PeBenito 84c922
##	The type of the terminal allow the samba_net domain to use.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_run_net',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type samba_net_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	samba_domtrans_net($1)
Chris PeBenito 84c922
	role $2 types samba_net_t;
Chris PeBenito 84c922
	allow samba_net_t $3:chr_file rw_term_perms;
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	Execute smbmount in the smbmount domain.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	The type of the process performing this action.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_domtrans_smbmount',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type smbmount_t, smbmount_exec_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	corecmd_search_bin($1)
Chris PeBenito 84c922
	domain_auto_trans($1,smbmount_exec_t,smbmount_t)
Chris PeBenito 84c922
Chris PeBenito 84c922
	allow $1 smbmount_t:fd use;
Chris PeBenito 84c922
	allow smbmount_t $1:fd use;
Chris PeBenito 84c922
	allow smbmount_t $1:fifo_file rw_file_perms;
Chris PeBenito 84c922
	allow smbmount_t $1:process sigchld;
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	Allow the specified domain to read
Chris PeBenito 84c922
##	samba configuration files.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	Domain allowed access.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_read_config',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type samba_etc_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	files_search_etc($1)
Chris PeBenito 84c922
	allow $1 samba_etc_t:file { read getattr lock };
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	Allow the specified domain to read
Chris PeBenito 84c922
##	and write samba configuration files.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	Domain allowed access.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_rw_config',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type samba_etc_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	files_search_etc($1)
Chris PeBenito 84c922
	allow $1 samba_etc_t:file rw_file_perms;
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	Allow the specified domain to read samba's log files.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	Domain allowed access.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_read_log',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type samba_log_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	logging_search_logs($1)
Chris PeBenito bf080a
	allow $1 samba_log_t:dir r_dir_perms;
Chris PeBenito 84c922
	allow $1 samba_log_t:file { read getattr lock };
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	Execute samba log in the caller domain.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	The type of the process performing this action.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_exec_log',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type samba_log_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	logging_search_logs($1)
Chris PeBenito 84c922
	can_exec($1,samba_log_t)
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	Allow the specified domain to read samba's secrets.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	Domain allowed access.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_read_secrets',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type samba_secrets_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	files_search_etc($1)
Chris PeBenito 84c922
	allow $1 samba_secrets_t:file { read getattr lock };
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 725926
##	Allow the specified domain to search
Chris PeBenito 725926
##	samba /var directories.
Chris PeBenito 725926
## </summary>
Chris PeBenito 725926
## <param name="domain">
Chris PeBenito 725926
##	Domain allowed access.
Chris PeBenito 725926
## </param>
Chris PeBenito 725926
#
Chris PeBenito 725926
interface(`samba_search_var',`
Chris PeBenito 725926
	gen_require(`
Chris PeBenito 725926
		type samba_var_t;
Chris PeBenito 725926
	')
Chris PeBenito 725926
Chris PeBenito 725926
	files_search_var($1)
Chris PeBenito 725926
	allow $1 samba_var_t:dir search_dir_perms;
Chris PeBenito 725926
')
Chris PeBenito 725926
Chris PeBenito 725926
########################################
Chris PeBenito 725926
## <summary>
Chris PeBenito 9fd4b8
##	Allow the specified domain to
Chris PeBenito 9fd4b8
##	read and write samba /var files.
Chris PeBenito 9fd4b8
## </summary>
Chris PeBenito 9fd4b8
## <param name="domain">
Chris PeBenito 9fd4b8
##	Domain allowed access.
Chris PeBenito 9fd4b8
## </param>
Chris PeBenito 9fd4b8
#
Chris PeBenito 9fd4b8
interface(`samba_rw_var_files',`
Chris PeBenito 9fd4b8
	gen_require(`
Chris PeBenito 9fd4b8
		type samba_var_t;
Chris PeBenito 9fd4b8
	')
Chris PeBenito 9fd4b8
Chris PeBenito 9fd4b8
	files_search_var($1)
Chris PeBenito 9fd4b8
	allow $1 samba_var_t:dir search_dir_perms;
Chris PeBenito 9fd4b8
	allow $1 samba_var_t:file rw_file_perms;
Chris PeBenito 9fd4b8
')
Chris PeBenito 9fd4b8
Chris PeBenito 9fd4b8
########################################
Chris PeBenito 9fd4b8
## <summary>
Chris PeBenito 84c922
##	Allow the specified domain to write to smbmount tcp sockets.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	Domain allowed access.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_write_smbmount_tcp_socket',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type smbmount_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	allow $1 smbmount_t:tcp_socket write;
Chris PeBenito 84c922
')
Chris PeBenito 84c922
Chris PeBenito 84c922
########################################
Chris PeBenito 84c922
## <summary>
Chris PeBenito 84c922
##	Allow the specified domain to read and write to smbmount tcp sockets.
Chris PeBenito 84c922
## </summary>
Chris PeBenito 84c922
## <param name="domain">
Chris PeBenito 84c922
##	Domain allowed access.
Chris PeBenito 84c922
## </param>
Chris PeBenito 84c922
#
Chris PeBenito 84c922
interface(`samba_rw_smbmount_tcp_socket',`
Chris PeBenito 84c922
	gen_require(`
Chris PeBenito 84c922
		type smbmount_t;
Chris PeBenito 84c922
	')
Chris PeBenito 84c922
Chris PeBenito 84c922
	allow $1 smbmount_t:tcp_socket { read write };
Chris PeBenito 84c922
')
Chris PeBenito 79cde3
Chris PeBenito 79cde3
########################################
Chris PeBenito 79cde3
## <summary>
Chris PeBenito 79cde3
##	Execute winbind_helper in the winbind_helper domain.
Chris PeBenito 79cde3
## </summary>
Chris PeBenito 79cde3
## <param name="domain">
Chris PeBenito 79cde3
##	The type of the process performing this action.
Chris PeBenito 79cde3
## </param>
Chris PeBenito 79cde3
#
Chris PeBenito 79cde3
interface(`samba_domtrans_winbind_helper',`
Chris PeBenito 79cde3
	gen_require(`
Chris PeBenito 79cde3
		type winbind_helper_t, winbind_helper_exec_t;
Chris PeBenito 79cde3
	')
Chris PeBenito 79cde3
Chris PeBenito 79cde3
	domain_auto_trans($1,winbind_helper_exec_t,winbind_helper_t)
Chris PeBenito 79cde3
Chris PeBenito 79cde3
	allow $1 winbind_helper_t:fd use;
Chris PeBenito 79cde3
	allow winbind_helper_t $1:fd use;
Chris PeBenito 79cde3
	allow winbind_helper_t $1:fifo_file rw_file_perms;
Chris PeBenito 79cde3
	allow winbind_helper_t $1:process sigchld;
Chris PeBenito 79cde3
')
Chris PeBenito 79cde3
Chris PeBenito 79cde3
########################################
Chris PeBenito 79cde3
## <summary>
Chris PeBenito 79cde3
##	Execute winbind_helper in the winbind_helper domain, and
Chris PeBenito 79cde3
##	allow the specified role the winbind_helper domain.
Chris PeBenito 79cde3
## </summary>
Chris PeBenito 79cde3
## <param name="domain">
Chris PeBenito 79cde3
##	The type of the process performing this action.
Chris PeBenito 79cde3
## </param>
Chris PeBenito 79cde3
## <param name="role">
Chris PeBenito 79cde3
##	The role to be allowed the winbind_helper domain.
Chris PeBenito 79cde3
## </param>
Chris PeBenito 79cde3
## <param name="terminal">
Chris PeBenito 79cde3
##	The type of the terminal allow the winbind_helper domain to use.
Chris PeBenito 79cde3
## </param>
Chris PeBenito 79cde3
#
Chris PeBenito 79cde3
interface(`samba_run_winbind_helper',`
Chris PeBenito 79cde3
	gen_require(`
Chris PeBenito 79cde3
		type winbind_helper_t;
Chris PeBenito 79cde3
	')
Chris PeBenito 79cde3
Chris PeBenito 79cde3
	samba_domtrans_winbind_helper($1)
Chris PeBenito 79cde3
	role $2 types winbind_helper_t;
Chris PeBenito 79cde3
	allow winbind_helper_t $3:chr_file rw_term_perms;
Chris PeBenito 79cde3
')
Chris PeBenito 79cde3
Chris PeBenito 79cde3
########################################
Chris PeBenito 79cde3
## <summary>
Chris PeBenito 79cde3
##	Allow the specified domain to read the winbind pid files.
Chris PeBenito 79cde3
## </summary>
Chris PeBenito 79cde3
## <param name="domain">
Chris PeBenito 79cde3
##	Domain allowed access.
Chris PeBenito 79cde3
## </param>
Chris PeBenito 79cde3
#
Chris PeBenito 79cde3
interface(`samba_read_winbind_pid',`
Chris PeBenito 79cde3
	gen_require(`
Chris PeBenito 79cde3
		type winbind_var_run_t;
Chris PeBenito 79cde3
	')
Chris PeBenito 79cde3
Chris PeBenito 79cde3
	files_search_pids($1)
Chris PeBenito 79cde3
	allow $1 winbind_var_run_t:file r_file_perms;
Chris PeBenito 79cde3
')
Chris PeBenito 79cde3
Chris PeBenito 79cde3
########################################
Chris PeBenito 79cde3
## <summary>
Chris PeBenito 30705b
##	Connect to winbind.
Chris PeBenito 30705b
## </summary>
Chris PeBenito 30705b
## <param name="domain">
Chris PeBenito 30705b
##	Domain allowed access.
Chris PeBenito 30705b
## </param>
Chris PeBenito 30705b
#
Chris PeBenito 30705b
interface(`samba_connect_winbind',`
Chris PeBenito 30705b
	gen_require(`
Chris PeBenito a77e65
		type samba_var_t, winbind_t, winbind_var_run_t;
Chris PeBenito 30705b
	')
Chris PeBenito 30705b
Chris PeBenito 30705b
	files_search_pids($1)
Chris PeBenito a77e65
	allow $1 samba_var_t:dir search_dir_perms;
Chris PeBenito 30705b
	allow $1 winbind_var_run_t:dir search_dir_perms;
Chris PeBenito ee64ef
	allow $1 winbind_var_run_t:sock_file { getattr read write };
Chris PeBenito 30705b
	allow $1 winbind_t:unix_stream_socket connectto;
Chris PeBenito 30705b
')