|
|
.\" Hey Emacs! This file is -*- nroff -*- source.
|
|
|
.\"
|
|
|
.\" Author: Eamon Walsh (ewalsh@tycho.nsa.gov) 2007
|
|
|
.TH "selabel_x" "5" "29 ноября 2011" "Security Enhanced Linux" "Документация API SELinux"
|
|
|
.SH "ИМЯ"
|
|
|
selabel_x \- интерфейс проставления меток SELinux в пространстве пользователя и формат файла конфигурации для внутренней службы контекстов оконной системы X Window System. Эта внутренняя служба также используется для определения контекста по умолчанию, который следует присвоить подключённым удалённо клиентам X
|
|
|
.
|
|
|
.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 *" object_name ", int " object_type ");"
|
|
|
.in
|
|
|
.sp
|
|
|
.BI "int selabel_lookup_raw(struct selabel_handle *" hnd ,
|
|
|
.in +\w'int selabel_lookup('u
|
|
|
.BI "char **" context ,
|
|
|
.br
|
|
|
.BI "const char *" object_name ", int " object_type ");"
|
|
|
.
|
|
|
.SH "ОПИСАНИЕ"
|
|
|
Внутренняя служба контекстов X сопоставляет имена объектов X Window System с контекстами безопасности. Это действие служит для нахождения правильного контекста для объектов X Window System, значимость и/или семантика использования которых в основном определяются именем. Необходимо освободить возвращённый \fIcontext\fR с помощью \fBfreecon\fR(3).
|
|
|
.br
|
|
|
\fBselabel_lookup\fR(3) описывает функцию с её возвращаемыми значениями и кодами ошибок.
|
|
|
.sp
|
|
|
Эта внутренняя служба также используется для определения контекста по умолчанию, который следует назначить для подключённых удалённо клиентов X.
|
|
|
.sp
|
|
|
Для аргумента \fIobject_type\fR необходимо установить одно из следующих значений:
|
|
|
.RS
|
|
|
.TP
|
|
|
.B SELABEL_X_PROP
|
|
|
Аргумент
|
|
|
.I object_name
|
|
|
указывает имя свойства окна, например, "WM_NAME".
|
|
|
.TP
|
|
|
.B SELABEL_X_SELN
|
|
|
Аргумент
|
|
|
.I object_name
|
|
|
указывает имя выделения, например, "PRIMARY".
|
|
|
.TP
|
|
|
.B SELABEL_X_EXT
|
|
|
Аргумент
|
|
|
.I object_name
|
|
|
указывает имя расширения протокола, например, "RENDER".
|
|
|
.TP
|
|
|
.B SELABEL_X_EVENT
|
|
|
Аргумент
|
|
|
.I object_name
|
|
|
указывает имя типа события, например, "X11:ButtonPress".
|
|
|
.TP
|
|
|
.B SELABEL_X_CLIENT
|
|
|
Аргумент
|
|
|
.I object_name
|
|
|
игнорируется, но его значением необходимо установить либо \fI*\fR (звёздочка, 'подстановочный знак': будет выбрана запись по умолчанию), либо конкретную запись, такую как "remote" в файле контекстов X, как показано в разделе \fBПРИМЕР\fR. В этом случае будет возвращён контекст по умолчанию, который следует присвоить удалённым клиентам X.
|
|
|
.TP
|
|
|
.B SELABEL_X_POLYPROP
|
|
|
Работает аналогично
|
|
|
.BR SELABEL_X_PROP ,
|
|
|
но проверяет, было ли свойство отмечено как многоэкземплярное. См. \fBПРИМЕЧАНИЯ\fR далее.
|
|
|
.TP
|
|
|
.B SELABEL_X_POLYSELN
|
|
|
Аналогично
|
|
|
.BR SELABEL_X_SELN ,
|
|
|
но проверяет, было ли выделение отмечено как многоэкземплярное. См. \fBПРИМЕЧАНИЯ\fR далее.
|
|
|
.RE
|
|
|
.sp
|
|
|
Все сообщения, созданные \fBselabel_lookup\fR(3), по умолчанию отправляются в \fIstderr\fR. Это поведение можно изменить с помощью \fBselinux_set_callback\fR(3).
|
|
|
.sp
|
|
|
.B selabel_lookup_raw
|
|
|
работает аналогично \fBselabel_lookup\fR, но не выполняет преобразование контекста.
|
|
|
.sp
|
|
|
В разделе \fBФАЙЛЫ\fR приводится описание файлов конфигурации, которые используются для определения контекстов объектов Х.
|
|
|
.
|
|
|
.SH "ПАРАМЕТРЫ"
|
|
|
Помимо глобальных параметров, описание которых приведено в \fBselabel_open\fR(3), эта внутренняя служба распознаёт следующие параметры:
|
|
|
.RS
|
|
|
.TP
|
|
|
.B SELABEL_OPT_PATH
|
|
|
Значение этого параметра, отличное от null, определяет путь к файлу, который будет открыт вместо стандартного файла контекстов Х (подробные сведения см. в разделе \fBФАЙЛЫ\fR).
|
|
|
.RE
|
|
|
.
|
|
|
.SH "ФАЙЛЫ"
|
|
|
То, какой файл контекста Х будет использоваться для получения контекста по умолчанию, зависит от параметра \fBSELABEL_OPT_PATH\fR, переданного в \fBselabel_open\fR(3). Если \fINULL\fR, то значением \fBSELABEL_OPT_PATH\fR по умолчанию станет расположение контекстов Х активной политики (возвращённое \fBselinux_x_context_path\fR(3)). В ином случае будет использовано фактическое указанное значение \fBSELABEL_OPT_PATH\fR.
|
|
|
.sp
|
|
|
Файл контекстов объектов Х по умолчанию:
|
|
|
.RS
|
|
|
.I /etc/selinux/{SELINUXTYPE}/contexts/x_contexts
|
|
|
.RE
|
|
|
.sp
|
|
|
Где \fI{SELINUXTYPE}\fR - запись из файла конфигурации selinux \fIconfig\fR (см. \fBselinux_config\fR(5)).
|
|
|
.sp
|
|
|
Записи, находящиеся внутри файла контекстов X, показаны в разделах \fBЗначения строки имени объекта\fR и \fBФОРМАТ ФАЙЛА\fR.
|
|
|
.
|
|
|
.SH "Значения строки имени объекта"
|
|
|
Имена строк, назначенные аргументам \fIobject_type\fR, которые могут присутствовать в файле контекстов X:
|
|
|
.TS
|
|
|
center, allbox, tab(@);
|
|
|
lI lB
|
|
|
lB l .
|
|
|
object_type@Текстовое имя
|
|
|
SELABEL_X_PROP@property
|
|
|
SELABEL_X_SELN@selection
|
|
|
SELABEL_X_EXT@extension
|
|
|
SELABEL_X_EVENT@event
|
|
|
SELABEL_X_CLIENT@client
|
|
|
SELABEL_X_POLYPROP@poly_property
|
|
|
SELABEL_X_POLYSELN@poly_selection
|
|
|
.TE
|
|
|
.
|
|
|
.SH "ФОРМАТ ФАЙЛА"
|
|
|
Каждая строка внутри файла контекстов X имеет следующий вид:
|
|
|
.RS
|
|
|
.I object_type object_name context
|
|
|
.RE
|
|
|
.sp
|
|
|
Где:
|
|
|
.RS
|
|
|
.I object_type
|
|
|
.RS
|
|
|
Это строковое представление типа объекта, показанное в разделе \fBЗначения строки имени объекта\fR.
|
|
|
Несколько строк с одной и той же строкой \fIobject_type\fR сформируют блок записей (каждая со своей строкой \fIobject_name\fR).
|
|
|
.RE
|
|
|
.I object_name
|
|
|
.RS
|
|
|
Это имена объектов конкретного ресурса сервера X, например,
|
|
|
\fBPRIMARY\fR, \fBCUT_BUFFER0\fR и т.д. Обычно они определены в исходном коде сервера X (\fIprotocol.txt\fR и \fIBuiltInAtoms\fR в каталоге
|
|
|
dix исходного пакета xorg\-server).
|
|
|
Запись может содержать подстановочные знаки '*' или '?' для выполнения сопоставления с дополнением или подстановкой.
|
|
|
Следует учитывать, что при использовании '*' важен порядок записей в файле. '*' в отдельном виде используется для того, чтобы обеспечить назначение резервного контекста по умолчанию, это должна быть последняя запись в блоке \fIobject_type\fR.
|
|
|
.RE
|
|
|
.I context
|
|
|
.RS
|
|
|
Контекст безопасности, который будет применён к объекту.
|
|
|
.RE
|
|
|
.RE
|
|
|
.sp
|
|
|
Пример 1:
|
|
|
.sp
|
|
|
.nf
|
|
|
# object_type object_name context
|
|
|
selection PRIMARY system_u:object_r:clipboard_xselection_t:s0
|
|
|
selection * system_u:object_r:xselection_t:s0
|
|
|
.fi
|
|
|
.sp
|
|
|
Пример 2 - этот пример показывает, как можно настроить запись клиента таким образом, чтобы она всегда находилась:
|
|
|
.sp
|
|
|
.nf
|
|
|
# object_type object_name context
|
|
|
client * system_u:object_r:remote_t:s0
|
|
|
.fi
|
|
|
.
|
|
|
.SH "ПРИМЕЧАНИЯ"
|
|
|
.IP "1." 4
|
|
|
Свойства и выделения отмечаются как многоэкземплярные или нет. Для этих типов имён параметр "POLY" выполняет поиск только имён, которые отмечены как многоэкземплярные, в то время как другой параметр выполняет поиск только имён, которые отмечены как не многоэкземплярные. Пользователям этого интерфейса следует проверить оба сопоставления и затем (необязательно) действовать на основе полученного результата (например, сделать объект многоэкземплярным).
|
|
|
.IP "2." 4
|
|
|
Если контексты должны быть проверены, необходимо указать глобальный параметр \fBSELABEL_OPT_VALIDATE\fR перед вызовом \fBselabel_open\fR(3). Если этот параметр не указан, может быть возвращён недействительный контекст.
|
|
|
.
|
|
|
.SH "СМОТРИТЕ ТАКЖЕ"
|
|
|
.ad l
|
|
|
.nh
|
|
|
.BR selinux "(8), " selabel_open "(3), " selabel_lookup "(3), " selabel_stats "(3), " selabel_close "(3), " selinux_set_callback "(3), " selinux_x_context_path "(3), " freecon "(3), " selinux_config "(5) "
|
|
|
|
|
|
|
|
|
.SH АВТОРЫ
|
|
|
Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
|