Giter Club home page Giter Club logo

directory-server's Introduction

README

Erland Directory Server is an LDAP server with MongoDB backend.

INSTALL

Compile eMongo driver first:

    $ git clone git://github.com/master/emongo.git emongo
    $ cd emongo
    $ make
    $ cd ..

Download and compile EDS:

    $ git clone git://github.com/master/eds.git eds
    $ cd eds
    $ make

Populate database with sample LDIF:

    $ priv/populate.py t/000-init.ldif

    dc=synrc,dc=com
    uid=admin,dc=synrc,dc=com
    ou=People,dc=synrc,dc=com
    cn=Oleg Smirnov,ou=People,dc=synrc,dc=com
    cn=Maxim Sokhatsky,ou=People,dc=synrc,dc=com

USAGE

    $ ./eds.sh

LDAP port is 1389 for testing purposes. Anonymous bind is not supported (yet).

Search

    $ ldapsearch -b "dc=synrc,dc=com" 'objectClass=*' \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

Filters:

    $ ldapsearch -b "dc=synrc,dc=com" '(&(uid=*)(cn=Ma*))' \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

Attributes selection:

    $ ldapsearch -b "dc=synrc,dc=com" 'sn=*' cn sn \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

Size limit on query result:

    $ ldapsearch -b "dc=synrc,dc=com" 'sn=*' cn sn -z 1 \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

Add

Adding entries:

    $ ldapmodify -f t/010-add.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret	

    adding new entry "cn=alice,ou=People,dc=synrc,dc=com"

    adding new entry "cn=bob,ou=People,dc=synrc,dc=com"

Adding duplicate entries:

    $ ldapmodify -f t/011-add-exists.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

    adding new entry "cn=alice,ou=People,dc=synrc,dc=com"
    ldap_add: Already exists (68)

Modify

Replacing value of an attribute:

    $ ldapmodify -f t/020-modify-replace.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

    modifying entry "cn=alice,ou=People,dc=synrc,dc=com"

Adding new attribute:

    $ ldapmodify -f t/021-modify-add.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

    modifying entry "cn=alice,ou=People,dc=synrc,dc=com"

Deleting an attribute:

    $ ldapmodify -f t/022-modify-del.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

    modifying entry "cn=bob,ou=People,dc=synrc,dc=com"

Changing many attributes at once:

    $ ldapmodify -f t/023-modify-multi.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

    modifying entry "cn=bob,ou=People,dc=synrc,dc=com"

Changing nonexistent object:

    $ ldapmodify -f t/024-modify-noobj.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

    modifying entry "cn=eve,ou=People,dc=synrc,dc=com"
    ldap_modify: No such object (32)

Modify DN

    $ ldapmodify -f t/025-modify-dn.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

    modifying rdn of entry "cn=alice,ou=People,dc=synrc,dc=com"

Delete

Deleting entries:

    $ ldapmodify -f t/030-delete.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

    deleting entry "uid=alice,ou=People,dc=synrc,dc=com"

    deleting entry "cn=bob,ou=People,dc=synrc,dc=com"

Deleting nonexistent entries:

    $ ldapmodify -f t/031-delete-noobj.ldif \
                 -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret

    deleting entry "cn=alice,ou=People,dc=synrc,dc=com"
    ldap_delete: No such object (32)

Compare

Evaluating an expression:

    $ ldapcompare "uid=admin,dc=synrc,dc=com" uid:admin \
                  -h localhost -p 1389 -D "uid=admin,dc=synrc,dc=com" -w secret
    TRUE

directory-server's People

Contributors

5ht avatar

Watchers

James Cloos avatar Aleph Archives avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.