.TH "selinux_file_context_verify" "3" "08 March 2011" "SELinux API documentation"
.SH "NAME"
selinux_file_context_verify \- Compare the SELinux security context on disk to the default security context required by the policy file contexts file
.
.SH "SYNOPSIS"
.B #include <selinux/selinux.h>
.sp
.BI "int selinux_file_context_verify(const char *" path ", mode_t " mode ");"
.
.SH "DESCRIPTION"
.BR selinux_file_context_verify ()
compares the context of the specified
.I path
that is held on disk (in the extended attribute), to the system default entry held in the file contexts series of files.
.sp
The
.I mode
may be zero.
.sp
Note that the two contexts are compared for "significant" differences (i.e. the user component of the contexts are ignored) as shown in the
.B EXAMPLE
section.
.
.SH "RETURN VALUE"
If the contexts significantly match, 1 (one) is returned.
.sp
If the contexts do not match 0 (zero) is returned and
.I errno
is set to either
.B ENOENT
or
.B EINVAL
for the reasons listed in the
.B ERRORS
section, or if
.I errno
= 0 then the contexts did not match.
.sp
On failure \-1 is returned and
.I errno
set appropriately.
.
.SH "ERRORS"
.TP
.B ENOTSUP
if extended attributes are not supported by the file system.
.TP
.B ENOENT
if there is no entry in the file contexts series of files or
.I path
does not exist.
.TP
.B EINVAL
if the entry in the file contexts series of files or
.I path
are invalid, or the returned context fails validation.
.TP
.B ENOMEM
if attempt to allocate memory failed.
.
.SH "FILES"
The following configuration files (the file contexts series of files) supporting the active policy will be used (should they exist) to determine the
.I path
default context:
.sp
.RS
.I contexts/files/file_contexts
- This file must exist.
.sp
.I contexts/files/file_contexts.local
- If exists has local customizations.
.sp
.I contexts/files/file_contexts.homedirs
- If exists has users home directory customizations.
.sp
.I contexts/files/file_contexts.subs
- If exists has substitutions that are then applied to the 'in memory' version of the file contexts files.
.RE
.
.SH "EXAMPLE"
If the files context is:
.RS
unconfined_u:object_r:admin_home_t:s0
.RE
.sp
and the default context defined in the file contexts file is:
.RS
system_u:object_r:admin_home_t:s0
.RE
.sp
then the actual strings compared are:
.RS
:object_r:admin_home_t:s0 and :object_r:admin_home_t:s0
.RE
.sp
Therefore they will match and
.BR selinux_file_context_verify ()
will return 1.
.
.SH "SEE ALSO"
.BR selinux "(8)"
