在 ClearCase 8.0 版及更早版本中,每一個 VOB 元素有三個保護種類:owner、group 及 other。對於每一個種類,管理者可以設定或清除讀取及執行位元。例如,如果您有一個原始檔,它可讓元素群組的擁有者及成員讀取,但並非網路中的所有使用者都可讀取,則應該設定 owner=讀取、group=讀取、other=無。如果您有一個執行檔供部分程式設計工具使用,則您可能會將這三個權限全部設為讀取及執行。
實際上,對於共用相同保護的每一個元素類別,這個模型要求您使用個別的群組。如果您不允許所有使用者讀取 VOB 中的元素,則應該設定 other=none,並使用 owner 及 group 種類來控制存取權。
元素擁有者在元素保護中的實用性有限,只有群組才是有效的控制項。元素擁有者依預設會設為建立元素的使用者帳戶。如果您有多位開發人員,則元素的擁有者會改變,而這對於存取控制很不方便。部分管理者會配置觸發程式,以在建立元素後將所有權變更為 VOB 擁有者帳戶,但這對於存取控制也不方便,因為大部分使用者很少會採用 VOB 擁有者身分。
這使得元素的群組成為控制每一個元素存取的機制。管理者必須為需要保護的每一個元素類別定義個別的群組。例如,元素類別 1 供元件 A 的開發人員使用。元素類別 2 供元件 B 的開發人員使用。元素類別 3 供所有開發人員使用(共用程式碼)。如果您有 25 個元件 (A-Y) 及一個共用元件 (Z),則需要 26 個群組來控制存取。您應該將元件 A 的所有元素設為可供群組 A 讀取來保護元素,而非任何人都可讀取。同樣地,元件 B-Y 也是如此。元件 A-Y 的每一個開發人員應該為該群組的成員,同時也是群組 Z 的成員。用來建置及整合所有程式碼的帳戶,必須是所有群組 A-Z 的成員。
ClearCase 使用的群組由作業系統所定義(Windows 網域、UNIX NIS 或 LDAP),並於使用者登入執行 ClearCase 的主機時新增至使用者的認證中。可惜的是受限於作業系統及 ClearCase 中使用的網路通訊協定,單一使用者一次只能在 ClearCase 中使用 16 個群組(UNIX 及 Linux)或 32 個群組 (Windows)。在上述範例中,建置/整合帳戶需要使用 26 個群組來完成建置 - 因此需要一連串較複雜的建置步驟及認證變更(為 ClearCase 定義要啟動的群組),或在元素安全的實作上妥協並使用較少的元素類別/群組。兩種選項都不理想。
如果您在 ClearCase 8.0.1 的特性層次 8 VOB 中啟用 ACL 來保護元素,則可以變更存取控制策略,以避免達到每位使用者群組成員資格限制的許多情況。最好將 ACL 視為可讓您將元素放入多個群組中,而不是將使用者放入多個群組中。因為元素有效 ACL 中允許的群組數不會同樣受限於使用者帳戶的群組數下限,所以這個安全機制可實現一些新的保護使用案例並簡化其他使用案例。
在元素上啟用 ACL,可讓您將存取權授與給多個個別使用者、多個群組及少數幾個 "everyone" 種類。這個主題就有效的 ACL 方面來討論元素的 ACL。這個主題及相關主題中,舉例說明如何結合角色對映與原則來產生有效的 ACL。
在上述範例中,有 25 個元件 A-Y,各由不同團隊及建置帳戶 ("builders") 所存取,其他所有人都無法存取。透過 ACL,您可以保護具有共用有效 ACL(授與 groupA 及建置者「變更」許可權)的給定元件中的每一個元件。
各個元件 B-Y 都有類似的有效 ACL。元件 Z(共用元件)也有類似的有效 ACL。在這種配置中,每一個團隊成員的帳戶都在其元件的對應群組中,還有 Z 的群組(與之前相同)。但建置者帳戶只需要在 "builders" 群組中。您不會受限於建置者帳戶同時存在的群組成員資格。
您也不需要在系統建置期間使用複雜的策略,也不需要犧牲元件 A-Y 的安全。您還可以靈活地對元素新增更多群組及唯讀存取權。假設元件 Z 由其專屬團隊維護,但只能由團隊 A-Y 來參照,且您將非 Z 的開發人員放入群組 "alldevelopers" 中,而不是 "groupZ"。您可以配置元件 Z 的元素 ACL,讓 groupZ 具有「變更」許可權,alldevelopers 具有「讀取」許可權,而 builders 具有「變更」許可權。
團隊 A 的開發人員能夠讀取元件 Z 中的元素,但無法修改。(如果沒有 ACL,則需要 checkout 及 mkbranch 觸發程式的前置作業,以檢查修改元素的許可權,如果未獲授權,則拒絕作業。)
您也可以將個別帳戶放入元素 ACL 中。如果只有少數個人需要具有元件的特定存取權,但不值得為此而特地建立新的作業系統群組,則在此情況下,這可能就頗具意義。因此,如果元件 B 可由其團隊及另一位使用者修改 ("extrauser"),則 ACL 會將「變更」許可權授與給 groupB、extrauser 及 builders。
如果有部分元件是由多個團隊維護,則您甚至可以排除部分先前使用的群組。假設元件 E 由元件 C 及 D 的所有團隊成員維護。在 8.0 範例中,您需要群組 E 來包含群組 C 及 D 的所有成員。透過 ACL,您可以設定元件 E 的 ACL 來指定這兩個群組,然後放棄使用群組 E(將它從團隊 C 及 D 的群組帳戶清單中移除)。
前面的說明討論有效的 ACL。在 VOB 中,將角色對映套用至原則就可產生有效的 ACL。VOB 資料庫會計算並快取每一個角色對映的有效 ACL。每一個元素都有一個相關聯的角色對映。若要實作上述範例,每一個元素類別(元件 A - Z)都要有明確的角色對映。您可以將所有這些角色對映鏈結至說明一般保護模型的單一原則。下面是範例原則,上方顯示產生有效 ACL 的角色對映集。(實際上,您可能會想要新增一個管理使用者或群組,以擁有所有元素的「完整」控制。)