Тогда допустимы следующие определения сущностей системы:
S (3, 52, 11);
S (1, 1, 2, 3, 4, 5, 6, 7, 8);
S (5, 123412, 23, 32432, 4, 6, 8, 346743, 1);
и недопустимы:
S(0,1,2,3,43,5,6,87,6) // номер субъекта = 0, и отсутствие ';' в конце
S(12, 23,4,5,6,7,8,-5); // отрицательный атрибут, и 7 атрибутов
Если в секции не описан ни один субъект, это означает, что в системе нет субъектов. Соответственно, панель активных сущностей в интерфейсе утилиты security.exe будет пустой.
Секция «объекты». Задание набора объектов
Чтобы описать систему, пользователю необходимо определить имеющиеся в ней объекты. С этой целью в файле инициализации в секции «объекты» следующим образом задаются объекты и их атрибуты:
O (номер объекта, атрибут 1,..., атрибут n);
номер объекта - номер определяемого объекта.
Номер объекта может принимать целое значение в интервале 1...16. При этом, если два объекта имеют один номер, то в рассмотрение принимается только последний по порядку. Ответственность за последствия выхода за границы интервала лежит на пользователе.
атрибут i - это числовое значение i-oгo атрибута объекта.
Количество атрибутов, как и у субъектов, - 8. Все атрибуты объектов имеют числовой тип unsignedlong. Ошибка при превышении максимального количества атрибутов будет обработана компилятором Си++.
По умолчанию номер объекта = 1, а атрибут i - 0. Тогда вызов функции О ()эквивалентен O(1, 0,0,0,0,0,0,0,0), O(7) - O(7, 0,0,0,0,0,0,0,0), O(5, 12) -O(5, 12,0,0,0,0,0,0,0).
Тогда допустимы следующие определения сущностей системы:
O(1, 23,51,14);
О(1, 1,2,3,4,5,6,7,8);
O(5, 123412, 23,32432, 4,6,8,346743,1);
и недопустимы:
O(20,1,2,3,43,5,6,87,6) // номер объекта = 20, и отсутствие ';' в конце
О(12, 23,4,5,6,7,8,5, -9,9); // отрицательный атрибут, и 9 атрибутов
Если в секции не описан ни один объект, это означает, что в системе нет объектов, и соответствующая панель интерфейса утилиты security.exe будет пустой.
Секция «имена атрибутов». Присвоение имен атрибутам
В дальнейшем при определении правил доступа пользователю понадобится обращение к атрибутам субъектов или объектов. Для этой цели предусмотрена возможность присвоения определенного пользователем имени некоторому атрибуту
субъекта: ATTRNAWIE имя атрибута IS ATTRS (номер атрибута); объекта: ATTRNAME имя атрибута IS ATTRO (номер атрибута);
имя атрибута - название атрибута субъекта (объекта).
Имя атрибута пользователь может выбрать по своему желанию. Оно не должно совпадать со служебными словами языка описания модели и с уже объявленными именами.
номер атрибута - номер атрибута, которому пользователь присваивает имя.
Номер атрибута - это целая величина от 1 до 8.
Например, верными будут объявления:
ATTRNAME seclevel_o IS ATTRO(15);
ATTRNAME ROLE_OF_SUBJECT IS ATTRS(1):
и неверными:
ATTRNAME attr1 ATTRS(O) /* отсутствует служебное слово IS, номер
атрибута = 0, отсутствует ';' */
ATTRNAME ATTRO IS ATTRO(10); /* совпадение имени атрибута со служебным словом, и номер атрибута превышает предельное значение */
Язык описания модели позволяет присвоить имя конкретному атрибуту, т.е. пользователь может, если это необходимо, ввести некоторую переменную и присвоить ей определенное значение атрибута. Объявление такой переменной происходит следующим образом:
ATTRNAME имя атрибута = АS(номер атрибута);
ATTRNAME имя атрибута = АО(номер атрибута);
или
ATTRNAME имя атрибута = AS{ номер атрибута, номер субъекта);
ATTRNAME имя атрибута = АО( номер атрибута, номер объекта);
или
ATTRNAME имя атрибута 1 = АS(номер атрибута <,номер субъекта>),
имя атрибута n = АО(номер атрибута <,номер объекта> );
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.