LUA и проблемы совместимости

Унаследованные приложения (а иногда даже и новые приложения), которые не могут быть запущены в силу ограничений по безопасности для пользователей с минимальными привилегиями, могут доставить много хлопот администраторам IT-отдела. Часто таким программам требуется доступ к областям файловой системы и реестра, которые запрещено изменять пользователю с минимальными привилегиями, из-за чего приложения теряют функциональность или не работают совсем.

У пользователей есть несколько вариантов запуска унаследованных приложений при работе под ученой записью типа LUA (например, с помощью команды Runas). Существует множество обходных путей, которые требуют от пользователя дополнительных действий, либо вызывают запрос на авторизацию при обращении к сетевым ресурсам, поэтому они не пользуются популярностью. Однако вы можете обдумать применение следующих возможностей, понятных для конечных пользователей:

  • Изменение списков ACL для используемых файлов, папок и разделов реестра
  • Изменение прав доступа пользователя только для работы с конкретным приложением
  • Использование механизма Application Compatibility Engine для изменения путей записи данных в файловой системе или в реестре.

Чаще всего для запуска унаследованных приложений под учетной записью типа LUA используется метод изменения списков ACL для разделов реестра, файлов или папок, доступ к которым необходим приложению для корректной работы. У этого метода два основных недостатка. Во-первых, необходимо указать, доступ к каким разделам реестра, файлам и папкам вызывает проблемы. Даже при использовании средств доступа к файлам и реестру, на решение этой задачи придется потратить массу времени. Во-вторых, после того, как вы отредактируете определенные списки ACL, ранее защищенные области системы могут оказаться открытыми, что может привести к остановке работы приложения в будущем. Например, это возможно, если вам необходимо предоставить пользователям право Modify для определенной папки.

Приложения от независимых разработчиков (такие, как Protection Manager от Winternals Software и Privilege Manager от BeyondTrust) могут обеспечить возможность изменять права доступа пользователя «на лету». Когда пользователь запускает приложение, ему даются привилегии администратора для работы с конкретным процессом. Этот подход полностью понятен пользователю. Главным недостатком использования данного метода является стоимость его реализации.

Система XP имеет встроенное решение для работы с проблемами совместимости учетных записей LUA - механизм Application Compatibility Engine. Используя его в связке с пакетом Application Compatibility Toolkit (ACT), вы сможете выполнить анализ приложения и настроить систему на автоматическое изменение пути записи данных из закрытых областей файловой системы и реестра в профиль пользователя.

Настройка приложения

Рассмотрим элементарное старое приложение и разберемся, как использовать пакет ACT для настройки корректной работы приложения под учетной записью типа LUA. Выбранный пример прост, и на нем легко подробно описать процесс. Пакет ACT можно использовать для решения более сложных проблем, но основные шаги остаются неизменными.

Мы будем использовать приложение Maxthon 1.5, которое представляет собой оболочку, альтернативную Microsoft Internet Explorer (IE) 6.0 и IE 5.5, обладающую возможностями многооконной навигации, получения RSS, функциями блокирования рекламы и другими полезными особенностями, которые делают web-навигацию более комфортной. Программу Maxthon можно бесплатно загрузить с сайта http://www.maxthon.com. Если вы запустите это приложение из-под учетной записи типа LUA, любые настройки или параметры, измененные вами, будут утеряны при закрытии приложения, так как программа Maxthon сохраняет настройки в папке, находящейся в каталоге Program Files, а пользователи с минимальными привилегиями не имеют права Write для этой папки. Программа Maxthon не учитывает, что пользователей может быть много.

После того как вы загрузите пакет ACT, а это можно сделать по адресу http://www.microsoft.com/downloads/details.aspx?FamilyID=4005DA79-933A-4CC8-BF86-FE2E28B792FD&displaylang=en&Hash=V3N34CF, зарегистрируйтесь в системе Windows как администратор и установите ACT. После этого установите приложение Maxthon, но не устанавливайте флажок в поле, позволяющем запустить приложение сразу после нажатия кнопки Finish. Необходимо найти место, куда программа Maxthon сохраняет все свои настройки, поэтому надо разрешить ACT провести анализ приложения при первом запуске.

Хотя мы ищем решение, которое позволит запустить приложение Maxthon под учетной записью типа LUA, необходимо запустить ACT и проанализировать работу программы Maxthon под учетной записью администратора. Для этого выполните следующие шаги:

1. Запустите программу Compatibility Administrator, открыв меню All Programs, Microsoft Application Compatibility Toolkit 4.1 и выбрав пункт Tools.

2. В узле Custom Databases вы увидите элемент New Database. Щелкните на нем правой кнопкой и переименуйте его в Maxthon (см. Экран 1).

Экран 1: Создание новой базы данных совместимости

3. Снова щелкните на базе данных правой кнопкой и выберите пункт Create New->Application Fix. В окне Program information, введите имя приложения, производителя и путь к исполняемому файлу, в нашем случае «C:Program FilesMaxthonMaxthon.exe». Нажмите Next.

4. Далее вы увидите экран Compatibility Modes, где можно выбрать решение проблемы учетной записи типа LUA. В качестве режима операционной системы выберите значение None, после чего выберите нужную учетную запись из списка справа (см. Экран 2). Нажмите Next.

Экран 2. Создание нового исправления

5. На экране Compatibility Fixes просмотрите список исправлений. Убедитесь, что выбраны элементы LUARedirectFS и LUARedirectReg. Нажмите Next.

6. На экране Matching Information вы сможете изменить критерий, используемый механизмом Application Compatibility Engine для определения исполняемого файла программы Maxthon. Подтвердите значения по умолчанию и нажмите Next.

7. Убедитесь, что в поле Yes, customize these fixes now установлен флажок, и нажмите Finish.

Корректировка поведения приложения

Теперь ACT должна провести анализ работы приложения Maxthon, чтобы обнаружить, в какие закрытые области операционной системы записываются данные, и автоматически внести изменения. После нажатия Finish на предыдущем шаге открывается страница, которая дает возможность наблюдать за программой. Единственной доступной возможностью будет Run program to collect data. Нажмите Next. Путь к исполняемому файлу Maxthon будет уже введен, поэтому просто нажмите OK. Программа ACT автоматически запустит приложение Maxthon.

1. При первом запуске программы Maxthon следуйте подсказкам мастера Configuration Wizard, после чего выберите пункт Options->Maxthon Options.

2. Перейдите на вкладку General, чтобы просмотреть доступные возможности, показанные на  экране 3. Отметьте флагом поле Allow only one instance of Maxthon, после чего нажмите OK.

Экран 3. Изменение настроек приложения

3. Закройте приложение Maxthon и отметьте поле Don't show me the message again в диалоговом окне Exit Maxthon. Нажмите OK.

Приложение Maxthon после этого закроется, и вы попадете обратно на экран ACT Exclude File Extensions. В нашем случае нет необходимости исключать файлы какого-либо типа, поэтому убедитесь, что не выбрано ни одно из возможных расширений, и нажмите Next. На экране Edit the File Redirection List (см.  Экран 4) вы увидите, что ACT обнаружила все процессы записи данных в защищенные файлы. Выберите их все и нажмите Next. Служба ACT отобразит список всех изменений пути на экране Redirection Location. Нажмите Finish.

Экран 4. Изменение путей для файлов приложения

Установка баз данных совместимости приложений

Из основного окна службы Compatibility Administrator сохраните базу данных по приложению Maxthon под именем c:maxthon.sdb. Теперь установите базу данных, набрав в командной строке

sdbinst c:maxthon.sdb

После установки базы данных зарегистрируйтесь под учетной записью типа LUA и на экране настроек Maxthon Options снимите флажок в поле Allow only one instance of Maxthon. Закройте и перезапустите приложение Maxthon. Проверьте настройки, чтобы убедиться, что изменения были сохранены. Вы увидите, что файлы настроек теперь сохраняются в скрытой папке Application Data в профиле пользователя с минимальными привилегиями.

Теперь удалите базу данных совместимости, чтобы посмотреть, как работает приложение Maxthon без нее. Чтобы удалить базу данных, зарегистрируйтесь в системе под учетной записью администратора и введите следующую команду:

sdbinst -u c:maxthon.sdb

Перезапустив приложение Maxthon из-под учетной записи пользователя с минимальными привилегиями, вы увидите, что без базы данных совместимости программа не запоминает установленные настройки.

Возможности на будущее

Приложение ACT может обеспечить быстрое и простое решение проблем, связанных с работой унаследованных приложений под учетной записью LUA. Пользователь не будет знать о проблеме и сможет запускать приложение без выполнения дополнительных действий. Администраторы смогут еще больше упростить процесс, используя групповые политики для размещения баз данных совместимости. В службе User Account Control (UAC), входящей в состав систем Windows Vista, компания Microsoft дополнительно разработала возможность автоматически менять путь, по которому осуществляется запись данных в виртуальную память для каждого пользователя без запуска ACT. Эта возможность поможет даже домашним пользователям работать под учетной записью пользователя с минимальными привилегиями.