Хороший пример «наивысший доступный» - это член группы Операторы резервного копирования .
Начиная с Windows Vista, это не просто «Администраторы» , которые лишены своих привилегий и получают сплит-токен .Система проверяет, являетесь ли вы:
- членом определенных групп
- с определенными привилегиями
Хорошим примером "наивысшегодоступно " - это кто-то, кто является членом группы Операторы резервного копирования .Если вы являетесь членом группы Backup Operators , ваш токен безопасности фильтруется точно так же, как и для членов группы Administrators .
UAC запускаетсяработает, когда пользователь входит в систему.Во время интерактивного входа в систему локальный орган безопасности (LSA) принимает учетные данные пользователя и выполняет первоначальный вход в систему, оценивая токен пользователя, чтобы определить, имеет ли он то, что определено как повышенные привилегии.Если LSA определяет, что пользователь имеет повышенные привилегии, он отфильтрует этот токен и затем выполнит второй вход в систему с отфильтрованным токеном.
Контроль учетных записей пользователей определяетгруппы, перечисленные в на рисунке 3 как имеющие повышенные привилегии.Поэтому, если LSA замечает, что любое из этих членств или привилегий в группе указано в начальном токене пользователя, фильтрованный токен будет создан во время интерактивного входа в систему с использованием версии API CreateRestrictedToken, а полностью привилегированный токен будет сохранен LSA.,Эти два токена связаны, и полностью отобранный токен можно получить из отфильтрованного токена с помощью API GetTokenInformation с новым типом информации TokenLinkedToken.Тем не менее, обратите внимание, что UAC не влияет на сервисный, сетевой или пакетный вход в систему.
Если пользователь не принадлежит ни к одной из групп, перечисленных на рисунке 3но имеет определенные привилегии, отфильтрованный токен будет создан с удалением этих привилегий.Указанные привилегии:
SeCreateTokenPrivilege
SeTcbPrivilege
SeTakeOwnershipPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeDebugPrivilege
SeImpersonatePrivilege
SeRelabelPrivilege
Если я создаю резервное копирование пользователь, мне нужно запустить с возвращенными мне привилегиями backup :
- SeBackupPrivilege
- SeRestorePrivilege
Это означает, что мне не нужно (или не хочется) работать как полноценный Администратор .Я хочу запустить с моим максимальным доступным набором разрешений назад.
Здесь начинают появляться ваши три варианта для requiredExecutionLevel :
asInvoker : приложение будет работать с теми же разрешениями, что и процесс, который его запустил.Приложение можно повысить до более высокого уровня разрешений, выбрав «Запуск от имени администратора».
highAvailable : приложение будет работать с максимально возможным уровнем разрешений.Если пользователь, запускающий приложение, является членом группы «Администраторы», этот параметр совпадает с параметром requireAdministrator.Если максимальный доступный уровень разрешений выше, чем уровень процесса открытия, система запросит учетные данные.
requireAdministrator : приложение будет работать с правами администратора,Пользователь, запускающий приложение, должен быть членом группы «Администраторы».Если процесс открытия не выполняется с правами администратора, система запросит учетные данные.
Бонусное чтение