Provided by: selinux-utils_3.5-2ubuntu5_amd64 bug

ИМЯ

       selabel_x  - интерфейс проставления меток SELinux в пространстве пользователя и формат файла конфигурации
       для  внутренней  службы  контекстов  оконной  системы  X  Window  System.  Эта  внутренняя  служба  также
       используется  для  определения  контекста  по  умолчанию, который следует присвоить подключённым удалённо
       клиентам X

ОБЗОР

       #include <selinux/label.h>

       int selabel_lookup(struct selabel_handle *hnd,
                          char **context,
                          const char *object_name, int object_type);

       int selabel_lookup_raw(struct selabel_handle *hnd,
                          char **context,
                          const char *object_name, int object_type);

ОПИСАНИЕ

       Внутренняя служба контекстов X сопоставляет имена объектов X Window System  с  контекстами  безопасности.
       Это  действие  служит для нахождения правильного контекста для объектов X Window System, значимость и/или
       семантика использования которых  в  основном  определяются  именем.  Необходимо  освободить  возвращённый
       context с помощью freecon(3).
       selabel_lookup(3) описывает функцию с её возвращаемыми значениями и кодами ошибок.

       Эта  внутренняя  служба  также  используется  для  определения  контекста  по  умолчанию, который следует
       назначить для подключённых удалённо клиентов X.

       Для аргумента object_type необходимо установить одно из следующих значений:

              SELABEL_X_PROP
                     Аргумент object_name указывает имя свойства окна, например, "WM_NAME".

              SELABEL_X_SELN
                     Аргумент object_name указывает имя выделения, например, "PRIMARY".

              SELABEL_X_EXT
                     Аргумент object_name указывает имя расширения протокола, например, "RENDER".

              SELABEL_X_EVENT
                     Аргумент object_name указывает имя типа события, например, "X11:ButtonPress".

              SELABEL_X_CLIENT
                     Аргумент  object_name  игнорируется,  но  его  значением  необходимо  установить   либо   *
                     (звёздочка,  'подстановочный  знак':  будет  выбрана  запись по умолчанию), либо конкретную
                     запись, такую как "remote" в файле контекстов X, как показано  в  разделе  ПРИМЕР.  В  этом
                     случае  будет возвращён контекст по умолчанию, который следует присвоить удалённым клиентам
                     X.

              SELABEL_X_POLYPROP
                     Работает  аналогично  SELABEL_X_PROP,  но  проверяет,  было  ли   свойство   отмечено   как
                     многоэкземплярное. См. ПРИМЕЧАНИЯ далее.

              SELABEL_X_POLYSELN
                     Аналогично  SELABEL_X_SELN, но проверяет, было ли выделение отмечено как многоэкземплярное.
                     См. ПРИМЕЧАНИЯ далее.

       Все сообщения, созданные selabel_lookup(3), по умолчанию  отправляются  в  stderr.  Это  поведение  можно
       изменить с помощью selinux_set_callback(3).

       selabel_lookup_raw работает аналогично selabel_lookup, но не выполняет преобразование контекста.

       В  разделе ФАЙЛЫ приводится описание файлов конфигурации, которые используются для определения контекстов
       объектов Х.

ПАРАМЕТРЫ

       Помимо глобальных параметров,  описание  которых  приведено  в  selabel_open(3),  эта  внутренняя  служба
       распознаёт следующие параметры:

              SELABEL_OPT_PATH
                     Значение  этого  параметра, отличное от null, определяет путь к файлу, который будет открыт
                     вместо стандартного файла контекстов Х (подробные сведения см. в разделе ФАЙЛЫ).

ФАЙЛЫ

       То, какой файл контекста Х  будет  использоваться  для  получения  контекста  по  умолчанию,  зависит  от
       параметра  SELABEL_OPT_PATH,  переданного  в selabel_open(3). Если NULL, то значением SELABEL_OPT_PATH по
       умолчанию станет расположение контекстов Х активной политики (возвращённое selinux_x_context_path(3)).  В
       ином случае будет использовано фактическое указанное значение SELABEL_OPT_PATH.

       Файл контекстов объектов Х по умолчанию:
              /etc/selinux/{SELINUXTYPE}/contexts/x_contexts

       Где {SELINUXTYPE} - запись из файла конфигурации selinux config (см. selinux_config(5)).

       Записи, находящиеся внутри файла контекстов X, показаны в разделах Значения строки имени объекта и ФОРМАТ
       ФАЙЛА.

Значения строки имени объекта

       Имена строк, назначенные аргументам object_type, которые могут присутствовать в файле контекстов X:
                                       ┌────────────────────┬────────────────┐
                                       │ 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 │
                                       └────────────────────┴────────────────┘

ФОРМАТ ФАЙЛА

       Каждая строка внутри файла контекстов X имеет следующий вид:
              object_type object_name context

       Где:
              object_type
                     Это  строковое  представление  типа  объекта,  показанное  в  разделе Значения строки имени
                     объекта.  Несколько строк с одной и той же  строкой  object_type  сформируют  блок  записей
                     (каждая со своей строкой object_name).
              object_name
                     Это  имена  объектов  конкретного  ресурса сервера X, например, PRIMARY, CUT_BUFFER0 и т.д.
                     Обычно они определены в исходном коде сервера  X (protocol.txt и  BuiltInAtoms  в  каталоге
                     dix исходного пакета xorg-server).  Запись может содержать подстановочные знаки '*' или '?'
                     для  выполнения  сопоставления  с дополнением или подстановкой.  Следует учитывать, что при
                     использовании '*' важен порядок записей в файле. '*'  в  отдельном  виде  используется  для
                     того,  чтобы  обеспечить  назначение  резервного  контекста  по  умолчанию, это должна быть
                     последняя запись в блоке object_type.
              context
                     Контекст безопасности, который будет применён к объекту.

       Пример 1:

       # object_type  object_name  context
       selection      PRIMARY      system_u:object_r:clipboard_xselection_t:s0
       selection      *            system_u:object_r:xselection_t:s0

       Пример 2 - этот пример показывает, как можно настроить запись клиента таким  образом,  чтобы  она  всегда
       находилась:

       # object_type  object_name  context
       client         *            system_u:object_r:remote_t:s0

ПРИМЕЧАНИЯ

       1.  Свойства  и  выделения  отмечаются как многоэкземплярные или нет. Для этих типов имён параметр "POLY"
           выполняет поиск только имён, которые отмечены как многоэкземплярные, в то время как  другой  параметр
           выполняет  поиск  только  имён,  которые  отмечены  как  не  многоэкземплярные.  Пользователям  этого
           интерфейса следует  проверить  оба  сопоставления  и  затем  (необязательно)  действовать  на  основе
           полученного результата (например, сделать объект многоэкземплярным).

       2.  Если  контексты  должны  быть проверены, необходимо указать глобальный параметр  SELABEL_OPT_VALIDATE
           перед вызовом selabel_open(3). Если этот параметр не указан, может  быть  возвращён  недействительный
           контекст.

СМОТРИТЕ ТАКЖЕ

       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)

АВТОРЫ

       Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.

Security Enhanced Linux                          29 ноября 2011                                     selabel_x(5)