在Linux中,ls -l
列出文件权限,如下所示:
-rw-r--r-- 1 user user 924 2011-07-01 20:23 test.txt
在 Windows 中,命令tree
和dir
没有列出权限的选项。如何仅使用命令行列出文件及其权限?
答案1
使用伊卡克尔斯:
> 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)
较年长的权限控制工具是 Windows XP 上的唯一选择 [尽管您可以icacls.exe
从 Server 2003 复制]。权限控制不了解某些 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)
“仅继承”。
微软还曾提供权限控制工具单独提供,但其功能现在是伊卡克尔斯。
答案2
您可以使用 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
答案3
你也可以看看访问检查来自 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
答案4
如果你只想要 Windows 文件属性(而不是所有权或 ACL),你可以使用 Powershell Dir 命令(获取子项命令)。 例如:
...>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 文件属性,可以解释为如下:
- l(链接)
- d(目录)
- (档案)
- r(只读)
- h(隐藏)
- s(系统)。