300 lines
7.3 KiB
Groff
300 lines
7.3 KiB
Groff
.TH "setfiles" "8" "10 June 2016" "" "SELinux User Command"
|
|
.SH "NAME"
|
|
setfiles \- set SELinux file security contexts.
|
|
|
|
.SH "SYNOPSIS"
|
|
.B setfiles
|
|
.RB [ \-c
|
|
.IR policy ]
|
|
.RB [ \-C ]
|
|
.RB [ \-d ]
|
|
.RB [ \-l ]
|
|
.RB [ \-m ]
|
|
.RB [ \-n ]
|
|
.RB [ \-e
|
|
.IR directory ]
|
|
.RB [ \-E ]
|
|
.RB [ \-p ]
|
|
.RB [ \-s ]
|
|
.RB [ \-v ]
|
|
.RB [ \-W ]
|
|
.RB [ \-F ]
|
|
.RB [ \-I | \-D ]
|
|
.RB [ \-T
|
|
.IR nthreads ]
|
|
.I spec_file
|
|
.IR pathname \ ...
|
|
|
|
.SH "DESCRIPTION"
|
|
This manual page describes the
|
|
.BR setfiles
|
|
program.
|
|
.P
|
|
This program is primarily used to initialize the security context
|
|
fields (extended attributes) on one or more filesystems (or parts of
|
|
them). Usually it is initially run as part of the SELinux installation
|
|
process (a step commonly known as labeling).
|
|
.P
|
|
It can also be run at any other time to correct inconsistent labels, to add
|
|
support for newly-installed policy or, by using the
|
|
.B \-n
|
|
option, to passively
|
|
check whether the file contexts are all set as specified by the active policy
|
|
(default behavior) or by some other policy (see the
|
|
.B \-c
|
|
option).
|
|
.P
|
|
If a file object does not have a context,
|
|
.B setfiles
|
|
will write the default
|
|
context to the file object's extended attributes. If a file object has a
|
|
context,
|
|
.B setfiles
|
|
will only modify the type portion of the security context.
|
|
The
|
|
.B \-F
|
|
option will force a replacement of the entire context.
|
|
.SH "OPTIONS"
|
|
.TP
|
|
.B \-c
|
|
check the validity of the contexts against the specified binary policy.
|
|
.TP
|
|
.B \-C
|
|
If only relabeling errors are encountered during the file tree walks,
|
|
exit with status
|
|
.B 1
|
|
rather than
|
|
.BR 255 .
|
|
.TP
|
|
.B \-d
|
|
show what specification matched each file.
|
|
.TP
|
|
.BI \-e \ directory
|
|
directory to exclude (repeat option for more than one directory).
|
|
.TP
|
|
.BI \-E
|
|
treat conflicting specifications as errors, such as where two hardlinks for
|
|
the same inode have different contexts.
|
|
.TP
|
|
.BI \-f \ infilename
|
|
.I infilename
|
|
contains a list of files to be processed. Use
|
|
.RB \*(lq \- \*(rq
|
|
for
|
|
.BR stdin .
|
|
.TP
|
|
.B \-F
|
|
Force reset of context to match file_context for customizable files, and the
|
|
default file context, changing the user, role, range portion as well as the
|
|
type.
|
|
.TP
|
|
.B \-h, \-?
|
|
display usage information and exit.
|
|
.TP
|
|
.B \-i
|
|
ignore files that do not exist.
|
|
.TP
|
|
.B \-I
|
|
ignore digest to force checking of labels even if the stored SHA1 digest
|
|
matches the specfiles SHA1 digest. The digest will then be updated provided
|
|
there are no errors. See the
|
|
.B NOTES
|
|
section for further details.
|
|
.TP
|
|
.B \-D
|
|
Set or update any directory SHA1 digests. Use this option to
|
|
enable usage of the
|
|
.IR security.sehash
|
|
extended attribute.
|
|
.TP
|
|
.B \-l
|
|
log changes in file labels to syslog.
|
|
.TP
|
|
.B \-m
|
|
do not read
|
|
.B /proc/mounts
|
|
to obtain a list of non-seclabel mounts to be excluded from relabeling checks.
|
|
Setting this option is useful where there is a non-seclabel fs mounted with a
|
|
seclabel fs mounted on a directory below this.
|
|
.TP
|
|
.B \-n
|
|
don't change any file labels (passive check).
|
|
.TP
|
|
.BI \-o \ outfilename
|
|
Deprecated - This option is no longer supported.
|
|
.TP
|
|
.B \-p
|
|
show progress by printing the number of files in 1k blocks unless relabeling the entire
|
|
OS, that will then show the approximate percentage complete. Note that the
|
|
.B \-p
|
|
and
|
|
.B \-v
|
|
options are mutually exclusive.
|
|
.TP
|
|
.B \-q
|
|
Deprecated and replaced by \fB\-v\fR. Has no effect on other options or on program behavior.
|
|
.TP
|
|
.BI \-r \ rootpath
|
|
use an alternate root path. Used in meta-selinux for OpenEmbedded/Yocto builds
|
|
to label files under
|
|
.I rootpath
|
|
as if they were at
|
|
.B /
|
|
.TP
|
|
.B \-s
|
|
take a list of files from standard input instead of using a pathname from the
|
|
command line (equivalent to
|
|
.RB \*(lq "\-f \-" \*(rq
|
|
).
|
|
.TP
|
|
.B \-v
|
|
show changes in file labels and output any inode association parameters.
|
|
Note that the
|
|
.B \-v
|
|
and
|
|
.B \-p
|
|
options are mutually exclusive.
|
|
.TP
|
|
.B \-W
|
|
display warnings about entries that had no matching files by outputting the
|
|
.BR selabel_stats (3)
|
|
results.
|
|
.TP
|
|
.B \-0
|
|
the separator for the input items is assumed to be the null character
|
|
(instead of the white space). The quotes and the backslash characters are
|
|
also treated as normal characters that can form valid input.
|
|
This option finally also disables the end of file string, which is treated
|
|
like any other argument. Useful when input items might contain white space,
|
|
quote marks or backslashes. The
|
|
.B -print0
|
|
option of GNU
|
|
.B find
|
|
produces input suitable for this mode.
|
|
.TP
|
|
.BI \-T \ nthreads
|
|
use up to
|
|
.I nthreads
|
|
threads. Specify 0 to create as many threads as there are available
|
|
CPU cores; 1 to use only a single thread (default); or any positive
|
|
number to use the given number of threads (if possible).
|
|
|
|
.SH "ARGUMENTS"
|
|
.TP
|
|
.I spec_file
|
|
The specification file which contains lines of the following form:
|
|
.sp
|
|
.RS
|
|
.I regexp
|
|
.RI [ type ]
|
|
.IR context \ |
|
|
.B <<none>>
|
|
.RS
|
|
The regular expression is anchored at both ends. The optional
|
|
.I type
|
|
field specifies the file type as shown in the mode field by the
|
|
.BR ls (1)
|
|
program, e.g.
|
|
.B \-\-
|
|
to match only regular files or
|
|
.B \-d
|
|
to match only
|
|
directories. The
|
|
.I context
|
|
can be an ordinary security context or the
|
|
string
|
|
.B <<none>>
|
|
to specify that the file is not to have its context
|
|
changed.
|
|
.br
|
|
The last matching specification is used. If there are multiple hard
|
|
links to a file that match different specifications and those
|
|
specifications indicate different security contexts, then a warning is
|
|
displayed but the file is still labeled based on the last matching
|
|
specification other than
|
|
.BR <<none>> \|.
|
|
.RE
|
|
.RE
|
|
.TP
|
|
.IR pathname \ ...
|
|
The pathname for the root directory of each file system to be relabeled
|
|
or a specific directory within a filesystem that should be recursively
|
|
descended and relabeled or the pathname of a file that should be
|
|
relabeled.
|
|
Not used if the
|
|
.B \-f
|
|
or the
|
|
.B \-s
|
|
option is used.
|
|
|
|
.SH "EXIT STATUS"
|
|
.B setfiles
|
|
exits with status
|
|
.B 0
|
|
if it encounters no errors. Fatal errors result in status
|
|
.BR 255 .
|
|
Labeling errors encountered during file tree walk(s) result in status
|
|
.B 1
|
|
if the
|
|
.B -C
|
|
option is specified and no other kind of error is encountered, and in status
|
|
.B 255
|
|
otherwise.
|
|
|
|
.SH "NOTES"
|
|
.IP "1." 4
|
|
.B setfiles
|
|
operates recursively on directories. Paths leading up the final
|
|
component of the file(s) are not canonicalized before labeling.
|
|
.IP "2." 4
|
|
If the
|
|
.I pathname
|
|
specifies the root directory and the
|
|
.B \-v
|
|
option is set and the audit system is running, then an audit event is
|
|
automatically logged stating that a "mass relabel" took place using the
|
|
message label
|
|
.BR FS_RELABEL .
|
|
.IP "3." 4
|
|
To improve performance when relabeling file systems recursively
|
|
the
|
|
.B \-D
|
|
option to
|
|
.B setfiles
|
|
will cause it to store a SHA1 digest of the
|
|
.B spec_file
|
|
set in an extended attribute named
|
|
.IR security.sehash
|
|
on each directory specified in
|
|
.IR pathname \ ...
|
|
once the relabeling has been completed successfully. These digests will be
|
|
checked should
|
|
.B setfiles
|
|
.B \-D
|
|
be rerun
|
|
with the same
|
|
.I spec_file
|
|
and
|
|
.I pathname
|
|
parameters. See
|
|
.BR selinux_restorecon (3)
|
|
for further details.
|
|
.sp
|
|
The
|
|
.B \-I
|
|
option will ignore the SHA1 digest from each directory specified in
|
|
.IR pathname \ ...
|
|
and provided the
|
|
.B \-n
|
|
option is NOT set, files will be relabeled as required with the digests then
|
|
being updated provided there are no errors.
|
|
|
|
.SH "AUTHOR"
|
|
This man page was written by Russell Coker <russell@coker.com.au>.
|
|
The program was written by Stephen Smalley <sds@tycho.nsa.gov>
|
|
|
|
.SH "SEE ALSO"
|
|
.BR restorecon (8),
|
|
.BR load_policy (8),
|
|
.BR checkpolicy (8)
|