ldap是輕量目錄訪問協議,英文全稱是lightweight directory access protocol,一般都簡稱為ldap。ldap以樹狀結構儲存資料,非常適合儲存大量資料,而且資料不經常修改,但是需要快速查詢的場景,比如業務系統的鑑權操作。
ldap支援tcp/ip協議,分為server 端和client端,server端用來儲存資料,client用來增刪查改資料,監聽埠為389,加密埠為636。其資料儲存結構完全體現了樹狀的特點:
ldap樹形結構
dn:表示ldap內條目具體位置,比如 dn: cn=admin,ou=users,dc=baifendian,dc=com;
dc:表示條目所屬的區域;
ou:表示組織單元;
cn/uid:表示一條記錄具體的名字。
caas生產環境中ldap是以容器的形式執行,所以安裝ldap前必須具備docker環境,安裝命令如下:
docker run --name ldap1 --add-host ldap2.general.com:} \
--restart=always \
--hostname ldap1.general.com \
--env ldap_base_dn="dc=general,dc=com" \
--env ldap_replication_hosts="#python2bash:['ldap:','ldap:']" \
--env ldap_replication=true \
--env ldap_tls_verify_client="never" \
--env ldap_domain="general.com" \
--env ldap_admin_password="generalcom" \
-v /caas_data/ldap_data/ldap_config:/etc/ldap/slapd.d \
-v /caas_data/ldap_data/ldap_data:/var/lib/ldap \
-v /etc/localtime:/etc/localtime:ro \
-p 3389:389 \
--detach osixia/openldap:1.2.1 \
--loglevel debug \
--copy-service
指令碼解釋:
--add-host ldap2.general.com::往容器內新增hosts,這樣對方ldap才能同步,也可以直接將ldap1.general.com和ldap2.general.com在集群內做網域名稱解析。
ldap_replication_hosts="#python2bash: 這一部分是兩個ldap之間互相同步的關鍵。
-v:掛載本地卷防止ldap容器掛了之後資料出現丟失的現象。
-p 3389:389 :3389表示ldap容器的監聽埠,389是haproxy負載ldap的監聽埠。
ldap分為server端和client端,如果要進行增刪查改需要安裝openldap,這個包提供幾個比較常見的命令,ldapaddd(增加使用者),ldapdelete(刪除使用者),ldapsearch(查詢使用者),ldapmodify(修改使用者)。
示例1: 使用ldif檔案新增使用者
ldapadd -x -h ldap: -d "cn=admin,dc=general,dc=com" \
-w generalcom -f /tmp/adduser.ldif
# 命令結果輸出:
adding new entry "cn=baifendian001,ou=users,dc=general,dc=com"
ldif檔案格式如下:
# cat adduser.ldif
dn: cn=baifendian001,ou=users,dc=general,dc=com
objectclass: person
objectclass: organizationalperson
objectclass: inetorgperson
cn: baifendian001
sn: os
displayname: os user
mail: [email protected]
userpassword: baifendian001
示例2:
直接在命令模式下新增使用者
ldapadd -x -h ldap: -d "cn=admin,dc=general,dc=com" \
-w generalcom
# 在互動模式下輸入
dn: cn=baifendian002,ou=users,dc=general,dc=com
objectclass: person
objectclass: organizationalperson
objectclass: inetorgperson
cn: baifendian002
sn: os
displayname: os user
mail: [email protected]
userpassword: baifendian002
# 命令結果輸出:
adding new entry "cn=baifendian006,ou=users,dc=general,dc=com"
ldapdelete -x -h ldap: \
-d "cn=admin,dc=general,dc=com" \
-w generalcom "cn=baifendian006,ou=users,dc=general,dc=com"
注意:使用ldapdelete時被刪除的必須是dn。
ldapdelete -x -h 127.0.0.1 -p 389 -d "cn=admin,dc=hahaha,dc=com" -w hahaha20180613 -f fabric.ldif
fabric.ldif裡面就是建立這個使用者時候的格式。
示例1: 查詢整個ldap資料
# 以管理員admin許可權查詢ldap使用者資訊
ldapsearch -x -h ldap: -b "dc=general,dc=com" \
-d "cn=admin,dc=general,dc=com" -w generalcom
示例2: 查詢指定條目
# 查詢cn=pp13staging使用者資訊
ldapsearch -x -h ldap: -b "dc=general,dc=com" \
-d "cn=admin,dc=general,dc=com" -w generalcom "cn=pp13staging"
ldapmodify -x -h ldap: -d cn=admin,dc=general,dc=com \
-w generalcom -f /tmp/adduser.ldif
# 命令結果輸出:
modifying entry "cn=baifendian002,ou=users,dc=general,dc=com"
使用ldif檔案改變使用者屬性,ldif檔案如下:
# cat /tmp/adduser.ldif
dn: cn=baifendian002,ou=users,dc=general,dc=com
changetype: modify
replace: mail
mail: [email protected]
-delete: displayname
-
Linux fdisk 命令簡單使用方法
分割槽 由於是空磁碟,假設我們只分乙個區,那麼我們應該使用n指令 add a new partition 有以下幾步要進行 挑選分割槽型別 邏輯分割槽 extanded或logical 或主分割槽 primary partition 我們只是新增乙個資料用磁碟,就用主分割槽就行了。partition...
git簡單使用方法
目標是看了這邊文章能夠滿足最基本的git使用需求。整個文章的遠端git庫以git.osc為例。安裝好後,滑鼠右鍵點git bash here,會出來命令列介面。首先到 目錄 root host mingw64 d cd root host mingw64 必須有,遠端git庫通過這個確定是誰提交的 ...
Git 簡單使用方法
git 常用命令 git init here 建立本地倉庫 repository 將會在資料夾下建立乙個 git 資料夾,git 資料夾裡儲存了所有的版本資訊 標記等內容 git clone 如果你需要與他人合作乙個專案,或者想要複製乙個專案,看看 你就可以轉殖那個專案。執行命令 git remot...