Windows: liste les fichiers et leurs autorisations (accès) en ligne de commande


56

Sous Linux, ls -lrépertorie les droits d'accès aux fichiers, comme ceci:

-rw-r--r--  1 user user      924 2011-07-01 20:23 test.txt

Sous Windows, les commandes treeet dirne disposent pas des options pour répertorier les autorisations. Comment est-il possible de répertorier les fichiers et leurs autorisations en ligne de commande uniquement?


Euh, peut-être %~aX, si c'est en lot? C'est comme d----------.
Константин Ван

Réponses:


64

Utilisez des icacls :

> icacls Music
Music SNOW\grawity:(I)(F)
      CREATOR OWNER:(I)(OI)(CI)(IO)(F)
      SNOW\grawity:(I)(OI)(CI)(IO)(F)
      NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)

L'ancien outil cacls est le seul choix sous Windows XP [bien que vous puissiez copier à icacls.exepartir de Server 2003]. cacls ne connaît pas certains modes ACL, mais affiche la plupart d’entre eux correctement.

> cacls Music
F:\Users\Mantas\Music SNOW\grawity:F
                      CREATOR OWNER:(OI)(CI)(IO)F
                      SNOW\grawity:(OI)(CI)(IO)F
                      NT AUTHORITY\SYSTEM:(OI)(CI)F

Dans les deux sorties, (OI)signifie "hériter d'objet" (les fichiers hériteront de cette ACE), (CI)est "conteneur hérité" (les conteneurs - c'est-à-dire les dossiers - hériteront de cette ACE), (IO)sera "hériter uniquement".

Microsoft fournissait également un outil xcacls séparément, mais ses fonctionnalités font maintenant partie d’ icacls .


29

Vous pouvez utiliser Powershell et la Get-Aclcommande

PS C:\> Get-Acl

   Directory:

Path              Owner                            Access  
----              -----                            ------  
C:\               NT SERVICE\TrustedInstaller      Everyone Allow  FullControl

Utilisez-le avec Get-ChildItem(alias avec diret ls) pour obtenir les autorisations pour les fichiers.

PS C:\> Get-ChildItem | Get-Acl

Ou, en utilisant l'alias:

PS C:\> Dir | Get-Acl

13
PS C:\> Get-Acl | flpour une meilleure liste.
AWippler

Puis-je modifier cela pour ignorer un dossier auquel je n'ai pas accès? par exemple, quand j'ai exécuté ceci (pas en tant qu'administrateur), j'ai eu une erreur ("opération non autorisée") et le rapport s'est arrêté dans le dossier
Ben

14

Vous pouvez également consulter AccessChk de Sysinternals. La sortie peut être analysée beaucoup plus facilement.

C:\Users\jeremy>accesschk myad\simmonsj c:\inetpub

Accesschk v5.11 - Reports effective permissions for securable objects
Copyright (C) 2006-2012 Mark Russinovich
Sysinternals - www.sysinternals.com

RW c:\inetpub\custerr
RW c:\inetpub\history
RW c:\inetpub\logs
RW c:\inetpub\Roadkill
RW c:\inetpub\smartadmin
RW c:\inetpub\temp
RW c:\inetpub\wwwroot

Cela fait une chose différente cependant; il répertorie l' accès effectif pour l'utilisateur actuel (ou spécifié), plutôt que la liste d'accès configurée complète.
Grawity

1
Je pense que la question du PO aurait pu être interprétée de toute façon. À en juger par le récent vote positif sur ma réponse, cela a été utile à au moins une autre personne que moi. Ma réponse ne vise pas à discuter ou à réfuter votre réponse. C'est une façon différente d'aborder le problème que d'obtenir une réponse très similaire.
JJS

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.