ИМЯ
selabel_db - интерфейс проставления меток SELinux в пространстве пользователя и формат файла конфигурации для внутренней службы контекстов объектов RDBMS (реляционная СУБД)ОБЗОР
#include <selinux/label.h>char **context,
char **context,
ОПИСАНИЕ
Внутренняя служба контекста базы данных сопоставляет имя и класс объекта с контекстами безопасности. Это действие позволяет найти правильный контекст для объектов базы данных при повторном проставлении меток для определённой базы данных. Необходимо освободить возвращённый context с помощью freecon(3).postgres.pg_catalog.pg_class
- SELABEL_DB_DATABASE
- Аргумент object_name определяет имя самой базы данных, например, "postgres".
- SELABEL_DB_SCHEMA
- Аргумент object_name определяет имя объекта схемы, например, "postgres.public".
- SELABEL_DB_TABLE
- Аргумент object_name определяет имя объекта таблицы, например, "postgres.public.my_table"
- SELABEL_DB_COLUMN
- Аргумент object_name определяет имя объекта столбца, например, "postgres.public.my_table.user_id"
- SELABEL_DB_TUPLE
- Аргумент object_name определяет имя объекта таблицы, содержащей кортежи, для которых требуется повторно проставить метки, например, "postgresql.public.my_table". Следует учитывать, что нет способа идентифицировать отдельные объекты кортежа (за исключением условия WHERE для инструкций DML), потому что у них нет имён.
- SELABEL_DB_PROCEDURE
- Аргумент object_name определяет имя объекта процедуры, например, "postgres.public.my_func". Следует учитывать, что поиск отдельных контекстов безопасности для процедур с одинаковыми именами, но разными аргументами не поддерживается.
- SELABEL_DB_SEQUENCE
- Аргумент object_name определяет имя объекта последовательности, например, "postgres.public.my_seq".
- SELABEL_DB_BLOB
- Аргумент object_name определяет имя большого объекта, например, "postgres.16308". Следует учитывать, что у большого объекта нет имени, поэтому он идентифицируется по значению соответствующего идентификатора.
- SELABEL_DB_VIEW
- Аргумент object_name определяет имя объекта просмотра, например, "postgres.public.my_view".
- SELABEL_DB_LANGUAGE
- Аргумент object_name определяет имя объекта языка, например, "postgres.public.tcl".
- SELABEL_DB_EXCEPTION
- Аргумент object_name определяет имя объекта исключения.
- SELABEL_DB_DATATYPE
- Аргумент object_name определяет имя объекта типа или домена, например, postgres.public.my_type.
ПАРАМЕТРЫ
Помимо глобальных параметров, описание которых приведено в selabel_open(3), эта внутренняя служба распознаёт следующие параметры:- SELABEL_OPT_PATH
- Значение этого параметра, отличное от null, определяет путь к файлу, который будет открыт вместо стандартного файла контекста базы данных. По умолчанию параметр пытается открыть файл спецификации, предназначенный для SE-PostgreSQL; если этот интерфейс используется другой реляционной СУБД, параметр должен явно объявить файл спецификации, предназначенный для такой реляционной СУБД (подробные сведения см. в разделе ФАЙЛЫ).
ФАЙЛЫ
То, какой файл контекстов базы данных будет использоваться для получения контекста, зависит от параметра SELABEL_OPT_PATH, переданного в selabel_open(3). Если NULL, то значением SELABEL_OPT_PATH по умолчанию станет расположение контекстов базы данных активной политики (возвращённое selinux_sepgsql_context_path(3)). В ином случае будет использоваться фактическое указанное значение SELABEL_OPT_PATH (этот вариант необходимо использовать для поддержки баз данных, отличных от SE-PostgreSQL)./etc/selinux/{SELINUXTYPE}/contexts/sepgsql_context
Значения строки имени объекта
Имена строк, назначенные аргументам object_type, которые могут присутствовать в файле контекстов базы данных:object_type | Текстовое имя |
SELABEL_DB_DATABASE | db_database |
SELABEL_DB_SCHEMA | db_schema |
SELABEL_DB_VIEW | db_view |
SELABEL_DB_LANGUAGE | db_language |
SELABEL_DB_TABLE | db_table |
SELABEL_DB_COLUMN | db_column |
SELABEL_DB_TUPLE | db_tuple |
SELABEL_DB_PROCEDURE | db_procedure |
SELABEL_DB_SEQUENCE | db_sequence |
SELABEL_DB_BLOB | db_blob |
SELABEL_DB_EXCEPTION | db_exception |
SELABEL_DB_DATATYPE | db_datatype |
ФОРМАТ ФАЙЛА
Каждая строка внутри файла контекстов базы данных имеет следующий вид:object_type object_name context
object_type
Строковое
представление
типа
объекта,
показанное
в разделе
Значения
строки
имени
объекта.
object_name
Ключ,
который
используется
для
получения
контекста
на основе
object_type.
Запись
может
содержать
подстановочные
знаки '*' или '?'
для
выполнения
сопоставления
с
дополнением
или
подстановкой.
Следует
учитывать,
что при
использовании
'*' важен
порядок
записей в
файле. '*' в
отдельном
виде
используется
для того,
чтобы
обеспечить
назначение
резервного
контекста
по
умолчанию,
это должна
быть
последняя
запись в
блоке object_type.
context
К
объекту
будет
применён
этот
контекст
безопасности.
ПРИМЕЧАНИЯ
- 1.
- Для целевой реляционной СУБД необходимо записать подходящий файл контекстов базы данных и использовать для его загрузки параметр SELABEL_OPT_PATH в selabel_open(3).
- 2.
- Иерархия пространства имён для объектов базы данных зависит от реляционной СУБД, но интерфейсы selabel* не предусматривают какой-либо особой поддержки иерархии пространства имён. В иерархии пространства имён SE-PostgreSQL объектом верхнего уровня является база данных, объектом следующего уровня - схема. На следующем после объекта схемы уровне могут находиться другие типы объектов, например, таблицы и процедуры. Эта иерархия поддерживается следующим образом:
- 3.
- Если контексты должны быть проверены, необходимо указать глобальный параметр 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_sepgsql_context_path(3), freecon(3), selinux_config(5)АВТОРЫ
Перевод на русский язык выполнила Герасименко Олеся <[email protected]>.01 декабря 2011 | Security Enhanced Linux |