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

78 windows file-attributes chmod

是否有任何等同于 Linux 的 Windowschmod来更改文件的权限?

Sat*_*hat 35

Greg 提到 attrib- 但attrib 不是很接近chmod-attrib可以设置单个文件的只读/隐藏属性 - 它不像那样提供细粒度的控件icacls

icacls设置/重置访问控制列表,因此您可以授予/拒绝单个 SID 和组的权限。虽然它相当复杂。

这是我保存在github gist 中的示例;它重置文件夹中所有文件的所有权和访问控制列表,对于修复那些烦人的“您需要......的权限才能执行此操作”特别有用,尤其是在从以前的安装移动文件时:

icacls * /reset /t /c /q 
Run Code Online (Sandbox Code Playgroud)

重置用默认列表替换现有列表。
/t递归地作用于所有文件、文件夹和子文件夹,即使发生错误,
/q也不会显示任何成功消息,
/c继续处理剩余文件。

您还可以执行诸如备份现有 ACL 并将它们应用于所有内容之类的操作。看看ss64,它很好地解释了不同的选项和开关。


Bry*_*yan 15

无论是CACLSXCACLS,或我个人最喜欢ICACLS可能会做你的需要。


Tob*_*ias 12

(遗憾的是)不能完全等效,因为 Linux 和 DOS/Windows 将属性用于不同的目的,并且(正如 Chathuranga 之前所说)安全模型是不同的:

  • 在 Windows 文件系统中,有“隐藏” ( H) 和“系统” ( S) 属性,它们在 Linux 中没有等价物;在那里,文件通过在名称前面加上一个点 ( .)来隐藏。
  • 也没有与 Windows 的“归档”( A) 属性等效的属性。
  • xDOS/Windows 文件属性中没有等效于“可执行”( ) Linux 属性。
  • 这里一个相当于Windows的“目录”( D)属性(但不能仍然会改变)。
  • 在 Linux 文件系统中,每个条目都由一个用户和一个组拥有,并且可以允许每个条目和其他条目进行读/写/执行。ACL(如 Windows 使用的)更加灵活,但也更加复杂,命令行语法是 PITA(当然,以我的拙见)

DOS 文件属性R(只读)是一个可以被认为具有等价物的属性:这个属性大致类似于w所有丢失的属性;但更改此属性的权限受 ACL 的约束。

在 Windows 上有一个chmod/chown等价物可能很酷,也许是用某种脚本语言编写的,它反过来调用attribcacls(或后继者),但我没有。


MDT*_*Guy 8

icacls "C:\folder" /grant:r "Domain\Users":(OI)(CI)M /T /C
Run Code Online (Sandbox Code Playgroud)

像魅力一样工作,可以更改域用户对文件夹的权限。关于cacls和 的附加信息icacls


小智 5

attrib命令与非常基本的事物(只读、存档标志)最接近。然后是 ACL(访问控制列表)命令cacls。最后但并非最不重要的一点是,由于 Windows 实际上符合 Posix,因此确实存在类 Unix 标志。如果您安装 Cygwin 工具集,您将获得一个chmod. (有点题外话,因为您正在寻找与 unix 命令等价的命令,下载和安装 Cgygwin 可能对您来说很有趣。)


小智 5

我使用 Windows 命令takeown.exe将文件权限更改为我当前登录的用户 ID:http : //technet.microsoft.com/en-us/library/cc753024.aspx


小智 5

对我来说,解决方法是安装 Cygwin,并将其 bin 文件夹添加到系统路径。然后,如果您在命令行中运行“chmod”,它将起作用。虽然我没有验证它的正确性。


Cha*_*ara 2

Windows 中没有所谓 chmod 的东西,因为 Windows 的安全模型与 Linux 不同。您可以使用attrib命令来更改对象的属性。(但他们更倾向于全球财产。)