Recovered from the older tannerjc.net wiki snapshot dated January 23, 2016.

Installation and configuration

Installing openldap:

    6  yum install openldap
   23  rpm -ivh openldap-2.3.27-8.i386.rpm
   24  rpm -ivh openldap-clients-2.3.27-8.i386.rpm
   25  rpm -ivh openldap-servers-2.3.27-8.i386.rpm
   26  yum install openldap-servers
   27  cd /etc/openldap/
   30  cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
   31  service ldap start
   32  chkconfig ldap on
   33  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapinit.ldif

ldapinit.ldif - ldif files can contain multiple commands, separated by a blank line. Ensure there are no trailing spaces on any line.

[root@server1 ldif-files]# cat /tmp/ldapinit.ldif
dn: dc=gibsonhax,dc=com
dc: gibsonhax
objectClass: top
objectClass: domain
objectClass: domainRelatedObject
associatedDomain: gibsonhax.com

dn: ou=People,dc=gibsonhax,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: gibsonhax.com

dn: ou=Group,dc=gibsonhax,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: gibsonhax.com

dn: ou=sales,dc=gibsonhax,dc=com
ou: sales
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: gibsonhax.com

Managing Users

  • Querying LDAP users:**
[root@server1 scripts]# cat /root/scripts/queryusers
for i in `ldapsearch -x -b 'dc=gibsonhax,dc=com' 'objectclass=*' | grep uid:  | cut -d  -f2`; do id $i |  cut -d  -f1,2 ; done;
[root@server1 scripts]# /root/scripts/queryusers
uid=1001(jsterling) gid=1000(hackers)
uid=1002(kendrickg) gid=1000(hackers)
uid=1003(pdiddy) gid=1001(sales)
uid=1004(wgates) gid=1001(sales)
uid=1007(oprah) gid=1002(hr)
uid=1008(geraldo) gid=1002(hr)
uid=1005(sjobs) gid=1003(marketing)
uid=1006(foxnews) gid=1003(marketing)
uid=1000(jtanner) gid=1000(hackers)
uid=1009(drpepper) gid=1001(sales)
  • Adding a user:**
[root@server1 ldif-files]# cat pdiddy.ldif
dn: uid=pdiddy,ou=People,dc=gibsonhax,dc=com
uid: pdiddy
cn: pdiddy
sn: pdiddy
mail: pdiddy@gibsonhax.com
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$wa6gvLhw$fxMijjdVAnnhY5wh6bks8/
shadowLastChange: 13773
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1003
gidNumber: 1001
homeDirectory: /home/ldap/pdiddy
[root@server1 scripts]# ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f pdiddy.ldif
adding new entry uid=pdiddy,ou=People,dc=gibsonhax,dc=com
  • After adding the user to ldap, a homedirectory has to be created manually
 1017  cd /home/ldap
 1019  mkdir drpepper
 1020  id drpepper
 1021  chown drpepper:sales drpepper
 1022  chmod 700 drpepper
  • sendmail/dovecot/squirrelmail should all be aware of the new user immediately without further configuration.

  • Deleting a user:**

  • use ldapvi

  • delete the entire entry for the user

  • Reset user’s password to redhatpwd**

[root@server1 ldif-files]# cat changepass.ldif
dn: uid=jtanner,ou=People,dc=gibsonhax,dc=com
changetype: modify
replace: userPassword
userPassword: {crypt}$1$wa6gvLhw$fxMijjdVAnnhY5wh6bks8/
[root@server1 ldif-files]# ldapmodify -x -f changepass.ldif -D cn=Manager,dc=gibsonhax,dc=com -w redhat
modifying entry uid=jtanner,ou=People,dc=gibsonhax,dc=com
  • To set a different password, use slappasswd
[root@server1 ~]# slappasswd -s newpasswd -h {CRYPT}
{CRYPT}nzZNMcuxWYiMU
  • Changing user password -as- the user**
  • package openldap-clients must be installed and ldappasswd command available on the client.
  • Changing LDAP user’s group:**
[root@server1 ldif-files]# cat changegroup.ldif
dn: uid=foxnews,ou=People,dc=gibsonhax,dc=com
changetype: modify
replace: gidNumber
gidNumber: 510
[root@server1 ldif-files]# ldapmodify -x -f changegroup.ldif -D cn=Manager,dc=gibsonhax,dc=com -w redhat
modifying entry uid=geraldo,ou=People,dc=gibsonhax,dc=com

Managing Groups

Adding a group:

[root@server1 ldif-files]# cat marketing.ldif
dn: cn=marketing,ou=Group,dc=gibsonhax,dc=com
objectClass: posixGroup
objectClass: top
cn: marketing
userPassword: {crypt}x
gidNumber: 1003
[root@server1 scripts]# ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f marketing.ldif

Installation command history

  6  yum install openldap
   23  rpm -ivh openldap-2.3.27-8.i386.rpm
   24  rpm -ivh openldap-clients-2.3.27-8.i386.rpm
   25  rpm -ivh openldap-servers-2.3.27-8.i386.rpm
   26  yum install openldap-servers
   27  cd /etc/openldap/
   30  cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
   31  service ldap start
   32  chkconfig ldap on
   33  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapinit.ldif
   37  vi ldapinit.ldif
   38  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapinit.ldif
   41  vi ldapusergroup.ldif
   42  ldapadd -x -D cn=Manager,dc=example,dc=com -w redhat -f /tmp/ldapusergroup.ldif
   44  vi ldapusergroup.ldif
   45  ldapadd -x -D cn=Manager,dc=example,dc=com -w redhat -f /tmp/ldapusergroup.ldif
   46  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
   47  vi ldapusergroup.ldif
   49  ldapadd -x -D cn=jtanner,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
   50  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
   52  vi ldapusergroup.ldif
   53  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
   57  cd /etc/openldap/
   72  cd /var/lib/ldap/
   74  man ldapadd
   75  ldapsearch
   76  ldapsearch gibsonhax.com
   77  ldapsearch gibsonhax
  109  ldapsearch -x -b 'dc=gibsonhax,dc=com' 'objectclass=*'
  114  ldapadd -f newentry
  116  ldapadd -f newentry
  117  cat ldapinit.ldif
  119  cat ldapinit.ldif
  120  vi ldapinit.ldif
  122  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapinit.ldif
  123  ldapsearch -x -b 'dc=gibsonhax,dc=com' 'objectclass=*'
  126  rm ldapusergroup.ldif
  127  vi ldapusergroup.ldif
  128  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
  129  ldapadd -x -D dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
  130  ldapsearch -x -s base -b o=ITB,c=ID
  131  ldapsearch -x -s base -b dc=gibsonhax,dc=com
  132  ldapsearch -x -b 'dc=gibsonhax,dc=com' 'objectclass=*'
  134  vi ldapusergroup.ldif
  135  ldapsearch -x -b 'dc=gibsonhax,dc=com' 'objectclass=*'
  136  ldapadd -x -D dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
  137  ldapadd -x -D dc=gibsonhax,dc=com -w secret -f /tmp/ldapusergroup.ldif
  138  ldapadd -x -D dc=gibsonhax,dc=com  -f /tmp/ldapusergroup.ldif
  139  ldapadd -x -D dc=gibsonhax,dc=com -w f*ck -f /tmp/ldapusergroup.ldif
  141  ldapadd -x -D dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
  142  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
  145  less ldapusergroup.ldif
  148  mkdir /save/ldap
  149  cp ldapinit.ldif /save/ldap/
  150  cp ldapusergroup.ldif /save/ldap/
  152  vi ldapusergroup.ldif
  153  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f /tmp/ldapusergroup.ldif
  154  ldapsearch -x -b 'dc=gibsonhax,dc=com' 'objectclass=*'
  156  mkdir /save/ldap/scripts
  157  cp ldapusergroup.ldif /save/ldap/scripts/jess.ldif
  158  cd /save/ldap/scripts/jess.ldif
  159  cd /save/ldap/scripts/
  164  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f jsterling.ldif
  172  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f kendrickg.ldif
  173  ldapsearch -x -b 'dc=gibsonhax,dc=com' 'objectclass=*'
  179  cd openldap/
  184   netstat -tulpn | grep ldap
  326  history | grep ldap
  972  ldapsearch -x -b 'dc=gibsonhax,dc=com' 'objectclass=*'
  981  cd ldap/
  987  ldapadd -f pdiddy.ldif
  988  ldapadd -b 'dc=gibsonhax,dc=com' 'cn=Manager' -w redhat -f pdiddy.ldif
  989  ldapadd -b 'cn=Manager,dc=gibsonhax,dc=com' -w redhat -f pdiddy.ldif
  990  history | fgrep ldap
  991  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f pdiddy.ldif
  994  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f wgates.ldif
  995  ldapsearch -x -b 'dc=gibsonhax,dc=com' 'objectclass=*'  /tmp/ldap.out
  996  less /tmp/ldap.out
  997  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f hr-marketing.ldif
  998  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f hr-marketing.ldif
  999  ldapadd -x -D cn=Manager,dc=gibsonhax,dc=com -w redhat -f marketing.ldif
 1001  history | fgrep ldap

ldapvi editor

  • Program invokes a vi-like editor with all the data from ldap’s database
  • Information can be edited and saved in the same way vi operates
  • After quitting, you will be presented with a list of options… hit y to accept and finish

Installing

 1014  yum install openldap-devel
 1015  yum install ncurses-devel ncurses readline readline-devel
 1016  yum install glib2 glib2-devel openssl openssl-devel
 1021  cd /tmp
 1023  wget http://www.lichteblau.com/download/ldapvi-1.7.tar.gz
 1025  tar -xzvf ldapvi-1.7.tar.gz
 1026  cd ldapvi-1.7
 1030  ./configure --prefix=/opt/ldapvi
 1031  ./make
 1032  make
 1033  make install

Running

/opt/ldapvi/bin/ldapvi -D cn=Manager,dc=gibsonhax,dc=com -w redhat --host localhost

References