Provided by: selinux-utils_3.3-1build2_amd64 

ИМЯ
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)