Консультация № 185964
04.05.2012, 13:23
79.10 руб.
0 8 0
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Если в проводнике щёлкнуть на файле правой кнопкой мышки и выбрать меню "Безопасность", потом кнопку "Дополнительно", то там откроется галка "Добавить разрешения, наследуемые от родительских объектов". Таким образом я могу регулировать наследуемые разрешения - убирать галку, с выбором, что делать с наследуемыми разрешениями или наоборот, её поставить.

Вопрос:
Как это сделать программно? Какими функциями WinAPI? Чтобы одновременно можно было указать, что делать с наследуемыми разрешениями.
Примеры можно приводить как на языке Си, так и на языке Delphi.

Обсуждение

Неизвестный
04.05.2012, 21:13
общий
Думаю, изучать вопрос можно начиная отсюда: File Security and Access Rights. Сам я правами никогда не занимался и этот раздел просто перепрыгнул. Если я правильно понял, то при создании файла он по умолчанию копирует все у своего каталога. А потом надо использовать функции чтения прав у предка и установки прав у этого файла.

Там если нажать в TOC на File Management, то снизу будет раздел со всеми функциями, относящимися к работе с файловыми системами.
давно
Мастер-Эксперт
425
4118
05.05.2012, 05:50
общий
С помощью CreateFile() можно создать каталог? Приведите примерчик.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
давно
Мастер-Эксперт
425
4118
05.05.2012, 13:59
общий
Уже не надо. Нашёл в MSDN, что нельзя.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
05.05.2012, 18:46
общий
Через CreateFile можно получить хендл существующего каталога. А создавать их надо через CreateDirectory, CreateDirectoryEx или CreateDirectoryTransacted.
давно
Мастер-Эксперт
425
4118
06.05.2012, 05:11
общий
06.05.2012, 10:46
Ну, хорошо, получил я хэндл каталога. А дальше? Как мне убрать наследуемые разрешения?
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
07.05.2012, 00:02
общий
Наверное, дальше надо пользоваться Get/SetSecurityInfo. Странно, что никто больше не отвечает. Неужели вообще никто правами не занимался?
давно
Мастер-Эксперт
425
4118
07.05.2012, 04:59
общий
Цитата: 268417
Наверное, дальше надо пользоваться Get/SetSecurityInfo.

Я как раз на этом месте и встал в тупик. Если установки\снятия разрешений для пользователя\группы я нашёл без труда, то как убирать наследуемые разрешения понять не могу. Для .NET есть примеры, но мне нужен чистый Си.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
давно
Мастер-Эксперт
425
4118
07.05.2012, 05:01
общий
Цитата: 268417
Неужели вообще никто правами не занимался?

"Маст дай", он и есть "маст дай" - все сидят под админами и любят вирусы коллекционировать, поэтому никого права на файлы\каталоги не интересуют.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Форма ответа