Windows: Lista plików i ich uprawnień (dostęp) w wierszu poleceń

56

W systemie Linux ls -lwyświetla uprawnienia do plików, takie jak to:

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

W systemie Windows polecenia treei dirnie mają opcji wyświetlania listy uprawnień. Jak można wyświetlić listę plików i ich uprawnień, używając tylko wiersza poleceń?

Jens Erat
źródło
Może %~aX, jeśli jest to partia? To jest jak d----------.
Константин Ван

Odpowiedzi:

64

Użyj 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)

Starsze narzędzie cacls jest jedynym wyborem w systemie Windows XP [chociaż można skopiować icacls.exez serwera 2003]. cacls nie wie o niektórych trybach ACL, ale wyświetla większość z nich dobrze.

> 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

W obu wyjściach (OI)oznacza „dziedziczenie obiektu” (pliki odziedziczą tę pozycję ACE), (CI)oznacza „dziedziczenie kontenera” (kontenery - tj. Foldery - odziedziczą tę pozycję ACE), (IO)„dziedziczy tylko”.

Microsoft również dostarczał osobno narzędzie xcacls , ale jego funkcjonalność jest teraz częścią icacls .

grawitacja
źródło
29

Możesz użyć programu Powershell i Get-Aclpolecenia

PS C:\> Get-Acl

   Directory:

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

Użyj go w połączeniu z Get-ChildItem(alias z diri ls), aby uzyskać uprawnienia do plików.

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

Lub używając aliasu:

PS C:\> Dir | Get-Acl
squillman
źródło
13
PS C:\> Get-Acl | fldla ładniejszej listy.
AWippler
Czy mogę to zmienić, aby pominąć folder, do którego nie mam dostępu? na przykład, kiedy uruchomiłem to (nie jako administrator), dostałem błąd („nieautoryzowana operacja”) i raport zatrzymał się w folderze, do którego nie miałem dostępu
Ben
14

Możesz także rzucić okiem na AccessChk od Sysinternals. Dane wyjściowe można analizować znacznie łatwiej.

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
źródło
Robi to jednak inaczej; wyświetla efektywny dostęp dla bieżącego (lub określonego) użytkownika, a nie w pełni skonfigurowaną listę dostępu.
grawitacja
1
Uważam, że pytanie OP można było interpretować w obu przypadkach. Sądząc po ostatnim głosowaniu nad moją odpowiedzią, było to przydatne co najmniej jednej innej osobie poza mną. Moja odpowiedź nie ma na celu kłócenia się z twoją odpowiedzią. Jest inny sposób podejścia do problemu, aby uzyskać bardzo podobną odpowiedź.
JJS,
4

dir /Q daje właścicielowi katalogów.

James Selvakumar
źródło