Chris PeBenito e9c6cd
## <summary>Generic unprivileged user role</summary>
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Change to the generic user role.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="prefix">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	The prefix of the user role (e.g., user
Chris PeBenito e9c6cd
##	is the prefix for user_r).
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
## <rolecap/>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
template(`unprivuser_role_change_template',`
Chris PeBenito e9c6cd
	userdom_role_change_template($1, user)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Change from the generic user role.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <desc>
Chris PeBenito e9c6cd
##	

Chris PeBenito e9c6cd
##	Change from the generic user role to
Chris PeBenito e9c6cd
##	the specified role.
Chris PeBenito e9c6cd
##	

Chris PeBenito e9c6cd
##	

Chris PeBenito e9c6cd
##	This is a template to support third party modules
Chris PeBenito e9c6cd
##	and its use is not allowed in upstream reference
Chris PeBenito e9c6cd
##	policy.
Chris PeBenito e9c6cd
##	

Chris PeBenito e9c6cd
## </desc>
Chris PeBenito e9c6cd
## <param name="prefix">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	The prefix of the user role (e.g., user
Chris PeBenito e9c6cd
##	is the prefix for user_r).
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
## <rolecap/>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
template(`unprivuser_role_change_to_template',`
Chris PeBenito e9c6cd
	userdom_role_change_template(user, $1)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Create generic user home directories
Chris PeBenito e9c6cd
##	with automatic file type transition.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_home_filetrans_home_dir',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito 0bfccd
	files_home_filetrans($1, user_home_dir_t, dir)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Search generic user home directories.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_search_home_dirs',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	allow $1 user_home_dir_t:dir search_dir_perms;
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Create objects in generic user home directories
Chris PeBenito e9c6cd
##	with automatic file type transition.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
## <param name="object_class">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	The class of the object to be created.
Chris PeBenito e9c6cd
##	If not specified, file is used.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_home_dir_filetrans_home_content',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t, user_home_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito 0bfccd
	filetrans_pattern($1, user_home_dir_t, user_home_t, $2)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Don't audit search on the user home subdirectory.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_dontaudit_search_home_dirs',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	dontaudit $1 user_home_t:dir search_dir_perms;
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito b81bfc
##	Create generic user home directories
Chris PeBenito b81bfc
## </summary>
Chris PeBenito b81bfc
## <param name="domain">
Chris PeBenito b81bfc
##	<summary>
Chris PeBenito b81bfc
##	Domain allowed access.
Chris PeBenito b81bfc
##	</summary>
Chris PeBenito b81bfc
## </param>
Chris PeBenito b81bfc
#
Chris PeBenito b81bfc
interface(`unprivuser_create_home_dir',`
Chris PeBenito b81bfc
	gen_require(`
Chris PeBenito b81bfc
		type user_home_dir_t;
Chris PeBenito b81bfc
	')
Chris PeBenito b81bfc
Chris PeBenito b81bfc
	files_search_home($1)
Chris PeBenito b81bfc
	allow $1 user_home_dir_t:dir create_dir_perms;
Chris PeBenito b81bfc
')
Chris PeBenito b81bfc
Chris PeBenito b81bfc
########################################
Chris PeBenito b81bfc
## <summary>
Chris PeBenito e9c6cd
##	Create, read, write, and delete generic user
Chris PeBenito e9c6cd
##	home directories.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_manage_home_dirs',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito e9c6cd
	allow $1 user_home_dir_t:dir manage_dir_perms;
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Create, read, write, and delete
Chris PeBenito e9c6cd
##	subdirectories of generic user
Chris PeBenito e9c6cd
##	home directories.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_manage_home_content_dirs',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t, user_home_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito 0bfccd
	manage_dirs_pattern($1, { user_home_dir_t user_home_t }, user_home_t)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Relabel to generic user home directories.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_relabelto_home_dirs',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito e9c6cd
	allow $1 user_home_dir_t:dir relabelto;
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Read files in generic user home directories.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_read_home_content_files',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_t, user_home_dir_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito e9c6cd
	allow $1 user_home_t:dir list_dir_perms;
Chris PeBenito 0bfccd
	read_files_pattern($1, { user_home_dir_t user_home_t }, user_home_t)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Mmap of generic user
Chris PeBenito e9c6cd
##	home files.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_mmap_home_content_files',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito e9c6cd
	allow $1 user_home_t:file execute;
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Create, read, write, and delete files
Chris PeBenito e9c6cd
##	in generic user home directories.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_manage_home_content_files',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t, user_home_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito 0bfccd
	manage_files_pattern($1, { user_home_dir_t user_home_t }, user_home_t)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Do not audit attempts to relabel generic user
Chris PeBenito e9c6cd
##	home files.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_dontaudit_relabel_home_content_files',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	dontaudit $1 user_home_t:file { relabelto relabelfrom };
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Create, read, write, and delete symbolic
Chris PeBenito e9c6cd
##	links in generic user home directories.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_manage_home_content_symlinks',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t, user_home_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito 0bfccd
	manage_lnk_files_pattern($1, { user_home_dir_t user_home_t }, user_home_t)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Create, read, write, and delete named
Chris PeBenito e9c6cd
##	pipes in generic user home directories.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_manage_home_content_pipes',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t, user_home_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito 0bfccd
	manage_fifo_files_pattern($1, { user_home_dir_t user_home_t }, user_home_t)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
########################################
Chris PeBenito e9c6cd
## <summary>
Chris PeBenito e9c6cd
##	Create, read, write, and delete named
Chris PeBenito e9c6cd
##	sockets in generic user home directories.
Chris PeBenito e9c6cd
## </summary>
Chris PeBenito e9c6cd
## <param name="domain">
Chris PeBenito e9c6cd
##	<summary>
Chris PeBenito e9c6cd
##	Domain allowed access.
Chris PeBenito e9c6cd
##	</summary>
Chris PeBenito e9c6cd
## </param>
Chris PeBenito e9c6cd
#
Chris PeBenito e9c6cd
interface(`unprivuser_manage_home_content_sockets',`
Chris PeBenito e9c6cd
	gen_require(`
Chris PeBenito e9c6cd
		type user_home_dir_t, user_home_t;
Chris PeBenito e9c6cd
	')
Chris PeBenito e9c6cd
Chris PeBenito e9c6cd
	files_search_home($1)
Chris PeBenito 0bfccd
	manage_sock_files_pattern($1, { user_home_dir_t user_home_t }, user_home_t)
Chris PeBenito e9c6cd
')
Chris PeBenito e9c6cd