Zookeeper客戶端命令行學習(二)

ACL權限控制

  • 針對節點可以設置相關讀寫等權限,目的爲了保障數據安全性
  • 權限permissions可以指定不同的權限範圍以及角色

ACL命令行

  • getAcl:獲取某個節點的acl權限信息
  • setAcl:設置某個節點的acl權限信息
  • addauth:輸入認證授權信息,註冊時輸入明文密碼(登陸)但是在zk的系統裏,密碼是以加密的形式存在的
  • zk的acl通過[scheme?permissions]來構成權限列表
    scheme:代表採用的某種權限機制
    id:代表允許訪問的用戶
    permissions:權限組合字符串
  • scheme
    1.world:它下面只有一個id, 叫anyone, world:anyone代表任何人,zookeeper中對所有人有權限的結點就是屬於world:anyone的 world:anyone:[permissions]
    2.auth:代表認證登陸,需要註冊用戶有權限就可以,形式爲auth:user:password:[permissions]
    3.digest:需要對密碼加密才能訪問,組合形式爲digest:username:BASE64(SHA1(password)):[permissions]
    4.ip:當設置爲ip指定的ip地址,此時限制ip進行訪問,比如ip:192.168.1.1:[permissions]
    5.super:代表超級管理員,擁有所有的權限
  • premissions

world

1.權限字符串縮寫crdwa
CREATE:創建子節點;
DELETE:刪除子節點;
READ:獲取節點/子節點;
WRITE:設置節點數據;
ADMIN:設置權限
在這裏插入圖片描述
設置權限
setAcl /bushro world:anyone:crwa
在這裏插入圖片描述
再刪除就提示沒有權限了
在這裏插入圖片描述

auth授權方式

addauth digest bushro:bushro添加對應的授權認證
setAcl /bushro auth:bushro:bushro:cdrwa設置權限
在這裏插入圖片描述

digest授權方式

密碼是加密過後的
在這裏插入圖片描述
認證
addauth digest bushro:bushro

ip

在這裏插入圖片描述

super

增加超級管理員,編輯zkServer.sh
添加如下,後面的是賬號和加密的密碼,密碼是BASE64(SHA1(password))加密過後的

-Dzookeeper.DigestAuthenticationProvider.superDigest=bushro:TtxWlRxmb4NPYUXbhYgJZWoOxiY=

重新啓動zookeeper./zkServer.sh restart

ACL常用使用場景

  • 開發/測試環境分離,開發者無權限操作測試庫的節點,只能看
  • 生成環境上控制指定ip的服務可以訪問相關節點,防止混亂

zk四字命令Four Letter Words

  • zk可以通過它自身提供的簡寫命令來和服務器進行交互
  • 需要使用到nc命令,安裝:yum install nc
  • echo [commond] | nc [ip] [port]
  • [stat] 查看zk的狀態信息,以及是否mode(集羣還是單例模式)
    在這裏插入圖片描述
  • [ruok]查看當前zkserver是否啓動,返回imok
  • [dump] 列出未經處理的會話和臨時節點
    在這裏插入圖片描述
  • [conf] 查看服務器配置
    在這裏插入圖片描述
  • [cons] 展示連接到服務器的客戶端信息
  • [envi] 環境變量
  • [mntr] 監控zk健康信息
  • [wchs] 展示watch的信息
  • [wchc] 與[wchp]session與watch及path與watch信息
    編輯conf下的配置文件,最後一行加上
    4lw.commands.whitelist=*
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章