В отличие от Astra 1.3, в Astra 1.6 мандатные метки уровня конфиденциальности имеют иерархическую структуру в контейнерах, а значит и в каталогах файловой системы. Это означает, что нельзя просто так взять, и установить мандатную метку на какой-нибудь каталог или файл, так как будут срабатывать ограничения:
- каталог с определенным уровнем конфиденциальности не может содержать подкаталоги и файлы с более низким уровнем конфиденциальности;
- и в обратную сторону, невозможно установить файлу более низкий уровень конфиденциальности, не понизив его у каталога, в котором он находится, и так вплоть до корневого объекта.
Чтобы эти ограничения обойти, в мандатной подсистеме сделаны флаги CCNR, CCNRA (как эти аббревиатуры расшифровываются, документация умалчивает), но и их применение тоже невозможно без учета иерархичности. Данные флаги позволяют держать внутри контейнера c высоким уровнем конфиденциальности объекты с более низким уровнем конфиденциальности. Эта возможность необходима именно для процедуры смены уровня конфиденциальности контейнера, в процессе которой часть объектов внутри контейнера имеют один уровень конфиденциальности, а часть - другой уровень.
Для понижения классификационной метки через команду pdpl-file, надо знать назначение двух флагов этой команды:
-R - флаг рекурсивности
-r - флаг реверсивности
Рекурсивность обеспечивает обрабоку вложенных контейнеров и объектов.
Реверсивность управляет направлением последовательности применения прав на объекты: если флаг не установлен, права применяются от указанного в команде объекта к дочерним. Если указан флаг -r, права будут применяться от самых "дальних" по рекурсии объектов к объекту, указанному в команде. Другими словами, такой порядок изменения позволяет сначала понизить классификационную метку файлов, а затем - классификационную метку каталогов, в которых эти файлы находятся.
Понижение уровня конфиденциальности
Порядок выполнения понижения уровня конфиденциальности директории следующий:
1. Выяснить текущий уровень конфиденциальности каталога:
pdp-ls -M /mydir1
Текущий уровень конфиденциальности идет самым первый в поле классификационной метки. Далее предполагается. что это уровень 2.
2. Рекурсивно установить флаг ccnr, учитывая полученный на шаге 1 уровень конфиденциальности:
pdpl-file -R 2:0:0:ccnr /mydir1
3. Рекурсивно и реверсивно изменить (понизить) уровень конфиденциальности, одновременно обнуляя модифицирующие флаги:
pdpl-file -R -r 0:0:0:0 /mydir1