In linux, ls -l lists files permissions, like this:
-rw-r--r-- 1 user user 924 2011-07-01 20:23 test.txtIn 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?
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)FIn 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 FullControlUse it in conjunction with Get-ChildItem (aliased with dir and ls) to get the permissions for the files.
PS C:\> Get-ChildItem | Get-AclOr, 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.exeThe letters under the Mode column are shortcuts for the Windows file attributes of each file.