47

В linux ls -l перечисляет права доступа к файлам, например:

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

В Windows команды tree и dir не имеют опций для перечисления разрешений. Как можно перечислить файлы и их разрешения, используя только командную строку?

4 ответа4

54

Используйте 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)

Более старая утилита cacls является единственным выбором в Windows XP [хотя вы можете скопировать icacls.exe из Server 2003]. cacls не знает о некоторых режимах ACL, но отображает большинство из них нормально.

> 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

В обоих выходах (OI) означает "наследование объекта" (файлы будут наследовать этот ACE), (CI) - "наследование контейнера" (контейнеры - то есть папки - будут наследовать этот ACE), (IO) - "только наследование".

Microsoft также использовала отдельно инструмент xcacls , но теперь его функциональность является частью icacls.

23

Вы можете использовать Powershell и команду Get-Acl

PS C:\> Get-Acl

   Directory:

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

Используйте его вместе с Get-ChildItem (с псевдонимами dir и ls), чтобы получить разрешения для файлов.

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

Или, используя псевдоним:

PS C:\> Dir | Get-Acl
12

Вы также можете взглянуть на AccessChk от Sysinternals. Вывод может быть проанализирован намного проще.

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
2

dir /Q дает вам владельца каталогов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .