FileZilla и Windows Vista/Windows 7 UAC
Содержание
User Account Control (контроль учетных записей пользователей), виртуализация файловой системы и ее влияние на Filezilla
Общее
Microsoft ввела UAC начиная с Windows Vista, эта возможность также доступна в Windows 7.
Вместе с другими компонентами UAC предлагает виртуализацию файловой системы. Проще говоря, виртуализация перенаправляет чтение/запись определенных файлов на другой путь. Самый важный защищенный путь с которым мы работаем - Program Files.
Предположим, что защищенный путь - C:\Program Files.
В старых версиях FileZilla и других программах, которые не приспособлены явно для работы с Vista, отсутствует так называемый манифест. Манифест указывает Windows насколько приспособлена программа для работы с последними версиями Windows и список требуемых привилегий.
Программа без манифеста работает в контексте стандартного пользователя (а НЕ пользователя, который сейчас работает с программой). К такой программе применяется виртуализация файловой системы.
Если программа установлена в C:\Program Files\Program и пытается совершить запись в эту директорию, файл будет записан в другую директорию, в этом случае в C:\Users\
Этот процесс полностью прозрачен для старых программ и пользователя.
Проблемы начинаются при открытии файлов из этой директории программой приспособленной для работы с Vista, например FileZilla. Т.к. FileZilla включает в себе манифест, виртуальное хранилище не используется, и запись идет по реальному пути, из-за чего файлы не будут найдены в нужной директории.
Пример
Вы используете HTML-редактор не приспособленный для работы с Vista под названием WebEd.
WebEd установлен в директории C:\Program Files\WebEd и сохраняет страницы в директории C:\Program Files\WebEd\publish.
Имя вашей пользовательской записи - foo, и вы пользуетесь английской версией.
Для передачи файлов по FTP установлена последняя версия FileZilla.
После запуска WebEd и создания вашей страницы, состоящей из index.html и нескольких изображений, вы удовлетворены результатом и сохраняете страницу.
После этого вы пытаетесь передать ее на сервер. Вы запускаете Filezilla, перейдя в директорию 'publish', но оказывается, что эта директория пуста. Что именно произошло?
После того, как WebEd пытался записать файл в директории C:\Program Files\WebEd\publish, этот запрос был перехвачен UAC.
Ваши файлы были сохранены в директории C:\Users\foo\AppData\Local\VirtualStore\Program Files\WebEd\publish.
Естественно, вы можете загрузить файлы на сервер из последней директории.
Какие проблемы могут возникнуть?
Виртуализация файловой системы применяется для программ, не приспособленных для работы с Vista и не поставляющих соответствующий манифест, но при этом не запущенных в административном режиме. Ниже перечислены проблемы, которые могут при этом возникнуть:
Старые приложения обновляются и при этом новые версии содержат манифест
В этом случае (как и с Filezilla) приложение внезапно перестанет использовать виртуализацию файловой системы. Это введет в заблуждение пользователя, т.к. он не будет уведомлен о том, где на самом деле расположены его файлы.
Отключение UAC
Продвинутые пользователи включают эту возможность для восстановления поведения, к которому они привыкли во время использования Windows XP. При этом пострадают все неприспособленные к Vista программы! Они могут "потерять" сохраненные файлы, конфигурационные файлы и данные, сохраненные в директориях, которые были до этого защищены.
Приложение запущено от имени администратора
К приложениям, не приспособленным к работе под Vista, но при этом запущенным от имени администратора не будет применяться виртуализация, после чего они "потеряют" сохраненные файлы, конфигурационные файлы и данные, сохраненные в директориях, которые были до этого защищены.
Как можно решить эти проблемы?
1. Старайтесь использовать последние версии программ.
2. Не сохраняйте данные в защищенных директориях.
К примеру, создайте директорию C:\publish и сохраняйте ваши данные именно там.
3. Отключите UAC. Этот способ не рекомендуется, т.к. при отключении UAC также отключаются соответствующие механизмы защиты, предусмотренные в Vista/7.
4. Не пользуйтесь Vista. ;)
В большинстве случаев достаточно просмотреть содержимое директории C:\Users\