LDAP是目錄服務(wù),前身是X500,但是X500不支持TCP/IP,所以出現(xiàn)了LDAP協(xié)議,默認(rèn)端口是389。LDAP的查詢速度很快,寫入很慢,適用于讀多寫少的情況。
LDAP中的結(jié)構(gòu)是樹形的,一條記錄,包含一個(gè)dn,dn由dc,ou,cn等組成,這正好是一個(gè)域名的方式,一個(gè)dn就是一個(gè)主鍵,用來(lái)表示這條記錄的唯一性。
例如 dn:cn=harbor,ou=eng,dc=centling,dc=com
一條記錄中有若干屬性,這些屬性類似于java類的屬性的概念,首先要引入class,LDAP中叫objectClass,每個(gè)objectClass都有各自的屬性,有些屬性是必填的,有些則不是。
例如
dn: uid=alex.yu,ou=people,dc=centling,dc=com
uid: alex.yu
cn: alex yu
gidNumber: 11078
givenName: alex
homeDirectory: /home/alex.yu
loginShell: /bin/bash
mail: xxx@centling.com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
sn: yu
uidNumber: 11078
top是一個(gè)抽象類,沒(méi)有任何屬性,相當(dāng)于java的Object類。這里面引用了3個(gè)objectClass:inetOrgPerson,posixAccount,top
ldapsearch命令
-h 主機(jī)名
-b base dn 從樹形結(jié)構(gòu)的哪個(gè)記錄開始查詢
-x 匿名查詢
-D bind dn 用戶的用戶名 "uid=alex.yu,ou=people,dc=centling,dc=com",則綁定了這個(gè)用戶
-w 上述綁定用戶的密碼
-W 提示輸入密碼
-z 設(shè)置輸出記錄數(shù)
-l 超時(shí)時(shí)間
-LLL 以LDIF形式顯示結(jié)果
例如 從dc=centling,dc=com開始查詢,以u(píng)sername1這個(gè)用戶查詢,查詢記錄中含有uid=figo的用戶
ldapsearch -h 127.0.0.1 -b "dc=centling,dc=com" -D "uid=username1,ou=people,dc=centling,dc=com" -W -LLL "uid=figo"
或者用匿名查詢,但是服務(wù)器要支持匿名查詢
ldapsearch -h 127.0.0.1 -b "dc=centling,dc=com" -x -LLL "uid=figo"
查詢語(yǔ)法
or "(|(uid=A)(uid=B))"
and "(&(uid=A)(email=B))"
聯(lián)系客服