Windows: List files and their permissions (access) in command line

In linux, ls -l lists files permissions, like this:

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

In Windows, commands tree and dir don't have the options to list permissions. How is it possible to list files and their permissions using command line only?

1

5 Answers

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)

The older cacls tool is the only choice on Windows XP [although you can copy icacls.exe from Server 2003]. cacls does not know about some ACL modes, but displays most of them fine.

> 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 both outputs, (OI) means "object inherit" (files will inherit this ACE), (CI) is "container inherit" (containers – i.e. folders – will inherit this ACE), (IO) is "inherit only".

Microsoft also used to provide an xcacls tool separately, but its functionality is now part of icacls.

You can use Powershell and the Get-Acl command

PS C:\> Get-Acl Directory:
Path Owner Access
---- ----- ------
C:\ NT SERVICE\TrustedInstaller Everyone Allow FullControl

Use it in conjunction with Get-ChildItem (aliased with dir and ls) to get the permissions for the files.

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

Or, using the alias:

PS C:\> Dir | Get-Acl
2

You might also take a look at AccessChk from Sysinternals. The output can be parsed much easier.

C:\Users\jeremy>accesschk myad\simmonsj c:\inetpub
Accesschk v5.11 - Reports effective permissions for securable objects
Copyright (C) 2006-2012 Mark Russinovich
Sysinternals -
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 gives you the owner of the directories and of any files in the current folder.

With dir /Q /S you can see the owners of all files and directories in and under the current folder.

Thanks @DAB for the edit suggestions.

If you just want Windows file attributes (not ownership or ACLs) you can use the Powershell Dir command (a shortcut for the Get-ChildItem command). For example:

...>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

The letters under the Mode column are shortcuts for the Windows file attributes of each file.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like