В компании имеется файловое хранилище, на котором записаны M = 10 файлов F1, F2, ..., F10. Файловая система хранилища содержит следующие атрибуты доступа к каждому файлу:
R – read (только чтение),
W – write (только запись в файл),
G – grant (предоставление имеющихся прав доступа к файлу другому пользователю),
(K) – число промежуточных каталогов от домашней папки пользователя до места хранения файла.
Предоставление прав происходит следующим образом: если пользователь может только читать файл F (в том числе в результате передачи ему прав), то он может предоставить доступ только на чтение этого файла другому пользователю, но не на запись. При этом для предоставления прав доступа к файлу необходимо к нему обратиться, последовательно просматривая все промежуточные каталоги (просмотр одного каталога занимает 1 единицу времени).
В компании имеется N = 15 пользователей U1, U2, …, U15.
В таблице 1 представлены имеющиеся права доступа пользователей к файлам. В таблице 2 представлена матрица передачи прав доступа к файлам между пользователями.
Таблица 1 – Права доступа пользователей к файлам
Таблица 2 – Матрица передачи прав доступа к файлам между пользователями
(строка – кто имеет право, столбец – кому передает право)
Определите, сможет ли пользователь U4 получить права записи в файл F2? Если да, то за какое число команд предоставления прав доступа и за какое минимальное время произойдет обращение к файлу (интервалами между командами предоставления прав доступа следует пренебречь)? Ответ обоснуйте.
1) А кто вообще может получить доступ к требуемому файлу и кому может передать это право?
2) А как можно получить доступ к требуемому файлу, используя права доступа и возможности их передачи других пользователей?