.TH "selinux_binary_policy_path" "3" "15 November 2004" "dwalsh@redhat.com" "SELinux API Documentation"
.SH "NAME"
selinux_path, selinux_policy_root, selinux_binary_policy_path, selinux_current_policy_path,
selinux_failsafe_context_path, selinux_removable_context_path,
selinux_default_context_path, selinux_user_contexts_path,
selinux_file_context_path, selinux_media_context_path,
selinux_contexts_path, selinux_booleans_path \- These functions return the paths to the active SELinux policy configuration
directories and files
.
.SH "SYNOPSIS"
.B #include <selinux/selinux.h>
.sp

.B const char *selinux_path(void);
.sp
.B const char *selinux_policy_root(void);
.sp
.B const char *selinux_binary_policy_path(void);
.sp
.B const char *selinux_current_policy_path(void);
.sp
.B const char *selinux_failsafe_context_path(void);
.sp
.B const char *selinux_removable_context_path(void);
.sp
.B const char *selinux_default_context_path(void);
.sp
.B const char *selinux_user_contexts_path(void);
.sp
.B const char *selinux_usersconf_path(void);
.sp
.B const char *selinux_x_context_path(void);
.sp
.B const char *selinux_sepgsql_context_path(void);
.sp
.B const char *selinux_file_context_path(void);
.sp
.B const char *selinux_media_context_path(void);
.sp
.B const char *selinux_securetty_types_path(void);
.sp
.B const char *selinux_contexts_path(void);
.sp
.B const char *selinux_booleans_path(void);
.
.SH "DESCRIPTION"
These functions return the paths to the active policy configuration
directories and files based on the settings in
.IR /etc/selinux/config .
.sp
.BR selinux_path ()
returns the top-level SELinux configuration directory.
.sp
.BR selinux_policy_root ()
returns the top-level policy directory.
.sp
.BR selinux_binary_policy_path ()
returns the binary policy file loaded into kernel.
.sp
.BR selinux_current_policy_path ()
returns the currently loaded policy file from the kernel.
.sp
.BR selinux_default_type_path ()
returns the context file mapping roles to default types.
.sp
.BR selinux_failsafe_context_path ()
returns the failsafe context for emergency logins.
.sp
.BR selinux_removable_context_path ()
returns the filesystem context for removable media.
.sp
.BR selinux_default_context_path ()
returns the system-wide default contexts for user sessions.
.sp
.BR selinux_user_contexts_path ()
returns the directory containing per-user default contexts.
.sp
.BR selinux_usersconf_path ()
returns the file containing mapping between Linux Users and SELinux users.
.sp
.BR selinux_x_context_path ()
returns the file containing configuration for XSELinux extension.
.sp
.BR selinux_sepgsql_context_path ()
returns the file containing configuration for SE-PostgreSQL.
.sp
.BR selinux_netfilter_context_path ()
returns the default netfilter context.
.sp
.BR selinux_file_context_path ()
returns the default system file contexts configuration.
.sp
.BR selinux_file_context_local_path ()
returns the local customization file contexts configuration.
.sp
.BR selinux_file_context_homedir_path ()
returns the home directory file contexts configuration.
.sp
.BR selinux_media_context_path ()
returns the file contexts for media device nodes.
.sp
.BR selinux_contexts_path ()
returns the directory containing all of the context configuration files.
.sp
.BR selinux_securetty_types_path ()
returns the defines tty types for newrole securettys.
.sp
.BR selinux_booleans_path ()
returns the initial policy boolean settings.
.
.SH AUTHOR
This manual page was written by Dan Walsh <dwalsh@redhat.com>.
.
.SH "SEE ALSO"
.BR selinux "(8)"
