ИМЯ
selabel_x - интерфейс проставления меток SELinux в пространстве пользователя и формат файла конфигурации для внутренней службы контекстов оконной системы X Window System. Эта внутренняя служба также используется для определения контекста по умолчанию, который следует присвоить подключённым удалённо клиентам XОБЗОР
#include <selinux/label.h>char **context,
char **context,
ОПИСАНИЕ
Внутренняя служба контекстов X сопоставляет имена объектов X Window System с контекстами безопасности. Это действие служит для нахождения правильного контекста для объектов X Window System, значимость и/или семантика использования которых в основном определяются именем. Необходимо освободить возвращённый context с помощью freecon(3).- 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_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
Значения строки имени объекта
Имена строк, назначенные аргументам 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
Контекст
безопасности,
который
будет
применён к
объекту.
# object_type object_name context selection PRIMARY system_u:object_r:clipboard_xselection_t:s0 selection * system_u:object_r:xselection_t:s0
# 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)АВТОРЫ
Перевод на русский язык выполнила Герасименко Олеся <[email protected]>.29 ноября 2011 | Security Enhanced Linux |