HDFS多用户管理ACL机制other权限访问控制的理解
非Master服務器用戶也能通過客戶端遠程訪問Hadoop
現象:在Hadoop集群多用戶管理實踐中發現,客戶端用非Master服務器配置的用戶連接Master,也通用具備對指定目錄的操作權限。比如Master服務器提供的用戶的是A,理論上客戶端應用在A用戶下部署安裝hadoop后遠程連接,但現在客戶端用B用戶安裝Hadoop客戶端并連接Master服務器,且可在指定目錄下rwx,只是在涉及datanode任務時會提示權限不足。
原理:默認ACL必須包含所有最小要求的ACL項,包括文件擁有者項,文件所屬的組項和其它用戶項。如果用戶沒有在默認ACL中配置上述三項中的任何一個,那么該項將通過從訪問ACL拷貝對應的權限來自動插入,或者如果沒有訪問ACL則自動插入權限位。默認ACL也必須擁有mask,如果mask沒有被指定,通過計算所有被mask過濾項的權限與(&運算)自動插入mask。當一個文件使用ACL時,權限檢查的算法則變為:
1)當用戶名為文件的屬主時,會檢查屬主的權限。
2)否則如果用戶名匹配命名用戶條目中的一個時,權限會被檢查并通過mask權限來進行過濾。
3)否則如果文件的組匹配到當前用戶的組列表中的一個時,而這些權限經過mask過濾后仍然會授權,會被允許使用。
4)否則如果其中一個命名組條目匹配到組列表中的一個成員,而這些權限經過mask過濾后仍然會授權,會被允許使用。
5)否則如果文件組和任何命名組條目匹配到組列表中的一個成員時,但是訪問不會被任何一個權限所授權時,訪問會被拒絕。
6)除此之外,other權限位會被檢查。
最佳實踐時基于傳統的權限位設置大部分權限要求,然后定義少量帶有特殊規則的ACL增加權限位。相比較只是用權限位的文件,使用ACL的文件會在NameNode中產生額外的內存消耗。
分析:ACL機制分user、group、other三組權限,對于非master服務器創建的用戶連接過來的客戶端的用戶,放在other組管理,如果other組權限ACL設置為rwx權限則具備操作權限。
1)unnameduser (file owner)文件的擁有者
2)unnamedgroup (file group)文件的所屬組
3)nameduser除了文件的擁有者和擁有組之外,的其它用戶
4)namedgroup除了文件的擁有者和擁有組之外,的其它用戶
mask 權限掩碼,用于過濾named user和named group的權限
HDFS通過ACL控制文件目錄權限,在服務器上新增的用戶目錄/user/A,然后把該配置同hadoop包給到客戶端配置,這樣通過客戶端連接上來的就默認文件目錄/user/A屬于A用戶,如果客戶端是通過B部署客戶端并遠程連接,則目錄/user/A用other組權限來授予B用戶。顯然A用戶是文件擁有者,而B用戶是其他用戶。
這里面需要關注集群多用戶管理上的兩個細節:
1)Master新建用戶所配置的目錄體現在Hadoop客戶端那個配置文件下,這樣通過客戶端連接上來的不管是哪個用戶,都是檢查該目錄的權限。
2)要重點掌握ACL機制,并理解mask作用。
實際上,對于Hadoop多用戶集群管理,如果只是通過hdfs集成ACL機制來支撐,那也只是實現了文件目錄的權限控制,對于資源調度和作業管理,如存儲空間和計算能力,還需依賴其他機制。總結
以上是生活随笔為你收集整理的HDFS多用户管理ACL机制other权限访问控制的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于Hadoop多用户管理支持客户端远程
- 下一篇: Hive用户权限管理理解