X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=userdir-ldap-slapd.conf.in;h=7b306c32d44c85f12007452fe5576f3e743489c6;hb=ff3b878da940bd8871ff8312722e40f3d7fa8543;hp=cf4ecfdeff93ceee2005fc167b68c5743429fb4e;hpb=9226811a30c63b167221ac9a4df7c71bf3bcaefe;p=mirror%2Fuserdir-ldap.git diff --git a/userdir-ldap-slapd.conf.in b/userdir-ldap-slapd.conf.in index cf4ecfd..7b306c3 100644 --- a/userdir-ldap-slapd.conf.in +++ b/userdir-ldap-slapd.conf.in @@ -1,5 +1,5 @@ # The backend type, ldbm, is the default standard -database bdb +database hdb # The base of your directory suffix "@@DN@@" @@ -8,16 +8,9 @@ suffix "@@DN@@" directory "/var/lib/ldap" # Indexing options -index uid eq -index keyfingerprint eq -index cn,sn sub,eq -index dnsZoneEntry eq -index uidNumber eq -index gidNumber eq -index ircNick sub,eq -index c eq -index gender eq -index birthDate eq +index gecos,cn,sn,uid,ircNick,hostname,emailForward pres,eq,sub,approx +index keyfingerprint,homeDirectory,objectClass,loginShell,supplementaryGid pres,eq +index c,gender,dnsZoneEntry,birthDate,gidNumber,uidNumber pres,eq # Don't limit queries to the default of 500 sizelimit 10000 @@ -25,44 +18,57 @@ sizelimit 10000 # Save the time that the entry gets modified lastmod on -# owner writeable -access to attrs=userPassword,sudoPassword,sshrsaauthkey - by group="cn=LDAP Administrator,ou=users,@@DN@@" write - by dn="uid=sshdist,ou=users,@@DN@@" write - by self read - by * compare -# debian readable -access to attrs=activity-pgp,activity-from,dnsZoneEntry - by group="cn=LDAP Administrator,ou=users,@@DN@@" write - by dn="uid=sshdist,ou=users,@@DN@@" write - by peername.ip=127.0.0.1 read - by domain=alioth.debian.org none - by domain.subtree=@@DOMAIN@@ read - by dn.regex="uid=.*,ou=users,@@DN@@" read - by * none +## +## prefix some rules that only apply to certain clients +## and grant them more privileges +## -# owner writeable, debian readable, authenticated user readable -access to attrs=c,l,loginShell,ircNick,labeledURI,icqUIN,jabberJID,onVacation,birthDate,mailDisableMessage,gender,emailforward,mailCallout,mailGreylisting,mailRBL,mailRHSBL,mailWhitelist +# LDAP admins have full access, so has sshdist +access to * by group="cn=LDAP Administrator,ou=users,@@DN@@" write by dn="uid=sshdist,ou=users,@@DN@@" write + by * break + +# allow keyring maint to write to the keyFingerPrint attribute +# (make an exception for adm for security reasons) +access to filter="(!(supplementaryGid=adm))" attrs=keyFingerPrint + by group="cn=Keyring Maintainers,ou=users,@@DN@@" write + by * break + +# allow users write access to an explicit subset of their fields +access to attrs=c,l,loginShell,ircNick,labeledURI,icqUIN,jabberJID,onVacation,birthDate,mailDisableMessage,gender,emailforward,mailCallout,mailGreylisting,mailRBL,mailRHSBL,mailWhitelist,mailContentInspectionAction,mailDefaultOptions,facsimileTelephoneNumber,telephoneNumber,postalAddress,postalCode,loginShell,onVacation,privateSub,latitude,longitude,VoIP,userPassword,sudoPassword,bATVToken by self write - by dn.regex="uid=.*,ou=users,@@DN@@" read + by * break + + +## +## All ACLs from here on result in a decision. no fall through to later. +## + +# allow authn/z by anyone +access to attrs=userPassword,sudoPassword,bATVToken + by * compare + +# readable only by self +access to attrs=sshrsaauthkey + by self read + by * none + +# debian.org readable, authenticated user readable +access to attrs=activity-pgp,activity-from,dnsZoneEntry,c,l,loginShell,onVacation,birthDate,mailDisableMessage,gender,emailforward,mailCallout,mailGreylisting,mailRBL,mailRHSBL,mailWhitelist,mailContentInspectionAction,mailDefaultOptions by peername.ip=127.0.0.1 read by domain=alioth.debian.org none by domain.subtree=@@DOMAIN@@ read + by dn.regex="uid=.*,ou=users,@@DN@@" read by * none -# owner writeable, authenticated user readable -access to attrs=facsimileTelephoneNumber,telephoneNumber,postalAddress,postalCode,loginShell,onVacation,privateSub,latitude,longitude,VoIP - by group="cn=LDAP Administrator,ou=users,@@DN@@" write - by dn="uid=sshdist,ou=users,@@DN@@" write - by self write +# authenticated user readable +access to attrs=facsimileTelephoneNumber,telephoneNumber,postalAddress,postalCode,privateSub,latitude,longitude,VoIP by dn.regex="uid=.*,ou=users,@@DN@@" read by * none -# globally readable + +# rest is globally readable access to * - by group="cn=LDAP Administrator,ou=users,@@DN@@" write - by dn="uid=sshdist,ou=users,@@DN@@" write by * read