Windows: список файлов и их разрешения (доступ) в командной строке


56

В Linux, ls -lсписок файлов разрешений, например:

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

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


Ну, может быть %~aX, если это в партии? Это как d----------.
Константин Ван

Ответы:


64

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


29

Вы можете использовать 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

13
PS C:\> Get-Acl | flдля лучшего списка.
AWippler

Могу ли я изменить это, чтобы пропустить папку, к которой у меня нет доступа? например, когда я запустил это (не как администратор), я получил ошибку («неавторизованная операция»), и отчет остановился в папке, к которой у меня не было доступа
Бен

14

Вы также можете взглянуть на 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

Это делает другое дело, хотя; в нем перечислены действительный доступ для текущего (или указанного) пользователя, а не полный настроенный список доступа.
grawity

1
Я считаю, что вопрос ОП мог быть истолкован в любом случае. Судя по недавнему голосованию за мой ответ, это было полезно, по крайней мере, еще одному человеку, кроме меня. Мой ответ не предназначен для того, чтобы спорить или опровергать ваш ответ. Это другой способ подойти к проблеме, чтобы получить очень похожий ответ.
JJS

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.