При создании объекта применяются правила, связывающие тип и роль создающего субъекта и тип родительского контейнера с типом который назначаются новому субъекту.
Элементы source_type, source_role и container_type
Элемент create_object
может содержать несколько правил. Правила применяются последовательно (порядок важен) до тех пор, пока не будет найдено первое, непротиворечащее комбинации значений source_type
, source_role
и container
. Другими словами, для применения правила необходимо, чтобы:
source_type
.source_role
.container_type
.Варианты задания типа субъекта, инициирующего создание нового объекта (элемент source_type
):
source_type: core
source_type: [core, dispatcher]
source_type: @any
Варианты задания роли субъекта, инициирующего создание нового объекта (элемент source_role
):
source_role: system
source_role : [system, user]
source_role: @any
Варианты задания типа контейнера, в котором создается новый объект (элемент container_type
):
container_type: core
container_type : @source_type
container_type: [core, dispatcher, @source_type]
container_type : @any
Элементы target_type и target_type_auto
Элементы target_type
и target_type_auto
используются для определения допустимых типов для создаваемого объекта.
При этом target_type
используется в случае, когда желаемый тип указывается при создании объекта, а target_type_auto
используется, когда желаемый тип не указан, и политика должна сама вычислить допустимый тип.
Варианты задания допустимых типов в случае явного указания типа (элемент target_type
):
target_type: core
target_type: @source_type
target_type: @container_type
target_type: [core, dispatcher, @container_type]
target_type: @any
Назначение желаемого типа новому субъекту будет разрешено, если этот тип совпадет с одним из указанных в target_type
. Если элемент target_type
не задан, то явное назначение типа запрещено.
Варианты задания автоматически назначаемого типа в случае отсутствия явного указания типа (элемент target_type_auto
):
target_type_auto: core
target_type_auto: @source_type
target_type_auto: @container_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_object: {
{ source_type: realm
, source_role: system
, container_type: app_file
, target_type_auto: @container_type
},
{ source_type: realm
, source_role: system
, container_type: @source_type
, target_type: [app_file, secure_file]
},
}
В начало