Пользователям в Windows могут быть предоставлены различные привилегии
Привилегии определяют тип системных операций, которые может выполнять учетная запись пользователя. Администратор назначает права для учетных записей пользователей и групп. Привилегии каждого пользователя включают привилегии, предоставленные пользователю и группам, к которым он принадлежит.
В настоящее время 35 привилегий. Вот некоторые из наиболее интересных:
- SeSystemtimePrivilege: требуется для изменения системного времени.
- SeTimeZonePrivilege: требуется для настройки часового пояса, связанного с внутренними часами компьютера
- SeBackupPrivilege: эта привилегия заставляет систему предоставлять все права доступа для чтения любому файлу, независимо от списка управления доступом (ACL), указанного для файла.
- SeCreatePagefilePrivilege: необходим для создания файла подкачки.
- SeRemoteShutdownPrivilege: требуется для выключения системы с помощью сетевого запроса.
- SeDebugPrivilege: требуется для отладки и настройки памяти процесса, принадлежащего другой учетной записи.
Но то, что меня интересует, это:
- SeShutdownPrivilege: требуется для выключения локальной системы.
Я заметил, что на самом деле у меня нет этой привилегии. Из командной строки с повышенными правами:
>whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
=============================== ========================================= ========
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeSecurityPrivilege Manage auditing and security log Disabled
SeTakeOwnershipPrivilege Take ownership of files or other objects Disabled
...
SeShutdownPrivilege Shut down the system Disabled
...
Это подтверждается при использовании Process Explorer для проверки токена безопасности процесса с повышенными правами, запущенного от имени пользователя:
И все же я могу выключить систему. Зачем?
Групповая политика говорит, что я должен иметь это
Если вы используете оснастку редактора локальной политики безопасности (secpol.msc
), вы увидите, что у меня должна быть привилегия:
Объяснение привилегии:
Выключить систему
Этот параметр безопасности определяет, какие пользователи, которые локально вошли в систему компьютера, могут завершить работу операционной системы с помощью команды «Завершение работы». Неправильное использование этого права пользователя может привести к отказу в обслуживании.
По умолчанию на рабочих станциях: администраторы, операторы резервного копирования, пользователи.
По умолчанию на серверах: администраторы, операторы резервного копирования.
По умолчанию на контроллерах домена: администраторы, операторы резервного копирования, операторы сервера, операторы печати.
Я Пользователь. Иногда я администратор, а иногда я не администратор.
Возможно, вопрос должен заключаться в том, почему у меня нет привилегии.
Но реальность такова, что у меня нет привилегии; и все же при локальном входе в систему я могу выключить локальную систему.
Зачем?
У @Mehrdad был хороший ответ, который он удалил, что, я думаю, заслуживает внимания и отвечает на вопрос красиво и лаконично:
У вас есть привилегия. По умолчанию это просто отключено. Если бы у вас не было этой привилегии, ее бы не было в списке.
Обратите внимание, чтоSE_PRIVILEGE_REMOVED
отличается от отсутствияSE_PRIVILEGE_ENABLED
илиSE_PRIVILEGE_ENABLED_BY_DEFAULT
.