LDAP常用命令解析


 OpenLDAP常用命令講解:

ldapadd
      -x   進行簡單認證
      -D   用來綁定服務器的DN
      -h   目錄服務的地址
      -w   綁定DN的密碼
      -f   使用ldif文件進行條目添加的文件
      例子 ldapadd -x -D "cn=root,dc=starxing,dc=com" -w secret -f /root/test.ldif
           ldapadd -x -D "cn=root,dc=starxing,dc=com" -w secret (這樣寫就是在命令行添加條目)
ldapsearch
      -x   進行簡單認證
      -D   用來綁定服務器的DN
      -w   綁定DN的密碼
      -b   指定要查詢的根節點
      -H   制定要查詢的服務器
   ldapsearch -x -D "cn=root,dc=starxing,dc=com" -w secret -b "dc=starxing,dc=com"
       使用簡單認證,用 "cn=root,dc=starxing,dc=com" 進行綁定,
       要查詢的根是 "dc=starxing,dc=com"。這樣會把綁定的用戶能訪問"dc=starxing,dc=com"下的
       所有數據顯示出來。

ldapsearch -x -W -D "cn=administrator,cn=users,dc=osdn,dc=zzti,dc=edu,dc=cn" -b "cn=administrator,cn=users,dc=osdn,dc=zzti,dc=edu,dc=cn" -h troy.osdn.zzti.edu.cn

ldapsearch -b "dc=canon-is,dc=jp" -H ldaps://192.168.0.92:636(需要修改openldap客戶端的配置文件ldap.conf,參考:http://ms.ntcb.edu.tw/~steven/l-penguin.s/article/ldap-5.htm)

ldapdelete 
      ./ldapdelete -x -D "cn=Manager,dc=test,dc=com" -w secret "uid=test1,ou=People,dc=test,dc=com"
ldapdelete -x -D 'cn=root,dc=it,dc=com' -w secert 'uid=zyx,dc=it,dc=com'
    這樣就可以刪除'uid=zyx,dc=it,dc=com'記錄了,應該注意一點,如果o或ou中有成員是不能刪除的。

ldappasswd
    -x   進行簡單認證
    -D   用來綁定服務器的DN
    -w   綁定DN的密碼
    -S   提示的輸入密碼
    -s pass 把密碼設置為pass
    -a pass 設置old passwd為pass
    -A   提示的設置old passwd
    -H   是指要綁定的服務器
    -I   使用sasl會話方式
    #ldappasswd -x -D 'cm=root,dc=it,dc=com' -w secret 'uid=zyx,dc=it,dc=com' -S
    New password:
    Re-enter new password:
    就可以更改密碼了,如果原來記錄中沒有密碼,將會自動生成一個userPassword。
ldapmodify
    -a 添加新的條目.缺省的是修改存在的條目.
    -C 自動追蹤引用.
    -c 出錯后繼續執行程序並不中止.缺省情況下出錯的立即停止.比如如果你的ldif 文
       件內的某個條目在數據庫內並不存在,缺省情況下程序立即退出,但如果使用了該參數,程
       序忽略該錯誤繼續執行.
    -n 用於調試到服務器的通訊.但並不實際執行搜索.服務器關閉時,返回錯誤;服務器
       打開時,常和-v 參數一起測試到服務器是否是一條通路.
    -v 運行在詳細模塊.在標准輸出中打出一些比較詳細的信息.比如:連接到服務器的
       ip 地址和端口號等.
    -M[M] 打開manage DSA IT 控制. -MM 把該控制設置為重要的.
    -f file 從文件內讀取條目的修改信息而不是從標准輸入讀取.
    -x 使用簡單認證.
    -D binddn 指定搜索的用戶名(一般為一dn 值).
    -W 指定了該參數,系統將彈出一提示入用戶的密碼.它和-w 參數相對使用.
    -w bindpasswd 直接指定用戶的密碼. 它和-W 參數相對使用.
    -H ldapuri 指定連接到服務器uri(ip 地址和端口號,常見格式為
       ldap://hostname:port).如果使用了-H 就不能使用-h 和-p 參數.
    -h ldaphost 指定要連接的主機的名稱/ip 地址.它和-p 一起使用.
    -p ldapport 指定要連接目錄服務器的端口號.它和-h 一起使用.
       如果使用了-h 和-p 參數就不能使用-H 參數.
    -Z[Z] 使用StartTLS 擴展操作.如果使用-ZZ,命令強制使用StartTLS 握手成功.
    -V 啟用證書認證功能,目錄服務器使用客戶端證書進行身份驗證,必須與-ZZ 強制啟用
       TLS 方式配合使用,並且匿名綁定到目錄服務器.
    -e 設置客戶端證書文件,例: -e cert/client.crt
    -E 設置客戶端證書私鑰文件,例: -E cert/client.key
    #ldapmodify -x -D "cn=root,dc=it,dc=com" -W -f modify.ldif
    將modify.ldif中的記錄更新原有的記錄。



ldapsearch 參數表

 
下表描述可以用於 ldapsearch 的區分大小寫的參數。
參數 用途
-? 打印關於使用 ldapsearch 的幫助。
-a deref 指定別名反向引用。請輸入 never、always、search 或 find。如果不使用此參數,缺省為 never。
-A 只檢索屬性的名稱,而不檢索屬性的值。
-b base dn 指定用作搜索起始點的專有名稱。使用引號來指定該值,例如:"ou=West,o=Acme,c=US"

如果要搜索的服務器需要指定搜索起點,則必須使用此參數。否則此參數是可選的。

也可以同時使用 -b 和 -s 來確定搜索范圍。沒有 –s,-b 就會搜索指定為起始點的項以及該項的所有子項。

-B 允許打印非 ASCII 值
-D bind dn 指定服務器用於驗證您的專有名稱。名稱必須與目錄中的項相符,並且必須擁有搜索目錄所需的權限。

請使用引號來指定該名稱,例如:"cn=Directory Manager,o=Acme,c=US"

如果不使用此參數,則與服務器的連接是匿名的。如果服務器不允許匿名連接,則必須使用 -D。

除了 -D,還必須使用 -w 參數來指定與專有名稱相關聯的口令。

-f file 指定包含要使用的搜索過濾器的文件,如 -f 過濾器。請將每個搜索過濾器置於單獨的一行。Ldapsearch 會對每一行執行一次搜索。可選擇指定過濾模式。例如,指定 -f 過濾 "cn=%s",並在文件的每一行中輸入公用名稱的值。
-F sep 在屬性名稱和值之間打印 sep 而不是等號 (=)。例如,如果讀取 ldapsearch 輸出的工具希望使用其他的分隔符時,可以使用此參數。
-h host name 指定要連接的服務器主機名,如 -h server.acme.com。
-l timelimit 指定完成搜索的時間限制(秒)。如果沒有指定此參數或指定的限制為 0,那么搜索就沒有時間限制。但是,ldapsearch 的等待時間決不會超過服務器上設置的搜索時間限制。
-L 指定以 LDIF 格式輸出。LDIF 格式使用冒號 (:) 而不是等號 (=) 作為屬性描述符。LDIF 對一次性添加或修改大量目錄項很有幫助。例如,可以將輸出內容引入兼容 LDAP 的目錄中。
-M 將參考對象作為普通項進行管理,以使 ldapsearch 可返回參考項本身的屬性,而不是所參考的項的屬性。
-n 顯示如何執行搜索,但不實際執行搜索
-p port 指定服務器使用的端口。如果沒有使用此參數,缺省情況下 ldapsearch 使用 389 端口。
-R 不自動遵循服務器返回的搜索引用。請注意,Netscape 目錄服務器將術語 referrals 用於搜索引用。
-s scope 指定使用 -b 參數時的搜索范圍:
  • base -- 僅搜索 -b 參數指定的項
  • onelevel -- 僅搜索 -b 參數指定項的直接子項,而不搜索該項本身
  • subtree -- 搜索 -b 參數指定的項以及它的所有子項。這是不帶 -s 時使用 -b 的缺省行為。
指定 -b 和 -s 的順序並不重要。
-S attribute 按指定的屬性排序結果。
-z sizelimit 指定返回項的最大數目。如果沒有指定此參數或指定的限制為 0,那么返回的項沒有數量限制。但是,ldapsearch 返回的項決不會多於服務器允許的數量。
-u 指定 ldapsearch 以用戶友好格式返回專有名稱。
-v 指定 ldapsearch 以詳盡模式運行。
-w password 指定與 -D 參數一起使用的與專有名稱關聯的口令。
x 與 -S 一起使用時可指定 LDAP 服務器在將結果返回之前就對它們進行排序。如果使用 -S 而不使用 –x,ldapsearch 將對結果排序。

ldapsearch 搜索過濾器中使用的運算符表 
下表描述了可以在搜索過濾器中使用的運算符。
運算符 用途 樣例
= 查找所包含的屬性值與指定值相同的項 "cn=John Browning"
= <string>*<string> 查找所包含的屬性值與指定的子字符串相同的項 "cn=John*"

"cn=J*Brown"

>= 查找特定項,該項中包含的屬性的數字或字母值大於或等於指定的值。 "cn>=D"
<= 查找特定項,該項中包含的屬性的數字或字母值小於或等於指定的值。 "roomNumber<=300"
=* 查找包含特定屬性的值的項,而不用管屬性的值是什么。 "sn=*"
~= 查找特定項,該項中所含屬性的值約等於指定的值。 "sn~=Brning" 可能返回 sn=Browning
& 查找與所有搜索過濾器中指定的條件相匹配的項 "(&(cn=John Browning)(l=Dallas))"
| 查找與至少一個搜索過濾器中指定的條件相匹配的項 "(|(cn=John Browning)(l=Dallas))"
! 查找與任何搜索過濾器中指定的條件都不匹配的項 "(!(cn=John Browning)(l=Dallas))"

使用 ldapsearch 的搜索過濾器 
必須使用搜索過濾器指定要搜索的屬性。搜索過濾器的語法為:

    "<attribute> <operator> <value>"

例如,下面的搜索過濾器可以找到所有的特定項,只要該項中以 Smith 作為 sn(別稱)屬性的值:

    "sn=Smith"

可以在搜索過濾器中指定存儲在目錄中的任意屬性。以下是用來搜索個人項的公用屬性:
  • cn -- 個人的公用名稱
  • sn -- 個人的姓
  • telephonenumber -- 個人的電話號碼
  • l -- 個人的地理位置

可以在 ldapsearch 命令行中指定搜索過濾器,或在文件中指定它們,並使用 lsearch 參數 -f 引用此文件。如果使用文件,請在單獨的行中指定每個搜索過濾器。

請注意:如果 LDAP 目錄(如 Domino LDAP 目錄)支持語言標記,則可在搜索過濾器中包含它們。例如:


    "givenName;lang-fr=Etienne"

使用布爾運算符的多個搜索過濾器

您可以使用多個搜索過濾器以及布爾運算符。使用下列語法:


    "(operator(filter)(filter))"

例如,使用下面的搜索過濾器查找別稱為 Browning、位置為 Dallas 的項。

    "(&(sn=Browning)(l=Dallas))"

布爾運算符可以嵌套。例如,使用下面的搜索過濾器在郵件網絡域 MDN 中查找 surname 為 caneel 或 givenname 為 alfred 的項:

    "(&(maildomain=MDN)(|(sn=caneel)(givenname=alfred)))"


使用 ldapsearch 的樣例 

下表提供使用 ldapsearch 實用程序的樣例。
搜索 命令
使用端口 389 的主機 ldap.acme.com 上的所有項,並返回所有屬性和值 ldapsearch -h ldap.acme.com "objectClass=*"
同上,但僅返回屬性名稱 ldapsearch -A -h ldap.acme.com" objectClass=*"
使用端口 389 的主機 ldap.acme.com 上的所有項,並且反向引用找到的所有別名 ldapsearch -a always -h ldap.acme.com "objectClass=*"
使用端口 389 的主機 ldap.acme.com 上的所有項,並返回 mail、cn、sn 和 givenname 等屬性 ldapsearch -h ldap.acme.com "objectClass=*" mail cn sn givenname
在使用端口 389 的主機 ldap.acme.com 上,在 ”ou=West,o=Acme,c=US” 基准下搜索 (cn=Mike*),並返回所有屬性和值 ldapsearch -b "ou=West,o=Acme,c=US" -h ldap.acme.com "(cn=Mike*)"
使用端口 389 的主機 ldap.acme.com 上的一個級別,並返回所有屬性和值 ldapsearch -s onelevel -h ldap.acme.com "objectClass=*"
同上,但限制基准的范圍 ldapsearch -s base -h ldap.acme.com "objectClass=*"
使用端口 389 的主機 ldap.acme.com 上的所有項,並返回所有的屬性和值;搜索時間限制為五秒 ldapsearch -l 5 -h ldap.acme.com "objectClass=*"
使用端口 389 的主機 ldap.acme.com 上的所有項,並返回所有的屬性和值;大小限制為五 ldapsearch -z 5 -h ldap.acme.com "objectClass=*"
使用端口 389 的主機 ldap.acme.com 上的所有項,捆綁為:用戶“cn=John Doe,o=Acme”,口令“password”,並以 LDIF 格式返回所有的屬性和值 ldapsearch -h ldap.acme.com -D "cn=john doe,o=acme" -w password -L "objectClass=*"
使用端口 389 的主機 ldap.acme.com。對“cn=John Doe,o=Acme”項,返回其允許匿名查看的所有屬性 ldapsearch -h ldap.acme.com" -s base -b "cn=john doe,o=acme" objectClass=*"
配置為在端口 391 上偵聽 LDAP 請求的另一台主機 bluepages.ibm.com 上的所有項 ldapsearch -h bluepages.ibm.com -p 391 "objectClass=*"
端口 391 上的 bluepages.ibm.com。對還有與 OR 過濾器中任意一個屬性相匹配的屬性的任何“個人”對象類型進行子樹搜索(缺省),從組織“o=ibm”開始。超時值為 300 秒,返回的最大項數設為 1000。且僅返回 DN(缺省)和 CN(這是 Web 應用程序的公用過濾器)。 ldapsearch -h bluepages.ibm.com -p 391 -b "o=ibm" -l 300 -z 1000 "(&(objectclass=Person)(|(cn=jerry seinfeld*)(givenname=jerry seinfeld*)(sn=jerry seinfeld*)(mail=jerry seinfeld*)))" cn
端口 391 上的 bluepages.ibm.com。以基准項“cn=HR Group,ou=Asia,o=IBM”為起始,時間限制為 300 秒,查詢此項的所有成員。(Web 應用程序中用以確定群組成員的另一個公用過濾器)。 ldapsearch -h bluepages.ibm.com -p 391 -b "cn=HR Group,ou=Asia,o=IBM" -s base -l 300 "(objectclass=*)" member

 
  來源: < http://xuqq999.blog.51cto.com/3357083/786708 >




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM