Объявление


Форум находится в режиме только для чтения, для комментариев есть блог.

#1 24.11.2010 10:22:55

myhouse_1991
Member
Зарегистрирован: 11.03.2010
Сообщений: 18

Ограниченные права и старый/корявый софт, игры и т.д.

Бывают случаи, когда старая или новая корявая программа, игра и т.д. записывает свои настройки, сохранения и другое в папку с программой, вызывая при этом ошибку "Доступ запрещен" у ограниченного пользователя. Или же в реестре сохраняет свои настройки в HKLM, вместо HKCU. Конечно, можно грамотно настроить ACL в файловой системе и в реестре, но отлавливать каждый раз то, что он куда сохраняет при каждом подобном случаи...
В Windows 7 и Vista технология UAC позволяет виртуализовывать реестр и файловую систему при ошибках доступа на сохранение данных, как можно подобное реализовать в XP?

Отредактировано myhouse_1991 (24.11.2010 10:27:16)

 

#2 24.11.2010 12:54:37

MBTY
Профессиональный соучастник
Откуда: ЮФО
Зарегистрирован: 30.04.2009
Сообщений: 1612
Вебсайт

Re: Ограниченные права и старый/корявый софт, игры и т.д.

 

#3 24.11.2010 13:16:43

Waterclo
Пø}{@бь)4
Откуда: Лампа Аллавбздина
Зарегистрирован: 24.09.2008
Сообщений: 1918

Re: Ограниченные права и старый/корявый софт, игры и т.д.

myhouse_1991
MBTY совершенно прально изложил основной ход мысли. Ну, там ещё нечто подобное - Shadow User. Технология Vista и 7 не с потолка ж свалилась. С этим хозяйством и права ограничивать смысл пропадает, всё равно из песочницы излишки испаряются.

 

#4 24.11.2010 17:52:39

myhouse_1991
Member
Зарегистрирован: 11.03.2010
Сообщений: 18

Re: Ограниченные права и старый/корявый софт, игры и т.д.

Забыл написать, что я итак использую Sandboxie. Мне нужно не все помещать в виртуальное пространство, а только то, что получает ACCESS DENIED при записи и перемещать все это в папку с документами пользователя.

Waterclo сообщает:

С этим хозяйством и права ограничивать смысл пропадает, всё равно из песочницы излишки испаряются.

У меня не все программы помещаются в виртуальную среду, а постоянная виртуализация сжигает ресурсы компьютера.
Просто мне 100% виртуализация не нужна, только то, что решает конкретную проблему (на форуме вроде такого нет - почти все же сидят с правами администратора). От Microsoft есть фирменный набор программ Application Compatibility Toolkit, но я так и не понял, какого черта ему нужна база данных SQL и забросил этот набор...

Отредактировано myhouse_1991 (27.11.2010 09:48:00)

 

#5 24.11.2010 18:11:48

Waterclo
Пø}{@бь)4
Откуда: Лампа Аллавбздина
Зарегистрирован: 24.09.2008
Сообщений: 1918

Re: Ограниченные права и старый/корявый софт, игры и т.д.

myhouse_1991
Я всем своим ребятам делаю только с ограничкой. Обязательно предупреждаю и использую AdmiLink. Деткам же хочется преимущественно либо в порнуху, либо в дерьмофекальные сети, сетевые игры и т.д. и т.п.
На счёт остального, если честно, то не задумывался.

 

#6 26.11.2010 12:32:32

myhouse_1991
Member
Зарегистрирован: 11.03.2010
Сообщений: 18

Re: Ограниченные права и старый/корявый софт, игры и т.д.

Waterclo сообщает:

На счёт остального, если често, то не задумывался

Значит не сталкивался со старым софтом или с софтом с корявой реализацией. Лучше с ними и не сталкиваться, порой фиксить этот LUA BUG бывает нелегко (хорошо, если, например, на ini файл будет достаточно права доступа назначить)...

В общем еще раз попробовал Application Compatibility Toolkit, оказывается наличие сервера с базой данных SQL ему не нужно - просто запустил не ту программу, названая как Application Compatibility Manager, а надо было Compatibility Administrator (32-bit).

Там применил фиксы LUARedirectFS

This compatibility fix redirects files to %SystemDrive%\Documents and Settings\username\LocalAppData\Redirected\drive\filepath when the application needs to write to them but doesn't have the appropriate access rights.

и LUARedirectReg

Applications may incorrectly attempt to write to the HKEY_LOCAL_MACHINE portion of the registry. This compatibility fix redirects the registry keys to the HKEY_CURRENT_USER hive when the application doesn't have the necessary permissions.

Добавил чуть позже.

Начал более подробней разбирать. Оказывается, что в Windows XP (как и в других Windows) уже итак есть набор фиксов, которые расположены в C:\WINDOWS\AppPatch, а Application Compatibility Toolkit лишь графическая утилита для работы с базами данных исправлений.
Потом узнал, что исправления можно добавлять и в реестр даже для текущего пользователя. Также при запуске исправления LUA просто происходит инъекция DLL'ки AcLua.dll (в отличии Vista и 7, где у них работает целый драйвер виртуализации).
После этого написал этот твик реестра, который добавляет в контекстное меню "Запустить с LUA Fix"


Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runasluafix]
@="Запустить с LUA Fix"

[HKEY_CLASSES_ROOT\*\shell\runasluafix\command]
@="cmd /C \"REG ADD \"HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /t REG_SZ /d LUA && start \"\" \"%1\" && REG DELETE \"HKCU\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers\" /v \"%1\" /f\""

Принцип действия простой - в ветку реестра добавляется полный путь до файла и включенное исправление LUA, программа запускается вместе с AcLua.dll и потом из ветки реестра удаляется исправление.

Также если перенаправления не происходит, то значит, что AcLua.dll перенаправляет данные в папку All Users\Application Data\Redirected, где у ограниченного пользователя нет доступа на запись. Я долго пытался понять, почему так происходит - в итоге не стал долго мучиться и поHEXсил AcLua.dll, где я поменял
%ALLUSERSPROFILE%\Application Data\Redirected\ на %USERPROFILE%\Application Data\Redirected\

Забавно, что это перенаправление итак встроено в Windows XP, только почему нельзя в более User-Friendly варианте это преподать.

Отредактировано myhouse_1991 (13.01.2011 12:13:07)

 

Board footer


© simplix