1. 程式人生 > >zookeeper acl許可權

zookeeper acl許可權

總體來說,ZK的節點有5種操作許可權

CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、刪、改、查、管理許可權,這5種許可權簡寫為crwda(即:每個單詞的首字元縮寫)

注:這5種許可權中,delete是指對子節點的刪除許可權,其它4種許可權指對自身節點的操作許可權

身份的認證有4種方式

world:預設方式,相當於全世界都能訪問
auth:代表已經認證通過的使用者(cli中可以通過addauth digest user:pwd 來添加當前上下文中的授權使用者)
digest:即使用者名稱:密碼這種方式認證,這也是業務系統中最常用的
ip:使用Ip地址認證

Cli命令列下可以這樣測試:

通過getAcl命令可以發現,剛建立的節點,預設是 world,anyone的認證方式,具有cdrwa所有許可權

繼續搗鼓:

先給/test增加了user1:+owfoSBn/am19roBPzR1/MfCblE的只讀(r)許可權控制,

說明:setAcl /test digest:使用者名稱:密碼:許可權 給節點設定ACL訪問許可權時,密碼必須是加密後的內容,這裡的+owfoSBn/am19roBPzR1/MfCblE=,對應的原文是12345 (至於這個密文怎麼得來的,後面會講到,這裡先不管這個),設定完Acl後,可以通過

getAcl /節點路徑

 檢視Acl設定

然後get /test時,提示認證無效,說明訪問控制起作用了,接下來:

addauth digest user1:12345 給"上下文"增加了一個認證使用者,即對應剛才setAcl的設定

然後再 get /test 就能取到資料了

最後 delete /test 成功了!原因是:根節點/預設是world:anyone:crdwa(即:全世界都能隨便折騰),所以也就是說任何人,都能對根節點/進行讀、寫、建立子節點、管理acl、以及刪除子節點(再次映證了ACL中的delete許可權應該理解為對子節點的delete許可權)

剛才也提到了,setAcl /path digest這種方式,必須輸入密碼加密後的值,這在cli控制檯上很不方便,所以下面這種方式更常用:

注意加框的部分,先用addauth digest user1:12345 增加一個認證使用者,然後用 setAcl /test auth:user1:12345:r 設定許可權,跟剛才的效果一樣,但是密碼這裡輸入的是明文,控制檯模式下手動輸入更方便。

好了,揭開加密規則:

1 2 3 4 5 6 7 static public String generateDigest(String idPassword) throws NoSuchAlgorithmException { String parts[] = idPassword.split(":"2); byte digest[] = MessageDigest.getInstance("SHA1").digest( idPassword.getBytes()); return parts[0] + ":" + base64Encode(digest); }

就是SHA1加密,然後base64編碼  

程式碼使用:

zookeeper有一個很好用的客戶端開源專案zkclient,官網地址為:http://github.com/zkclient ,其最新片0.7-dev已經支援ACL了(舊0.1版無此功能,所以推薦使用最新版),使用方法:

git clone https://github.com/sgroschupf/zkclient (把程式碼拉到本地)

修改

build.gradle 找到92行

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 uploadArchives { repositories.mavenDeployer { //repository(url: "file:///tmp/mavenRepo") repository(url: 

相關推薦

ZooKeeper ACL許可權控制

ZK 類似檔案系統,Client 可以在上面建立節點、更新節點、刪除節點等如何做到許可權的控制?查閱文件,zk的ack(Access Control List)能夠保證許可權,但是調研完後發現它不是很好用。 ACL 許可權控制,使用:schema:id:permission

zookeeper acl許可權

總體來說,ZK的節點有5種操作許可權: CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、刪、改、查、管理許可權,這5種許可權簡寫為crwda(即:每個單詞的首字元縮寫) 注:這5種許可權中,delete是指對子節點的刪除許可權,其它4種許可權指對自身節點的操作許可權

ZooKeeper設定ACL許可權控制

ZooKeeper設定ACL許可權控制 ZK的節點有5種操作許可權:CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、刪、改、查、管理許可權,這5種許可權簡寫為crwda(即:每個單詞的首字元縮寫)注:這5種許可權中,delete是指對子節點的刪除許可權,其它4種

Zookeeper節點ACL許可權設定(四)

概述 ACL全稱為Access Control List(訪問控制列表),用於控制資源的訪問許可權。ZooKeeper使用ACL來控制對其znode(ZooKeeper資料樹的資料節點)的訪問。ACL實現與UNIX檔案訪問許可權非常相似:它使用許可權位來允許

zookeeper相關create以及ACL許可權

客戶端 初始化zookeeper 建立zookeeper節點 api: create(final String path, byte data[], List<ACL> acl, CreateMode create

zookeeper java 客戶端ACL許可權 使用

zookeeper 提供許可權認證作為zookeeper客戶端訪問的限制,主要有兩種方式,1、IP模式   2、 digest許可權模式 可以通過建立節點時定義許可權內容。以下是java的實現 package com.aicong.test.helloZookeeper;

Zookeeper(四)Acl許可權控制

傳統的檔案系統中,ACL分為兩個維度,一個是屬組,一個是許可權,子目錄/檔案預設繼承父目錄的ACL。而在Zookeeper中,node的ACL是沒 有繼承關係的,是獨立控制的。Zookeeper的ACL,可以從三個維度來理解:一是scheme; 二是user; 三是perm

Zookeeper的API操作以及ACL許可權

Zookeeper的ACL許可權 1. ACL的簡介 首先說明一下為什麼需要ACL 簡單來說 :在通常情況下,zookeeper允許未經授權的訪問,因此在安全漏洞掃描中暴漏未授權訪問漏洞。這在一些監控很嚴的系統中是不被允許的,所以需要A

使用Java API、Curator操作zookeeperacl許可權

zk原生api操作acl許可權 預設匿名許可權 ZooKeeper提供瞭如下幾種驗證模式(scheme): digest:Client端由使用者名稱和密碼驗證,譬如user:password,digest的密碼生成方式是Sha1摘要的base64形式 auth:不使用任何id

ZooKeeper系列(五)—— ACL 許可權控制

一、前言 為了避免儲存在 Zookeeper 上的資料被其他程式或者人為誤修改,Zookeeper 提供了 ACL(Access Control Lists) 進行許可權控制。只有擁有對應許可權的使用者才可以對節點進行增刪改查等操作。下文分別介紹使用原生的 Shell 命令和 Apache Curator 客

ACL許可權設定

許可權字串縮寫crdwa: create:建立子節點 read:獲取節點/子節點 write:設定節點資料 delete:刪除節點 admin:設定許可權 命令列配置許可權, world:anyone:cdrwa為預設的許可權(許可權更改:cdrwa --> crwa):

第十三章 Linux 賬號管理與 ACL 許可權設定

Linux 的賬號與群組 Linux 是如何辨別每一個使用者的呢? 使用者識別碼 UID 和 GID 每一個檔案都具有【擁有人與擁有群組】的屬性,每個登入的使用者都至少會擁有兩個 ID ,一個是使用者 ID (User ID) 和一個群組 ID (Group ID)。 使用者

linux基礎篇(二):基於Redhat7系統的特殊許可權acl許可權列表

新建目錄和檔案的預設許可權 新建目錄和檔案的預設許可權是由系統中umask值來決定的。 新建FILE許可權:666-umask (對位相減)    由數字法賦許可權的過程中,我們能夠發現,凡是奇數許可權,總是包含執行許可權的。而一個檔案如果預設就包含執行許可權其實是非常危險的。因此如果所

Linux許可權管理 ACL許可權

ACL許可權簡介 在普通許可權中,使用者對檔案只有三種身份ugo,分別為屬主(u)、屬組(g)和其他人(o);每種使用者身份擁有讀(read)、寫(write)和執行(execute)三種許可權。但是在實際工作中,系統上chmod管理許可權,有時不能滿足需求,需要給個別使用者(非所有者,非所屬組)賦予許可權

Linux學習之許可權管理-ACL許可權-簡介與開啟

許可權簡介與開啟: 基本許可權:使用者對檔案擁有的所有者、所屬組、其他人三類身份;                     每個身份都有都有讀、寫、執行三種檔案讀寫許可權  

zookeeper許可權控制

1、許可權模式 1、ip形式 : 192.168.1.1 2、Digest(使用者名稱密碼形式) : username:password 3、world : 開放式的許可權控制模式,資料節點的訪問許可權對所有使用者開放。 world:anyone 4、super :超級使用者,可以對

Linux特殊許可權設定及ACL許可權

SUID、SGID和sticky-bit 檔案特殊許可權 特殊許可權 說明 SUID 當一個設定了SUID的檔案被執行時,該檔案將以其所有者的身份執行,而不是執行者的許可權。

Linux 賬號管理與 ACL 許可權設定

Linux 的賬號與群組 每個登入Linux的使用者至少都會取得兩個 ID ,一個是使用者 ID (User ID ,簡稱 UID),一個是群組 ID (Group ID ,簡稱 GID)。 使用者賬號 Linux 系統上面的使用者登入主機以取得 shell 的

Linux ACL 許可權之進階篇

筆者在《Linux ACL 許可權》一文中介紹了 Linux ACL 許可權的基本用法,本文筆者將嘗試探究 ACL 中的基本概念和實現原理,希望能夠通過進一步的加深對 Linux 許可權系統的理解。說明:本文的演示環境為 ubuntu 16.04。 ACL 中的基本概念 ACL 的型別 access ACL

基本許可權和歸屬特殊許可權ACL許可權

許可權和歸屬 訪問許可權 r 讀取:允許檢視內容-read w 寫入:允許修改內容-write x  可執行:允許執行和切換execute 歸屬關係 u  所有者:擁有此檔案/目錄的使用者user g  所屬組:擁有此檔案/目錄的組 group o  其他使用