65 votes

Que fait exactement "Exécuter en tant qu'administrateur"?

Sur Windows7, j'ai un programme de ligne de commande qui échoue en raison de l'écriture de fichier des erreurs d'autorisation, et popping up ennuyeux boîtes de dialogue contrôle de compte d'utilisateur chaque fois que je lance en ligne de commande des programmes qui sont de " inconnu de l'éditeur.

Cependant, lorsque je démarre ma console par un clic droit et en choisissant "exécuter en tant qu'administrateur", puis l'installation fonctionne correctement, même si le contrôle de compte d'utilisateur dialogues sont toujours présents.

Mon utilisateur est déjà membre de la 'administrateurs' groupe, de sorte que signifie exactement "exécuter en tant qu'administrateur" qui fait mon installation?

EDIT: Ma question précise est précisément ce que signifie "exécuter en tant qu'administrateur' faire? Aucune des réponses jusqu'à présent aborder cette question. (par exemple, l'exécution du nouveau processus comme "Administrateur" de l'utilisateur? Ou faut-il lancer le processus en tant qu'utilisateur actuel, mais avec des privilèges élevés? Si oui, quels privilèges? Comment qui diffèrent des privilèges que je reçois de mon utilisateur dans le 'Administrateurs' groupe?

(plus précisément, je suis à l'aide de la "Console", à partir de sourceforge, n'est pas régulier fenêtre CMD, mais je ne pense pas que c'est important. C'est tous lors de l'installation de Python de "distribution" colis en cours d'exécution 'python distribute_setup.py" sur un nouvellement installé Python3 MSI à partir de python.org. C'est un 32 bits Python sur Windows 64 bits. Voir l'Installation de Python et de les Distribuer sur Windows 7 donne "l'Écriture a échoué ... permission denied")

106voto

arx Points 10667

Lorsque vous ouvrez une session sur Windows crée un jeton d'accès. Cela permet de vous identifier, les groupes dont vous êtes membre de et vos privilèges. Et notez que si un utilisateur est un administrateur ou non est déterminé par le fait que l'utilisateur est un membre du groupe Administrateurs.

Sans contrôle de compte d'utilisateur, lorsque vous exécutez un programme, il reçoit une copie du jeton d'accès, et ce contrôle ce que le programme peut accéder.

Avec le contrôle de compte d'utilisateur, lorsque vous exécutez un programme, il obtient un jeton d'accès restreint. La est l'original jeton d'accès avec des "Administrateurs" retiré de la liste des groupes (et quelques autres changements). Même si votre utilisateur est un membre du groupe Administrateurs, le programme ne peut pas utiliser des privilèges d'Administrateur.

Lorsque vous sélectionnez "Exécuter en tant qu'Administrateur" et votre utilisateur est un administrateur le programme est lancé avec l'original sans restriction jeton d'accès. Si votre utilisateur n'est pas administrateur, vous êtes invité pour un compte d'administrateur, et que le programme est exécuté sous ce compte.

10voto

Andrei Points 29

Donc ... plus de creuser, avec le résultat. Il semble bien que j'ai couru un processus normal et un "en tant Qu'Administrateur", j'ai eu l'UAC désactivé. Tournant contrôle de compte d'utilisateur à moyen m'a permis de voir des résultats différents. En gros, ça se résume à des niveaux d'intégrité, qui sont de 5. Les navigateurs par exemple exécuter à un Niveau Bas (1), alors que les services (Système de l'utilisateur) exécuter au Niveau du Système (4). Tout est très bien expliqué ici: http://msdn.microsoft.com/en-us/library/bb625963.aspx. Lorsque l'UAC est activé, les processus sont créés avec un niveau Moyen (S SID-1-16-8192 aka 0x2000 est ajouté), tandis que lorsque "Exécuter en tant qu'Administrateur", un processus est créé avec un Haut Niveau (SID S-1-16-12288 aka 0x3000).

Donc la bonne ACCESS_TOKEN pour l'utilisateur normal (Moyen niveau d'Intégrité) est:

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.

Maintenant, les différences sont les suivantes:

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

pour "en tant Qu'Administrateur", tandis que

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

pour les non-admin. Notez que S-1-5-32-544 est BUILTIN\Administrateurs. Aussi, il y a moins de privilèges, et la chose la plus importante à noter:

admin:

S-1-16-12288
Attributes - GroupIntegrity GroupIntegrityEnabled 

tandis que pour les non-admin:

S-1-16-8192
Attributes - GroupIntegrity GroupIntegrityEnabled 

Espérons que cette aide. Pour en savoir plus: http://www.blackfishsoftware.com/blog/don/creating_processes_sessions_integrity_levels

3voto

Alberto Solano Points 3241

Mise à JOUR

"Exécuter en tant qu'Aministrator" est juste une commande, permettant au programme à poursuivre certaines opérations qui nécessitent les privilèges d'Administrateur, sans affichage de l'UAC des alertes.

Même si votre utilisateur est un membre du groupe administrateurs, certaines applications comme la vôtre ont besoin des privilèges d'Administrateur pour continuer à fonctionner, parce que la demande est réputée ne pas en sécurité, même si elle est en train de faire certaines opérations spéciales, comme la modification d'un fichier système ou quelque chose d'autre. C'est la raison pour laquelle Windows a besoin des privilèges d'Administrateur pour exécuter l'application et il vous avertit avec un contrôle de compte d'utilisateur d'alerte. Pas toutes les applications ont besoin d'un Amnistrator compte à terme, et certaines applications, comme la vôtre, besoin des privilèges d'Administrateur.

Si vous exécutez l'application avec "exécuter en tant qu'administrateur "commande", vous informer le système que votre application est sûre et de faire quelque chose qui nécessite les privilèges d'administrateur, avec votre confirmation.

Si vous voulez éviter cela, il suffit de désactiver le contrôle de compte d'utilisateur sur le Panneau de commande.

Si vous voulez aller plus loin, lire cette question sur Microsoft forum de ou ce SuperUser question.

1voto

Andrei Points 29

Des choses comme "élève les privilèges", "accès restreint jeton", "le privilège d'Administrateur" ... ce que le diable est le privilège d'administrateur de toute façon? sont des non-sens.

Voici un ACCESS_TOKEN pour un processus normalement exécuté à partir d'un utilisateur appartenant au groupe Administrateurs.

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

... et voici un ACCESS_TOKEN pour un processus normalement exécutée par le même utilisateur avec "Exécuter en tant qu'administrateur".

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

Comme vous le voyez, la seule différence est l'ID de jeton:

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

vs

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

Désolé, je ne peux pas ajouter beaucoup de lumière dans encore, mais je suis encore à creuser.

0voto

vextorspace Points 533

Windows 7 nécessite que vous avez intentionnellement demander à certains privilèges de sorte qu'un programme malveillant peut pas faire de mauvaises choses pour vous. Si la calculatrice que vous avez téléchargé nécessaires pour être exécuté en tant qu'administrateur, vous savez que quelque chose est en place. Il y a des OS les commandes d'élever le privilège de votre application (qui demande la confirmation de l'utilisateur).

Une bonne description peut être trouvée à:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X