phpGACL漢語言手冊(七)

來源:互聯網
上載者:User
phpGACL中文手冊(七)

解決衝突

如果我們把Chewie加入到工程師組中會出現什麼情況呢? 預設:全部拒絕
千年隼號乘客
├─船員 [允許:全部]
│├─Han
│├─Chewie [
拒絕:發動機室]
│└─Lando

├─乘客 [允許:休息室 ]
├─絕地戰士 [允許:駕駛室]
││├─Obi-wan
││└─Luke [允許:武器室]
├─R2D2 [允許:發動機室]
└─C3PO
└─工程師 [允許:發動機室,武器室]
├─Han
├─R2D2
├─Hontook
└─Chewie

這就使Chewie到發動機室的許可權產生了歧義,因為從根沿樹遍曆到Chewie出現兩條路徑。如果飛船的電腦沿其中一條路徑(船員路徑),將得到"拒絕進入發動機室"的結論。而沿另一條路徑(工程師路徑)則會得到"允許進入發動機室"的結論,那麼他到底有沒權進入發動機室呢?

當你添加或編輯分屬多組的ARO對象使之對某個ACO對象的許可權發生歧義時,phpGACL系統將警告你。但它會最近優先以便解決衝突。

如果我們現在問phpGACL"Chewie有權進入發動機室嗎?"那麼返回的結果是最近ACL被修改的內容(這是phpGACL的策略)。在上面這個例子中,返回的結果是"允許",因為被工程師組指定的"允許:發動機室,武器室"許可權的時間要比被船員組指定的"拒絕:發動機室"許可權時間要近。

當有歧義的許可權設定在ACL列表中存在時,該ACL列表被稱為不一致。不一致的ACL列表是非常危險的,如果你允許你的ACL列表保持在這種狀況下的話,你可能會在不經意之下把許可權賦給不恰當的人。當phpGACL警告你ACL列表不一致時,最好還是去解決衝突以儘可能恢複其一致性。

為解決上例的衝突,我們可以作以下任何一步:

  • 刪除在船員組中Chewie的"拒絕:發動機室"指令
  • 添加在工程師組中Chewie的"拒絕:發動機室"指令
  • 在工程師組中刪除Chewie,因為Han無論如何不認為他作工程師是一件值得考慮的事

Han選了第三種方案,將Chewie從工程師組中刪除

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.