天天看點

Linux ACLACL 是什麼ACL有什麼用檢查是否支援ACL如何設定ACL執行個體

ACL的全稱是 Access Control List (通路控制清單) ,一個針對檔案/目錄的通路控制清單。它在UGO權限管理的基礎上為檔案系統提供一個額外的、更靈活的權限管理機制。它被設計為UNIX檔案權限管理的一個補充。ACL允許你給任何的使用者或使用者組設定任何檔案/目錄的通路權限。

既然是作為UGO權限管理的補充,ACL自然要有UGO辦不到或者很難辦到的本事,例如:

可以針對使用者來設定權限

可以針對使用者組來設定權限

子檔案/目錄繼承父目錄的權限

ACL需要Linux核心和檔案系統的配合才能工作,目前我們能見到的大多數Linux發行版本預設都是支援的。但最好還是能夠先檢查一下:

我們能夠看到預設情況下(Default mount options:)已經加入 acl 支援了。

我們可以使用setfacl和getfacl指令來設定或觀察檔案/目錄的acl權限。

參數不多,直接列出來了:

Linux ACLACL 是什麼ACL有什麼用檢查是否支援ACL如何設定ACL執行個體
Linux ACLACL 是什麼ACL有什麼用檢查是否支援ACL如何設定ACL執行個體

先建立一個測試檔案test,然後檢視其預設的權限:

Linux ACLACL 是什麼ACL有什麼用檢查是否支援ACL如何設定ACL執行個體
Linux ACLACL 是什麼ACL有什麼用檢查是否支援ACL如何設定ACL執行個體

 給apache使用者設定讀寫執行test檔案的權限:

檢視test檔案屬性的變化:

權限部分多個了 “+”, 并且與原來(644)也不一樣了。

檢視ACL權限的變化:

和設定前相比多了user:apache:rwx和 mask::rwx,此時使用者apache已經擁有了讀寫執行test檔案的權限。

和針對使用者的設定幾乎一樣,隻是把小寫的u換成小寫的g就行了。

這是一個很棒的例子,它能讓我們建立的子檔案或者子檔案夾繼承父檔案夾的權限設定!

注意參數 d 在這裡起到了決定性的作用。

檢視下屬性的變化:

Linux ACLACL 是什麼ACL有什麼用檢查是否支援ACL如何設定ACL執行個體
Linux ACLACL 是什麼ACL有什麼用檢查是否支援ACL如何設定ACL執行個體

多了些 default開頭的項,在mydir下建立一個新檔案試試:

Linux ACLACL 是什麼ACL有什麼用檢查是否支援ACL如何設定ACL執行個體
Linux ACLACL 是什麼ACL有什麼用檢查是否支援ACL如何設定ACL執行個體

OK, 看上去還不賴,預設情況下apache使用者是可以對這個檔案進行讀寫執行操作的。

這裡隻是簡介的介紹了ACL的概念和一些典型的用法,更多的使用方式請參考幫助文檔。

本文轉自sparkdev部落格園部落格,原文連結:http://www.cnblogs.com/sparkdev/p/5536868.html,如需轉載請自行聯系原作者

繼續閱讀