3. 數(shù)據(jù)的增刪減改

本節(jié)的主要內(nèi)容時如何通過 ldapmodify、ldapadd、ldapdelete 命令來實現(xiàn)數(shù)據(jù)的增刪減改,以及如何用 ldapsearch 命令實現(xiàn)數(shù)據(jù)的查詢。

十分希望你可以親手輸入這些命令,而不是單純的復(fù)制粘貼。你可以在這個鏈接下載到本視頻用到了 ldif 文件。

ldapmodify、ldapadd 命令格式如圖。

ldapmodify [ldap 服務(wù)器地址] [你的用戶名] [你的密碼] [ldif 文件的地址]

前三個選項很好理解,ldif 文件是用來干什么呢。大家應(yīng)該注意到命令格式里面沒有出現(xiàn)任何與數(shù)據(jù)相關(guān)的信息,既然是對數(shù)據(jù)庫進(jìn)行增刪減改,怎么可能沒有數(shù)據(jù)信息呢。對了,數(shù)據(jù)信息全部寫在 ldif 文件里面。ldif 文件對書寫格式有特殊的要求,但是只要你跟著寫上一次,就學(xué)會了。

這個是 ldapmodify 常用選項表。

我們將通過練習(xí)來熟悉這些選項。

增刪 inetOrgPerson 類

給 ldap 數(shù)據(jù)庫增加信息可以用 ldapmodify 也可以用 ldapadd。

我們需要為 Barbara 創(chuàng)建一個條目,這個條目需要包含他的名字、姓、郵箱、uid、稱號這些信息。

寫成 ldif 文件就是這個樣子。

dn: cn=Barbara,dc=example,dc=org
objectClass: inetOrgPerson
cn: Barbara
sn: Jensen
title: the world's most famous mythical manager
mail: bjensen@example.com
uid: bjensen

第一行是有關(guān) dn 的信息,這里是把 barbara 歸到了 example.org 下面。需要注意的是 dn 的冒號后面有一個空格,這個是必須的。
第二行本文中的所有信息存儲在 inetOrgPerson 類的實例中,后面的就是 barbara 的郵箱、稱號之類的信息了。

接下來我分別演示 ldapadd 和 ldapmodify 的用法。

首先,我們進(jìn)入到 docker 容器內(nèi)部。

將信息寫入 ldif 文件。

ldapadd

ldapadd -x -H ldap://127.0.0.2:389 -D "cn=admin,dc=example,dc=org" -w admin -f barbara.ldif

接下來我們用 ldapsearch 來查看該數(shù)據(jù)是否被正確的寫入。

ldapsearch -x -H ldap://127.0.0.2:389  -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin 

和其他數(shù)據(jù)庫一樣,ldapsearch 可以增加查詢條件。

ldapsearch -x -H ldap://127.0.0.2:389  -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin "cn=*,dc=example,dc=org"

ldapdelete

為了之后的實驗,我們需要把這個條目刪掉。

ldapdelete -x -H ldap://127.0.0.2:389  -D "cn=admin,dc=example,dc=org" -w admin  "cn=Barbara,dc=example,dc=org"

ldapmodify

ldapmodify 和 ldapadd 類似,但是需要對 ldif 文件進(jìn)行小小的修改。
在 ldif 文件的第二行加上。這樣 ldapmodify 才知道本 ldif 文件的目的是增加一個條目。

changetype: add
ldapmodify -x -H ldap://127.0.0.2:389 -D "cn=admin,dc=example,dc=org" -w admin -f barbara.ldif

增組織

增加組織和增加人員類似。

dn: ou=People,dc=example,dc=org
objectclass: top
objectclass: organizationalUnit
ou: People

dn: ou=Servers,dc=example,dc=org
objectclass: top
objectclass: organizationalUnit
ou: Servers

更改條目的屬性

更改條目的屬性也分為好幾種,比如更改現(xiàn)有的屬性,增加新屬性等。這些我也都會依次給大家進(jìn)行演示。

更改現(xiàn)有屬性

dn: cn=Barbara,dc=example,dc=org
changetype: modify
replace: title
title: one of the world's most famous mythical manager

新增一個屬性

dn: cn=Barbara,dc=example,dc=org
changetype: modify
add: description
description: Barbara description

將Barbara移動到people組織下

dn: cn=Barbara,dc=example,dc=org
changetype: modify
newsuperior: ou=People,dc=example,dc=org
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容