如何使用Windows命令行授予用户对目录的权限(读、写、修改)?
当前回答
损坏权限:重新获得对文件夹及其子对象的访问权
虽然这个问题的大部分答案都有一定的价值,但恕我直言,没有一个答案是完整的。下面(可能)是Windows 7的一个完美的解决方案,如果你被损坏的权限设置锁定的文件夹:
icacls "c:\folder" /remove:d /grant:r Everyone:(OI)(CI)F /T
对于Windows 10,用户/SID必须在/remove:d选项后指定:
icacls "c:\folder" /remove:d Everyone /grant:r Everyone:(OI)(CI)F /T
. 注:
The command is applied to the specified directory. Specifying the user "Everyone" sets the widest possible permission, as it includes every possible user. The option "/remove:d" deletes any explicit DENY settings that may exist, as those override explicit ALLOW settings: a necessary preliminary to creating a new ALLOW setting. This is only a precaution, as there is often no DENY setting present, but better safe than sorry. The option "/grant" creates a new ALLOW setting, an explicit permission that replaces (":r") any and all explicit ALLOW settings that may exist. The "F" parameter (i.e. the permission created) makes this a grant of FULL control. The "/T" parameter adds recursion, applying these changes to all current sub-objects in the specified directory (i.e. files and subfolders), as well as the folder itself. The "(OI)" and "(CI)" parameters also add recursion, applying these changes to sub-objects created subsequently. .
附录(2019/02/10)-
上面的Windows 10命令行是今天好心推荐给我的,所以就在这里。我还没有Windows 10来测试它,但是如果你有的话请尝试一下(然后请在下面发表评论)。
第一步更改只涉及删除DENY设置。可能没有任何DENY设置,所以该选项可能没有区别。我的理解是,在Windows 7上,你不需要在/remove:d后指定用户,但我可能错了!
.
附录(2019/11/21)-
用户astark建议将Everyone替换为术语*S-1-1-0,以便命令独立于语言。我只有英文版的Windows安装,所以我不能测试这个建议,但它似乎是合理的。
其他回答
使用cacls命令。请看这里的信息。
CACLS文件/e /p {USERNAME}:{PERMISSION} 在那里, /p:设置新的权限 /e:编辑权限并保留旧权限,即编辑ACL而不是替换它。 {USERNAME}:用户名 {PERMISSION}:权限可以是: R -读取 W -写 C -改变(写) F -完全控制 例如,用以下命令授予Rocky完全(F)控制权(在Windows命令提示符下输入): C:> CACLS files /e /p rocky:f 输入以下命令阅读完整帮助: C:> cacls /?
我为此挣扎了一段时间,只有结合这个帖子中的答案对我有效(在Windows 10上): 1. 打开cmd或PowerShell,进入有文件的文件夹 2. takeown /R /F 3.icacls * /T /grant dan:F
好运!
优秀点 卡林·达里
我有很多脚本使用调用,我把它们移动到icacls 我怎么也找不到一个脚本来改变根挂载卷的例子:d:\datafolder。我最终创建了下面的脚本,它将卷作为临时驱动器挂载,然后应用,然后卸载它。这是我发现可以更新根挂载安全性的唯一方法。
1获取文件夹挂载GUID到临时文件,然后读取GUID将卷挂载为临时驱动器X:应用sec并记录更改,然后仅从X:驱动器卸载卷,这样挂载的文件夹除了应用sec之外不会被更改或中断。
以下是我的脚本示例:
**mountvol "d:\%1" /L >tempDrive.temp && FOR /f "tokens=*" %%I IN (tempDrive.temp) DO mountvol X: %%I
D:\tools\security\icacls.exe %~2 /grant domain\group:(OI)(CI)F /T /C >>%~1LUNsec-%TDWEEK%-%TMONTH%-%TDAY%-%TYEAR%-%THOUR%-%TMINUTE%-%TAM%.txt
if exist x:\*.* mountvol X: /d**
为了防止其他人在这个页面上出错,如果你想在一个命令中将各种权限串在一起,我使用了这个:
icacls "c:\TestFolder" /grant:r Test_User:(OI)(CI)(RC,RD,RX)
请注意用于各种权限的csv字符串。
打开命令提示符,然后执行以下命令:
icacls“c:\ someelocation \of\path”/q /c /t /grant
F表示完全访问。
/q /c /t为子文件夹应用权限。
注意:有时“以管理员身份运行”会有所帮助。
推荐文章
- 在Windows批处理脚本中格式化日期和时间
- 映射一个网络驱动器供服务使用
- 如何在windows中使用命令提示符(cmd)列出文件。我试过在Linux中使用“ls”,但它显示一个错误?
- 修改一个目录下所有文件和文件夹的权限为644/755
- Windows上最好的免费c++分析器是什么?
- 如何在Windows上运行多个Python版本
- 运行计划任务的最佳方式
- Windows上Git文件的权限
- 如何同时安装Python 2。3. Python。Windows下的x
- 可能改变安卓虚拟设备保存的地方?
- 如何检查DLL依赖关系?
- Android-Facebook应用程序的键散列
- 如何在PowerShell中输出一些东西
- 如何在命令提示符中使用空格?
- 在Python中如何在Linux和Windows中使用“/”(目录分隔符)?