2014年5月26日 星期一

修改資料夾/檔案的權限(icacls指令)

資料夾 和 文件檔案的權限 在window 上有時侯會因不知的原因失去了你當初設定的權限,小弟是常常在部署iis上的網站時,常遇到這一個問題(權限遺失)!你當然也可以選擇一個一個檔案加入權限! ^ ^ … 但是這樣子會很累人。有一個dos 的指令可以快速的幫忙完成grant權限的問題就是 icacls 指令。

icacls 的全名是 Change Access Control Lists ,常用的方式有3種如下:

  • 使用法用(1)--設定權限
    • icacls name aclfile [/T] [/C] [/L] [/Q]
      • aclfile 是一個使用者名稱 或 群組名稱 加上一個權限控制符號組成。如canred:F 表canred這一個群組可以完全權限。

  • 使用法用(2)--備儲權限
    • icaclsname /save Save_File_Path  [/T] [/C] [/L] [/Q]
  • 使用法用(3)--還原權限
    • icacls name /restore Save_File_Path  [/T] [/C] [/L] [/Q]

操作方法的參數如下:

  • [/T] 以遞迴的方式執行操作(使用)
  • [/C] 遇到錯誤時仍要繼續執行,當然他也會出錯誤的清單。
  • [/L] 操作在符号链接本身而不是其目标上执行(這一個不常用)。
  • [/Q] 安靜模式。

常用的範例--利用icacls設定權限

格式 icacls name /[grant|deny] groupName|userName:perm 操作符[/T][/C][/L][/Q]

/[grant|deny] : 表示設定權限的方式  , grant 設定權限 ;deny拒絕權限

groupName|userName:是群組名稱 或 使用者名稱

perm :權限操作符號,在一般的操作大家可用簡單的方式即可。

  • 簡單的權限操作符號:
    • F - 完全訪問權限
    • M - 修改權限
    • RX - 讀取和執行的權限
    • R - 只讀的權限
    • W - 可寫的權限
  • 進階的權限操作符號:
    • D - 删除
    • RC - 读取控制
    • WDAC - 写入 DAC
    • WO - 写入所有者
    • S - 同步
    • AS - 访问系统安全性
    • MA - 允许的最大值
    • GR - 一般性读取
    • GW - 一般性写入
    • GE - 一般性执行
    • GA - 全为一般性
    • RD - 读取数据/列出目录
    • WD - 写入数据/添加文件
    • AD - 附加数据/添加子目录
    • REA - 读取扩展属性
    • WEA - 写入扩展属性
    • X - 执行/遍历
    • DC - 删除子项
    • RA - 读取属性
    • WA - 写入属性

範列一:我要設定在c:/test資料夾所有文件的權限,讓canred帳號可以完全控制

  • icacls c:/test /grant canred:F /T
    當然如果以只要設定讀的權限你可以使用canred:R來取代canred:F啦!

範列二:我要拒絕canred帳號使用c:/test的權限

  • icacls c:/test /deny canred /T

範列三:我要備儲c:來的所有檔案權限,存儲到c:/c.perm中

  • icacls c:/ /save c.perm

範列四:我要還原c:的檔案權限

  • icacls c:/ /restore c.perm