При создании субъекта применяются правила, связывающие тип и роль запускающего (родительского) субъекта и образ (image) запускаемого субъекта с типом и множеством ролей, которые назначаются новому субъекту.
Элементы source_type, source_role и image
Элемент create_subject
может содержать несколько правил. Правила применяются последовательно (порядок важен) до тех пор, пока не будет найдено первое, непротиворечащее комбинации значений source_type
, source_role
и image
. Другими словами, для применения правила необходимо, чтобы:
source_type
.source_role
.image
.Варианты задания типа субъекта, инициирующего создание нового субъекта (элемент source_type
):
source_type: core
source_type: [core, dispatcher]
source_type: @any
Варианты задания роли субъекта, инициирующего создание нового субъекта (элемент source_role
):
source_role: system
source_role : [system, user]
source_role: @any
Варианты задания имени образа, из которого создается новый субъект (элемент image
):
image: core
image: [core, einit]
image: @any
Элементы target_type и target_type_auto
Элементы target_type
и target_type_auto
используются для определения допустимых типов для создаваемого субъекта.
При этом target_type
используется в случае, когда желаемый тип указывается при создании субъекта, а target_type_auto
используется, когда желаемый тип не указан, и политика должна сама вычислить допустимый тип.
Варианты задания допустимых типов в случае явного указания типа (элемент target_type
):
target_type: core
target_type: [core, dispatcher]
target_type: @source_type
target_type: @any
Назначение желаемого типа новому субъекту будет разрешено, если этот тип совпадет с одним из указанных в target_type
. Если элемент target_type
не задан, то явное назначение типа запрещено.
Варианты задания автоматически назначаемого типа в случае отсутствия явного указания типа (элемент target_type_auto
):
target_type_auto: core
target_type_auto: @source_type
Создаваемому субъекту будет назначен тип, указанный в target_type_auto
. Если поле target_type_auto
не задано, то неявное назначение типа запрещено.
Элементы target_role и target_role_auto
Элементы target_role
и target_role_auto
используются для определения допустимых ролей для создаваемого субъекта.
При этом target_role
используется в случае, когда желаемые роли указываются при создании субъекта, а target_role_auto
используется, когда желаемые роли не указаны, и политика должна сама вычислить нужные роли.
Варианты задания допустимых ролей в случае явного указания ролей ( элемент target_role_
):
target_role: core
target_role: [core, dispatcher]
target_role: @source_role
target_role: @any
Назначение желаемых ролей новому субъекту будет разрешено, если эти роли являются подмножеством ролей, указанных в target_role
. Если элемент target_role не задан, то явное назначение ролей запрещено.
Варианты задания автоматически назначаемых ролей в случае отсутствия явного указания ролей (элемент target_role_auto
):
target_role_auto: core
target_role_auto: [core, dispatcher]
target_role_auto: @source_roles
target_role_auto: @any
Создаваемому субъекту будет назначен тип, указанный в target_role_auto
. Если элемент target_role_auto
не задан, то неявное назначение типа запрещено.
Пример
create_subject: {
{ source_type: core // субъект инициатор должен иметь тип "core"
, source_role: system // субъект инициатор должен иметь роль "system"
, image: einit // образ
, target_type_auto: einit // автоматическое назначение типа возможно
, target_role_auto: @source_roles // автоматическое назначение ролей: роли, совпадающие с ролями сущности-инициатора
},
{ source_type: dispatcher
, source_role: [system, user]
, image: rpcservice
, target_type: [user, admin] // тип создаваемого субъекта должен быть указан, и должен быть одним из списка
, target_role_auto : @source_roles
},
{ source: @any
, image: tls
, target_type: [@source_type, tls]
, target_role: [user, admin]
},
}
В начало