|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
|||||||||||
Списки контроля доступа Access Control List (ACL)17.09.2013, 18:43. Показов 9281. Ответов 24
Метки нет (Все метки)
Есть код помогите идею развить дальше, никак не получаеться, не могу разобраться. Помогите пожалуйста буду очень благодарен.
Нужно создать Списки контроля доступа Access Control List (ACL). Обьект: мьютекс! Запретить доступ: read!
Как это все дальше развить?? Добавлено через 4 минуты есть еще такой пример
0
|
|||||||||||
| 17.09.2013, 18:43 | |
|
Ответы с готовыми решениями:
24
Списки контроля доступа Access Control List (ACL) - C++ Access control list deny Обновление шаблона БД (Access Control List) |
|
Ушел с форума
|
||||
| 17.09.2013, 22:31 | ||||
|
Имя, сестра, имя ! (c) Нужен SID или имя пользователя или группы. установленными правами доступа. есть целая глава, посвященная безопасности.
0
|
||||
|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
|
| 19.09.2013, 19:09 [ТС] | |
|
Нужно создать две програмулины.
1. Создает обьект мьютекс. 2. Мытаеться открыть мьютекс и получает запрет на чтение. Они должны работать вместе, одна создает мьютекс и делает на него запред а другая пытаеться получить доступ, и получает запрет на него, и выводить собщение об отказе в доступе.
0
|
|
|
Ушел с форума
|
|
| 19.09.2013, 20:00 | |
|
Создайте мьютекс с пустым дескриптором безопасности. Будет запрет для всех.
Ну или можно создать дескриптор безопасности с одним запрещающим элементом в списке контроля доступа - GENERIC_ALL для группы "Everyone". Получится практически тот же эффект. Разумеется, администраторы и система могут обойти эту "защиту", установив привилегию "take ownership" и выполнив последовательность WRITE_OWNER/WRITE_DAC.
1
|
|
|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
|
| 19.09.2013, 22:21 [ТС] | |
|
Тема для меня новая, по этому не имею представления как это сделать.
Нам дали тему, кучу кода и ничего не обьяснили. Не имею представления как это сделать. Пмогите, просветите пожалуйста.
0
|
|
|
Ушел с форума
|
|
| 19.09.2013, 22:50 | |
|
Книгу по системному программированию я уже упомянул.
Есть еще MSDN. И Поиск в Google
0
|
|
|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
|
| 20.09.2013, 07:23 [ТС] | |
|
а примера робочей программы нету??
там много функций а не пойму как их связать...
0
|
|
|
Ушел с форума
|
|
| 20.09.2013, 10:47 | |
|
Для начала нужно разобраться с терминологией.
Что такое SID, что такое дескриптор безопасности и список контроля доступа, какие бывают права доступа и как они наследуются, что такое привилегии, access token и т.д. Описывать это все здесь не имеет смысла, лучше обратитесь к соответствующей литературе. Создать защищенный объект можно разными способами. Способ I. 1) Создайте SID-ы групп или пользователей, доступ которых к объекту нужно регламентировать. Это можно сделать с помощью AllocateAndInitializeSid, но еще проще - через CreateWellKnownSid. 2) Заполните массив структур EXPLICIT_ACCESS, указав в каждом элементе тип доступа (разрешать/запрещать), права доступа (например, GENERIC_ALL или GENERIC_READ, или что-то более специфическое), а также SID, полученный в пункте 1. Там же указываются различные флаги, например должны ли дочерние объекты наследовать установленные права доступа или нет. 3) Дальше можно создать дескриптор безопасности - BuildSecurityDescriptor. После этого данный дескриптор можно передавать как параметр структуры SECURITY_ATTRIBUTES при создании объекта. Другой путь - вызвать SetEntriesInAcl, она вернет список контроля доступа (DACL), который потом можно установить для уже созданного объекта при помощи таких функций, как SetSecurityInfo или SetNamedSecurityInfo. Способ II. 1) Опишите права доступа на языке SDDL (Security Descriptor Definition Language). http://msdn.microsoft.com/en-u... s.85).aspx Например, строка "O:BAG:BAD:P(A;;GA;;;BA)(A;;GR;;;WD) " означает следующее: O:BA (O)wner (владелец объекта) - встроенная группа "Администраторы", (B)uiltin (A)dministrators. G:BA (G)roup (первичная группа) - тоже Builtin Administrators. D:P (D)ACL (список контроля доступа), флаг (P) - protected, т.е. объект не наследует права доступа от родительских объектов. Дальше идут элементы контроля доступа, их два: (A;;GA;;;BA) - это: A - Allow Access, тип доступа = разрешающий GA - GENERIC_ALL, полный доступ BA - это SID группы/пользователя, в данном случае снова администраторы. (A;;GR;;;WD) - это: A - разрешающий доступ. GR - GENERIC_READ, доступ только на чтение WD - World Sid, группа "Все". Таким образом, получаем полный доступ для администраторов и доступ на чтение для всех остальных. 2) Вызываем функцию ConvertStringSecurityDescriptorToSecurit yDescriptor. Она сконвертирует строковое представление дескриптора безопасности в его бинарный формат. 3) С созданным дескриптором безопасности можно выполнять действия, аналогичные описанным в способе I. Есть другие способы и другие функции. Вот несколько примеров из MSDN: Creating a Security Descriptor for a New Object in C++ http://msdn.microsoft.com/en-u... s.85).aspx Modifying the ACLs of an Object in C++ http://msdn.microsoft.com/en-u... s.85).aspx Taking Object Ownership in C++ http://msdn.microsoft.com/en-u... s.85).aspx Enabling and Disabling Privileges in C++ http://msdn.microsoft.com/en-u... s.85).aspx
0
|
|
|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
||||||
| 20.09.2013, 21:11 [ТС] | ||||||
|
Вот что получилось
и второе не знаю как все это сделать на два окна. т.е на две программы
0
|
||||||
|
Ушел с форума
|
|
| 20.09.2013, 21:55 | |
|
Ну вот, Вы на верном пути, осталось совсем чуть-чуть. Что нужно сделать ?
Полностью запретить доступ всем ? Тогда поставьте ea.grfAccessPermissions = GENERIC_ALL, grfAccessMode = DENY_ACCESS. Такой же эффект будет при использовании пустого DACL. Не путать с нулевым DACL, если что (пустой DACL - это нет доступа, нулевой DACL - это доступ для всех). По поводу пункта 2. У мьютекса, как и у многих объектов ядра, есть имя (см. последний параметр CreateMutex). Первый процесс создает именованный мьютекс, второй пытается открыть мьютекс по имени. Например, при помощи OpenMutex. Если все правильно сделаете, OpenMutex завершится с ошибкой, а GetLastError вернет код 5 (access denied - нет доступа).
1
|
|
|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
||||||
| 21.09.2013, 14:51 [ТС] | ||||||
|
В итоге вот что получилось....
Можете показать где ошибки?
0
|
||||||
|
Ушел с форума
|
|||
| 21.09.2013, 15:13 | |||
|
Поэтому если он не работает, нельзя точно сказать, где именно.
0
|
|||
|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
|||||||||||
| 21.09.2013, 15:27 [ТС] | |||||||||||
|
Т.е вот это проверка на ошибки
0
|
|||||||||||
|
Ушел с форума
|
||
| 21.09.2013, 15:38 | ||
|
AllocateAndInitializeSid, SetEntriesInAcl, LocalAlloc, InitializeSecurityDescriptor, SetSecurityDescriptorDacl и CreateMutex. Ни одна не проверяется на ошибку. SECURITY_ATTRIBUTES, в которую записан новый дескриптор безопасности, нужно передать первым аргументом в CreateMutex. Если указывать NULL, мьютекс будет создан с дескриптором безопасности по умолчанию.
0
|
||
|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
|||||||||||
| 21.09.2013, 15:49 [ТС] | |||||||||||
|
Я уже начинаю путаться
Добавлено через 1 минуту
0
|
|||||||||||
|
Ушел с форума
|
|||
| 21.09.2013, 16:05 | |||
|
Или перечитать еще раз соответствующие статьи, главы и т.п. У Вас же был на 99% готовый код с установкой дескриптора безопасности для мьютекса.
0
|
|||
|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
|||||||||||
| 22.09.2013, 13:07 [ТС] | |||||||||||
|
Он и так есть, я просто запутался что нужно делать...
Значит вот наш почти готовый код
1. SECURITY_ATTRIBUTES для мьютекса 2. проверка ошибок 1.)
Добавлено через 20 часов 45 минут Товарищи подскажите что дальше делать...?
0
|
|||||||||||
|
Ушел с форума
|
||||
| 22.09.2013, 13:36 | ||||
|
Я отвечал на этот вопрос уже три раза. У каждой функции есть описание в MSDN, там в числе прочего указано, что она возвращает в случае ошибки. GetLastError тоже никто не отменял. P.S. Отписался от темы.
0
|
||||
|
3 / 1 / 0
Регистрация: 29.11.2012
Сообщений: 60
|
||||||
| 22.09.2013, 15:42 [ТС] | ||||||
|
а вот это по вашему не проверка на ошибки??
этот форум был создан для того чтоб книги советовать или помогать людям??
0
|
||||||
| 22.09.2013, 16:01 | |
|
0
|
|
| 22.09.2013, 16:01 | |
|
Помогаю со студенческими работами здесь
20
Enforce A Consistent Access Control List... Заполнение Access Control List агентом Enforce A Consistent Access Control List Across All Replicas Of This D
ACL списки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|