Windows: elenca i file e le relative autorizzazioni (accesso) nella riga di comando


56

In Linux, ls -lelenca le autorizzazioni dei file, in questo modo:

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

In Windows, i comandi treee dirnon hanno le opzioni per elencare le autorizzazioni. Come è possibile elencare i file e le loro autorizzazioni usando solo la riga di comando?


Uh, forse %~aX, se è in batch? È come d----------.
Константин Ван,

Risposte:


64

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

Il vecchio strumento cacls è l'unica scelta su Windows XP [sebbene sia possibile copiarlo icacls.exeda Server 2003]. cacls non conosce alcune modalità ACL, ma ne mostra la maggior parte.

> 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 entrambi gli output, (OI)significa "ereditarietà dell'oggetto" (i file erediteranno questo ACE), (CI)è "eredità del contenitore" (i contenitori - ovvero le cartelle - erediteranno questo ACE), (IO)è "solo eredita".

Microsoft utilizzava anche uno strumento xcacls separatamente, ma la sua funzionalità è ora parte di icacls .


29

È possibile utilizzare Powershell e il Get-Aclcomando

PS C:\> Get-Acl

   Directory:

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

Usalo insieme a Get-ChildItem(aliasato con dire ls) per ottenere i permessi per i file.

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

Oppure, usando l'alias:

PS C:\> Dir | Get-Acl

13
PS C:\> Get-Acl | flper un elenco migliore.
AWippler,

Posso modificarlo per saltare una cartella a cui non ho accesso? ad esempio, quando ho eseguito questo (non come amministratore) ho ricevuto un errore ("operazione non autorizzata") e il rapporto si è fermato nella cartella a cui non avevo accesso
Ben

14

Puoi anche dare un'occhiata a AccessChk di Sysinternals. L'output può essere analizzato molto più facilmente.

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

Fa comunque una cosa diversa; elenca l' accesso effettivo per l'utente corrente (o specificato), anziché l' elenco di accesso completo configurato .
Grawity il

1
Credo che la domanda del PO avrebbe potuto essere interpretata in entrambi i modi. A giudicare dal recente voto positivo sulla mia risposta, questo è stato utile ad almeno un'altra persona oltre a me. La mia risposta non ha lo scopo di discutere o confutare la tua risposta. È un modo diverso di affrontare il problema per ottenere una risposta molto simile.
JJS,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.