相当于在 Windows 中更改文件权限的 chmod

相当于在 Windows 中更改文件权限的 chmod

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) 属性等效的属性。
  • xDOS/Windows 文件属性中没有相当于“可执行” ( ) Linux 属性的属性。
  • 那里相当于 Windows 的“目录”( D) 属性(但无论如何都无法更改)。
  • 在 Linux 文件系统中,每个条目都只属于一个用户和一个组,并且可以允许每个用户和其他用户进行读/写/执行。ACL(如 Windows 使用的)更加灵活,但也更加复杂,命令行语法非常麻烦(当然,这是我的拙见)

DOS 文件属性R(只读)可能被认为具有等效属性:此属性大致就像是w全部的属性都缺失了;但是改变这个属性的权限要受 ACL 的约束。

chmod在 Windows 上有一个/等效项可能会很酷chown,也许是用某种脚本语言编写的,依次调用attribcacls(或后继),但我没有。

答案3

任何一个权限控制权限控制,或者我个人最喜欢的伊卡克尔斯可能会满足您的需要。

答案4

命令attrib是最接近最基本的东西(只读、存档标志)的匹配。然后是 ACL(访问控制列表)命令cacls。最后但并非最不重要的一点是,由于 Windows 实际上是符合 Posix 标准的,因此类似 unix 的标志确实存在。如果您安装 Cygwin 工具集,您将获得一个chmod。(有点离题,由于您正在寻找 unix 命令的等效项,下载和安装 Cgygwin 可能会让您感兴趣。)

相关内容