ACL是Access Control Lists 的縮寫,可理解為"存取控制表",ACL是windows2000&NT系統中,活動目錄對象安全描述符的一部分,每個活動目錄對象的安全描述符都由4部分構成:對象的創建者、對象所屬的組、自由存取控制和系統存取控制。其中自由存取控制實際是歸在ACL中的,ACL主要是決定活動目錄對象的許可權限.而系統存取控制則主要是審核活動目錄對象的許可權限.通俗說,好比社會上的許可證管理:有負責發放許可證的部門,還有負責審核許可證(權限)的部門.Acldiag就是在些機制出了問題之後,如何進行診斷和維修的工具.
這仍是一個命令行的工具,功能就是診斷活動目錄對象的許可權問題.它從"存取控制表"中讀取安全屬性信息,並以易於理解的格式寫入一個文本文件中,這些所謂的安全屬性信息有:詳細的權限描述、使用者和組等等,這個文本文件也可以作為上傳的報告.
使用Acldiag可以完成的任務有:
1.在默認規劃中,比較ACL目錄服務對象定義的許可權限.
2.進行檢查或維護,使用模板,執行標准授權.
3.對某個指定的使用者或組,或是對所有使用者和所有的組,得到它(或它們)有效的許可權限,並在ACL中顯示出來.
使用AclDiag工具僅僅能顯示出對象的許可權和用戶權限.卻不能顯示其它諸如組策略之類的相應的信息,這主要是因為組策略是虛擬對象,而對虛擬對象的名字,這個工具不能使用它們.
二、AclDiag的語法:
acldiag "ObjectDN" [/chkdeleg] [/fixdeleg] [/geteffective:{User | Group}] [/schema] [/skip] [/tdo]
參數及說明:
ObjectDN
所指定活動目錄對象的正確的名字,在命令行中使用這個參數時,活動目錄對象名字必須使用引號.
/chkdeleg
檢查對象的委托及授權的安全性能.
/fixdeleg
用控制向導的委托,檢測或維護所有將要使用對象的授權.
/geteffective:{user | group}
以可讀取的格式,打印輸出指定用戶或指定(工作)組關於許可權限方面的信息.
/schema
檢查包括默認規劃內的對象是否安全.
/skip
不顯示(跳過)安全描述符..
/tdo
當需要將相關的資料進行保存時,以系統規定的表格格式或其它"可讀取"的格式將信息資料寫進文件中去.在windows2000或windowsNT中,為了統一標准和便於處理,微軟公司專門規定有一套各種信息資料的填寫樣式,即所謂"電子表格"(不是我們通常說的Exce).
像驗證其它工具一樣,我在命令行窗口中實際執行了一下acldiag/?,得到程序提示的幫助信息,兩下對比發現,幫助文檔文檔中介紹的內容和提示信息內容還是一致的.至於每個項目的結果,限於時間和條件,沒有進行更為深入細致的研究.倒是幫助文檔中介紹了一個實際診斷的例子:這個例子是診斷microsoft.com 域中,顯示所有默認規劃內的訪問權限,其命令和參數如下:
C:>acldiag "DC=microsoft,DC=com" /schema
三、診斷輸出信息釋義
要確定系統的問題,不但要進行診斷,還要能看懂診斷工具所輸出的信息含義.對這個工具來說,診斷信息中關鍵的部分如下:
仍以上面介紹的診斷為范本.先執行:
acldiag "DC=microsoft,DC=com"
執行之後,得到的屏幕輸出不僅是英文,而且很長,所以不便附在這裡.我仔細閱讀後,覺得主要項目有以下幾個方面:
1.列出是對哪個系統進行的診斷.相當於醫生在病歷單上所填寫的患者姓名.
2.對象的描述:擁有者: {用戶 |組}
3.許可權限:分四種:拒絕、允許、用戶、組(團體),只能是其中之一
4.許可權限的繼承關系:對象的許可權限允許從其父輩繼承過來,或者說當前對象的權限也允許其子對象繼承,所繼承的權限也在上述四種之內.
5.權限審核:這也就是我們上面提到的部分了.許可權限的審核的結果只有兩種:成功和失敗.對許可權限的審核也包括所繼承部分.
6.默認規劃:如果仍以上面的診斷為范本,則默認規劃的診斷命令是: acldiag "DC=microsoft,DC=com" /schema
結果分為三種:現有部分、不存在、局部.
7.授權模板:命令形式是:acldiag "DC=microsoft,DC=com" /chkdeleg
其輸出如下:
狀態: {OK | NOT PRESENT/MISCONFIGURED}
對象是否使用: {YES | NO}
是否繼承 : {YES | NO}
豎線兩側的狀態只能選其中之一.
8.有效權限:命令行形式是:
acldiag "DC=microsoft,DC=com" /geteffective:{User | Group}
輸出結果如下:
{User | Group} 1:
Can Read {All | PropertyList} properties. (via Group membership)
Can Write {All | PropertyList} properties. (via Group membership)
Can Create {All | ObjectList} objects. (via Group membership)
Can Delete {All | ObjectList} objects. (via Group membership)
Can Delete this object. (via Group membership)
Can Delete entire subtree. (via Group membership)
Can List subobjects. (via Group membership)
Can Read permissions. (via Group membership)
Can Modify permissions. (via Group membership)
Can Take/Change ownership. (via Group membership)
這些是有效權限信息,大括號中是可選項,也是豎線兩側的狀態只能選其中之一.權限的屬性有:可讀取、可寫、可建立、可刪除、可刪除某指定對象、可刪除整個對象、可刪除子對象、、可列出子對象、可讀取許可權限、可修改許可權限、可取得/改變所有權.後面括號中的信息是指:通過組成員資格(審核).