You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" Author: Eamon Walsh (ewalsh@tycho.nsa.gov) 2007
.TH "selabel_file" "5" "01 декабря 2011" "Security Enhanced Linux" "Документация API SELinux"
.SH "ИМЯ"
selabel_file \- интерфейс проставления меток SELinux в пространстве пользователя и формат файла конфигурации для внутренней службы контекстов файлов
.
.SH "ОБЗОР"
.B #include <selinux/label.h>
.sp
.BI "int selabel_lookup(struct selabel_handle *" hnd ,
.in +\w'int selabel_lookup('u
.BI "char **" context ,
.br
.BI "const char *" path ", int " mode ");"
.in
.sp
.BI "int selabel_lookup_raw(struct selabel_handle *" hnd ,
.in +\w'int selabel_lookup('u
.BI "char **" context ,
.br
.BI "const char *" path ", int " mode ");"
.
.SH "ОПИСАНИЕ"
Внутренняя служба контекстов файлов сопоставляет сочетания 'путь/режим' с контекстами безопасности. Это действие служит для нахождения правильного контекста для каждого файла при повторном проставлении меток в файловой системе. Необходимо освободить возвращённый \fIcontext\fR с помощью \fBfreecon\fR(3).
.br
\fBselabel_lookup\fR(3) описывает функцию с её возвращаемыми значениями и кодами ошибок. Тем не менее, далее приводится более подробное описание следующих значений \fIerrno\fR для внутренней службы контекстов файлов:
.RS
.TP
.B ENOENT
Не найден контекст, соответствующий \fIpath\fR и \fImode\fR, - это сообщение будет возвращено и в том случае, если серия файлов контекстов файлов имеет контекст \fB<<none>>\fR относительно \fIpath\fR (см. раздел \fBФОРМАТ ФАЙЛА\fR).
.RE
.sp
Аргумент \fIpath\fR должен быть установлен в полный путь к файлу, назначенный контекст которого проверяется. Аргумент \fImode\fR должен быть установлен в биты режима файла, как определено \fBlstat\fR(2). Аргумент \fImode\fR может быть нулевым, но в этом случае, возможно, не удастся установить полное соответствие.
.sp
Все сообщения, созданные с помощью \fBselabel_lookup\fR(3), по умолчанию отправляются в \fIstderr\fR. Это поведение можно изменить с помощью \fBselinux_set_callback\fR(3).
.sp
.BR selabel_lookup_raw (3)
работает аналогично \fBselabel_lookup\fR(3), но не выполняет преобразование контекста.
.sp
В разделе \fBФАЙЛЫ\fR приводится описание файлов конфигурации, которые используются для определения контекста файла.
.
.SH "ПАРАМЕТРЫ"
Помимо глобальных параметров, описание которых приведено в
.BR selabel_open (3),
эта внутренняя служба распознаёт следующие параметры:
.RS
.TP
.B SELABEL_OPT_PATH
Значение этого параметра, отличное от null, определяет путь к файлу, который будет открыт вместо стандартного файла контекстов файлов. Это значение также используется как базовое имя для определения имён локальных файлов настройки.
.TP
.B SELABEL_OPT_BASEONLY
Отличное от null значение этого параметра означает, что любую локальную настройку сопоставления контекста файла следует игнорировать.
.TP
.B SELABEL_OPT_SUBSET
Отличное от null значение этого параметра интерпретируется как префикс пути, например, "/etc". Будут загружены только те спецификации контекстов файлов, первый компонент которых совпадает с указанным префиксом. Это может ускорить выполнение поиска, но, возможно, не удастся найти путь, который не начинается с указанного префикса. Данная оптимизация поиска больше не требуется (и устарела), вместо неё используется
.I file_contexts.bin.
.RE
.
.SH "ФАЙЛЫ"
То, какие файлы контекстов файлов используются для получения контекста по умолчанию, зависит от параметра \fBSELABEL_OPT_PATH\fR, переданного в \fBselabel_open\fR(3). Если это \fINULL\fR, то \fBSELABEL_OPT_PATH\fR по умолчанию примет значение расположения контекстов файлов активной политики (которое возвращает \fBselinux_file_context_path\fR(3)), в ином случае будет использовано фактическое указанное значение \fBSELABEL_OPT_PATH\fR.
.sp
Если параметр \fBSELABEL_OPT_BASEONLY\fR задан, будут обрабатываться следующие файлы:
.RS
.IP "1." 4
Обязательный файл контекстов файлов - это либо полное имя файла из \fISELABEL_OPT_PATH.value\fR, либо (если \fINULL\fR) путь, который возвращает \fBselinux_file_context_path\fR(3).
.IP "2." 4
Необязательные файлы для замены имён (файл для локального использования и файл для использования с дистрибутивами), которые присваивают псевдонимы пути для 'находящейся в памяти' версии файла контекстов файлов.
.br
Эти файлы имеют то же имя, что и у обязательного файла контекстов файлов, и расширения \fI.subs\fR и \fI.subs_dist\fR.
.RE
.sp
Если параметр \fBSELABEL_OPT_BASEONLY\fR не задан, будут обработаны следующие файлы:
.RS
.IP "1." 4
Обязательный файл контекстов файлов, который является либо полным именем файла из \fISELABEL_OPT_PATH.value\fR, либо (если \fINULL\fR) путём, который возвращает \fBselinux_file_context_path\fR(3).
.IP "2." 4
Необязательный файл локальной настройки, имеющий то же имя, что и обязательный файл контекстов файлов, и расширение \fI.local\fR.
.br
\fBselinux_file_context_local_path\fR(3) вернёт путь по умолчанию к этому файлу.
.IP "3." 4
Необязательный файл настройки домашнего каталога пользователя, имеющий то же имя, что и обязательный файл контекстов файлов, и расширение \fI.homedirs\fR.
.br
\fBselinux_file_context_homedir_path\fR(3) вернёт путь по умолчанию к этому файлу.
.IP "4." 4
Необязательные файлы для замены имён (файл для локального использования и файл для использования с дистрибутивами), которые присваивают псевдонимы пути для 'находящейся в памяти' версии файла контекстов файлов (и \fI.local\fR и/или \fI.homedirs\fR, если они имеются). Эти файлы имеют то же имя, что и обязательный файл контекстов файлов, и расширения \fI.subs\fR и \fI.subs_dist\fR.
.br
\fBselinux_file_context_subs_path\fR(3) и \fBselinux_file_context_subs_dist_path\fR(3) вернут пути по умолчанию к этим файлам.
.RE
.sp
По умолчанию серия файлов контекстов файлов:
.RS 6
.I /etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts
.br
.I /etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts.local
.br
.I /etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts.homedirs
.br
.I /etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts.subs
.br
.I /etc/selinux/{SELINUXTYPE}/contexts/files/file_contexts.subs_dist
.RE
.sp
Где \fI{SELINUXTYPE}\fR - запись из файла конфигурации selinux \fIconfig\fR (см. \fBselinux_config\fR(5)).
.sp
Обязательным является только файл \fIfile_contexts\fR, все остальные являются необязательными.
.sp
Записи внутри серии файлов контекстов файлов показаны в разделе \fBФОРМАТ ФАЙЛА\fR.
.
.SH "ФОРМАТ ФАЙЛА"
.sp
.SH "Формат контекстов файлов"
.sp
Каждая строка внутри \fIfile_contexts\fR и двух файлов настройки (\fI.local\fR и \fI.homedirs\fR) имеет следующий вид:
.sp
.RS
.I pathname [file_type] context
.RE
.sp
Где:
.br
.RS
.I pathname
.RS
Определяющая имя пути запись, которая может быть в виде регулярного выражения.
.RE
.I file_type
.RS
Необязательный тип файла, который состоит из:
.RS
\fI\-b\fR - устройство блочного ввода-вывода \fI\-c\fR - устройство символьного ввода-вывода
.br
\fI\-d\fR - каталог \fI\-p\fR - именованный канал
.br
\fI\-l\fR - символическая ссылка \fI\-s\fR - сокет
.br
\fI\-\-\fR - обычный файл
.RE
.RE
.I context
.RS
Запись может быть одним из следующих:
.RS
.IP "a." 4
Контекст безопасности, который будет назначен этому файлу (то есть возвращён как \fIcontext\fR).
.IP "b." 4
Значение \fB<<none>>\fR можно использовать, чтобы указать, что для соответствующих файлов не следует повторно проставлять метки, а также при этом значении \fBselabel_lookup\fR(3) вернёт \-1 при установке \fIerrno\fR в \fBENOENT\fR.
.RE
.RE
.RE
.sp
Пример:
.RS
# ./contexts/files/file_contexts
.br
# pathname file_type context
.br
/.* system_u:object_r:default_t:s0
.br
/[^/]+ \-\- system_u:object_r:etc_runtime_t:s0
.br
/tmp/.* <<none>>
.RE
.sp
.SH "Формат файла подстановки"
.sp
Каждая строка внутри файлов подстановки (\fI.subs\fR и \fI.subs_dist\fR) имеет вид:
.RS
.I subs_pathname pathname
.RE
.sp
Где:
.RS
.I pathname
.RS
Путь, который соответствует записи в одном или нескольких файлах конфигурации политики контекстов файлов.
.RE
.I subs_pathname
.RS
Путь, который станет псевдонимом имени пути (считается равнозначным при поиске).
.RE
.RE
.sp
Пример:
.RS
# ./contexts/files/file_contexts.subs
.br
# pathname subs_pathname
.br
/myweb /var/www
.br
/myspool /var/spool/mail
.sp
Пример выше: когда в \fBselabel_lookup\fR(3) передаётся путь \fI/myweb/index.html\fR, функция заменяет компонент \fI/myweb\fR
на \fI/var/www\fR, поэтому будет использоваться следующий путь:
.sp
.RS
.I /var/www/index.html
.RE
.RE
.
.SH "ПРИМЕЧАНИЯ"
.IP "1." 4
Если контексты должны быть проверены, необходимо указать глобальный параметр \fBSELABEL_OPT_VALIDATE\fR перед вызовом \fBselabel_open\fR(3). Если этот параметр не указан, может быть возвращён недействительный контекст.
.IP "2." 4
Если серия файлов контекстов файлов содержит много записей, \fBselabel_open\fR(3) может медленно выполнять чтение в файлах и (если это запрошено) проверку записей.
.IP "3." 4
В некоторых версиях SELinux также может присутствовать файл \fIfile_contexts.template\fR, но он устарел.
.br
Файл шаблона имеет тот же формат, что и файл \fIfile_contexts\fR, а также может содержать ключевые слова \fBHOME_ROOT\fR, \fBHOME_DIR\fR, \fBROLE\fR и \fBUSER\fR. Эта функциональность была перемещена в хранилище политик и управляется \fBsemodule\fR(8) и \fBgenhomedircon\fR(8).
.
.SH "СМОТРИТЕ ТАКЖЕ"
.ad l
.nh
.BR selinux "(8), " selabel_open "(3), " selabel_lookup "(3), " selabel_stats "(3), " selabel_close "(3), " selinux_set_callback "(3), " selinux_file_context_path "(3), " freecon "(3), " selinux_config "(5), " lstat "(2), "selinux_file_context_subs_path "(3), " selinux_file_context_subs_dist_path "(3), " selinux_file_context_homedir_path "(3), "selinux_file_context_local_path "(3), " semodule "(8), " genhomedircon "(8) "
.SH АВТОРЫ
Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.