Windows 中是否有与 Linux 等效的程序chmod
来更改文件的权限?
答案1
格雷格 提及 attrib
- 但还attrib
远远不够chmod
-attrib
可以设置单个文件的只读/隐藏属性 - 它不提供细粒度的控制,例如icacls
做。
icacls
设置/重置访问控制列表,以便您可以授予/拒绝单个 SID 和组的权限。不过这相当复杂。
下面是我保存的一个例子github要点;它会重置文件夹中所有文件的所有权和访问控制列表,尤其适用于修复那些烦人的“您需要来自..的权限才能执行此操作”,尤其是在从以前的安装中移动文件时:
icacls * /reset /t /c /q
我们有
/reset
用默认列表替换现有列表。/t
对所有文件、文件夹和子文件夹进行递归操作/q
不显示任何成功消息/c
即使发生错误,仍会继续处理剩余的文件。
您还可以执行诸如备份现有 ACL 并将其应用于所有 ACL 之类的操作。请查看SS64它很好地解释了不同的选项和开关。
答案2
由于 Linux 和 DOS/Windows 使用属性用于不同的目的,并且(正如 Chathuranga 之前所说)安全模型不同,所以(遗憾的是)不可能有完全等价的:
- 在 Windows 文件系统中,有“隐藏”(
H
)和“系统”(S
)属性,而在 Linux 中没有等效属性;在 Linux 中,文件通过在名称前面加上点(.
)来隐藏。 - 也没有与 Windows “存档” (
A
) 属性等效的属性。 x
DOS/Windows 文件属性中没有相当于“可执行” ( ) Linux 属性的属性。- 那里是相当于 Windows 的“目录”(
D
) 属性(但无论如何都无法更改)。 - 在 Linux 文件系统中,每个条目都只属于一个用户和一个组,并且可以允许每个用户和其他用户进行读/写/执行。ACL(如 Windows 使用的)更加灵活,但也更加复杂,命令行语法非常麻烦(当然,这是我的拙见)
DOS 文件属性R
(只读)可能被认为具有等效属性:此属性放大致就像是w
全部的属性都缺失了;但是改变这个属性的权限要受 ACL 的约束。
chmod
在 Windows 上有一个/等效项可能会很酷chown
,也许是用某种脚本语言编写的,依次调用attrib
和cacls
(或后继),但我没有。
答案3
答案4
命令attrib
是最接近最基本的东西(只读、存档标志)的匹配。然后是 ACL(访问控制列表)命令cacls
。最后但并非最不重要的一点是,由于 Windows 实际上是符合 Posix 标准的,因此类似 unix 的标志确实存在。如果您安装 Cygwin 工具集,您将获得一个chmod
。(有点离题,由于您正在寻找 unix 命令的等效项,下载和安装 Cgygwin 可能会让您感兴趣。)