Hey Emacs! This file is -*- nroff -*- source. Author: Eamon Walsh (ewalsh@tycho.nsa.gov) 2007 "selabel_x" "5" "29 ноября 2011" "Security Enhanced Linux" "Документация API SELinux"
"ИМЯ"
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.
Файл контекстов объектов Х по умолчанию:
Где
{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." 4
Свойства и выделения отмечаются как многоэкземплярные или нет. Для этих типов имён параметр "POLY" выполняет поиск только имён, которые отмечены как многоэкземплярные, в то время как другой параметр выполняет поиск только имён, которые отмечены как не многоэкземплярные. Пользователям этого интерфейса следует проверить оба сопоставления и затем (необязательно) действовать на основе полученного результата (например, сделать объект многоэкземплярным).
"2." 4
Если контексты должны быть проверены, необходимо указать глобальный параметр
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>.