Windows 相当于“chmod -R aw”

Windows 相当于“chmod -R aw”

Windows 中与“chmod -R aw”等同的命令是什么,用于递归删除目录的写权限?棘手的部分是保持其余权限不变(例如,如果子文件夹 A 仅可由组 A 读取,则不要向所有人开放文件夹权限)。

答案1

我想说,没有“等效”的设计方式Windows 上的访问控制与 Linux 上的有很大不同。

无论如何,你可以用伊卡克尔斯命令、PowerShell 脚本、VBScript 等

对于每个文件,可以有授予规则和拒绝规则附加到用户或组。拒绝规则优先于授予规则。因此,根据文件上现有的 ACL 配置,您可能有不同的方法。例如:

  1. 用户继承读写权限:添加规则以拒绝写入
  2. 用户继承了读取权限,并且文件上已经存在允许写入的规则:只需删除允许写入规则

以下是案例 1 的示例,使用以下命令添加一条拒绝一堆写权限的规则icacls

icacls C:\myFolder /deny UserOrGroup:(WD,AD,WDAC,WO,WEA,WA,DE,DC) /T

要为多个用户/组添加规则,您需要在批处理脚本中用循环将其包装起来。

由于您已在问题中标记了 powershell,因此类似于上述icacls示例的 PowerShell 脚本是:

$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("UserOrGroup", "DeleteSubdirectoriesAndFiles, Write, Delete, ChangePermissions, TakeOwnership", "Deny")

Get-ChildItem 'C:\myFolder' -Recurse | ForEach-Object {
    $acl = Get-Acl $_.FullName
    $acl.AddAccessRule($rule)
    Set-Acl $_.FullName $acl
}

PowerShell 更复杂,但提供了更大的灵活性。例如,您可以从文件/文件夹上的现有规则中获取用户/组,并动态添加拒绝规则。

注意:您可能可以在以下位置找到更多相关问题和示例服务器故障超级用户或者堆栈溢出使用“windows chmod”、“powershell acl”、“icacls”等关键字。

相关内容