Windows: Dateien und ihre Berechtigungen (Zugriff) in der Befehlszeile auflisten

56

ls -lListet unter Linux die Dateiberechtigungen wie folgt auf:

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

In Windows haben Befehle treeund dirkeine Optionen zum Auflisten von Berechtigungen. Wie ist es möglich, Dateien und ihre Berechtigungen nur über die Befehlszeile aufzulisten?

Jens Erat
quelle
Äh, vielleicht %~aX, wenn es im Batch ist? Es ist wie d----------.
Константин Ван

Antworten:

64

Verwenden Sie 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)

Das ältere cacls- Tool ist die einzige Option unter Windows XP [obwohl Sie es icacls.exevon Server 2003 kopieren können ]. cacls kennt einige ACL-Modi nicht, zeigt aber die meisten in Ordnung an.

> 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

In beiden Ausgaben (OI)bedeutet "Objekt erben" (Dateien erben diesen ACE), (CI)"Container erben" (Container - dh Ordner - erben diesen ACE), (IO)"nur erben".

Microsoft hat früher auch ein xcacls- Tool separat bereitgestellt , aber seine Funktionalität ist jetzt Teil von icacls .

Grawity
quelle
29

Sie können Powershell und den Get-AclBefehl verwenden

PS C:\> Get-Acl

   Directory:

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

Verwenden Sie es in Verbindung mit Get-ChildItem(mit dirund als Alias ls), um die Berechtigungen für die Dateien abzurufen .

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

Oder mit dem Alias:

PS C:\> Dir | Get-Acl
Squillman
quelle
13
PS C:\> Get-Acl | flfür eine schönere Liste.
AWippler
Kann ich dies ändern, um einen Ordner zu überspringen, auf den ich keinen Zugriff habe? Als ich dies zum Beispiel ausführte (nicht als Administrator), bekam ich eine Fehlermeldung ("nicht autorisierter Vorgang") und der Bericht wurde in dem Ordner angehalten, auf den ich keinen Zugriff hatte
Ben,
14

Sie können sich auch AccessChk von Sysinternals ansehen . Die Ausgabe kann viel einfacher analysiert werden.

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
JJS
quelle
Es macht jedoch eine andere Sache; Es listet den effektiven Zugriff für den aktuellen (oder angegebenen) Benutzer und nicht die vollständig konfigurierte Zugriffsliste auf.
Grawity
1
Ich glaube, die Frage des OP hätte so oder so ausgelegt werden können. Nach der jüngsten Abstimmung über meine Antwort zu urteilen, war dies für mindestens eine andere Person neben mir von Nutzen. Meine Antwort soll Ihre Antwort weder bestreiten noch widerlegen. Es ist eine andere Art, sich dem Problem zu nähern, um eine sehr ähnliche Antwort zu erhalten.
JJS
4

dir /Q gibt Ihnen den Besitzer der Verzeichnisse.

James Selvakumar
quelle