Que signifie exactement "Exécuter en tant qu'administrateur"? [fermé]

sur Windows 7, j'ai un programme en ligne de commande qui échoue en raison d'erreurs de permission d'écriture de fichier, et surgissant ennuyeux UAC dialogues chaque fois que j'exécute des programmes en ligne de commande qui sont d'un "Éditeur inconnu".

cependant, si je démarre ma console en cliquant avec le bouton droit de la souris et en choisissant "exécuter en tant qu'administrateur", l'installation fonctionne très bien, même si les boîtes de dialogue UAC sont toujours présentes.

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

ma question spécifique est précisément: que fait 'run as administrator'? Aucune des réponses jusqu'à présent aborder cette question. (par exemple, exécuter le 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 Groupe "Administrateurs"?

(spécifiquement, j'utilise la" Console "de SourceForge , pas une fenêtre CMD régulière, mais je ne pense pas que ce soit important. Tout cela lors de l'installation du paquet python' distribute 'en exécutant' python distribute_setup.py " sur un Python3 MSI nouvellement installé de python.org. C'est un Python 32 bits sur des fenêtres 64 bits. Voir installer Python et distribuer sur Windows 7 donne " L'écriture a échoué ... Autorisation refusée" )

57
demandé sur Community 2012-01-24 16:41:19

8 réponses

quand vous vous connectez à Windows crée un token d'accès. Ceci vous identifie, les groupes dont vous êtes membre 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 UAC, quand vous exécutez un programme il obtient une copie du token d'accès, et ceci contrôle ce à quoi le programme peut accéder.

avec UAC, quand vous exécutez un programme il obtient une restriction jeton d'accès. C'est le token d'accès original avec "administrateurs" retiré de la liste des groupes (et quelques autres changements). Même si votre utilisateur est membre du groupe des administrateurs, le programme ne peut pas utiliser les 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 le programme est géré par ce compte.

96
répondu arx 2015-07-28 22:03:24

So ... plus de creuser, avec le résultat. Il semble que même si j'ai exécuté un processus normal et un "en tant qu'administrateur", J'ai eu UAC off. Transformer UAC en médium m'a permis de voir des résultats différents. Fondamentalement, tout se résume à des niveaux d'intégrité, qui sont 5.

Les navigateurs

, par exemple, fonctionnent à bas niveau (1), tandis que les services (utilisateurs du système) fonctionnent au niveau du système (4). Tout est très bien expliqué dans Windows Conception du Mécanisme d'Intégrité . Lorsque L'UAC est activé, les processus sont créés avec un niveau moyen (SID S-1-16-8192 AKA 0x2000 est ajouté) tandis que lorsque "exécuter en tant Qu'administrateur", le processus est créé avec de haut niveau (SID S-1-16-12288 alias 0x3000).

donc L'ACCESS_TOKEN correct pour un utilisateur normal (Niveau D'intégrité moyen) 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 "comme administrateur", tandis que

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

pour les non-admin.

noter que S-1-5-32-544 est construit \ administrateurs. En outre, il y a moins de privilèges, et la chose la plus importante à noter:

admin:

S-1-16-12288
Attributes - GroupIntegrity GroupIntegrityEnabled

alors que pour les non-admin:

S-1-16-8192
Attributes - GroupIntegrity GroupIntegrityEnabled

j'espère que cela aidera.

autre lecture: http://www.blackfishsoftware.com/blog/don/creating_processes_sessions_integrity_levels

8
répondu Andrei 2015-07-31 17:00:27

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

voici un ACCESS_TOKEN pour un processus normalement exécuté par un utilisateur appartenant au groupe des 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é 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 voyez, la seule différence est le token ID:

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 encore y ajouter beaucoup de lumière, mais je creuse encore.

1
répondu Andrei 2013-03-27 14:00:42

mise à JOUR

"Run as Aministrator" est juste une commande, permettant au programme de continuer certaines opérations qui nécessitent les privilèges administrateur, sans afficher les alertes UAC.

même si votre utilisateur est membre du groupe des administrateurs, certaines applications comme la vôtre ont besoin des privilèges administrateur pour continuer à fonctionner, parce que l'application est considérée comme non sûre, si elle fait une opération spéciale, comme éditer un fichier système ou autre chose. C'est la raison pour laquelle Windows a besoin du privilège administrateur pour exécuter l'application et vous avertit avec une alerte UAC. Toutes les applications n'ont pas besoin d'un compte D'Amnistrateur pour fonctionner, et certaines applications, comme la vôtre, ont besoin des privilèges D'administrateur.

si vous exécutez l'application avec la commande "Exécuter en tant qu'administrateur", vous informez le système que votre application est sûre et vous faites quelque chose qui nécessite des privilèges d'administrateur, avec votre confirmation.

si vous voulez éviter cela, il suffit de désactiver L'UAC sur le Panneau de configuration.

si vous voulez aller plus loin, lisez la question différence entre" exécuter en tant qu'administrateur "et Windows 7 groupe D'administrateurs sur Microsoft forum ou cette question Super-Utilisateur.

1
répondu Alberto Solano 2017-03-20 10:04:20

Windows 7 exige que vous demandiez intentionnellement certains privilèges afin qu'un programme malveillant ne puisse pas vous faire de mauvaises choses. Si la calculatrice gratuite que vous avez téléchargée devait être exécutée en tant qu'administrateur, vous sauriez que quelque chose ne va pas. Il y a des commandes OS pour élever le privilège de votre application (qui demandera la confirmation de l'utilisateur).

une bonne description peut être trouvée à:

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

0
répondu vextorspace 2012-01-24 12:50:04

la commande Run as *Anything vous évite de vous déconnecter et de vous connecter en tant qu'utilisateur pour lequel vous utilisez la commande runas.

la raison pour laquelle les programmes demandent ce privilège élevé a commencé avec Black Comb et le dossier Panther. Il n'y a aucun accès au noyau dans windows à moins que ce ne soit par l'intermédiaire de L'invite D'administration Et alors il ne s'agit que d'une relation virtuelle avec le noyau O/s.

Hourra!

0
répondu user5244305 2015-08-19 16:29:20

un peu plus clair... Un logiciel qui dispose d'un accès en mode noyau a un accès total à toutes les données de l'ordinateur et de son matériel.

depuis Windows Vista Microsoft a arrêté tout et tous les processus d'e / s d'accéder au noyau (anneau 0) directement à nouveau. Le dossier le plus proche que nous obtenons est un dossier créé comme une partition d'accès au noyau virtuel, mais techniquement pas d'accès au noyau lui-même; le noyau se rencontre à mi-chemin.

C'est parce que le logiciel lui-même dicte jeton à utiliser, donc si il demande un jeton d'accès administrateur, plutôt que d'autoriser les communications avec le noyau, comme sur Windows XP, vous êtes invité à autoriser l'accès au noyau, à chaque fois. Changer UAC pourrait réduire les invites, mais jamais les invites du noyau.

même lorsque vous vous connectez en tant qu'administrateur, vous exécutez des processus en tant qu'utilisateur standard jusqu'à ce qu'il vous soit demandé d'élever les droits que vous avez. Je crois connecté car l'administrateur vous évite d'entrer les informations d'identification. Mais il écrit aussi à la structure du dossier administrateur users.

L'accès au noyau est similaire à l'accès root sous Linux. Lorsque vous augmentez vos permissions, vous vous isolez de la racine de C:\ et de toutes les variables d'environnement belles sont contenues dans.

si vous vous souvenez de BSODs, c'était L'OS qui s'arrêtait quand il croyait qu'une mauvaise entrée/sortie avait atteint le noyau.

0
répondu user5244305 2017-12-11 16:26:57

OK, répétons...

, La question réelle (et excellente)

Qu'est-ce que "exécuter en tant qu'administrateur"? "

(Réponse)1. Il vous permet de faire appel aux droits de l'administrateur lors d'une session utilisateur.

Note: la question est mal posée; on est un commande et l'autre est un objet de groupe pour appliquer les politiques.

ouvrez une invite de commande et tapez runas /? .

liste de tous les commutateurs que la ligne de commande runas peut utiliser.

quant au groupe Administrateurs, il est basé sur GPEDIT ou SECPOL et que l'administrateur de domaine soit présent ou non ou qu'un réseau soit présent ou non.

habituellement, ces choses s'appliquent restrictions sur les ordinateurs que le groupe des administrateurs n'est pas affecté par.

la question devrait être

Qu'est-ce que runas admin fait qui s'exécute alors que user ne le fait pas?

ou

Qu'est-ce que le groupe administrateur fait qu'un groupe utilisateur personnalisé ne peut pas faire?

vous mélangez des pommes et des oranges.

0
répondu user5244305 2017-12-11 16:31:15