|
|
.\" 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>.
|