ldap簡單命令使用方法

2021-08-29 00:03:44 字數 3873 閱讀 2605

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...