С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
-2 / 1 / 0
Регистрация: 11.10.2019
Сообщений: 43
1

Права доступа

25.03.2020, 00:47. Показов 4218. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте форумчане, пришел за помощью в весьма нетривиальных задачах, кому-то они могут показаться легкими, а кому-то занятными, в любом случае, от любой помощи не откажусь, вам будет интересно, а мне полезно поучиться решать у мастеров, и так собственно задачи.

Права доступа.
Вася написал собственную операционную систему и теперь делает для нее систему прав доступа. Он решил, что в его системе будет 3 категории пользователей, обладающих разными правами:

1 администраторы (admin) могут открывать и редактировать все файлы

2 опытные пользователи (experienced) могут открывать все файлы, кроме конфиденциальных (confidential), но не могут редактировать файлы с настройками (settings) и системные файлы (system)

3 обычные пользователи (user) не могут открывать и/или редактировать конфиденциальные и системные файлы, а также файлы с настройками.

Все категории пользователей могут открывать и редактировать обычные файлы (ordinary). При этом, если пользователь не имеет права открыть какой-либо файл, то, следовательно, он не имеет права его отредактировать.
Напишите программу, которая сначала принимает имена файлов и их тип до символа точки, а затем запросы вида

имя_файла действие категория_пользователя

Действие может принимать одно из двух значений – read или edit, категория пользователя – одно из трех вышеперечисленных. После каждого действия программа должна выводить "Access granted" или "Access denied" в зависимости от успешности действия. Ввод запросов также происходит до точки.
ВВОД
Кликните здесь для просмотра всего текста

driver.drv system
bussiness_data.txt confidential
gtaV_graphics.txt settings
отчет.txt ordinary
fight_club.torrent ordinary
facebook_users.db ordinary
revenue_data.txt confidential
top10_anime_titles.txt confidential
best_coding_practices.pdf ordinary
.
driver.drv read admin
revenue_data.txt read experienced
gtaV_graphics.txt edit experienced
отчет.txt edit admin
отчет.txt read user
fight_club.torrent read experienced
facebook_users.db read user
top10_anime_titles.txt read experienced
.

ВЫВОД
Кликните здесь для просмотра всего текста

Access granted
Access denied
Access denied
Access granted
Access granted
Access granted
Access granted
Access denied
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2020, 00:47
Ответы с готовыми решениями:

Права доступа
В операционных системах семейства Unix пути к файлам имеют следующий вид:...

Права доступа
В операционных системах семейства Unix пути к файлам имеют следующий вид:...

Задача 1. Права доступа
Задача 1. Права доступа Что нужно сделать На вас возложили задачу по созданию и поддержке...

Права доступа для Ubuntu
Хотелось маленько побаловаться с созданием "сайта" (простой localhost), но для Ubuntu нужны права...

Django права доступа к объетам в админке
Привет, подскажите в какую сторону смотреть, нужно разграничить права доступа к объектам в модели в...

5
Просто Лис
Эксперт Python
5966 / 3729 / 1097
Регистрация: 17.05.2012
Сообщений: 10,787
Записей в блоге: 9
25.03.2020, 09:22 2
И где ваш код?
0
-2 / 1 / 0
Регистрация: 11.10.2019
Сообщений: 43
25.03.2020, 13:19  [ТС] 3
Здравствуйте,его нет потому что не знаю с чего начать решение, я не прошу готовый код, хотя бы принцип или куски кода с похожих задач
0
Просто Лис
Эксперт Python
5966 / 3729 / 1097
Регистрация: 17.05.2012
Сообщений: 10,787
Записей в блоге: 9
25.03.2020, 15:04 4
Я бы начал с парсинга входных данных и придумывания структуры для хранения.
1
31 / 18 / 5
Регистрация: 30.08.2020
Сообщений: 55
30.12.2020, 20:08 5
Возможно, кому-то понадобится решение:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
files = {'system':[], 'confidential':[], 'settings':[], 'ordinary':[]}
line = input()
while line != '.':
    files[line.split()[1]].append(line.split()[0])
    line = input()
line = input()
while line != '.':
    file, move, law = line.split()
    if law == 'admin' or (law == 'experienced' and move == 'read' \
                          and file not in files['confidential']) \
       or (law == 'experienced' and move == 'edit' and file \
           not in files['settings'] and file not in files['system']) \
       or (law == 'user' and file not in files['settings'] and file \
           not in files['system'] and file not in files['confidential']):
        print('Access granted')
    else:
        print('Access denied')
    line = input()
2
2 / 2 / 0
Регистрация: 12.09.2020
Сообщений: 11
15.05.2021, 18:58 6
Python
1
2
3
4
5
6
7
8
9
10
d = {
    'read admin': ('settings', 'system', 'ordinary', 'confidential'),
    'edit admin': ('settings', 'system', 'ordinary', 'confidential'),
    'read experienced': ('settings', 'system', 'ordinary'),
    'edit experienced': 'ordinary',
    'read user': 'ordinary',
    'edit user': 'ordinary'
    }
files = {i.split()[0]: i.split()[1] for i in iter(input, '.')}
[print(('Access denied', 'Access granted')[files[i.split()[0]] in d[i.split(maxsplit=1)[1]]]) for i in iter(input, '.')]
0
15.05.2021, 18:58
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.05.2021, 18:58
Помогаю со студенческими работами здесь

Как реализовать права доступа на запросы над "серверами"? django rest framework
Здравствуйте. У меня такая задача. Использую django rest framework в качестве сервера для...

Нет права доступа у Администратора (полные права)
Всем привет! УТ-11.1.9.55 Платформа-8.3.5.1460 Внешний отчет, на форме обработки следующий...

Права доступа
Добрый день! Помогите решить проблему: На windows server 2008, стоит google диск. В папки...

Права доступа
Всем привет! Возник вот такой вопрос: как сделать так, чтобы владелец сервера и хостинга не мог...

Права доступа
Объясните мне как решить проблему с правами на вин8? Часто приходится делать запуск от имени...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru