Таблицы защиты ядра
Информация, которая содержится в базах данных прав доступа, ролей, привилегированных команд и привилегированных устройств, не используется для защиты, пока данные не будут загружены в область ядра, определенную как таблицы защиты ядра (KST). В расширенном режиме RBAC проверка прав доступа производится в ядре, поэтому необходимо отправить базы данных ядру перед их использованием.
- Таблица прав доступа ядра (KAT)
- Таблица ролей ядра (KRT)
- Таблица команд ядра (KCT)
- Таблица устройств ядра (KDT)
Отправить все или выбранные таблицы из пользовательской области в ядро можно с помощью команды setkst. KRT и KCT зависят от KAT, поэтому при выборе обновления KAT таблицы KRT и KCT также будут обновлены, чтобы обеспечить синхронизацию данных в этих таблицах. Для обновления KST предпочтительно создавать или изменять все необходимые базы данных пользовательского уровня (с помощью таких команд как mkauth, chauth, mkrole и setsecattr), а затем использовать команду setkst для отправки таблиц в ядро. После загрузки таблиц в ядро можно просмотреть содержащуюся в них информацию с помощью команды lskst.
Каждая отдельная таблица отправляется в KST целиком. Другими словами, KST не позволяет изменять отдельные записи. Заменять следует всю таблицу. Перед отправкой таблиц в ядро команда setkst проверяет таблицы и отношения между ними. Кроме того, команда setkst указана в файле inittab, чтобы базы данных отправлялись в KST в начале загрузки системы.
Если по каким-либо причинам таблицы не могут быть созданы или загружены в ядро и до этого не была загружена ни одна таблица, система ведет себя таким образом, будто прав доступа и ролей не существует. При отсутствии совпадающих записей команды, API и системные вызовы, связанные с проверкой прав доступа и ролей, возвращают сообщение об ошибке. В этом случае система ведет себя почти так же, как и в обычном режиме RBAC, но что ни один пользователь не получает доступ к коду команд, которые предоставляют права принудительно.