1. Главная
  2. Библиотека
  3. Информационные технологии
  4. Задача 4: Права доступа Вирус повредил систему прав дос...
Решение задачи на тему

Задача 4: Права доступа Вирус повредил систему прав доступа к файлам. Известно, что над каждым файлом можно производить определенные действия: запись – W; чтение – R; запуск – X. На вход программе подается: число n – количество файлов; n строк с именами

  • Информационные технологии
  • #Программирование (языки C++, Java, Python и др.)
  • #Операционные системы
Задача 4: Права доступа Вирус повредил систему прав доступа к файлам. Известно, что над каждым файлом можно производить определенные действия: запись – W; чтение – R; запуск – X. На вход программе подается: число n – количество файлов; n строк с именами

Условие:

Задача 4: Права доступа
Вирус повредил систему прав доступа к файлам. Известно, что над каждым файлом можно производить определенные действия:
запись – W;
чтение – R;
запуск – X.
На вход программе подается:
число n – количество файлов;
n строк с именами файлов и допустимыми операциями;
число m – количество запросов к файлам;
m запросов вида «операция файл».
Для каждого допустимого запроса программа должна возвращать OK, для недопустимого – Access denied.
Пример ввода:
3
python.exe X
book.txt R W
notebook.exe R W X
5
read python.exe
read book.txt
write notebook.exe
execute notebook.exe
write book.txt

Пример вывода:
Access denied
OK
OK
OK
OK

Решение:

Для решения данной задачи, мы будем использовать словарь для хранения информации о файлах и их разрешенных операциях. Давайте разберем решение шаг за шагом.

Шаг 1: Чтение входных данных

Сначала мы считываем количество файлов и их разрешенные операции. Затем считываем количество запросов и сами запросы.

Шаг 2: Хранение данных

Мы будем использовать словарь, где ключом будет имя файла, а значением – множество разрешенных операций. Это позволит нам быстро проверять, разрешена ли операция для данного файла.

Шаг 3: Обработка запросов

Для каждого запроса мы будем проверять, существует ли файл в нашем словаре и разрешена ли для него запрашиваемая операция. Если операция разрешена, выводим OK, иначе – Access denied.

Шаг 4: Вывод результатов

После обработки всех запросов выводим результаты.

Теперь давайте реализуем это в коде:

Если мы введем данные, как в примере:

Программа выведет:

  1. Запрос – операция чтения не разрешена, так как для разрешена только операция . Выводим Access denied.
  2. Запрос – операция чтения разрешена, выводим OK.
  3. Запрос – операция записи разрешена, выводим OK.
  4. Запрос – операция запуска разрешена, выводим OK.
  5. Запрос – операция записи разрешена, выводим OK.

Таким образом, мы успешно реализовали систему проверки прав доступа к файлам.

Выбери предмет