用icacls建立自動許可權管理解決方案

2021-09-30 06:52:55 字數 2799 閱讀 4194

作為一種管理工具,icacls是一把雙刃劍。一方面,它的命令列介面有著讓人難以置信的強大配置許可權。有了它,你幾乎可以完成it行業可能遇到的所有許可權管理任務。

有了這樣一種批處理檔案,設定樹中的每個許可權就可以簡單完成了……然後執行該批處理檔案。同樣也適用於固定許可權。最後,當然也是最重要的,將批處理檔案作為日常(最好是這樣)計畫任務來執行,可以每天晚上都能自動確保每個許可權的正確性。

聽起來太好了,似乎不像真的?這的確是真的,只是需要做一些準備工作。

第1項工作:excel

首先要做的是列出資料夾結構。microsoft excel就是一款完成此任務的方便工具。進入資料夾結構中「主要」資料夾裡的excel電子**。當使用者從上到下瀏覽時,這些主要資料夾的許可權結構會發生變化。對於每乙個資料夾,都要包括你想要設定的許可權。記住,在這裡設定的每個許可權都會被它的所有子資料夾所繼承。

icacls具有一種可將這些許可權視覺化的機制。你可以獲得每個檔案和資料夾的報告並在c:/public目錄下使用下列語句:

icacls c:/public /t

就本人而言,我很討厭這個報告。可以肯定的是,它很全面-實際上它過於全面了。你不用改變c:/public目錄下所有資料夾的許可權,絕大多數都可以通過繼承上層資料夾許可權的簡單方式來實現。正是由於這個原因,我不太喜歡用上面的命令來建立excel電子**,而是選擇自己來建立的方式。

上述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)使用者就可以建立自己的子資料夾了。

用gitolite管理使用者許可權 轉

gitolite 是gitosis用perl重寫的,更好用,安全級別應該更高。參考 c i,x x d3 p g e gitolite 4 f w d,g 2 z pro git l u m a3 u 9 u p 我用的是ubuntu做例子,沒有ssh的知識的最好惡補一下,否者不知道會錯在 伺服器 ...

Mongo 使用者建立及許可權管理

mongo版本3.0之前使用的是db.adduser 但3.0之後使用的是db.createuser 內建的角色 資料庫使用者角色 read readwrite 資料庫管理角色 dbadmin dbowner useradmin 集群管理角色 clusteradmin clustermanager ...

mysql許可權管理及賬戶建立

create user 使用者名稱 localhost identified by 密碼 代表任意 create user 使用者名稱 客戶端ip identified by 密碼 create user 使用者名稱 identified by 密碼 create user 使用者名稱 127.0....