Windows: Listar arquivos e suas permissões (acesso) na linha de comando

56

No linux, ls -llista permissões de arquivos, assim:

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

No Windows, comandos treee dirnão tem as opções para listar permissões. Como é possível listar arquivos e suas permissões usando apenas a linha de comando?

Jens Erat
fonte
Talvez %~aX, se estiver em lote? É como d----------.
Константин Ван

Respostas:

64

Use 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)

A ferramenta cacls mais antiga é a única opção no Windows XP [embora você possa copiar icacls.exedo Server 2003]. O cacls não conhece alguns modos da ACL, mas exibe a maioria deles bem.

> 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

Nas duas saídas, (OI)significa "herança de objeto" (os arquivos herdarão essa ACE), (CI)é "herança de contêiner" (os contêineres - ou seja, pastas - herdarão essa ACE), (IO)é "somente herança".

A Microsoft também costumava fornecer uma ferramenta xcacls separadamente, mas sua funcionalidade agora faz parte do icacls .

gravidade
fonte
29

Você pode usar o Powershell e o Get-Aclcomando

PS C:\> Get-Acl

   Directory:

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

Use-o em conjunto com Get-ChildItem(alias de dire ls) para obter as permissões para os arquivos.

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

Ou, usando o alias:

PS C:\> Dir | Get-Acl
squillman
fonte
13
PS C:\> Get-Acl | flpara uma lista melhor.
precisa saber é o seguinte
Posso alterar isso para pular uma pasta à qual não tenho acesso? por exemplo, quando eu executei isso (não como administrador), recebi um erro ("operação não autorizada") e o relatório foi interrompido na pasta à qual eu não tinha acesso
Ben
14

Você também pode dar uma olhada no AccessChk da Sysinternals. A saída pode ser analisada com muito mais facilidade.

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
fonte
Faz uma coisa diferente; lista o acesso efetivo para o usuário atual (ou especificado), em vez da lista de acesso configurada completa.
grawity
1
Acredito que a pergunta do OP poderia ter sido interpretada de qualquer maneira. A julgar pelo recente voto positivo na minha resposta, isso foi útil para pelo menos uma outra pessoa além de mim. Minha resposta não pretende discutir ou refutar sua resposta. É uma maneira diferente de abordar o problema para obter uma resposta muito semelhante.
JJS 6/08
4

dir /Q dá a você o proprietário dos diretórios.

James Selvakumar
fonte