ldap search function
First you will need the ldap search utility. The client for ldap search comes in openldap-clients, so you need to install that first:
sudo yum install openldap-clients
Now, that you have installed it, try to find something in some open ldap server, example:
ldapsearch -LLL -h db.debian.org -x -b "dc=debian,dc=org" "cn=Joao*"
This should list couple of entries for you. Now, that you have ldapsearch working, lets define a function in .bashrc file:
ldaps ()
{
( ldapsearch -LLL -h $2 -x -p 389 -b "$3" "cn=*$1*" | awk -F: 'BEGIN {
last = "NA"
first = "NA"
name = "NA"
loc = "NA"
state = "NA"
postalcode = "NA"
homephone = "NA"
telephonenumber = "NA"
mail = "NA"
mobile = "NA"
printf(" last,first,full name,work#,e-mail,phone3\n");
}
/^sn: / {last=$2}
/^givenName: / {first=$2}
/^cn: / {name=$2}
/^street: / {address=$2}
/^l: / {loc=$2}
/^st: / {state=$2}
/^postalCode: / {postalcode=$2}
/^homePhone: / {homephone=$2}
/^telephoneNumber: / {telephonenumber=$2}
/^mail: / {mail=$2}
/^mobile: / {mobile=$2}
/^dn/ {
if(last != "" && first != "" && last != "StoogeAdmin") printf("%s,%s,%s,%s,,%s,%s\n",last,first,name,telephonenumber,mail,mobile)
last = "NA"
first = "NA"
name = "NA"
address = "NA"
loc = "NA"
state = "NA"
postalcode = "NA"
homephone = "NA"
telephonenumber = "NA"
mail = "NA"
mobile = "NA"
}
# Capture last dn
END {
if(last != "" && first != "" ) printf("%s,%s,%s,%s,,%s,%s\n",last,first,name,telephonenumber,mail,mobile)
}' ) | column -t -s ','
}
You might want to chagne few of the matches in the awk in the above script to suit your needs and then you can run this with :
ldaps "searh string" "search host" "search base"