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

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

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

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

5 ответов

Решение

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

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

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

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

Если вам нужны только атрибуты файла Windows (а не право собственности или списки управления доступом), вы можете использовать команду Powershell Dir (ярлык для команды Get-ChildItem ). Например:

      ...>powershell dir


    Directory: C:\...


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        09/04/2022     18:09                testfiles
-a----        08/04/2022     23:19         130844 testbbackupd.cpp
-a----        08/04/2022     23:19             94 testextra
-a----        09/04/2022     18:06        8394752 test_bbackupd.exe

Буквы в свойстве Mode — это атрибуты каждого файла Windows, которые можно интерпретировать следующим образом:

  • л (ссылка)
  • д (каталог)
  • а (архив)
  • р (только чтение)
  • ч (скрыто)
  • с (система).
Другие вопросы по тегам