Контроль учётных записей пользователей

Поделись знанием:
(перенаправлено с «User Account Control»)
Перейти к: навигация, поиск

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





Предпосылки создания

Ограничение прав, с которыми выполняются приложения (например, различение между «суперпользователем» и «обычными пользователями»), в течение десятилетий было обычным явлением в операционных системах для серверов и мейнфреймов. Домашние же операционные системы Майкрософт (такие, как MS-DOS, Windows 3.x и Windows 9x) не имели разделения прав: программа могла выполнить на компьютере любое действие. По этой причине компьютеры общего пользования быстро подвергались заражению вредоносными программами.

Несмотря на появление разделения прав в Windows NT, пользователи по привычке и для удобства использовали для работы учётную запись с правами администратора, нарушая принцип «запускать любую программу с минимально возможными правами». К тому же многие программы, написанные для Windows 9x или протестированные только с правами суперпользователя, не работали с урезанными правами — например, хранили конфигурационные файлы в каталоге с программой или в общей для всех пользователей ветке реестра.

Получается замкнутый круг: разработчики делают программное обеспечение, которому требуются широкие права пользователей, потому что пользователи «сидят под администраторами»; пользователи ведут же повседневную работу с правами администраторов, потому что этого требует программное обеспечение. Поэтому, несмотря на то, что ОС линейки Windows 9x уже много лет не производятся, на большинстве компьютеров с Windows 2000 и более поздними система разграничения доступа простаивает, а вредоносные программы получают администраторские права. Пропаганда Microsoft, призывавшая делать программы совместимыми с разграничением доступа, действовала, но медленно — многие программы (особенно небольшие утилиты, написанные одиночками) продолжали исполнять операции с повышенными привилегиями. Для того, чтобы склонить разработчиков писать более «безопасные» программы, и был разработан Контроль учётных записей пользователей.

Принцип работы

В случае, если программа запрашивает действие, требующее прав администратора, выполнение программы приостанавливается и система выдает запрос пользователю. Окно с запросом размещается на защищённом рабочем столе, чтобы предотвратить «нажатие» программой кнопки разрешения.

Так, выдаются запросы при попытке изменения системного времени, установки программы, редактирования реестра, изменения меню «Пуск».

Также действует «виртуализация каталогов и реестра»: программа, которая пробует записать что-либо в каталог %PROGRAMFILES%\Папка\Пример.ini, записывает этот файл в каталог %USERPROFILE%\AppData\Local\VirtualStore\Program Files\Папка\Пример.ini. Это обеспечивает совместимость старых программ с разграничением доступа.

Список действий, вызывающих срабатывание

Вот (неполный) список действий, вызывающих срабатывание Контроля учётных записей пользователей[1]:

Есть три способа написать программу, совместимую с Контролем учётных записей пользователей.

  1. Указать в манифест-ресурсе уровень доступа программы: asInvoker, highestAvailable или requireAdministrator. Все три отключают виртуализацию каталогов, но asInvoker будет иметь пользовательские права, а остальные два — уже при запуске запросят повышение прав.
  2. Сделать функции, требующие повышенных прав, отдельным .EXE-файлом с правами highestAvailable или requireAdministrator или запускать его при помощи [msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx ShellExecute] с lpOperation, равным runas.
  3. Сделать функции, требующие повышенных прав, доступными через COM-объект. При этом COM-сервером должен быть .EXE-файл с правами highestAvailable или requireAdministrator.

По рекомендациям Microsoft, на элементах интерфейса, которые требуют прохождения Контроля учётных записей пользователей, должна быть нарисована иконка щита.

Недостатки

  • Многие программы, разработанные до появления Windows Vista, либо полностью несовместимы, либо требуют принятия специальных мер при установке и настройке. На самом деле данный недостаток относится скорее к устаревшим версиям программного обеспечения, либо к устаревшим программам.
  • Окно с запросом не предоставляет пользователю достаточной информации для идентификации программы и действия, на которое потребовались дополнительные права.
  • Необходимость перезапуска программы для выполнения некоторых её функций. Например, Microsoft Visual Studio требует перезапуска с правами администратора при попытке открытия дамп-файла и некоторых других операциях.
  • В Windows 7 жестко записаны многие приложения, идущие в комплекте, как доверенные, а потому код, который приводит к срабатыванию для других приложений, для них не работает при настройке по умолчанию, что делает их потенциальными посредниками для выполнения опасных действий сторонними программами в обход Контроля учётных записей пользователей[2].
  • С включенным UAC многие программы могут не запуститься с правами пользователя, если эти программы потребуют повышения прав, хотя их можно запустить с правами пользователя в учётной записи «Обычный доступ» с выключенным UAC. Даже если попытаться запустить их от имени учётной записи «Обычный доступ», UAC все равно появится (если включен), и если в окне "Разрешить следующей программе внести изменения на этом компьютере?" нажать кнопку «Да» - программе будут выданы повышенные права. Если нажать кнопку "Нет" - программа либо будет запущена с пониженными правами, либо завершит работу.

Настройка

В Windows Vista контроль учетных записей можно отключить в апплете Панели управления «Учетные записи пользователей», однако уровень обеспечения конфиденциальности и целостности программ и данных существенно снизится.

В Windows 7 Контроль учётных записей пользователей был доработан, в частности, в панели управления вместо единственной настройки либо включавшей его, либо выключавшей появились четыре режима работы:

  • «Всегда уведомлять».
  • «Уведомлять только при попытках программ внести изменения в компьютер».
  • «Уведомлять только при попытках программ внести изменения в компьютер (не затемнять рабочий стол)».
  • «Никогда не уведомлять» (UAC будет отключен только после перезагрузки Windows).

Напишите отзыв о статье "Контроль учётных записей пользователей"

Примечания

  1. [www.edbott.com/weblog/?p=1602 What triggers User Account Control prompts?]
  2. [www.pretentiousname.com/misc/win7_uac_whitelist2.html Windows 7 UAC whitelist: Code-injection Issue (and more)]  (англ.)

Ссылки

  • [msdn.microsoft.com/ru-ru/magazine/cc163486.aspx Крис Корио. Работа с контролем учетных записей в приложениях Windows Vista]


Отрывок, характеризующий Контроль учётных записей пользователей

– А почему?
Князь Андрей пожал плечами.
– Нет известия от Мака? – спросил Козловский.
– Нет.
– Ежели бы правда, что он разбит, так пришло бы известие.
– Вероятно, – сказал князь Андрей и направился к выходной двери; но в то же время навстречу ему, хлопнув дверью, быстро вошел в приемную высокий, очевидно приезжий, австрийский генерал в сюртуке, с повязанною черным платком головой и с орденом Марии Терезии на шее. Князь Андрей остановился.
– Генерал аншеф Кутузов? – быстро проговорил приезжий генерал с резким немецким выговором, оглядываясь на обе стороны и без остановки проходя к двери кабинета.
– Генерал аншеф занят, – сказал Козловский, торопливо подходя к неизвестному генералу и загораживая ему дорогу от двери. – Как прикажете доложить?
Неизвестный генерал презрительно оглянулся сверху вниз на невысокого ростом Козловского, как будто удивляясь, что его могут не знать.
– Генерал аншеф занят, – спокойно повторил Козловский.
Лицо генерала нахмурилось, губы его дернулись и задрожали. Он вынул записную книжку, быстро начертил что то карандашом, вырвал листок, отдал, быстрыми шагами подошел к окну, бросил свое тело на стул и оглянул бывших в комнате, как будто спрашивая: зачем они на него смотрят? Потом генерал поднял голову, вытянул шею, как будто намереваясь что то сказать, но тотчас же, как будто небрежно начиная напевать про себя, произвел странный звук, который тотчас же пресекся. Дверь кабинета отворилась, и на пороге ее показался Кутузов. Генерал с повязанною головой, как будто убегая от опасности, нагнувшись, большими, быстрыми шагами худых ног подошел к Кутузову.
– Vous voyez le malheureux Mack, [Вы видите несчастного Мака.] – проговорил он сорвавшимся голосом.
Лицо Кутузова, стоявшего в дверях кабинета, несколько мгновений оставалось совершенно неподвижно. Потом, как волна, пробежала по его лицу морщина, лоб разгладился; он почтительно наклонил голову, закрыл глаза, молча пропустил мимо себя Мака и сам за собой затворил дверь.
Слух, уже распространенный прежде, о разбитии австрийцев и о сдаче всей армии под Ульмом, оказывался справедливым. Через полчаса уже по разным направлениям были разосланы адъютанты с приказаниями, доказывавшими, что скоро и русские войска, до сих пор бывшие в бездействии, должны будут встретиться с неприятелем.
Князь Андрей был один из тех редких офицеров в штабе, который полагал свой главный интерес в общем ходе военного дела. Увидав Мака и услыхав подробности его погибели, он понял, что половина кампании проиграна, понял всю трудность положения русских войск и живо вообразил себе то, что ожидает армию, и ту роль, которую он должен будет играть в ней.
Невольно он испытывал волнующее радостное чувство при мысли о посрамлении самонадеянной Австрии и о том, что через неделю, может быть, придется ему увидеть и принять участие в столкновении русских с французами, впервые после Суворова.
Но он боялся гения Бонапарта, который мог оказаться сильнее всей храбрости русских войск, и вместе с тем не мог допустить позора для своего героя.
Взволнованный и раздраженный этими мыслями, князь Андрей пошел в свою комнату, чтобы написать отцу, которому он писал каждый день. Он сошелся в коридоре с своим сожителем Несвицким и шутником Жерковым; они, как всегда, чему то смеялись.
– Что ты так мрачен? – спросил Несвицкий, заметив бледное с блестящими глазами лицо князя Андрея.
– Веселиться нечему, – отвечал Болконский.
В то время как князь Андрей сошелся с Несвицким и Жерковым, с другой стороны коридора навстречу им шли Штраух, австрийский генерал, состоявший при штабе Кутузова для наблюдения за продовольствием русской армии, и член гофкригсрата, приехавшие накануне. По широкому коридору было достаточно места, чтобы генералы могли свободно разойтись с тремя офицерами; но Жерков, отталкивая рукой Несвицкого, запыхавшимся голосом проговорил:
– Идут!… идут!… посторонитесь, дорогу! пожалуйста дорогу!
Генералы проходили с видом желания избавиться от утруждающих почестей. На лице шутника Жеркова выразилась вдруг глупая улыбка радости, которой он как будто не мог удержать.
– Ваше превосходительство, – сказал он по немецки, выдвигаясь вперед и обращаясь к австрийскому генералу. – Имею честь поздравить.
Он наклонил голову и неловко, как дети, которые учатся танцовать, стал расшаркиваться то одной, то другой ногой.
Генерал, член гофкригсрата, строго оглянулся на него; не заметив серьезность глупой улыбки, не мог отказать в минутном внимании. Он прищурился, показывая, что слушает.
– Имею честь поздравить, генерал Мак приехал,совсем здоров,только немного тут зашибся, – прибавил он,сияя улыбкой и указывая на свою голову.
Генерал нахмурился, отвернулся и пошел дальше.
– Gott, wie naiv! [Боже мой, как он прост!] – сказал он сердито, отойдя несколько шагов.
Несвицкий с хохотом обнял князя Андрея, но Болконский, еще более побледнев, с злобным выражением в лице, оттолкнул его и обратился к Жеркову. То нервное раздражение, в которое его привели вид Мака, известие об его поражении и мысли о том, что ожидает русскую армию, нашло себе исход в озлоблении на неуместную шутку Жеркова.
– Если вы, милостивый государь, – заговорил он пронзительно с легким дрожанием нижней челюсти, – хотите быть шутом , то я вам в этом не могу воспрепятствовать; но объявляю вам, что если вы осмелитесь другой раз скоморошничать в моем присутствии, то я вас научу, как вести себя.
Несвицкий и Жерков так были удивлены этой выходкой, что молча, раскрыв глаза, смотрели на Болконского.
– Что ж, я поздравил только, – сказал Жерков.
– Я не шучу с вами, извольте молчать! – крикнул Болконский и, взяв за руку Несвицкого, пошел прочь от Жеркова, не находившего, что ответить.
– Ну, что ты, братец, – успокоивая сказал Несвицкий.
– Как что? – заговорил князь Андрей, останавливаясь от волнения. – Да ты пойми, что мы, или офицеры, которые служим своему царю и отечеству и радуемся общему успеху и печалимся об общей неудаче, или мы лакеи, которым дела нет до господского дела. Quarante milles hommes massacres et l'ario mee de nos allies detruite, et vous trouvez la le mot pour rire, – сказал он, как будто этою французскою фразой закрепляя свое мнение. – C'est bien pour un garcon de rien, comme cet individu, dont vous avez fait un ami, mais pas pour vous, pas pour vous. [Сорок тысяч человек погибло и союзная нам армия уничтожена, а вы можете при этом шутить. Это простительно ничтожному мальчишке, как вот этот господин, которого вы сделали себе другом, но не вам, не вам.] Мальчишкам только можно так забавляться, – сказал князь Андрей по русски, выговаривая это слово с французским акцентом, заметив, что Жерков мог еще слышать его.
Он подождал, не ответит ли что корнет. Но корнет повернулся и вышел из коридора.


Гусарский Павлоградский полк стоял в двух милях от Браунау. Эскадрон, в котором юнкером служил Николай Ростов, расположен был в немецкой деревне Зальценек. Эскадронному командиру, ротмистру Денисову, известному всей кавалерийской дивизии под именем Васьки Денисова, была отведена лучшая квартира в деревне. Юнкер Ростов с тех самых пор, как он догнал полк в Польше, жил вместе с эскадронным командиром.
11 октября, в тот самый день, когда в главной квартире всё было поднято на ноги известием о поражении Мака, в штабе эскадрона походная жизнь спокойно шла по старому. Денисов, проигравший всю ночь в карты, еще не приходил домой, когда Ростов, рано утром, верхом, вернулся с фуражировки. Ростов в юнкерском мундире подъехал к крыльцу, толконув лошадь, гибким, молодым жестом скинул ногу, постоял на стремени, как будто не желая расстаться с лошадью, наконец, спрыгнул и крикнул вестового.