Наиболее сильно недооцененной и не понятой функцией в Windows Vista является User Account Control (UAC). А зря, это очень важная и полезная функция. Долгие годы пользователи были богами в своих системах и работали от имени учетной записи администратора. Так было в Windows 95, 98, ME и даже в 2000 и XP, когда все предупреждают, что это опасно для системы. В конкурирующих системах, например в ОС Linux, запрещено входить в графическую оболочку от имени администратора (root). Если необходимо выполнить действия от имени администратора, пользователь должен переключиться в консоли на учетную запись администратора, но запускать целую оболочку от администратора не нужно.
Компания Microsoft не стала вводить такой категорический запрет ради удобства пользователей и ради большого количества программ, которые могут потребовать выполнения привилегированных операций, но безопасность важнее, поэтому в Windows Vista для нашей защиты была внедрена User Account Control. Не советую ее отключать, ибо это реальная защита, и если какая-то программа не работает корректно с UAC, то это не Windows плохой, это программа не умеет работать в безопасном окружении и я бы не стал работать с такой программой ради собственной безопасности. Такое отношение есть в любой безопасной системе и теперь так есть и скорей всего будет в Windows.
Технология UAC позволяет пользователям работать от имени стандартного пользователя и контролировать выполнение привилегированных операций. Когда программе необходимо выполнить операцию, требующую административных прав, система запрашивает у нас подтверждение на выполнение этих действий. Пользователь может контролировать процесс, и если он действительно уверен, что программа заслуживает доверия и ей можно доверить доступ к привилегированным возможностям.
Административные права могут потребоваться, когда вы устанавливаете программу, и она производит копирование файлов в директории Program Files, Windows или производит запись в реестр HKLM (HKEY_LOCAL_MACHINE).
Не имея администраторских прав, пользователь не сможет случайно или специально изменить критические данные. Когда приложение запущено от имени не привилегированного пользователя, пользователь может избежать тяжелых последствий зловредного кода, а у этого кода остается меньшее поле для деятельности.
Помимо контроля доступа к запрещенным ресурсам, UAC может виртуализировать работу с критически важными данными. Если программа обращается к важным данным, то UAC создает видимость реального доступа (виртуализирует доступ). Программа даже не будет подозревать, что реального доступа нет.
Давайте рассмотрим это на примере. Запустите командную строку и перейдите в папку Windows. Эта системная папка и ее защищает UAC. Я надеюсь, он у вас включен? Иначе вы не только в большей безопасности, но и не увидите результат примера. В директории Windows выполните какую-нибудь команду по созданию файла. Например, можно попытаться сохранить в текстовый файл список файлов текущей директории командой:
dir > myfile.txt
Это делать запрещено из под стандартного пользователя, поэтому в результате вы увидите сообщение об отказе в доступе:
Запустите диспетчер задач и найдите там свой процесс cmd.exe. Если у вас запущен только один интерпретатор, то это не сложно. Щелкните правой кнопкой по процессу и из выпадающего меню выберите Виртуализация:
Перед вами появиться предупреждение о том, что данные могут быть потеряны приложением. Сейчас мы увидим эту потерю на практике и чтобы увидеть, виртуализация должна быть включена, поэтому давите Да.
Теперь повторите команду создания файла. Ни единой ошибки. На этот раз программа выполнила все успешно и сохранила результат в файл. А сохранила ли? Проверьте директорию Windows, там вашего файла не будет!!! На самом деле, его нет нигде. Если включена виртуализация, то система создала видимость доступа, но не дала его реально, поэтому файла не будет. Программа думала, что она работает с системой, но UAC не дал сделать этого.
Таким образом, если программа не умеет по человечески работать в стандартном пользовательском режиме и зачем-то лезет в защищенную зону, но вы не хотите дозволить это (а вы и не должны позволять), можно включить для программы виртуализацию и она будет работать прекрасно.
Если ты считаешь, что UAC глуп и не нужен, то это твое право. Но я выходя из дама, обязательно закрываю за собой дверь и мне не сложно достать ключ и открыть дверь, когда я возвращаюсь, зато я более менее спокоен за свои вещи. Дверь не гарантирует, что вещи обязательно будут целы и дверь не взломают, но она помогает защитить собственность. Точно так же и UAC. Мне не сложно подтвердить свои действия, связанные с доступом к важным системе ресурсам, зато эта дверь под названием UAC, помогает мне защитить свою собственность. Если ты не понимаешь этого и любишь спать с открытыми дверьми, это твое право.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Еще интереснее было бы почитаь как дружить с этим UAC :)
Очень легко, нужно просто дружить. Если какая-то программа не дружит с UAC и необосновано требует себе права админа, то эта программа фуфло. После этого жизнь становится прекрасна и я не ссорюсь с UAC.
Дружить программисту :) Например если нужно зарегистрировать под себя определенный тип файлов тоже нужны привелегии администратора. А если через 24 ресурс себе требудшь привелегии администратора, то такая программа не может быть в автозагрузке, и т.д.
В папку Program Files и в реестр HCLM пиши только во время установки программы. В автозагрузку реестра ты можешь попасть из под стандартного пользователя, только текущего пользователя, а не машины в целом.
Если нужно зарегестрировать под себя тип файла, это можно сделать на этапе установки, или перед тем, как обращатся к защищенной ветке реестра, нужно запросить себе нужные права. Я сейчас не память не помню название функции, но есть такая, которая запрашивает нужный уровень привелегий и перез записью в реестр пользователя предупредят, что твоя программа лезет куда не нужно.
Но только из-за того, что раз в год пользователю может понадобиться зарегестрировать расширение, все время работать от имени админа - нельзя. Это не безопасно.
Идея положенная в основу UAC - хорошая, но ИМХО реализовано все некрасиво. Когда вышла Vista, то под нее не было адаптированных программ (написанных, с учетом требований этой системы), поэтому юак орал как резанный и все его дружно сносили (в том числе и я, когда тестил ОС).
Сейчас ситуация в целом не изменилась. Очень много пользователей просто не задумываются и если видят возражения UAC, то уже механически нажимают выбирают запуск программы от имени администратора. В итоге смысл защиты теряется. В nix, все таки лучше все реализовано. Хочешь запустить под рутом, выполни su. Так хотя бы нет прямого соблазна машинально тыкнуть на "Запуск от админа". В Windows есть аналогичная функция Run As. ИМХО, лучше уж юзать ее.
Немного переделанный аналог "sudo" из Ubuntu.
Не "немного", а "НАМНОГО" и не из Ubuntu, а вообще из nix систем. У sudo и UAC схожее назначение, только sudo переключает консоль на админа, а UAC более интеллектуален. Вот функция Run As, вот это чистый аналог sudo.
Попробуй. Если диск чистый и не нужный, то попробуй удалить разделы и создать во время установки. Установщик Windows должен автоматом сделать первый диск активным. Я уничтожу эти сообщения, потому что здесь не форум и это действительно громадный офтоп.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.