#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.

include		/etc/openldap/schema/core.schema
include		/etc/openldap/schema/cosine.schema
include		/etc/openldap/schema/inetorgperson.schema
include		/etc/openldap/schema/nis.schema
include        /etc/openldap/schema/nit.schema

access to * by * read

# Allow LDAPv2 client connections.  This is NOT the default.
 allow bind_v2

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral	ldap://root.openldap.org

pidfile		/var/run/openldap/slapd.pid
argsfile	/var/run/openldap/slapd.args

#access to *
#by self write
#by users read
#by anonymous auth

# Load dynamic backend modules:
#  modulepath	/usr/lib/openldap
#  moduleload	back_bdb.la
#  moduleload	back_ldap.la
# moduleload	back_ldbm.la
# moduleload	back_passwd.la
# moduleload	back_shell.la

# The next three lines allow use of TLS for encrypting connections using a
# dummy test certificate which you can generate by changing to
# /etc/pki/tls/certs, running "make slapd.pem", and fixing permissions on
# slapd.pem so that the ldap user or group can read it.  Your client software
# may balk at self-signed certificates, however.
# TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
# TLSCertificateFile /etc/pki/tls/certs/slapd.pem
# TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem

# Sample security restrictions
#	Require integrity protection (prevent hijacking)
#	Require 112-bit (3DES or better) encryption for updates
#	Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
#	Root DSE: allow anyone to read it
#	Subschema (sub)entry DSE: allow anyone to read it
#	Other DSEs:
#		Allow self write access
#		Allow authenticated users read access
#		Allow anonymous users to authenticate
#	Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
#	by self write
#	by users read
#	by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

######################################################################
# ldbm and/or bdb database definitions
#######################################################################

database	bdb
suffix		"dc=nits,dc=ac,dc=in"
rootdn		"cn=Manager,dc=nits,dc=ac,dc=in"
# Cleartext passwords, especially for the rootdn, should
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw		secret
#  rootpw	           {SSHA}Xqi9jJ5zXt5mb6FIL7//orW+etCbFyD9
rootpw			   {SSHA}Y3RagOP7u3FsNbHCnPVLwsxUepwIgezo


# The database directory MUST exist prior to running slapd AND 
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory	/var/lib/ldap

# Indices to maintain for this database
index objectClass                       eq,pres index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

#access to attrs=userPassword
#            by self write
#            by anonymous auth
#            by dn.base="cn=Manager,dc=ac,dc=in" write
#            by * none
#     access to *
#            by self write
#             by dn.base="cn=Manager,dc=ac,dc=in" write
#             by * read


#access to attrs=userPassword
#        by self write
#        by anonymous auth
#        by dn.base="cn=Manager,dc=nits,dc=ac,dc=in" write
#	by users read   
#         by * none
   
#access to *
#        by self write
#        by dn.base="cn=Manager,dc=nits,dc=ac,dc=in" write
#        by * read

#	access to *
#		by self write
#		by users read
#		by anonymous auth 

# This is a good place to put slapd access-control directives
                                                                                                                             
#access to attrs=userPassword
#        by dn="cn=Manager,dc=nits,dc=ac,dc=in" write
#        by self write
#        by * auth

#access to  attrs=sp
#        by dn="cn=Manager,dc=nits,dc=ac,dc=in" write
#        by self write
#        by * read

access to attrs=userPassword
         by * auth
         by  self write

access to *
         by *  read


#access to dn="uid=jmaan,stornt=non-teach, bn=compcen,dc=nits,dc=ac,dc=in"
#        by * read
                                                                                                                             
#access to dn="dc=nits,dc=ac,dc=in"
#        by self write
#        by * read

lastmod  on

access to * by users read
# Search-based mappings

authz-regexp
  uid=([^,]*),cn=nits.ac.in,cn=sasl,cn=auth
 # uid=$1,stornt=non-teach,bn=compcen,dc=nits,dc=ac,dc=in
  ldap:///stornt=non-teach,bn=compcen,dc=nits,dc=ac,dc=in??one?(&(uid=$1)(objectClass=posixAccount))

# lenient auth-request DN to user-auth DN
#authz-regexp
#          uid=([^,]*),cn=[^,]*,cn=auth
#          uid=$1,stornt=non-teach,bn=compcen,dc=nits,dc=ac,dc=in


#authz-regexp "^.*" "uid=jmaan,stornt=non-teach,bn=compcen,dc=nits,dc=ac,dc=in"
#authz-regexp "^.*" "uid=ldapusr,stornt=non-teach,bn=compcen,dc=nits,dc=ac,dc=in"


# Replicas of this database
#replogfile /var/lib/ldap/openldap-master-replog
#replica host=ldap-1.example.com:389 starttls=critical
#     bindmethod=sasl saslmech=GSSAPI
#     authcId=host/ldap-master.example.com@EXAMPLE.COM

#loglevel         256 128

