社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 1309阅读
  • 0回复

[分享]设置文件夹权限的批处理

楼层直达
级别: 管理员
发帖
28312
飞翔币
1597
威望
888
飞扬币
132493
信誉值
0

【参考1】:
Cacls可以显示或修改任意访问控制列表 (DACL) 文件。

前几天在L.S.T的群里,有人问到这个问题,在Webshell或者注入的时候执行Cacls命令会提示“是否确定(Y/N)?”,因为我们无法输入“Y”来确认,所以我们就无法成功执行Cacls命令。记得以前有个方法是执行“echo Y|cacls C:\slyar\ /g everyone:F”这样的命令,运用管道来使得Cacls无需确认执行,但是今天试验后发现本地可以成功,而在Webshell里还是不成功。。。

在查看Cacls帮助后经过研究得出的结论是:

Cacls只加参数/G后执行会提示“是否确定(Y/N)?”, 因为我们在Webshell或者注入的时候里不能键入“Y”,因此不能成功执行。

Cacls加入参数 /E /G后不会出现提示而直接执行。所以我们直接执行带 /E /G 参数的Cacls命令就可以不经确认直接执行了。

但是这里有一个特殊情况:参数 /E 的作用是“编辑 ACL 而不替换”,而如果目标目录里已经包含了“everyone:R”的权限设置的话,那么执行命令后仍然是“everyone: R”。。。对于这种情况,我们首先要用 /D 参数把要赋权的用户拒绝访问目标目录,然后再进行赋权。

那么我们需要执行的命令依次是:

cacls C:\slyar\ /E /D everyone
cacls C:\slyar\ /E /G everyone:F



【参考2:】
CACLS filename [/T] [/M] [/S[:SDDL]] [/E] [/C] [/G user:perm] [/R user [...]]
        [/P user:perm [...]] [/D user [...]]
  filename   Displays ACLs.
  /T      更改当前目录及其所有子目录中指定
         文件的 ACL。
  /M      将装入卷的 ACL 更改到目录。
  /S      显示 DACL 的 SDDL 字符串。
  /S:SDDL    用 SDDL 字符串中指定的 ACL 替换
         (与 /E、/G、/R、/P 或 /D 一起使用时无效)。
  /E      编辑 ACL 而不替换。
  /C      在出现拒绝访问错误时继续。
  /G user:perm 赋予指定用户访问权限。
         Perm 可以是: R 读取
               W 写入
               C 更改(写入)
               F 完全控制
  /R user    撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
  /P user:perm 替换指定用户的访问权限。
         Perm 可以是: N 无
               R 读取
               W 写入
               C 更改(写入)
               F 完全控制
/D user     拒绝指定用户的访问。
在命令中可以使用通配符指定多个文件。也可以在命令中指定
多个用户。

缩写:
  CI - 容器继承。
    ACE 会由目录继承。
  OI - 对象继承。
    ACE 会由文件继承。
  IO - 只继承。
    ACE 不适用于当前文件/目录。