Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Создание процессов с ограничением прав


Автор: XCeption 8.11.2008, 23:18
Проблема следующая: необходимо запускать процесс при этом ограничив его, например, запретив доступ к открытию файлов, или созданию дочерних процессов и т.п. Примером может служить, например, настройка прав для приложений в KIS 2009.

Пытаясь найти решение, я начал естеcтвенно с CreateProcess() и структуры SECURITY_ATTRIBUTES, разобрался с организацией прав доступа к объектам (списки DACL и SACL, ACEs), и пришел к выводу, что вся эта схема ровно противоположна тому, что нужно мне smile Т.е. с помощью SECURITY_ATTRIBUTES я могу указать кто из пользователей и что сможет или не сможет делать с созданным процессом, а как же указать, что может делать данный процесс?
Согласно логике организации доступа процессов к объектам (маркер доступа у процесса и дескриптор безопасности у объекта) получается, что для решения проблемы необходимо запустить процесс под именем отдельного пользователя (с этим как раз проблем нет), а перед этим создать дескриптор безопасности, указав в нем данного пользователя и запретив ему нужные операции, затем применить данный дискриптор ко всем объектам системы(!) - вот это уже по-моему бред... и чувствую не туда я уже пошел.
Помогите найти верный путь  smile 

Автор: Lycifer 10.11.2008, 18:57
Во первых практически любой процесс работает от пользователя(кроме системных), соответственно у него такие же права как и у этого пользователя, если запретиш пользователю то можеш считать что запретил процессу от его имени.... Я думаю идея понятна...
Это пиши есчё

Автор: XCeption 11.11.2008, 01:43
Цитата
Во первых практически любой процесс работает от пользователя(кроме системных), соответственно у него такие же права как и у этого пользователя, если запретиш пользователю то можеш считать что запретил процессу от его имени
Это понятно, но насколько мне известно, в Windows, в отличие от UNIX, нет возможности задать подобных ограничений для пользователя (может за исключением ограничения прав доступа к файлам и папкам, и то это на уровне файловой системы реализовано, а не ОС), или Вы знаете как это сделать?

На других форумах подсказали работать с помощью перехвата API-функций процесса, путем заменоы оригинальных функций своими - пока собираюсь именно так делать, но конечно вариант с пользователем был бы проще, но если он вообще реализуем.

Автор: J0ker 11.11.2008, 03:12
AdjustTokenPrivileges
CreateRestrictedToken

Автор: Lycifer 11.11.2008, 11:40
Есть еще такая имея поставь ловушки на процесс.


Цитата

 (может за исключением ограничения прав доступа к файлам и папкам, и то это на уровне файловой системы реализовано, а не ОС)
 - а что файловая система знает о пользователях?  smile  

Автор: Aprol 2.12.2008, 16:13
ага знает ntfs smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)