Маскировка системного диска (Windows)
От: vsop  
Дата: 04.09.10 10:10
Оценка:
Доброго времени суток!

Существует такая проблема: сделать системный диск read-only для процессов, работающих под определённым user'ом. Скажем некто логинится как обычно и получает стандартный доступ. Мой процесс (и его под-процессы, что самое важное) запускается в контексте другого user'а на том же десктопе. Но он/они не должен иметь возможности писать на системный диск.

Типичное решение: DefineDosDevice системному диску под этим user'ом не работает — на то он и системный диск.

Корявое решение которое есть на данный момент: мой процесс посылает сигнал сервису на старте,тот делает DefineDosDevice(DDD_REMOVE_DEFINITION, ... системному диску (!), затем мой процесс делает DefineDosDevice() тому же диску под user'ом (но как виртуальную network share на этот же диск в read-only режиме), затем сервис восстанавливает определение системного диска под SYSTEM. То есть получается, что на мгновение система оказывается без системного диска, что может приводить к несвойственным проблемам.

Вопрос: может кто сможет предложить лучшее решение, при котором мой процесс получил бы то же самое? Filter driver?

Способ установки ACL/DACL не годиться, так как не даёт гарантии по разным причинам.

Надеюсь, кто-нибудь поймёт о чём я... Заранее благодарен!
definedosdevice system drive
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.