摘要:Windows小技巧:icacls檢查/變更目錄或檔案權限
今天在網上看到一個不錯的小指令,因為現在接觸的大多是Linux部分,
所以對Windows之後的新玩意倒是沒啥研究了,
趁現在先記錄下來,也許以後會用的到。
以下為簡單的範例
icacls directory /t:檢視目錄底下子目錄及檔案的權限
其餘詳細部分就直接開啟command查看一下。
或者再往下看,我直接列出的部份。
以下為完整描述及範例:
1. ICACLS name /save aclfile [/T] [/C] [/L] [/Q]:將符合名稱之檔案與資料夾的DACL 儲存至aclfile,以供稍後與
/restore 搭配使用。請注意,這不會儲存SACL、擁有者或完整性標籤。
2. ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile [/C] [/L] [/Q]:將儲存的DACL 套用到目錄
中的檔案。
3. ICACLS name /setowner user [/T] [/C] [/L] [/Q]:變更所有相符名稱的擁有者。此選項不會強制變更擁有權;
如果要強制變更擁有權,請使用takeown.exe 公用程式。
4. ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]:尋找內含明確提及Sid 之ACL 的所有相符名稱。
5. ICACLS name /verify [/T] [/C] [/L] [/Q]:尋找含有未使用標準格式的ACL 或長度與ACE 計數不一致的所有檔案。
6. ICACLS name /reset [/T] [/C] [/L] [/Q]:針對所有符合的檔案,使用預設繼承的ACL 取代ACL。
7. ICACLS name [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
[/setintegritylevel Level:policy[...]]
a. /grant[:r] Sid:perm:授與指定的使用者存取權限。若加上:r,該權限便會取代先前授與的明確權限。若不加上
:r,則會將權限加入先前授與的任何明確權限。
b. /deny Sid:perm:明確拒絕指定的使用者存取權限。對指定的權限新增明確拒絕的ACE,並將任何明確授與中
的相同權限移除。
c. /remove[:[g|d]] Sid:會移除ACL 中Sid 的所有符合項目。若加上:g,會將授與該Sid 之權限的所有符合項目移
除。若加上:d,則會將拒絕該Sid 之權限的所有符合項目移除。
d. /setintegritylevel [(CI)(OI)]Level:明確地新增完整性ACE 至所有符合的檔案。
可指定下列層級的其中一個:L[ow]、M[edium]、H[igh]
完整性ACE 的繼承選項具有高於層級的優先性,且只會套用到目錄。
e. /inheritance:e(啟用繼承)|d(停用繼承並複製ACE)|r(移除所有繼承的ACE)
注意:
1. Sid 的格式可以是數字或好記的名稱。如果指定使用數字格式,請在SID 的開頭加上*。
2. /T:指示要在name 指定之目錄下的所有相符檔案/目錄上執行此操作。
3. /C:指示不論發生任何檔案錯誤,都繼續執行此操作。仍會顯示錯誤訊息。
4. /L:指示此操作會在符號連結(而非其目標) 上執行。
5. /Q:指示icacls 應隱藏成功訊息。
6. ICACLS 保留ACE 項目的標準順序:明確拒絕、明確授與、繼承拒絕、繼承授與
7. perm 是權限遮罩,可使用下列其中一種格式來指定:
a. 一連串簡單權限:
N - 不允許存取
F - 完整存取權
M - 修改存取權
RX - 讀取和執行存取權
R - 唯讀存取權
W - 唯寫存取權
D - 刪除存取權
b. 在括號中以逗號分隔特定權限的清單:
DE - 刪除
RC - 讀取控制
WDAC - 寫入DAC
WO - 寫入擁有者
S - 同步
AS - 存取系統安全性
MA - 允許的最大值
GR - 一般讀取
GW - 一般寫入
GE - 一般執行
GA - 一般所有權限
RD - 讀取資料/列出目錄
WD - 寫入資料/新增檔案
AD - 附加資料/新增子目錄
REA - 讀取擴充屬性
WEA - 寫入擴充屬性
X - 執行/周遊
DC - 刪除子系
RA - 讀取屬性
WA - 寫入屬性
c. 繼承權限的優先順序高於上述任一種格式,且僅套用到目錄:
(OI) - 物件繼承
(CI) - 容器繼承
(IO) - 僅繼承
(NP) - 不傳播繼承
(I) - 從父容器繼承的權限
範例:
1. icacls c:\windows\* /save AclFile /T:會將c:\windows 及其子目錄下所有檔案的ACL 儲存到AclFile。
2. icacls c:\windows\ /restore AclFile:會還原AclFile 之中每個檔案的Acl,而AclFile 位於c:\windows及其子目錄
下。
3. icacls file /grant Administrator:(D,WDAC):會將檔案的刪除和寫入DAC 權限授與使用者Administrator。
4. icacls file /grant *S-1-1-0:(D,WDAC):會將檔案的刪除和寫入DAC 權限授與sid S-1-1-0 所定義的使用者。
參考來源:
使用icacls指令與accesshk工具檢查/設定檔案權限