如何使用Windows命令行授予用户对目录的权限(读、写、修改)?
当前回答
当我运行命令时:
icacls "c:/path/to/folderA/folderB" /grant:r Everyone:(OI)(CI)F /T
folderB中的文件都没有被处理,这是通过输出消息表示的:
Successfully processed 0 files; Failed processing 0 files
然而,一旦我将指定的路径更改为父目录(“c:/path/to/folderA”)并重新运行命令,folderB中的所有文件都被成功处理。
注意:如果您希望folderA中的任何其他文件/文件夹不被处理,请在运行上述命令之前尝试将所有这些文件/文件夹移动到不同的位置。
希望这对遇到同样问题的人有所帮助。
其他回答
为了防止其他人在这个页面上出错,如果你想在一个命令中将各种权限串在一起,我使用了这个:
icacls "c:\TestFolder" /grant:r Test_User:(OI)(CI)(RC,RD,RX)
请注意用于各种权限的csv字符串。
使用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 /?
当我运行命令时:
icacls "c:/path/to/folderA/folderB" /grant:r Everyone:(OI)(CI)F /T
folderB中的文件都没有被处理,这是通过输出消息表示的:
Successfully processed 0 files; Failed processing 0 files
然而,一旦我将指定的路径更改为父目录(“c:/path/to/folderA”)并重新运行命令,folderB中的所有文件都被成功处理。
注意:如果您希望folderA中的任何其他文件/文件夹不被处理,请在运行上述命令之前尝试将所有这些文件/文件夹移动到不同的位置。
希望这对遇到同样问题的人有所帮助。
attrib +r +a +s +h <folder name> <file name> to hide
attrib -r -a -s -h <folder name> <file name> to unhide
在Vista中,不支持使用cacls。以下是前几条帮助热线:
C:\>cacls
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
你应该使用icacls。这是你授予John对D:\test文件夹及其所有子文件夹的完全控制权的方式:
C:\>icacls "D:\test" /grant John:(OI)(CI)F /T
根据MS文档:
F =完全控制 CI =容器继承——该标志表示从属容器将继承此ACE。 OI = Object Inherit -该标志表示从属文件将继承ACE。 /T =递归应用到现有文件和子文件夹。(OI和CI只适用于新文件和子文件夹)。图片来源:@AlexSpence。
要获得完整的文档,您可以不带参数地运行“icacls”,或者在这里和这里查看Microsoft文档
推荐文章
- 在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中使用“/”(目录分隔符)?