.\" 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 .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 АВТОРЫ Перевод на русский язык выполнила Герасименко Олеся .