"Paulchen" <paul.voyerENLEVER@laposte.net> a écrit dans le message de groupe
de discussion :
eqbPOG6jKHA.5520@TK2MSFTNGP06.phx.gbl...
> Désolé Pierre, mais j'ai lu quelque part que curieusement
> "exécuter comme administrateur" n'avait pas besoin
> que l'Administrateur soit activé pour fonctionner.
FARPAITEMENT !
L'ami PAUL a raison et l'ami PIERRE a tort ! ;-)
La commande
"exécuter comme administrateur"
NE SIGNIFIE PAS
"exécuter sous LE compte "administrateur"
MAIS AU CONTRAIRE
"exécuter avec les privilèges administrateur du compte en cours"
(cela suppose que le compte en question appartient au groupe des admins)
Je rappelle le grand principe des privilèges et de UAC (User Account
Control) :
TOUT compte possède un certain nombre de "privilèges", dépendant du groupe
auquel il appartient :
- administrateurs
- utilisateurs "lambda"
- invités
Ces privilèges ont de jolis pe**** noms, tels que :
SeCreateTokenPrivilege
SeAssignPrimaryTokenPrivilege
SeLockMemoryPrivilege
SeIncreaseQuotaPrivilege
SeMachineAccountPrivilege
SeTcbPrivilege
SeSecurityPrivilege
SeTakeOwnershipPrivilege
SeTimeZonePrivilege
SeShutdownPrivilege
...
Lorsqu'un compte ouvre une session, le sous-système de gestion de la
sécurité (LSA) attribue à ce compte un "jeton" qui contient la liste des
privilèges auxquels le compte a droit.
Si une manip relevant de la sécurité a lieu (création d'un dossier, arrêt de
l'ordinateur, création de compte, changer le fuseau horaire, ...), le
"jeton" est interrogé par le système qui autorise ou non le processus.
Ça, c'est valable depuis toujours (depuis NT3.1).
MAIS UAC a ajouté une subtilité, concernant EXCLUSIVEMENT les comptes du
groupe des administrateurs :
Lorsqu'un compte de ce groupe AUTRE que le compte "Administrateur" ouvre une
session, il reçoit DEUX JETONS, un contenant la liste des privilèges
"admin", et un autre contenant une liste avec peu de privilèges, comme pour
un compte "lambda", et c'est CE JETON "AU RABAIS" qui est actif en temps
normal !
Cela afin de renforcer la sécurité, en limitant volontairement PAR DÉFAUT
les privilèges des administrateurs (et éviter des concetés et/ou des
attaques provenant "d'Aliens")
Si un processus a besoin de privilèges élevés (notifiés p.ex. dans un
fichier "xxxxx.manifest" par la ligne "<requestedexecutionlevel
level="requireadministrator" /> "), le jeton en cours est insuffisant, et il
y a alors demande d'élévation de privilèges (signifiée, par défaut, par une
boite de dialogue).
Si l'utilisateur (du groupe des admins) est d'accord, il y a alors
utilisation du 1er jeton (celui d'administrateur), si bien que le processus
peut se poursuivre.
Dès que le processus est terminé, le jeton "admin" est remis au placard, et
c'est le jeton "lambda" qui est à nouveau actif.
Ce qui explique que (sous Vista, car sous Win7 ça s'est amélioré) on est
sans arrêt sollicité par cette boite de dialogue d'élévation de privilèges,
ce qui a "hérissé le poil" de bon nombre d'utilisateurs (dont je fais
partie, avec Michel Claveau, "Le Claude", ...!)
Quant au compte "Administrateur" (créé automatiquement à l'installation de
Windows, non supprimable, de SID se terminant par 500), il ne possède QU'UN
SEUL JETON : celui d'administrateur.
Donc par défaut, si on ouvre une session sous ce compte (et LUI SEUL!), et
s'il a été activé (par défaut il est désactivé), on ne sera pas soumis aux
élévations de privilèges. Par contre on travaille sans filet ! ;-)
Si on est très "maso" et/ou "pervers" (;-)), on peut faire en sorte que le
compte "Administrateur" soit soumis aux mêmes règles que les autres comptes
admins.
Pour cela, il suffit d'attribuer la valeur 1 à la clef :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Pol icies\System\FilterAdministratorToken
Donc pour en revenir au sujet initial, quand on clique sur "exécuter comme
administrateur", cela revient à demander l'utilisation du jeton "Admin" du
compte en cours.
Et si ce compte ne fait pas partie du groupe des admins, il faudra alors
saisir :
- un nom de compte admin
(le compte "Administrateur" ou un autre, peu importe)
- son mot de passe associé.
Si on utilise le compte "Administrateur", il faudra bien, sûr qu'il soit
activé
Pour cela, exécuter la commande suivante sous un compte admin :
NET USER Administrateur /ACTIVE:YES)
Mais comme je l'ai déjà dit, on peut très bien utiliser un AUTRE compte
admin !
Ouf !!!!
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou
http://jc.bellamy.free.fr