В Windows Vista контроль учетных записей стал чуть ли не ругательным словом, и многие пользователи отключали его первым делом. В Windows 7 ситуация изменилась к лучшему, и хотя с запросами UAC вы будете сталкиваться, их количество во многом зависит от вашего подхода к настройке системы и набора программ, установленных в ней. В этой статье мы поговорим о работе с административными и ограниченными правами, а также о том, как эффективно работать с включенным контролем учетных записей.
[+] На этой странице:
- С какими правами работать?
- Администратор или пользователь?
- Назначение контроля учетных записей
- А вы настоящий суперадмин?
- Безопасность или комфорт
- Повышение прав с запросом UAC и без него
- Компоненты Windows 7
- Современные программы
- Старые приложения
- Виртуализация файлов и реестра
- При чем тут UAC?
- При чем тут безопасность?
- Установка в профиль или получение полных прав на папку программы
- Системные утилиты
- Командная строка и скрипты
- Запуск программ без запроса UAC
- Заключение
С какими правами работать?
В Windows основная опасность работы с учетной записью администратора заключается в том, что вредоносная программа, проникнув в систему, выполняется с полными правами, что позволяет ей перехватить управление и лишить пользователя контроля над системой. В Windows XP перейти к работе с обычной учетной записью было не так просто, поскольку многие настройки системы и, что даже важнее, приложения были рассчитаны только на работу с правами администратора.
Назначение контроля учетных записей
Создавая контроль учетных записей в Windows Vista, Microsoft в первую очередь стремилась к тому, чтобы разработчики программ начали создавать их с оглядкой на права обычного пользователя. Главная идея состоит в том, чтобы программы во время работы не требовали прав на запись в системные папки и разделы реестра, ограничиваясь хранением данных в профиле пользователя и доступных ему разделах реестра (HKCU). Намек был понят, и за три с лишним года, прошедших с момента выхода Windows Vista, стало видно, что большинство современных программ уже следует такой практике. И это совершенно неудивительно, потому что программы тоже нужно продавать, и делать это намного легче, если они полностью совместимы с новыми операционными системами Microsoft.
Если программе не нужны административные права для работы, в организации несложно реализовать ее установку – можно включить программу в образ системы, либо развертывать любым подходящим способом. Некоторые разработчики идут еще дальше, создавая приложения, которые можно устанавливать без прав администратора. Например, я сейчас имею отношение к выпуску огромной информационной системы, в которой предусмотрена работа с ограниченными правами, т.е. у обычного пользователя программный пакет целиком устанавливается в профиль, после чего является полностью работоспособным.
Таким образом, UAC служит мостиком к переходу от повседневной работы с учетной записью администратора к выполнению всех задач с ограниченными правами, что обеспечивает более безопасную среду. ИТ-отдел организации не будет без необходимости наделять пользователей правами администратора, однако в домашних условиях дела обстоят иначе.
Администратор или пользователь?
Многие эксперты по безопасности рекомендуют выполнять повседневную работу в системе с правами обычного пользователя, да и Microsoft в справке Windows предлагает поступать именно так. Для корпоративной среды этот совет абсолютно оправдан и находит широкое применение. Но в домашних условиях ему следуют лишь те же эксперты, да пользователи, для которых безопасность возведена в высшую степень. Архитектура Windows такова, что при установке системы мы обязательно создаем административную учетную запись, иначе в дальнейшем системой невозможно будет управлять.
Рисунок 1 — При установке Windows создается административная учетная запись
А дальше мы входим в систему с этой учетной записью и начинаем работу. И административные задачи приходится выполнять самостоятельно, поскольку дома нет вездесущего сисадмина, как на работе. Конечно, можно создать учетную запись с обычными правами и работать с ней, но Windows устроена так, что удобнее постоянно иметь права администратора. Этот комфорт в конечном итоге оказывается решающим фактором для большинства пользователей. Контроль учетных записей как раз и предлагает компромисс между работой обычным пользователем и неограниченным администратором.
Когда UAC работает, для получения полных прав необходимо запускать программу от имени администратора, даже если вы работаете с административной учетной записью.
Рисунок 2 — Запуск командной строки от имени администратора из контекстного меню
Это обусловлено тем, что при включенном контроле учетных записей администратор и пользователь поставляются «в одном флаконе». У административной учетной записи есть все необходимые права, но когда UAC включен, абсолютно все задачи запускаются с правами обычного пользователя. И происходит это до тех пор, пока для продолжения работы не потребуются полные права администратора. Именно в этот момент и появляется запрос контроля учетных записей, который служит сигналом о том, что программе необходимы административные полномочия. Когда UAC включен, вся разница между работой администратором и обычным пользователем сводится к тому, что в первом случае для продолжения работы вам достаточно нажать кнопку «Да», а во втором – потребуется ввести пароль любого имеющегося в системе администратора.
Рисунок 3 — Командую строку от имени администратора запускают: администратор (слева) и обычный пользователь (справа)
Мимо контроля учетных записей, выдающего предупреждения, не проскочит ни одна программа, требующая полных прав, а предупрежден – значит вооружен, в чем и состоит информационная задача уведомлений UAC. При повседневных же действиях нажать кнопку «Да», конечно, быстрее, чем вводить пароль каждый раз, поэтому постоянная работа с ограниченными правами менее комфортна и при этом не обладает значительными преимуществами с точки зрения безопасности.
А вы настоящий суперадмин?
Регулярно читая форумы Windows, я обратил внимание, что некоторые пользователи мотивируют отключение контроля учетных записей тем, что хотят быть полными хозяевами своей системы. Другими словами, им претит тот факт, что запись в корень системного диска или папку Windows сопряжена с дополнительными действиями, а запросы контроля учетных записей вызывают страшную аллергию.
На одну полку с ними можно поставить поклонников популярной мифологии о всемогуществе встроенной учетной записи «Администратор», чье единственное отличие от остальных администраторов в том, что на нее по умолчанию не распространяется UAC. В реальности отключение контроля учетных записей уравнивает всех администраторов
Интереснее же то, что с помощью групповой политики или реестра несложно включить контроль даже для встроенного администратора. Это может пригодиться, если вы, побыв какое-то время «богом», решили спуститься с небес на землю и поработать с включенным UAC, не теряя при этом уже настроенной пользовательской среды. Но при стандартных параметрах системы работа с единственной учетной записью «Администратор», конечно, эквивалента отключению UAC. Дальше мы посмотрим, почему лучше этого не делать, и как эффективно работать с включенным контролем учетных записей.
Безопасность или комфорт
Появление контроля учетных записей подтолкнуло разработчиков к созданию программ, рассчитанных на работу с ограниченными правами. Однако в домашних условиях мы самостоятельно выполняем административные задачи, и в Windows 7 все-таки удобнее работать с правами администратора. Отключение UAC или использование встроенной учетной записью «Администратор» с точки зрения прав эквивалентно работе в Windows XP и сопряжено с риском потери контроля над системой в случае заражения. На мой взгляд, лучшее соотношение «безопасность / комфорт» в Windows 7 достигается при работе администратором с включенным контролем учетных записей.
Повышение прав с запросом UAC и без него
В Windows Vista я честно пытался работать с включенным контролем учетных записей, и по большому счету в моих задачах он не особо докучал. Но поскольку я регулярно отвечаю в технических форумах конференции OSZone, мне постоянно приходится открывать различные элементы панели управления, оснастки MMC и другие системные компоненты, чтобы посмотреть настройки или просто дать точный путь к нужному элементу. В Windows Vista большинство этих действий сопровождалось запросом UAC, что изрядно напрягало, но в Windows 7 ситуация сильно изменилась.
Компоненты Windows 7
В Windows 7 контроль учетных записей был переработан, причем особое внимание уделялось тем действиям, которые пользователи по статистике все равно одобряли в подавляющем большинстве случаев. Новый стандартный уровень контроля учетных записей позволяет настроить систему и выполнять многие административные задачи без запроса. Это не означает, что UAC для этих задач отключен, просто для компонентов Windows создан особый уровень контроля, чтобы повышение прав происходило тихо, без диалогового окна. Проще всего это продемонстрировать на примере панели управления.
Рисунок 4 — Запрос UAC не выводится, когда администратор переходит по ссылке со щитом в панели управления
В панели управления Windows 7 рядом с некоторыми ссылками и на кнопках в окнах вы увидите щит, который в Windows Vista однозначно свидетельствовал о том, что при нажатии последует запрос. Теперь запроса нет, если вы работаете с правами администратора, но при работе с правами обычного пользователя диалоговое окно, конечно, появится. В параметрах Windows 10 щит не используется, поэтому заранее невозможно сказать, понадобятся ли той или иной операции права администратора.
Отмечу, впрочем, что кое-где разработчики схитрили, спрятав ненавистный запрос, но оставив дополнительный шаг. Примером может служить настройка запроса пароля при пробуждении системы.
Рисунок 5 — Чтобы настроить недоступные параметры, придется нажать ссылку со щитом
Однако такие «хитрости» в панели управления встречаются нечасто, что позволяет администратору беспрепятственно настроить множество параметров системы.
Современные программы
У Microsoft есть рекомендации не только для пользователей, но и для разработчиков программ. Применительно к UAC один из главных советов – это хранение настроек программы и предпочтений пользователя только в расположениях, где для записи не требуются права администратора. В таком случае они нужны только при установке программы, если производится запись в системные папки (например, Program Files) и регистрация компонентов в системе. Конечно, при этом выводится запрос контроля учетных записей.
Но в дальнейшем все пользовательские данные и параметры программы хранятся в профиле, в папке %userprofile%\appdata. Там вы найдете папки с данными установленных у вас программ, которые не требуют прав администратора для работы.
Рисунок 6 – Современные приложения хранят пользовательские данные только в вашем профиле
Наличие трех папок объясняется так:
- Roaming – в корпоративной среде данные из этой папки следуют за пользователем при использовании перемещаемых профилей;
- Local – данные, объем которых слишком велик, чтобы перемещать их вместе с профилем;
- LocalLow – данные, записанные процессами с низким уровнем целостности, т.е. возможности которых по внесению изменений в систему максимально ограничены.
Как я говорил выше, с момента выхода Windows Vista множество приложений уже учитывает контроль учетных записей, и для работы им не требуются полные права администратора. На самом деле, многим приложениям они не нужны даже для установки, и в этом случае разработчикам нет особого смысла требовать прав на запись в папку Program Files. Я думаю, что некоторые авторы программ делают это просто по инерции, в то время как другие уже перестроились.
Рисунок 7 – Поскольку для установки приложения не требуются права администратора, сразу предлагается поместить его в профиль
С новыми программами все довольно просто, но нередко в арсенале обнаруживаются приложения, не вполне приспособленные для работы с контролем учетных записей. Дальше я расскажу, что для решения этой проблемы сделали в Microsoft, и что можете сделать вы.
Старые приложения
Старые приложения – это не только те, что давно не обновлялись, но и те, что подразумевают наличие у пользователя прав на беспрепятственную запись в системные папки и разделы реестра. Как это ни странно звучит, при включенном контроле учетных записей совместимость старых приложений с Windows 7 и Windows Vista улучшается. Это происходит потому, что UAC позволяет компенсировать недостаток прав на запись в системные расположения при работе администратором и обычным пользователем.
Виртуализация файлов и реестра
Разработчики UAC сразу понимали, что старые приложения уже не научатся хранить данные в профиле, а будут пытаться записывать их в папки Program Files или Windows (хотя последнее было дурным тоном еще в ХР). Как я говорил выше, при включенном UAC даже у администратора приложения запускаются с обычными правами, что означает отсутствие разрешений на запись в системные расположения.
Решение было придумано оригинальное – система делает вид, что программе разрешена запись, а на самом деле перенаправляет файлы в профиль, либо записывает параметры реестра в специальный раздел.
В дальнейшем программа продолжает обращаться к этим данным, даже не подозревая об их реальном расположении. Так в Windows Vista появилась виртуализация папок и системного реестра, которую унаследовала и Windows 7.
Несмотря на недетский возраст этой технологии, о ней слышали немногие. Это мы выяснили в конкурсе на знание Windows 7, который проходил в конце 2009 года на OSZone.net. Там был задан вопрос о кнопке «Файлы совместимости» в проводнике, и подавляющее большинство участников ответило, что такой кнопки в Windows 7 не существует.
Между тем, именно с помощью этой кнопки вы можете увидеть папки, в которые программы пытались записать данные, не имея на то разрешения. Это может вам пригодиться, если вы захотите вручную сделать резервную копию настроек программы или данных, которые она сохранила.
Увеличить рисунок
Рисунок 8 — Кнопка «Файлы совместимости» ведет в виртуальное хранилище
У меня эту кнопку проводник отображает уже в корне системного диска, а нажав ее, я вижу папки с названиями Windows и Program Files, а также какой-то архив. Обратите внимание на адресную строку проводника – я перешел в уже знакомую папку AppData, а точнее – в виртуальное хранилище (Virtual Store). Названия программ в папке Program Files мне знакомы – это и есть старые приложения, работа которых не нарушилась благодаря виртуализации файлов.
Давайте посмотрим, как это работает на практике (UAC не забудьте включить). Откройте блокнот и попытайтесь сохранить текстовый файл в папке Windows. Вы сразу увидите сообщение о недостатке прав и предложение сохранить в файл в профиле.
Рисунок 9 – Чтобы сохранять или изменять файлы в системных папках, «Блокнот» нужно запускать от имени администратора
Собственные программы Microsoft, конечно, спроектированы для работы обычным пользователем, поэтому они знают, что делать при отсутствии прав. Теперь возьмите, скажем, текстовый редактор Akelpad, в котором не предусмотрено такое сообщение, и попробуйте сделать то же самое. Вместо папки Windows файл будет сохранен в виртуальном хранилище, и в дальнейшем «обманутый» Akelpad будет видеть его именно в папке Windows (а блокнот – нет, ведь он туда ничего не записывал).
Рисунок 10 — Akelpad открывает «свой» файл из папки Windows (слева), хотя он расположен в виртуальном хранилище (справа)
Теперь понятно, откуда взялся Archive.zip в корне виртуального хранилища. Я создал его в корне системного диска архиватором 7-zip, причем неважно, из контекстного меню, либо просто запустив программу с обычными правами. Система позволила выполнить операцию, но сохранила файлы в профиль.
Виртуализация реестра происходит аналогично. Например, при попытке записи в HKEY_LOCAL_MACHINE\Software\ProgramName происходит перенаправление в раздел HKEY_USERS\<User SID>_Classes\VirtualStore\Machine\Software\ ProgramName, где User_SID обозначает идентификатор пользователя, от чьего имени выполняется действие. Кроме того, перенаправляются все попытки записи в разделы, куда администратор имеет доступ, а обычный пользователь – нет.
Виртуализация файлов и реестра распространяется только на 32-разрядные приложения с графическим интерфейсом, т.е. службы не виртуализируются.
При чем тут UAC?
С помощью виртуализации файлов и реестра обеспечивается совместимость со старыми приложениями, и в первую очередь она нацелена на работу с правами обычного пользователя. Если UAC отключен, администратор не заметит разницы, поскольку права на запись в Program Files у него есть. А вот обычных пользователей старая программа может огорчить очень быстро, ведь прав на запись в системные расположения нет (хоть с UAC, хоть без него), а перенаправить данные уже некому. Программа «ломается», т.е. скорее всего, выводит сообщение из разряда «отказано в доступе».
При чем тут безопасность?
Представьте, что вредоносная программа скрытно пытается осуществить запись в системную папку или раздел реестра. Раз она это делает, безопасность вашей системы уже отчасти скомпрометирована – программа проникла на компьютер, а антивирус на нее до сих пор не среагировал.
Благодаря виртуализации, ущерб не простирается дальше прав обычного пользователя. Другими словами, действие вредоносного кода ограничивается профилем, т.е. не распространяется на системные файлы и параметры.
Аналогично работает и защищенный режим в Internet Explorer, о котором речь шла в третьей статье серии. И хотя виртуализация UAC не задействуется для этого режима, ему необходим включенный контроль учетных записей.
Таким образом, контроль учетных записей повышает не безопасность, а устойчивость системы к заражению. Главное — вы не теряете над ней контроль, а в этом случае намного проще устранить любую проблему.
Установка в профиль или получение полных прав на папку программы
Виртуализация файлов и реестра помогает в тех случаях, когда приложение запускается с обычными правами (т.е. без запроса UAC), но в процессе работы нуждается в правах администратора и при этом не умеет их запрашивать. Существуют программы, которые уже при запуске проверяют наличие прав на запись в собственную папку.
Когда они установлены в Program Files, права на запись отсутствуют, поэтому при запуске появляется запрос UAC. В этом случае можно попробовать заставить программу идти в ногу со временем, установив ее в профиль. Альтернативный вариант – это получение полных прав на папку программы, что может оказаться быстрее переустановки в профиль.
Кстати, все свои портативные приложения, которые по своей природе хранят настройки в собственной папке, я держу именно в профиле. Причем это даже удобнее, чем класть их в Program Files, поскольку не задействуется виртуализация, отделяющая настройки программ от их расположения.
Впрочем, иногда у программ, старых и новых, есть совершенно оправданные причины для доступа к системным файлам и параметрам, поэтому ни виртуализация, ни наличие полных прав на папку программы не поможет избежать запроса. Дальше речь пойдет о программах для изменения системных параметров.
Системные утилиты
Есть особая категория программ, назначение которых как раз в том, чтобы отображать или изменять системные параметры, поэтому им обязательно нужны полные права. И если вы любите «поковырять» систему, с запросом UAC будете сталкиваться довольно часто. В зависимости от цели программы, вы будете видеть запрос контроля учетных записей при каждом ее запуске, либо только при выполнении действий, которые требуют наличия полных прав.
На примере утилит Sysinternals Марка Руссиновича это легко продемонстрировать. Process Explorer отображает массу информации о системных процессах, но для ее сбора, очевидно, нужны полные права, поэтому запрос выводится сразу. Утилита Autoruns, которая знает все об автозагрузке системы, запускается с обычными правами, а запрос выводит только в случае, когда вы изменяете параметры, требующие административных полномочий.
Рисунок 11 – Утилите Autoruns нужны полные права для внесения изменений в системный раздел реестра
Когда с помощью Autoruns вы изменяете пользовательские параметры (раздел HKCU), запрос не выводится, а при настройке системных параметров на самом деле получается два запроса. Один выводит программа (рис. 11), после чего требуется ее перезапуск, что ведет уже к появлению запроса UAC (аналогично ведут себя сторонние файловые менеджеры при попытке копирования файлов в системные папки). Это неудобно (лучше уж однажды при запуске), но вполне решаемо, как мы увидим это чуть позже.
Командная строка и скрипты
Со встроенными программами Windows 7 тоже получается по-разному. При открытии редактора реестра запрос появится сразу, даже если вы хотите просто проверить наличие какого-нибудь параметра. Командная строка же запускается с обычными правами, а при попытке выполнить в ней команду, требующую полных прав администратора, выводится соответствующее сообщение (рис. 12 слева).
Рисунок 12 – Из заголовка командой строки понятно, с какими правами она запущена (слева с обычными правами, справа – от имени администратора)
К сожалению, заранее не всегда известно, что для выполнения команды нужны права администратора, и тогда приходится перезапускать командную строку и заново вводить команду, а это — лишние действия. Можно немного схитрить, разместив в системной папке утилиту elevate, которая позволяет запросить повышение прав для программ из командной строки, которая запущена с обычными правами.
Рисунок 13 – С помощью утилиты elevate для команды запрашивается повышение прав
Запрос контроля учетных записей при этом все равно появится, но время все-таки экономится, т.к. не надо запускать новую командную строку от имени администратора и повторно вводить команду. Достаточно нажать стрелку вверх (повтор команды), затем клавишу Home (переход к началу строки) и ввести elevate /k. Конечно, это полумера, но если вы часто работаете с командной строкой, эту утилиту стоит иметь в арсенале.
И раз уж речь зашла о командной строке, нельзя обойти вниманием скрипты, которые также часто приходится запускать с повышенными правами. В контекстном меню Windows 7 возможность запуска от имени администратора предусмотрена только для скриптов командного интерпретатора, т.е. для bat и cmd. Однако с помощью набора утилит Elevation PowerToys можно расширить список, добавив туда WSH и PowerShell, а также возможность запуска скриптов от имени другого пользователя, включая систему.
Наконец, существует способ, который позволяет сразу запускать с полными правами не только командную строку, но и любую программу без всякого запроса UAC.
Запуск программ без запроса UAC
Достаточно поработать с контролем учетных записей пару недель, чтобы определить список приложений, при запуске которых появляется диалоговое окно UAC. Для каждого из них можно создать ярлык, который будет запускать программу без всякого запроса. Можно также создать ярлык для командной строки и/или диалогового окна «Выполнить», откуда любые задачи уже будут выполняться с полными правами администратора.
Это реализуется с помощью планировщика задач, который позволяет запускать задания с наивысшими правами, которыми наделен пользователь. Когда программу запускает администратор, она сразу получает полные права, поэтому запрос не выводится (потолком обычного пользователя остаются ограниченные права, конечно). Данный способ во всех подробностях описан здесь моим коллегой, и там даже есть утилита, с помощью которой можно создавать такие ярлыки перетаскиванием обычных ярлыков программ. Конечно, можно выполнять приложения и автоматически при запуске системы, если сразу указать это в планировщике или поместить созданный ярлык в автозагрузку.
Заключение
Как видите, можно организовать свою повседневную работу в Windows 7 так, что контроль учетных записей будет почти незаметен, даже если вы любите повозиться с системой. При ее настройке из панели управления контроль UAC практически не докучает, благодаря изменениям, произошедшим в Windows 7. В помощь любителям командной строки есть утилиты, упрощающие запуск команд и скриптов от имени администратора, а запуск любых программ без запроса можно настроить с помощью планировщика задач.
Конечно, если вы ежедневно устанавливаете несколько приложений, вы будете видеть запросы UAC чаще. Но для экспериментов и подбора подходящих программ лучше всего подходят виртуальные машины, а там контроль учетных записей можно и отключить.
Я свел в одну таблицу все описанные в этой статье средства, которые помогут вам ускорить работу в системе с включенным контролем учетных записей.
Действие | Средство для повышения удобства работы |
---|---|
Настройка в панели управления | Не требуется |
Настройка системными утилитами | Ярлык для запуска с полными правами |
Запуск и работа старых приложений |
|
Работа в командной строке |
|
Запуск скриптов |
|
Подбор и тестирование приложений | Виртуальная машина |
Сергей
Содержание статьи достойно диссертации. Между тем, все организуется гораздо проще: а) Иметь боевой бэкап системы, желательно, в скрытой зоне винчестера, б) Установить помимо антивируса несложный бесплатный файрвол, например, из пакета Comodo IS, в) Регулярно восстанавливаться из бэкапа, обновлять защитное ПО, добавлять софт, установленный на системный диск за прошедший период и, после «чистки и смазки» заливать новый бэкап.
Естественно, всю драгоценную информацию нужно держать подальше от системного диска. А UAC я отключаю сразу, после установки системы, поскольку никакой пользы от него нет, одна нервотрепка, так как сия функция, увы, обучению не поддается. Нельзя позволять какой-то системе (не первой и не последней) командовать собой!
Vadim Sterkin
Сергей, я не претендую на диссертацию. Я объясняю, как эффективно работать с UAC. Это может быть полезно тем, кто с ним работает (их не так уж мало), а также в качестве ликбеза для тех, кто не видит в нем пользы.
Что же касается ваших других тезисов, то замечу лишь, что
чревато потерей боевого бэкапа в случае внезапной гибели жесткого диска :) В остальном же все близко к тому, что я пишу в остальных статьях о безопасности и резервном копировании.
Александр Владимирович Николаев
Мне статья понравилась. Я не программист, инженер. Вы меня убедили, что UAC полезен. Но у меня возникло два вопроса:
1. Как войти мне в систему с правами пользователя на мой интерфейс стола (не хочется создавать паралелльный интерфейс и следить за ним)
2. Я могу создать для жены вход с паролем и входить от её имени,
создать нужный мне интерфейс с настройками, но в этом случае я также должен продолжать следить за своим интерфейсом (администратора), Моя супруга в основном сидит в одноклассниках,
ей любой стол подойдёт.
Если я что-то не понимаю не сочтите за труд ответить.
С уважением Александр Владимирович.
Vadim Sterkin
Александр Владимирович Николаев, я не совсем понял суть вопросов… особенно по части слежения за параллельным интерфейсом. Но в любом случае ни вам, ни жене ничего не надо менять или создавать — просто включите UAC и продолжайте работать.
automobile
Спасибо за статью.
Пример с Блокнотом и AkelPad актуален лишь в том случае, если вкладка «Безопасность» папки Windows настроена по умолчанию и не менялась при установке (по тем, либо иным причинам). Иначе и ограниченная учетка и администраторская пишут в C:\Windows (именно сюда) и с Блокнота и с AkelPad’а, и UAC даже и не пикнет ни разу :)
Vadim Sterkin
automobile, пожалуйста. Что же касается вашего замечания, то я считаю совершенно излишним изменение прав на папку Windows. Это чревато не только проблемами с безопасностью, но и очень часто приводит к переустановке системы. Примеры — в форуме.
Александр
Как вариант, для максимально эффективного использования системного диска, можно включить сжатие средствами NTFS (с папками и подпапками, разумеется). Чтобы сжалось как можно больше файлов — можно предварительно сделать группу администраторов владельцами всех папок и файлов диска С (заменить владельца подконтейнеров и объектов), а затем добавить администраторам полные права на все дочерние объекты диска С. Не сожмутся только открытые и заблокированные файлы. при таком подходе, как раз и приходим к ситуации, когда
Кстати, даже на свежеустановленной системе это освобождает 6-7 Гб, если мне память не изменяет. Не говоря уже об устанавливаемых программах.
Vadim Sterkin
Верный способ убить систему.
Шейхнур
Спасибо за ваши статьи, очень просто о сложном :-) люблю такой подход, когда нету чрезмерной
напыщенностинаучности. Но, честно говоря, чаще всего приходится восстанавливать как раз-таки пользовательские данные. Ибо переустановить систему для обычного пользователя не столь страшно, нежели потерять любимую музыку, нажитую непосильным трудом трекера и зачастую семейные фотографии и видео (как всегда без резервной копии). :-)Vadim Sterkin
Шейхнур, спасибо за отзыв. Наверное, «просто о сложном» — это мой фирменный стиль :)
Что касается переустановок системы, то не вижу смысла тратить на это время. Но это уже другая тема для разговора: Как настроить Windows 7, чтобы переустанавливать ее как можно реже
Шейхнур
Именно, согласен, но в последнее время начинаю задумываться, как можно защитить получше пользовательские данные от несанкционированных изменений приложений (то бишь вредоносных программ, которые любят над ними «поэкспериментировать»), т.к. восстанавливать данные после их утери дело совсем неблагодарное, особенно, если они дороже самой системы :-). Одному знакомому пришлось ради этого создать практически полностью изолированный раздел с минимальными правами на доступ (использовал для этого отдельную учетную запись) с аудитом и ведением журнала. Кстати есть ли более простой способ изоляции целого раздела или тома от системы? Очень трудно заставить людей делать резервные копии.
Vadim Sterkin
Шейхнур, я вижу два пути:
a) защита от доступа пользователей путем настройки прав доступа (ACL)
b) защита от запуска несанкционированных программ путем настройки AppLocker (в Ultimate) См. также [подкаст] Семь причин использовать отдельные учетные записи для каждого члена семьи
Пути не взаимоисключающие, конечно.
Лёха
В этом-то и проблема. Это оправдано на предприятии, если работа организована в виде клиент-сервер и главное сервер, а профиль пользователя потерять не страшно.
В домашнем же окружении самую большую ценность представляют именно данные пользователя, но не системные файлы.
Vadim Sterkin
Лёха, проблемы нет, ибо с UAC на порядок спокойнее. Вообще, UAC — не антивирус, а пользовательские файлы не представляют ценности для большинства современных зловредов. Простейший пример — SMS-блокеры.
Лёха
Vadim Sterkin, да, про СМС заразу я как-то забыл, хотя пару месяцев назад лечил такую )
AlexIz
UAC — костыли для небезопасной ОС, а всякие специальные ярлыки, утилиты облегчающие их создание, утилитки типа elevate — костыли к костылю. По-моему это уже некоторый перебор. Или мне только кажется?
Особенно «радует» упорное желание микрософта помещать мои данные так, чтобы я не знал, где они находятся. Т.е. сохраняю скажем из акелпада приведённого в качестве примера в статье что-то, потом через некоторое время хочу скопировать свой файлик на флэшку, а его и нету там, где планировалось, потом сиди — думай, ищи, где у тебя что система заныкала. И что особенно замечательно, что за это микрософт ещё и денег хочет всё больше и больше. Мы тебе сделаем неудобно, а ты нам за это заплатишь.Причём окончательно убеждаешься в неудобстве такого подхода не перед покупкой, разумеется, а после того, как поработал с системой некоторое время. =)
Это к разговору о том, почему люди отключают UAC ;)
Vadim Sterkin
Я объясняю, как эффективно и быстро работать с UAC. Лично мне без разницы, вводить в окно «Выполнить» cmd или cmda, особенно с учетом автодополнения. Да и само окно можно запускать с правами админа при желании.
Особенно «радует» упорное желание некоторых юзеров хранить свои данные в Program Files и Windows.
Обычно, такое мнение высказывают пользователи пиратских ОС. Но в любом случае, ОС с открытым исходным кодом бесплатны, а использовать Windows дома вас никто не принуждает.
Алексей
Я против UAC по следующей причине.
В интернете многие программы идут «с автоматической установкой» и они выдают ошибку при включенном UAC.
Поэтому для меня привычнее винда с отключеным UAC.
А для всего остального есть антивирус.
Vadim Sterkin
Алексей, не качайте чужие сборки программ, и будет вам счастье. Антивирус тоже не панацея, так что не обольщайтесь.
Андрей
Спасибо за статью, действительно UAC это одно из основных достоинств ОС в плане безопасности для обычного пользователя.
Я являюсь и пользователем и администратором за своим домашним ПК создавать два профиля неудобно, Win7, UAC включен — уровень уведомления максимальный , работаю от имени админа, дополнительные ограничения типа AppLocker не установлены, допустим ко мне на ПК проник вредоносный код, который запустился от имени ограниченного пользователя.
Вопросы:
1) В Win7 лучше чтоб UAC-запрос требовал ввод пароля или просто нажатия «ок»? ведь программа может симитировать затемненный рабочий стол и украсть введенный мною пароль администратора и потом сама будет незаметно с помощью этого пароля запускать все, что ей нужно. Как пользователю отличить настоящий затемненный стол от поддельного?
2) В Win2008 возможно нужно работать под ограниченным пользователем (UAC включен, но в политиках установлено отклонять запрос повышения прав), а для администрирования в этом же пользователе запускать терминал в отдельном окне. В таком случае вредоносная программа не сможет как-то перехватить ввод-вывод в это терминальное окошко?
3) Или все же единственный путь для безопасности это разделять пользователя и администратора и для любых задач, что требуют административных привилегий перелогиниваться от имени администратора?
Vadim Sterkin
Андрей,
1. У сторонних приложений нет доступа к безопасному рабочему столу, его контролирует Winlogon. Если он каким-то образом скомпрометирован, то система уже давно не ваша, и не стоит беспокоиться о краже пароля. Архитектуру winlogon лучше всего изучать по книге Руссиновича Windows Internals.
2. Даже если такое возможно, я сильно сомневаюсь, что она сможет это сделать с ограниченными правами.
3. Работа с ограниченными правами безопаснее, конечно. UAC не является границей защищенной зоны, потому что принятие решения о повышении прав остается за пользователем.
См. также:
• Уровни целостности в Windows
• Программа PsExec, контроль учетных записей и границы защищенной зоны — Mark Russinovich по-русски и по-английски.
Все зависит от требований к безопасности (например, в организации). Дома я считаю достаточным для себя стандартного уровня UAC при работе админом. Требование ввода пароля — надежнее, конечно. Так что решайте сами.
Андрей
Vadim Sterkin,
>> У сторонних приложений нет доступа к безопасному рабочему столу, его контролирует Winlogon.
По поводу безопасного рабочего стола я понимаю.
Я имел в виду, что программа не использует безопасный рабочий стол вообще. Программа(работая с ограниченными правами как ТимВьювер если его запускать а не устанавливать) делает принтскрин, затемняет его, выводит мне его в полноэкранном режиме, имитирует окошко ввода пароля, я ввожу пароль думая что это безопасный рабочий стол, пароль попадает в руки программы.
Теоретически программа может подсунуть мне имитацию как раз перед выполнением действия, которое требует админ-прав, а потом втихую выполнить эти админ действия, ведь пароль у нее уже есть, я могу даже не заметить что пароль у меня украли.
Поэтому мне показалось, что лучше когда я нажимаю кнопку «ок» а не ввожу пароль при UAC-запросе.
Вот если бы как-то требовать Ctrl+Alt+Del при UAC-запросе, чтоб быть уверенным, что это именно оригинал а не имитация.
>>Работа с ограниченными правами безопаснее, конечно. UAC не является границей защищенной зоны, потому что принятие решения о повышении прав остается за пользователем.
Я предполагаю, что пользователь компетентен ( это ведь я сам ))), и я не буду допускать недоверенные программы, ну и вообще у меня UAC почти ничего не спрашивает никогда, если какая-то программа не соответствует концепциям безопасности и хочет постоянно админа — я стараюсь такие программы просто не устанавливать. А ведь если я не нажму «ок» программа просто так сама свой уровень доступа не повысит насколько я понимаю.
Спасибо за развернутые ответы.
Vadim Sterkin
Андрей, вы очень тщательно подходите к защите системы…
Требуйте :)
Не повысит.
Елена
А ведь действительно в проводнике нет кнопки «Файлы совместимости». Или надо что-то сделать для ее появления?
Vadim Sterkin
Елена, кнопка отображается, если UAC включен и имеются файлы в виртуальном хранилище. В статье подробно описан эксперимент с блокнотом и Akelpad. Попрактикуйтесь :)
pongo
На компьютере я один пользователь, но у меня было две учетки:
1. Admin — с правами обычного администратора. Для установки программ, настройки и обслуживания системы. UAC включен.
2. Pavel — обычная учетка, в которой работаю. UAC включен.
Но, получается, в этом нет смысла? т.к. Admin — это та же самая обычная учетка, но которая может повышать свои права в более удобной форме: без ввода пароля.
И с точки зрения вирусной безопасности, работа под админской и обычной учеткой одинаково безопасна? Откуда тогда берутся все эти советы работать под обычно учеткой.
Ставлю сейчас windows 8, думал по привычке первым пользователем создать Admin’а, а потом добавлять обычного. Но, получается, нет смысла так заморачиваться.
Что вы думаете по поводу программы TweakUAC, которая для админских учеток облегчает работу с UAC: оставляя его включенным, она скрывает все эти уведомления.
Насколько это безопасно?
Vadim Sterkin
Я думаю, что такие программы не нужны. Если админу нужно постоянное повышение для опредленной задачи, это делается планировщиком (ссылка в записи).;
Александр [Маздайщик]
Я также делал, когда у меня был Windows XP. Когда у меня появился нетбук с Windows 7 Starter, я сначала хотел разблокировать встроенного администратора (не получилось ибо Starter), а потом сделал себе двух пользователей. Из улучшений UAC в семёрке видел только плюс: там где раньше XP выдавала окошко «Эта операция доступна только администраторам, OK?», в семёрке сразу вылезало окно ввода пароля. На Windows 7 Professional я пользовался двумя учётками: встроенным администратором и ограниченным пользователем и в запросах UAC вводил пароль. Сейчас сижу в Windows 8.1 с административной учёткой и включённым UAC, как описано в статье.
сс
applocker? серьезно? бросьте каку.
Vadim Sterkin,
Vadim Sterkin
Вы из какой группы детсада? Обоснуйте как следует или выпилю комментарий.
Алексей
Спасибо за статью, изложено доходчиво :)
2 вопроса, если позволите:
1.
Win7x64 Pro лицензия, UAC включен, учетка админская, но не встроенная.
7-zip x64 9.20 без повышения прав просто отказался создать архив в корне диска С.
Так и не удалось увидеть волшебную кнопку в проводнике :(
2.
Если есть — поделитесь, плиз, информацией по теме Remote UAC (http://msdn.microsoft.com/en-us/library/aa826699%28VS.85%29.aspx)
То, что удалось почитать на английском, скорее запутало для меня ситуацию, чем прояснило. Интересует поведение Remote UAC в Workgroup-среде.
Vadim Sterkin
Алексей,
1. Возможно, в архиваторе поменялось что-то, статья же давно была написана. У меня есть все тот же старый AkelPad 2005 года, с ним работает. Равно как в %LocalAppData%\VirtualStore пишут некоторые программы, лежащие в Program Files (SopCast) и даже драйвер Synaptics что-то туда накидал.
2. Мой опыт сводится к RDP до локальных виртуалок. В принципе, та же рабочая группа, и я там каких-то проблем не замечал. Думаю, надо разбираться с ними по мере поступления.
Андрей
Вадим,
для кого-то сведения в статье не новы, а для меня полезны. Спасибо.
Из-за необходимости уже неделю изучаю W7 (сам пользователь XP) и, конечно же, возникает много вопросов. В частности
Скажите, где Вы размещаете свои портабельные программы? И где бы Вы разместили пакет PortableApps.com при условии 2-х дисков и 2-х учеток: Админ и Обычный пользователь?
Vadim Sterkin
Андрей, информация в статье устарела :) Мои портативные программы лежат в папке ProgramFiles (x86)\PortableSoft. Это означает, что без прав администратора их файлы не подменить. Некоторые из них, будучи запущенными с обычными правами, пишут данные в VirtualStore (поиск в правом верхнем углу). Фактически это уже не портативность, но эти данные автоматически переносятся средством переноса данных (поиск).
Владимир
я думаю что не надо отключать контроль учетных записей.. так они оповещают об изменениях!
Алексей
Очень хорошая статья, Вадим.
Технология песочницы UAC, которая применяется в Windows 7 помогает безопасно работать в системе, не опасаясь за то, что может пролезть вредоносная программа без твоего ведома, а это очень важно и дает полный контроль над работой программ и системы в частности. Считаю эту технологию незаменимой и очень нужной. Сам в свое время работал на Windows 7 вообще без антивируса, только встроенный «Защитник Windows» был включен и никаких вирусов и прочего не было!
Кстати, по моим наблюдениям х64 система более безопасна, чем х32.
Vadim Sterkin
Алексей, вообще, UAC не отменяет антивирус, да и разницу между х86 и х64 по наблюдениям трудно выяснить :)
interested
Здравствуйте! Недавно перешёл c Norton AV 2014 на ESET AV 8. Norton был установлен вместе с ОС windows 7(x64) и работал с настройками по умолчанию до момента перехода на ESET. Norton удалял их штатным анинсталлером и продублировал Norton Removal Tool. После последнего обновления windows(10.12.2014), при запуске приложений Microsoft (например CMD, MMC), контроль UAC сообщает что издатель этих приложений неизвестен. В чём может быть проблема:
1) это конфликт перехода с одного АВ на другой?
2) это неполадки именно в обновлении ОС?
3) или ESET пропустил подмену оригинальных файлов?
Vadim Sterkin
Без диагностики на эти вопросы ответить невозможно. Я бы начал с чистой загрузки, а потом продолжил проверкой диска и sfc /scannow (и надеялся бы, что не понадобится CheckSUR).
interested
Вадим, Благодарю за ответ и рекомендации. Сегодня вышло важное обновление Windows. После его установки всё работает нормально.
Если кому будет полезно такое наблюдение. ESET не позволяет откатить ОС на созданную ранее точку восстановления. Процесс восстановления запускается нормально, но после перезагрузки выдаёт сообщение, что система не смогла получить доступ к файлу и остаётся в настоящем состоянии. Удалось откатить только в безопасном варианте загрузки ОС. Это уже не про UAC :)
Михаил Круг
День добрый, у себя uac понижаю у родителей или обычных пользователей повышаю , или делаю через политику чтоб запрашивал пароль.
Есть вопрос:
понимаю что может не в ту ветку, Подскажите как называются требования или предписания для разрабодчиков ПО от MS чтоб софт работал в пользовательской среде без всяких запросов на повышение полномочий? + развертывался через GPO.
Vadim Sterkin
Best Practices, Requirements (пример UAC). С GPO не интересовался… наверное, нужен MSI.
Михаил Круг
Нужен MSI канечно . но иногда эти MSI не работают корректно, создатель просто пакует свой сетап в MSI — а он не ставится без выполненного входа например, как это было с ранними версиями 1С.
Вит К.
Многие ссылки на данной странице ведут на страницы с «Не найдено, ошибка 404»
Vadim Sterkin
Я нашел только две…
Бастет Томкевич
Здравствуйте. А как быть в домене, когда нужно ПОЛЬЗОВАТЕЛЯМ запускать специфическое устаревшее приложение требующее ПОЛНЫХ админских прав?
AdminLink проблемы не решает. Система все равно запрашивает пароль на запуск.
Планировщик заданий может выполнить задание с максимальными правами пользователя ВОШЕДШЕГО в систему, а не того, от имени которого запускается задание/приложение.
Как решить эту проблему без раздачи лишних прав и разрешений?
Vadim Sterkin
Например, RemoteApp
Anton Petrov
Спасибо, познавательно.
Проникся, отключать UAC вроде и не хочется, но соблазн очень большой… :)
Что можно сделать, если программа наотрез отказывается работать с включенным UAC, а
помогает только его отключение?
Есть ли шанс решить такую проблему с помощью Application Compatibility Toolkit?
Автор программы советует отключить UAC и да — это помогает.
А из того, что пробовал с включенным UAC, не подходит ничего:
1) Установка и в разные каталоги, и на несистемный диск. Включение «Режим совместимости» с Win XP SP2|3 и «запускать от Администратора».
2) «Портабелизация» с помощью VMware ThinApp.
3) «Виртуализация» с помощью Spoon Virtual Application Studio.
4) Поверхностно пробовал Application Compatibility Toolkit: анализ с помощью
Standard User Analyzer Wizard и установка Shim от него. А также вручную выставлял
настройки RunAsAdmin, WinXPSp2.
5) Испробовал и Windows XP Mode — это работает, конечно. Но это же фактически «виртуалка», а значит долго, неудобно и ресурсоемко. Т.е. долгий запуск программы, >1.5 ГБ на диске, 0.5 ГБ в ОЗУ,
для окна программы не работает AeroSnap и его сочетания клавиш и т.д., и т.п.
Собственно, виновник: Planetsoft MyMoney 5.0 отсюда http://www.planetsoft.ru/download/mymoney/
Похоже, что она разработана на Visual Basic.
Выдает такую ошибку при заходе в любой счёт базы: «Run-time error ’70’: Permission denied».
А вот совет разработчика: «Важно! Пользователям Windows Vista и Windows 7 \ Если у вас установлена операционная система Windows Vista или Windows 7, бывают случаи когда Контроль Учетных Записей (UAC) мешает корректной работе некоторых программ и поэтому его надо отключить.» http://www.planetsoft.ru/index.php?option=content&task=view&id=167&Itemid=7
Начал изучать «последнюю надежду» — Application Compatibility Toolkit. Может напрасно?
Vadim Sterkin
Антон, найдите другую программу. Сейчас полно сервисов, в том числе с удобными приложениями для смартфонов.
Anton Petrov
Вадим, спасибо за быстрый ответ, но предложенный вами вариант на самом последнем месте в моем списке возможных решений. А смартфоны пока не долюбливаю.:)
Вопрос (пожалуй, главный): можно ли как-то управлять опцией «Виртуализация UAC»?
Интересно всё-таки разобраться в совместимости программ с UAC на будущее. Но, к сожалению, с моими вопросами пока ничего не прояснилось.
А MyMoney — привычная программа плюс база с 2005-го года (жалко, однако).
По UAC + MyMoney: с помощью VMware ThinApp обращения к %ProgramFiles% и к реестру в HKLM прекрасно «портабелизируются». Но раз всё равно выдает Run-time error ’70’ при включенном UAC, то или программа «лезет» ещё и в каталог Windows, или UAC просто не обращает внимания что ли на эту портабелизацию и всё равно пресекает попытки. Или может всё дело в Visual Basic и с ним такая «портабелизация» и не поможет?
Vadim Sterkin
Антон, запускайте программу от имени администратора, рецепты в статье.
Нет
Anton Petrov
Эх, если бы это работало, то я бы не писал п. (1) здесь: https://www.outsidethebox.ms/10034/comment-page-1/#comment-31101
И не мучился бы с остальными пунктами. ;)
Еще раз перепроверил — оказывается опция «Виртуализация UAC» для процесса MyMoney включена. Но не помогает: программа всё равно конфликтует с UAC.
Ради спортивного интереса проверил кроме Win7 SP1 x64 ещё и на Win10 — тоже не работает MyMoney с включённым UAC: «Run-time error ’70’: Permission denied».
Может всё дело в том, что она на Visual Basic?
Vadim Sterkin
Дело в том, что программа — абсолютный мусор. Как только вы это полностью осознаете, то найдете ей превосходящуюю замену и перестанете задавать тут вопросы, на которые нет ответа.
Yaromax
Вадим, спасибо за очень полезную информацию. Есть вопрос по UAC — пока не могу победить. Итак, есть домен Windows, почти все компьютеры под Windows 7, сервера Windows 2008R2, UAC на клиентах включен. Для применения настроек используются стартап и логон скрипты — под всеми пользователями все прекрасно работает, вопросов нет. Под одними из пользователей после нажатия Ctrl-Alt Del и вводе пароля UAC начинает спрашивать разрешения на каждое действие. Что интересно — у пользователя права администратора домена, ситуация наблюдается при входе на любой компьютер сети. Если зайти на те же компьютеры другим пользователем с аналогичными правами — все работает как надо, UAC не задает вопросов. Что можно поправить — уже мыслей нет.
Vadim Sterkin
Смотрите принадлежность к группам.
Просто создайте нового вместо проблемного.
Yaromax
С группами вроде порядок, создать нового — первое что приходит в голову, скорее всего завтра протестирую, только проверить надо будет чтобы ничего нигде после сноса не отвалилось. Интересно, что могло подломаться в профиле пользователя что он так странно работать стал?
Yaromax
Нового пользователя создавать не стал, помогла правка групповых политик в домене в разделе контроля учетных записей, но остается непонятно почему у группы Domain Users UAC ничего не спрашивает и все работает как надо.
Vadim Sterkin
Это уж вы сами смотрите, что там за группа у вас.
Дмитрий Никитин
Кто знает как идентифицировать программу или процесс, который вызывает контроль учетных записей?
Vadim Sterkin
Это написано в диалоговом окне UAC
Sergey
Запуск игры Diablo 2 не работает с помощью ярлыка без запроса UAC, реализованного с помощью планировщика задач. Она просто не запускается.
Aleksandr
Вадим, а каким образом, некоторые приложения, например WhatsApp десктоп клиент — устанавливаются без прав локального администратора и запихивают себя в установленные программы и приложения?
Vadim Sterkin
Александр, а каким образом вы распаковываете архив в любую папку профиля? См. Зачем программам нужны установщики
Aleksandr
Спасибо за ссылку!
Да, с профилем всё предельно ясно, но, черт возьми, как он запихивает себя в список «Programs and Features» ?
Vadim Sterkin
https://msdn.microsoft.com/library/windows/desktop/ee872121(v=vs.85).aspx + левое меню этой страницы
Ashandy Chegevara
Пока не начал админить виндовый сервер, то UAC не ценил, соответственно всегда отключал. При многопользовательской работе — ни в коем случае ))
Кстати попутно не могу найти решение для такой задачи.
Есть одна программа, которая у пользователей иногда банально подвисает, причем на панели задач ее нет. Решается просто снятием задачи и запуска ее снова, но у пользователей нет прав админа. То есть мне нужно чтобы пользователи могли запускать taskmgr, но могли снимать задачи запущенные только от их учетной записи. Как это сделать, подскажите?
Alexandr Kovalchuk
Для начала — какая система?
По умолчанию права на запуск Диспетчера есть у всех. И свои процессы может «убить» даже не-админ.
Если при запуске выскакивает окно UAC-a, то можно ввести пароль текущего пользователя (обычного), и он запустится.