作为一种管理工具,Icacls是一把双刃剑。一方面,它的命令行界面有着让人难以置信的强大配置权限。有了它,你几乎可以完成IT行业可能遇到的所有权限管理任务。

  但是,为了成为一种“万能”的解决方案,Icacls已经演变得异常复杂。正如我在上一篇关于Icacls基础的文章中提到,即便是设置最简单的权限也需要极其复杂的语句。只是对文件或文件夹配置基本的权限,语句就必须包括你想设置的权限以及继承信息。即便忘了小部分语法,也会出现意想不到的结果。

  这就是为什么上一篇文章着重于一些特例的简单应用,只有这些特殊应用是远远不够的,你会发觉自己需要的是应用广泛的权限管理设置。

  但是,回想一下,此系列是真正在致力创造一个“可审计的自动权限管理解决方案”。这里的关键词是解决方案,因为实际上,你最终想要的是单一的批处理文件。在批处理文件中,是你要为文件夹结构配置的权限,一行命令对应一个文件夹。

  有了这样一种批处理文件,设置树中的每个权限就可以简单完成了……然后运行该批处理文件。同样也适用于固定权限。最后,当然也是最重要的,将批处理文件作为日常(最好是这样)计划任务来运行,可以每天晚上都能自动确保每个权限的正确性。

  听起来太好了,似乎不像真的?这的确是真的,只是需要做一些准备工作。

第1项工作:Excel

  首先要做的是列出文件夹结构。Microsoft Excel就是一款完成此任务的方便工具。进入文件夹结构中“主要”文件夹里的Excel电子表格。当用户从上到下浏览时,这些主要文件夹的权限结构会发生变化。对于每一个文件夹,都要包括你想要设置的权限。记住,在这里设置的每个权限都会被它的所有子文件夹所继承。

  Icacls具有一种可将这些权限可视化的机制。你可以获得每个文件和文件夹的报告并在C:\Public目录下使用下列语句:
icacls C:\Public /T

  就本人而言,我很讨厌这个报告。可以肯定的是,它很全面-实际上它过于全面了。你不用改变C:\Public目录下所有文件夹的权限,绝大多数都可以通过继承上层文件夹权限的简单方式来实现。正是由于这个原因,我不太喜欢用上面的命令来创建Excel电子表格,而是选择自己来创建的方式。

  如果你的结构太复杂而无法独立完成此项任务,考虑下载Microsoft Sysinternals工具AccessEnum。这个免费的工具将有助你在复杂的结构中更好地可视化权限。我用它来帮助我找出与上层文件夹不同的子文件夹。

  上述Excel电子表格的创建过程将需要一些时间,但要认识到,创建Excel电子表格的同时也创建了最后批处理文件的结构。你往电子表格写入的信息-文件夹路径、文件夹权限和权限继承-恰好也是Icacls需要的信息。请让我再重复一次上述声明,因为它确实非常重要,一定要牢记:当用户从上到下浏览时,只有将需要做出权限改变的文件夹输入电子表格才能产生改变。继承的规则将适用于其它的所有文件夹。

第2项工作:Icacls

  一旦做好了第1项工作,接下来要做的就只需要创建两个Icacls命令结构了。第一个命令结构是在一个文件夹上直接配置权限。在结构顶层你会用到此权限。语句如下:
icacls C:\Public\ /grant:r "Domain Users":(OI)(CI)M

  这个语句上是为Domain Users组直接配置C:\Public目录下的文件夹修正权限,替换任何现有的访问控制列表(ACL)。同时,它还对继承C:\Public目录下的所有文件夹的的权限进行配置。

  对于低于顶层的文件夹,要用第二个语句:

icacls C:\Public\Private /inheritance:r /grant:r "Finance Users":(OI)(CI)M

  回想一下,我们正在创建的解决方案开发就是一个批处理文件,并且马上就要运行这个批处理文件了。这意味着,一旦在顶层设置了权限,通过打破该文件夹的继承,下层的文件夹权限都将发生变化,先配置一个新的权限,然后再对下面的文件夹进行继承。这三个步骤确保继承的规则总是按树的顺序遵循的。一个命令行的命令语句就可以完成这三项任务了。

  就是这样了!要创建自动化的解决方案,这两个命令都是必不可少的。需要在同一个文件夹上配置多个用户或组(具有或不具有不同的权限)的情况下,使用第二个语句的变体:

icacls C:\Public\Private /inheritance:r /grant:r "Finance Users":(OI)(CI)M "Accounting Users":(OI)(CI)R "IT Admins":(OI)(CI)F

  一旦创建好了批处理文件,将其复制到计划任务(Scheduled Tasks)服务器上并对其进行配置,以便可以在你选择的计划上运行。因为每次执行都能完成所有的任务,所以一遍又一遍地重新运行该批处理文件只是为了确保文件结构与脚本结构一直匹配。

  对脚本非常重要的一点是:文件夹结构会随着时间的推移而演变。你需要在其它文件夹上添加文件夹或更改权限。当这些请求发生时,请务必更新解决方案。否则,下一次更新解决方案运行时你就会发现,权限已经被其脚本覆盖了。

一个四层文件夹的例子

  下面我们将通过一个例子来看一下如何最简单地可视化批处理文件。在这个例子中,假设你的文件夹结构始于顶层的C:\Public。该文件夹下面有两个子文件夹为C:\Public\Marketing和C:\Public\Finance。域名用户(Domain Users)对这三个文件夹中的信息都应具有读取权限,而市场营销(Marketing)和财务(Finance)组应具有写入权限。

  另外,这个结构中,第四个文件夹存有敏感信息,c:\Public\Finance\Sensitive。只有财务(Finance)组才能拥有这个文件夹的写入权限。其它组都没有此权限。

  通过一个批处理文件创建此结构需要四行语句:

icacls C:\Public\ /grant:r "Domain Users":(OI)(CI)R
icacls C:\Public\Marketing /inheritance:r /grant:r "Domain Users":(OI)(CI)R "Marketing Users":(OI)(CI)M
icacls C:\Public\Finance /inheritance:r /grant:r "Domain Users":(OI)(CI)R "Finance Users":(OI)(CI)M
icacls C:\Public\Finance\Sensitive /inheritance:r /grant:r "Finance Users":(OI)(CI)M "Executive Users":(OI)(CI)M

  这样你就拥有了四行命令,而且文件夹也都准备好执行相应的命令了。

  永远记住,继承可以成为你的朋友。有了像上述这种文件夹结构,就可以确保创建的文件夹与上层文件夹拥有相同的保护力度,这样金融(Finance)和市场营销(Marketing)用户就可以创建自己的子文件夹了。

转载于:https://blog.51cto.com/sleepbull/1209632

Icacls管理工具的使用相关推荐

  1. php ad 管理工具,打开AD管理工具连接到指定DC

    如何指定打开AD管理工具时连接到某台DC?现在因为管理员众多,专门搭建了一台服务器,用于管理员连接并使用管理工具对AD进行管理.但是希望对其操作进行记录,所以开了审核日志.现在希望在这台服务器上打开A ...

  2. 登录linux后台工具,linux后台进程管理工具-supervisor

    安装环境为:centos,如果是ubuntu的话命令可能会不一样. Supervisor 是一个用python编写的进程管理工具,能将一个普通的命令行进程变为后台的deamon,方便管理. 安装sup ...

  3. 如何用 ndctl/ipmctl 管理工具 配置不同访问模式的pmem设备

    文章目录 1 PMEM 底层架构 2 PMEM 逻辑架构 3 ipmctl 创建 不同模式的 region 3.1 安装 3.2 创建AppDirect mode的region 3.3 创建 Memo ...

  4. MongoDB安装和MongoChef可视化管理工具的使用

    MongoDB Windows 用户向导:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/ 注意:最后一步时,左 ...

  5. Ubuntu 和 Redhat / Fedora 服务管理命令对比表(附Fedora16新的服务管理工具systemctl )...

    以 apache/httpd 服务作为例子 任务 Red Hat / Fedora Ubuntu Ubuntu  (with sysv-rc-conf or sysvconfig) 立即启动/停止某服 ...

  6. 为什么不提供离线Blog管理工具呢?

    网络Blog现在是到处开花, 好像全世界的网民都开始写Blog了. 但因为Web的HTTP无状态协议, 网站本身都自己设置有session过期时间. 如果写的Blog文字多,时间一长用户登录状态就没了 ...

  7. 账号管理工具_短视频矩阵管理工具,多个账号同步管理

    很多人都在私信给小编,问这样一个问题那就是做短视频矩阵运营如何提高自己的工作效率?首先我们需要了解矩阵,很多自媒体运营人员为了能够最大化的推广和传播自媒体产品或者赚取收益,都会通过建立自媒体矩阵来达到 ...

  8. Python包管理工具Distribute的安装

    Python包管理工具Distribute的安装 Python的包管理工具常见的有easy_install, setuptools, 还有pip, distribute,那麽这几个工具有什么关系呢,看 ...

  9. 代码片段管理工具_VS代码片段:提高编码效率的最强大工具

    代码片段管理工具 by Sam Williams 通过山姆·威廉姆斯 VS代码片段:提高编码效率的最强大工具 (VS Code snippets: the most powerful tool to ...

  10. 图形文件元数据管理工具exiv2

    图形文件元数据管理工具exiv2 图形文件通常都包含多种元数据,如Exif.IPTC.XMP.这些信息往往是渗透人员收集的目标.为了便于管理这些信息,Kali Linux内置了专用工具exiv2.该工 ...

最新文章

  1. mysql需要备份的数据_Mysql根据需要备份数据
  2. Java Reflection(九):泛型
  3. arthas命令使用示例:watch
  4. 表中字段变化sql语句如何出现
  5. 如何判断输入的是字符还是数字_[Leetgo]判断字符串是否为数字
  6. 一些实用的Chrome插件
  7. python3.8安装pygame_Python3.8安装Pygame教程
  8. chrome浏览器 自带网页截取长图功能
  9. 转:Nutch学习笔记--抓取过程简析
  10. 前端实习面试经验汇总
  11. 返回结果集Result类
  12. java div截图_Html网页DIV截图功能
  13. Flink 结合 布隆过滤器(BloomFilter) 实现去重
  14. 判断设备信息是否为移动端,移动端跳转到移动端网页(手机网站)
  15. PMOS和NMOS开关应用
  16. hss网元 java_在NB-IoT建构和流程中,作为网元实体的MME和HSS进行了哪些功能方面的升级?...
  17. 微信小程序 18 播放记录和video页面初步搭建
  18. [附源码]计算机毕业设计Python+uniapp家政服务系统小程序7na26(程序+lw+远程部署)
  19. 网站推广手段集锦(2008七夕节中国情人节版)
  20. 学生抢课接口(高并发入门)

热门文章

  1. 基础设置---python库--matplotlib
  2. [Pa2013]Iloczyn
  3. 第四次团队作业--选题
  4. Linux 基础——ls 命令
  5. C++中的error C2662,const的this指针问题
  6. socket基本使用
  7. 中文的习题解答中国人看懂, 英文的习题解答外国人能看懂
  8. 解析:百度快照与站点权重的关系!
  9. 四种插入数据的MySQL语句比较
  10. Springmvc 的post请求的json格式参数