Подтвердить что ты не робот

Что именно делает "Запуск от имени администратора"?

В Windows 7 у меня есть программа командной строки, которая не работает из-за ошибок разрешения записи файла, и появляется неприятный диалог

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

Мой пользователь уже является членом группы "администраторы", поэтому что именно делает "запускать как администратор", что делает мою установку работать?

Мой конкретный вопрос точно: что делает "запускать как администратор"? На данный момент ни один из ответов не затрагивает этого. (например, запускает ли он новый процесс как пользователь "Администратор" или запускает этот процесс как текущий пользователь, но с повышенными привилегиями? Если да, то какие привилегии? Как это отличается от привилегий, которые я получаю от своих пользователь находится в группе "Администраторы"?

(В частности, я использую "Консоль" из , а не регулярное окно CMD, но я не подумайте, что это важно. Это все при установке пакета Python "распространять", запустив "python distribute_setup.py" на недавно установленном Python3 MSI с python.org. Это 32-разрядный Python на 64-битной Windows. См.

4b9b3361

Ответ 1

При входе в Windows создается токен доступа. Это идентифицирует вас, группы, в которых вы участвуете, и ваши привилегии. Обратите внимание, что независимо от того, является ли пользователь администратором или нет, определяется, является ли пользователь членом группы "Администраторы".

Без UAC при запуске программы он получает копию токена доступа, и это контролирует доступ к программе.

В UAC при запуске программы он получает токен ограниченного доступа. Это оригинальный токен доступа с "Администраторами", удаленный из списка групп (и некоторые другие изменения). Даже если ваш пользователь входит в группу "Администраторы", программа не может использовать привилегии администратора.

Когда вы выбираете "Запуск от имени администратора", а ваш пользователь является администратором, программа запускается с оригинальным неограниченным токеном доступа. Если ваш пользователь не является администратором, вам предлагается ввести учетную запись администратора, а программа запускается под этой учетной записью.

Ответ 2

Итак... больше копать, с результатом. Кажется, что, хотя я запускал обычный процесс и один "как администратор", у меня был UAC. Превращение UAC в среду позволило мне увидеть разные результаты. В принципе, все это сводится к уровням целостности, которые составляют 5.

Браузеры, например, работают на низком уровне (1), а службы (пользователь системы) работают на уровне системы (4). Все хорошо объяснено в Конструкция механизма целостности Windows. Когда UAC включен, процессы создаются со средним уровнем (добавляется SID S-1-16-8192 AKA 0x2000), а когда "Запуск от имени администратора", процесс создается с помощью High Level (SID S-1-16-12288 aka 0x3000).

Итак, правильный ACCESS_TOKEN для обычного пользователя (средний уровень целостности):

0:000:x86> !token
Thread is not impersonating. Using process token...
TS Session ID: 0x1
User: S-1-5-21-1542574918-171588570-488469355-1000
Groups:
 00 S-1-5-21-1542574918-171588570-488469355-513
    Attributes - Mandatory Default Enabled
 01 S-1-1-0
    Attributes - Mandatory Default Enabled
 02 S-1-5-32-544
    Attributes - DenyOnly
 03 S-1-5-32-545
    Attributes - Mandatory Default Enabled
 04 S-1-5-4
    Attributes - Mandatory Default Enabled
 05 S-1-2-1
    Attributes - Mandatory Default Enabled
 06 S-1-5-11
    Attributes - Mandatory Default Enabled
 07 S-1-5-15
    Attributes - Mandatory Default Enabled
 08 S-1-5-5-0-1908477
    Attributes - Mandatory Default Enabled LogonId
 09 S-1-2-0
    Attributes - Mandatory Default Enabled
 10 S-1-5-64-10
    Attributes - Mandatory Default Enabled
 11 S-1-16-8192
    Attributes - GroupIntegrity GroupIntegrityEnabled
Primary Group:   LocadDumpSid failed to dump Sid at addr 000000000266b458, 0xC0000078; try own SID dump.
s-1-0x515000000
Privs:
 00 0x000000013 SeShutdownPrivilege               Attributes -
 01 0x000000017 SeChangeNotifyPrivilege           Attributes - Enabled Default
 02 0x000000019 SeUndockPrivilege                 Attributes -
 03 0x000000021 SeIncreaseWorkingSetPrivilege     Attributes -
 04 0x000000022 SeTimeZonePrivilege               Attributes -
Auth ID: 0:1d1f65
Impersonation Level: Anonymous
TokenType: Primary
Is restricted token: no.

Теперь разница заключается в следующем:

S-1-5-32-544
Attributes - Mandatory Default Enabled Owner

для "Как администратор", а

S-1-5-32-544
Attributes - DenyOnly

для не-admin.

Обратите внимание, что S-1-5-32-544 является BUILTIN\Administrators. Кроме того, есть меньше привилегий, и самое главное заметить:

админ:

S-1-16-12288
Attributes - GroupIntegrity GroupIntegrityEnabled

while для non-admin:

S-1-16-8192
Attributes - GroupIntegrity GroupIntegrityEnabled

Надеюсь, это поможет.

Дополнительная литература: http://www.blackfishsoftware.com/blog/don/creating_processes_sessions_integrity_levels

Ответ 3

UPDATE

"Запустить как Aministrator" - это просто команда, позволяющая программе продолжить выполнение некоторых операций, требующих привилегий администратора, без отображения предупреждений UAC.

Даже если ваш пользователь является членом группы администраторов, некоторым приложениям, таким как ваш, необходимы права администратора для продолжения работы, поскольку приложение считается небезопасным, если оно выполняет какую-либо специальную операцию, например, редактирование системного файла или что-то еще, Именно по этой причине Windows нуждается в привилегии администратора для выполнения приложения и уведомляет вас о предупреждении UAC. Не всем приложениям требуется учетная запись Amnistrator для запуска, а некоторым приложениям, таким как ваша, нужны привилегии администратора.

Если вы выполняете приложение с командой "запускать как администратор", вы уведомляете систему о том, что ваше приложение безопасно, и выполняйте что-то, что требует прав администратора, с подтверждением.

Если вы хотите этого избежать, просто отключите UAC на панели управления.

Если вы хотите пойти дальше, прочитайте вопрос Разница между "Запуск от имени администратора" и группой администраторов Windows 7 на форуме Microsoft или this Вопрос SuperUser.

Ответ 4

Такие вещи, как "возвышает привилегии", "токен ограниченного доступа", "привилегия администратора"... в любом случае, что такое привилегия администратора? нонсенс.

Вот ACCESS_TOKEN для процесса, обычно выполняемого от пользователя, принадлежащего группе "Администраторы".

0: kd> !process 0 1 test.exe
PROCESS 87065030  SessionId: 1  Cid: 0d60    Peb: 7ffdf000  ParentCid: 0618
    DirBase: 2f22e1e0  ObjectTable: a0c8a088  HandleCount:   6.
    Image: test.exe
    VadRoot 8720ef50 Vads 18 Clone 0 Private 83. Modified 0. Locked 0.
    DeviceMap 8936e560
    Token                             935c98e0
0: kd> !token -n 935c98e0
_TOKEN 935c98e0
TS Session ID: 0x1
User: S-1-5-21-2452432034-249115698-1235866470-1000 (no name mapped)
User Groups: 
 00 S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
    Attributes - Mandatory Default Enabled 
 01 S-1-1-0 (Well Known Group: localhost\Everyone)
    Attributes - Mandatory Default Enabled 
 02 S-1-5-32-544 (Alias: BUILTIN\Administrators)
    Attributes - Mandatory Default Enabled Owner 
 03 S-1-5-32-545 (Alias: BUILTIN\Users)
    Attributes - Mandatory Default Enabled 
 04 S-1-5-4 (Well Known Group: NT AUTHORITY\INTERACTIVE)
    Attributes - Mandatory Default Enabled 
 05 S-1-2-1 (Well Known Group: localhost\CONSOLE LOGON)
    Attributes - Mandatory Default Enabled 
 06 S-1-5-11 (Well Known Group: NT AUTHORITY\Authenticated Users)
    Attributes - Mandatory Default Enabled 
 07 S-1-5-15 (Well Known Group: NT AUTHORITY\This Organization)
    Attributes - Mandatory Default Enabled 
 08 S-1-5-5-0-85516 (no name mapped)
    Attributes - Mandatory Default Enabled LogonId 
 09 S-1-2-0 (Well Known Group: localhost\LOCAL)
    Attributes - Mandatory Default Enabled 
 10 S-1-5-64-10 (Well Known Group: NT AUTHORITY\NTLM Authentication)
    Attributes - Mandatory Default Enabled 
 11 S-1-16-12288 (Label: Mandatory Label\High Mandatory Level)
    Attributes - GroupIntegrity GroupIntegrityEnabled 
Primary Group: S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Privs: 
 05 0x000000005 SeIncreaseQuotaPrivilege          Attributes - 
 08 0x000000008 SeSecurityPrivilege               Attributes - 
 09 0x000000009 SeTakeOwnershipPrivilege          Attributes - 
 10 0x00000000a SeLoadDriverPrivilege             Attributes - 
 11 0x00000000b SeSystemProfilePrivilege          Attributes - 
 12 0x00000000c SeSystemtimePrivilege             Attributes - 
 13 0x00000000d SeProfileSingleProcessPrivilege   Attributes - 
 14 0x00000000e SeIncreaseBasePriorityPrivilege   Attributes - 
 15 0x00000000f SeCreatePagefilePrivilege         Attributes - 
 17 0x000000011 SeBackupPrivilege                 Attributes - 
 18 0x000000012 SeRestorePrivilege                Attributes - 
 19 0x000000013 SeShutdownPrivilege               Attributes - 
 20 0x000000014 SeDebugPrivilege                  Attributes - 
 22 0x000000016 SeSystemEnvironmentPrivilege      Attributes - 
 23 0x000000017 SeChangeNotifyPrivilege           Attributes - Enabled Default 
 24 0x000000018 SeRemoteShutdownPrivilege         Attributes - 
 25 0x000000019 SeUndockPrivilege                 Attributes - 
 28 0x00000001c SeManageVolumePrivilege           Attributes - 
 29 0x00000001d SeImpersonatePrivilege            Attributes - Enabled Default 
 30 0x00000001e SeCreateGlobalPrivilege           Attributes - Enabled Default 
 33 0x000000021 SeIncreaseWorkingSetPrivilege     Attributes - 
 34 0x000000022 SeTimeZonePrivilege               Attributes - 
 35 0x000000023 SeCreateSymbolicLinkPrivilege     Attributes - 
Authentication ID:         (0,14e4c)
Impersonation Level:       Anonymous
TokenType:                 Primary
Source: User32             TokenFlags: 0x2000 ( Token in use )
Token ID: d166b            ParentToken ID: 0
Modified ID:               (0, d052f)
RestrictedSidCount: 0      RestrictedSids: 00000000
OriginatingLogonSession: 3e7

... и вот ACCESS_TOKEN для процесса, который обычно запускается тем же пользователем с "Запуск от имени администратора".

TS Session ID: 0x1
User: S-1-5-21-2452432034-249115698-1235866470-1000 (no name mapped)
User Groups: 
 00 S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
    Attributes - Mandatory Default Enabled 
 01 S-1-1-0 (Well Known Group: localhost\Everyone)
    Attributes - Mandatory Default Enabled 
 02 S-1-5-32-544 (Alias: BUILTIN\Administrators)
    Attributes - Mandatory Default Enabled Owner 
 03 S-1-5-32-545 (Alias: BUILTIN\Users)
    Attributes - Mandatory Default Enabled 
 04 S-1-5-4 (Well Known Group: NT AUTHORITY\INTERACTIVE)
    Attributes - Mandatory Default Enabled 
 05 S-1-2-1 (Well Known Group: localhost\CONSOLE LOGON)
    Attributes - Mandatory Default Enabled 
 06 S-1-5-11 (Well Known Group: NT AUTHORITY\Authenticated Users)
    Attributes - Mandatory Default Enabled 
 07 S-1-5-15 (Well Known Group: NT AUTHORITY\This Organization)
    Attributes - Mandatory Default Enabled 
 08 S-1-5-5-0-85516 (no name mapped)
    Attributes - Mandatory Default Enabled LogonId 
 09 S-1-2-0 (Well Known Group: localhost\LOCAL)
    Attributes - Mandatory Default Enabled 
 10 S-1-5-64-10 (Well Known Group: NT AUTHORITY\NTLM Authentication)
    Attributes - Mandatory Default Enabled 
 11 S-1-16-12288 (Label: Mandatory Label\High Mandatory Level)
    Attributes - GroupIntegrity GroupIntegrityEnabled 
Primary Group: S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Privs: 
 05 0x000000005 SeIncreaseQuotaPrivilege          Attributes - 
 08 0x000000008 SeSecurityPrivilege               Attributes - 
 09 0x000000009 SeTakeOwnershipPrivilege          Attributes - 
 10 0x00000000a SeLoadDriverPrivilege             Attributes - 
 11 0x00000000b SeSystemProfilePrivilege          Attributes - 
 12 0x00000000c SeSystemtimePrivilege             Attributes - 
 13 0x00000000d SeProfileSingleProcessPrivilege   Attributes - 
 14 0x00000000e SeIncreaseBasePriorityPrivilege   Attributes - 
 15 0x00000000f SeCreatePagefilePrivilege         Attributes - 
 17 0x000000011 SeBackupPrivilege                 Attributes - 
 18 0x000000012 SeRestorePrivilege                Attributes - 
 19 0x000000013 SeShutdownPrivilege               Attributes - 
 20 0x000000014 SeDebugPrivilege                  Attributes - 
 22 0x000000016 SeSystemEnvironmentPrivilege      Attributes - 
 23 0x000000017 SeChangeNotifyPrivilege           Attributes - Enabled Default 
 24 0x000000018 SeRemoteShutdownPrivilege         Attributes - 
 25 0x000000019 SeUndockPrivilege                 Attributes - 
 28 0x00000001c SeManageVolumePrivilege           Attributes - 
 29 0x00000001d SeImpersonatePrivilege            Attributes - Enabled Default 
 30 0x00000001e SeCreateGlobalPrivilege           Attributes - Enabled Default 
 33 0x000000021 SeIncreaseWorkingSetPrivilege     Attributes - 
 34 0x000000022 SeTimeZonePrivilege               Attributes - 
 35 0x000000023 SeCreateSymbolicLinkPrivilege     Attributes - 
Authentication ID:         (0,14e4c)
Impersonation Level:       Anonymous
TokenType:                 Primary
Source: User32             TokenFlags: 0x2000 ( Token in use )
Token ID: ce282            ParentToken ID: 0
Modified ID:               (0, cddbd)
RestrictedSidCount: 0      RestrictedSids: 00000000
OriginatingLogonSession: 3e7

Как вы видите, единственное отличие - идентификатор токена:

Token ID: d166b            ParentToken ID: 0
Modified ID:               (0, d052f)

vs

Token ID: ce282            ParentToken ID: 0
Modified ID:               (0, cddbd)

Извините, я пока не могу добавить много света, но я все еще копаю.

Ответ 5

Windows 7 требует, чтобы вы намеренно запрашивали определенные привилегии, чтобы вредоносная программа не могла причинить вам вреда. Если бесплатный калькулятор, который вы загрузили, должен быть запущен как администратор, вы бы знали, что что-то не так. Есть команды OS, чтобы повысить привилегию вашего приложения (которое запросит подтверждение от пользователя).

Хорошее описание можно найти по адресу:

http://msdn.microsoft.com/en-us/magazine/cc163486.aspx#S4

Ответ 6

Команда "Запуск от * Anything" позволяет вам выйти из системы и войти в систему как пользователь, для которого вы используете команду runas.

Причины попросят эту повышенную привилегию, начатую с Black Comb и Panther. Существует 0 доступ к ядру в окнах, если только через подсказку администратора, а затем это только виртуальное отношение к ядру O/S.

Hoorah!

Ответ 7

Немного яснее... Программная программа, имеющая доступ к режиму режима ядра, имеет полный доступ ко всем компьютерным данным и их аппаратным средствам.

Так как Windows Vista Microsoft прекратила все процессы ввода-вывода от обращения к ядру (ring 0) напрямую снова. Самое близкое, что мы получаем, это папка, созданная как раздел доступа к виртуальному ядру, но технически не доступ к самому ядру; ядро встречается на полпути.

Это связано с тем, что само программное обеспечение определяет, какой токен использовать, поэтому, если он запрашивает токен доступа администратора, вместо того, чтобы просто общаться с ядром, как на Windows XP, вам предлагается разрешить доступ к ядру, каждый и каждый раз. Изменение UAC может уменьшить количество запросов, но никогда не запрашивает ядро.

Даже когда вы входите в систему как администратор, вы запускаете процессы как стандартный пользователь, пока не появится запрос на повышение прав, которые у вас есть. Я верю, что вошел в систему, так как администратор избавил вас от ввода учетных данных. Но он также записывает структуру папок пользователей администратора.

Доступ к ядру аналогичен доступу root в Linux. Когда вы повышаете свои разрешения, вы изолируете себя от корня C:\и любых прекрасных переменных окружения содержатся внутри.

Если вы помните BSOD, это была остановка ОС, когда она полагала, что ядро ​​достигло плохого ввода-вывода.

Ответ 8

Хорошо, повторите повтор...

Фактический вопрос (и отличный в этом)

"Что делает" run as admin ", что это не член группы администраторов?"

(ответ) 1. Он позволяет вам вызывать права администратора во время сеанса пользователя.

Примечание: вопрос неправильно поставлен; один - это команда, а другой - групповой объект для применения политик.

Откройте командную строку и введите runas /?.

В этом списке перечислены все ключи, которые может использовать командная строка runas.

Что касается группы администраторов, это основано на GPEDIT или SECPOL и присутствует или нет администратор домена или нет или сеть присутствует или нет.

Обычно эти вещи будут применять ограничения на компьютеры, на которые не влияет группа администраторов.

Вопрос должен быть

Что делает администратор runas, который запускается, поскольку пользователь этого не делает?

ИЛИ

Что делает группа "Администратор" в том, что настраиваемая группа пользователей не может?

Вы смешиваете яблоки и апельсины.