Имя пользователя:
Пароль:
 

Название темы: Разрешения NTFS
Показать сообщение отдельно

Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


SkyF
Открою "страшный секрет" как запускаются программы на NT.

а) открывается файл с правом доступа FILE_EXECUTE | SYNCHRONIZE (замечу, что здесь даже не требуется FILE_READ_DATA, даже не спорьте тут, сам пишу такой код на Native Nt Api, и он работает, FILE_EXECUTE тоже лишь бы было, по идее);

б) создается для этого файла секция (объект Section) с правом SECTION_ALL_ACCESS и закрывается файл;

в) создается для этой секции объект Process;

г) пара манипуляций с секцией для вычисления точки входа и прочих параметров;

д) закрывается сеция;

е) создается первичный поток;

ну и так далее.

Когда загрузчик поднимает DLL-ки в адресное пространство, он их читает в память, и здесь и необходимо право на чтение, а так как сам файл тоже оформляется в виде DLL (в этом смысле), то на него тоже это право требуется. FILE_READ_ATTRIBUTES может использоваться, а может и нет, но в FILE_READ_EA точно необходимости нет.

Цитата:
FILE_READ_ATTRIBUTES (которое по вашему нигде не используется), убрать - то ЗАПУСКСАТЬ командные файлы при разрешении READ *станивится нельзя?
Как я понял, ты в начале темы READ_EA снимал?

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

[s]Исправлено: vasketsov, 19:17 22-10-2002[/s]

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 17:14, 22-10-2002 | #12

Название темы: Разрешения NTFS