zookeeperNote

http://www.cnblogs.com/yjmyzz/p/zookeeper-acl-demo.html

權(quán)限是疊加的

通過getAcl命令可以發(fā)現(xiàn),剛創(chuàng)建的節(jié)點橡淑,默認是 world,anyone的認證方式,具有cdrwa所有權(quán)限

繼續(xù)搗鼓:

先給/test增加了user1:+owfoSBn/am19roBPzR1/MfCblE的只讀(r)權(quán)限控制主儡,

說明:setAcl /test digest:用戶名:密碼:權(quán)限 給節(jié)點設(shè)置ACL訪問權(quán)限時暑诸,密碼必須是加密后的內(nèi)容,這里的+owfoSBn/am19roBPzR1/MfCblE=峰搪,對應(yīng)的原文是12345 (至于這個密文怎么得來的岔冀,后面會講到,這里先不管這個)概耻,設(shè)置完Acl后使套,可以通過

getAcl /節(jié)點路徑 查看Acl設(shè)置

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

addauth digest user1:12345 給"上下文"增加了一個認證用戶,即對應(yīng)剛才setAcl的設(shè)置

然后再 get /test 就能取到數(shù)據(jù)了

最后 delete /test 成功了厌杜!原因是:根節(jié)點/默認是world:anyone:crdwa(即:全世界都能隨便折騰)奉呛,所以也就是說任何人,都能對根節(jié)點/進行讀期奔、寫侧馅、創(chuàng)建子節(jié)點、管理acl呐萌、以及刪除子節(jié)點(再次映證了ACL中的delete權(quán)限應(yīng)該理解為對子節(jié)點的delete權(quán)限)

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

注意加框的部分,先用addauth digest user1:12345 增加一個認證用戶赠堵,然后用 setAcl /test auth:user1:12345:r 設(shè)置權(quán)限小渊,跟剛才的效果一樣,但是密碼這里輸入的是明文茫叭,控制臺模式下手動輸入更方便酬屉。

//注:zkClient.setAcl方法查看源碼可以發(fā)現(xiàn),調(diào)用了readData揍愁、setAcl二個方法

//所以要修改節(jié)點的ACL屬性呐萨,必須同時具備read、admin二種權(quán)限

最后:關(guān)于多級節(jié)點之間的ACL莽囤,并非繼承關(guān)系谬擦,但是也有些一聯(lián)系,這是初次接觸ACL中比較難理解的地方:

從這張圖上可以發(fā)現(xiàn)朽缎,子節(jié)點/a/b的控制權(quán)限范圍(全世界都能做任何事)可以超出父節(jié)點的范圍(僅限:user-a:pwd:a具有read/admin權(quán)限)

繼續(xù)惨远,看上面的這4條紅線標(biāo)注的地方谜悟,從上向下一個個解釋:

紅線1:因為/a只有user-a:pwd-a有ra權(quán)限,即:沒用戶具有c(create)權(quán)限北秽,所以不能創(chuàng)建子節(jié)點

紅線2:因為/a/b為world:anyone:cdrwa權(quán)限葡幸,即無限制,所以在/a/b下創(chuàng)建子節(jié)點b1羡儿,地球人已經(jīng)無法阻止礼患,創(chuàng)建成功

紅線3:給/a/b/b1指定了user-b1:pwd-b1的da權(quán)限(即:delete+admin)

(注:重溫下前面提到的setAcl 二種模式,

一種是setAcl /path digest:username:encrypedpwd:crwda 用這種方式時掠归,encrypedpwd用戶必須是密文缅叠,

另一種方式是先addauth digest:usrname:password 先把授權(quán)信息加入上下文,這里password用的是明文虏冻,然后再setAcl /path auth:username:password:crdwa

所以如果在cli控制臺測試肤粱,強烈建議用第二種方式,否則象上圖中的方式用錯了方式厨相,pwd-b1在zk中被認為是密文领曼,要解密出來幾乎不可能,所以設(shè)置后蛮穿,相當(dāng)于這個節(jié)點就廢了庶骄,因為你不知道密碼,要操作該節(jié)點時践磅,提供不了正確的認證信息)

紅線4:還是剛才的理由单刁,因為/a/b為world:anyone:cdrwa,沒有限制府适,所以刪除其下的子節(jié)點不受阻擋羔飞。

從上圖可以看出,無法get父節(jié)點的內(nèi)容檐春,但是可以get子節(jié)點的內(nèi)容逻淌,再次說明父、子節(jié)點的權(quán)限沒直接關(guān)系疟暖,但是做delete時卡儒,上面的例子卻遇到了麻煩:

想刪除/a/b時,由于父節(jié)點/a的ACL列表里俐巴,只有ra權(quán)限朋贬,沒有d權(quán)限,所以無法刪除子節(jié)點窜骄。想刪除/a時,發(fā)現(xiàn)下面還有子節(jié)點b摆屯,節(jié)點非空無法刪除邻遏,所以這個示例就無解了(因為根據(jù)前面的操作糠亩,密碼也還原不出來,也就無法修改ACL屬性)准验,而根節(jié)點/也無法刪除赎线,解決辦法,只能到data目錄里清空所有數(shù)據(jù)糊饱,再重啟zk垂寥,但是這樣就相當(dāng)于所有數(shù)據(jù)全扔了,所以在設(shè)計ACL時另锋,對于delete權(quán)限滞项,要謹慎規(guī)劃,在測試zk集群上做好測試夭坪,再轉(zhuǎn)到生產(chǎn)環(huán)境操作文判。

最后給一些權(quán)限組合的測試結(jié)果:

要修改某個節(jié)點的ACL屬性,必須具有read室梅、admin二種權(quán)限

要刪除某個節(jié)點下的子節(jié)點戏仓,必須具有對父節(jié)點的read權(quán)限,以及父節(jié)點的delete權(quán)限

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亡鼠,一起剝皮案震驚了整個濱河市赏殃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌间涵,老刑警劉巖仁热,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浑厚,居然都是意外死亡股耽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門钳幅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來物蝙,“玉大人,你說我怎么就攤上這事敢艰∥芷颍” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵钠导,是天一觀的道長震嫉。 經(jīng)常有香客問我,道長牡属,這世上最難降的妖魔是什么票堵? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮逮栅,結(jié)果婚禮上悴势,老公的妹妹穿的比我還像新娘窗宇。我一直安慰自己,他們只是感情好特纤,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布军俊。 她就那樣靜靜地躺著,像睡著了一般捧存。 火紅的嫁衣襯著肌膚如雪粪躬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天昔穴,我揣著相機與錄音镰官,去河邊找鬼。 笑死傻咖,一個胖子當(dāng)著我的面吹牛朋魔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卿操,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼警检,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了害淤?” 一聲冷哼從身側(cè)響起扇雕,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎窥摄,沒想到半個月后镶奉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡崭放,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年哨苛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片币砂。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡建峭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出决摧,到底是詐尸還是另有隱情亿蒸,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布掌桩,位于F島的核電站边锁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏波岛。R本人自食惡果不足惜茅坛,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望则拷。 院中可真熱鬧贡蓖,春花似錦祟剔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宣旱。三九已至仅父,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間浑吟,已是汗流浹背笙纤。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留组力,地道東北人省容。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像燎字,于是被迫代替她去往敵國和親腥椒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容