On Wed, Nov 03, 2010 at 01:19:26PM -0400, Ted Unangst wrote: > Am I missing something, or is there no documentation for the schema > files? man ldapd.conf tells me I can include additional schema files > via the schema keyword, but nothing tells me what to put in those > files.
Following diff attempts to documents the schema file syntax. Only a brief synopsis of the attribute type and object class syntax is given, the rest is referred to the RFC. I couldn't get the long synopsis lines to display as I wanted, so I'm hoping for some mdoc help :) -martin Index: ldapd.conf.5 =================================================================== RCS file: /cvs/src/usr.sbin/ldapd/ldapd.conf.5,v retrieving revision 1.11 diff -u -p -u -r1.11 ldapd.conf.5 --- ldapd.conf.5 3 Nov 2010 11:21:11 -0000 1.11 +++ ldapd.conf.5 3 Nov 2010 19:47:39 -0000 @@ -132,6 +132,9 @@ Password for the root user. Specified either in plain text, or in hashed format. .It schema Ar filename Add schema definitions from the specified file. +For a description of the schema file syntax see +.Sx SCHEMA +below. .El .Sh NAMESPACES A namespace is a subtree of the global X.500 DIT (Directory Information Tree), @@ -250,16 +253,79 @@ Typically used to allow users to modify Enable compression of entries and optionally specify compression level (0 - 9). By default, no compression is used. .El +.Sh SCHEMA +Schema files define the structure and format of entries in the directory tree. +There are three types of definitions in a schema file: +.Bl -tag -width Ds +.It attributetype +\*(lp +.Ar oid +.Op NAME name +.Op DESC description +.Op OBSOLETE +.Op SUP oid +.Op EQUALITY oid +.Op ORDERING oid +.Op SUBSTR oid +.Op SYNTAX oid +.Op SINGLE-VALUE +.Op COLLECTIVE +.Op NO-USER-MODIFICATION +.Op USAGE Brq userApplications | directoryOperation | distributedOperation | dSAOperation +\*(rp +.Pp +An attribute type definition specifies the syntax of attribute values, whether +it allows multiple values and how it can be compared in search requests. +For a complete description of attribute type defitions, see section +4.1.2 in RFC 4712. +.It objectclass +\*(lp +.Ar oid +.Op NAME name +.Op DESC description +.Op OBSOLETE +.Op SUP oids +.Op Brq ABSTRACT | STRUCTURAL | AUXILIARY +.Op MUST oids +.Op MAY oids +\*(rp +.Pp +An object class definition specifies which attributes are required +and which are allowed. +For a complete description of object class definitions, see section +4.1.1 in RFC 4712. +.It objectidentifier Ar symbolic-name Ar OID +Defines a symbolic name for the object identifier. +A symbolic name can be used in place of a numeric OID in definitions +of attribute types, object classes and other symbolic OIDs. +A descendant OID can be defined in terms of another symbolic OID by appending +a numeric OID after a colon, for example: +.Bd -literal -offset indent +objectidentifier MyOidRoot 1.2.3.4 +objectidentifier MyOidAttributes MyOidRoot:5.6 +objectidentifier MyOidObjects MyOidRoot:7 +.Ed +.Pp +This would define MyOidAttributes as a symbolic name for the OID +1.2.3.4.5.6, and MyOidObjects for 1.2.3.4.7. +.El .Sh FILES .Bl -tag -width "/etc/ldap/ldapd.confXXX" -compact .It Pa /etc/ldapd.conf Default .Xr ldapd 8 configuration file. +.It Pa /etc/ldap/*.schema +Default schema definition files. .El .Sh SEE ALSO .Xr ldapctl 8 , .Xr ldapd 8 +.Rs +.%R RFC 4512 +.%T Lightweight Directory Access Protocol (LDAP): Directory Information Models +.%D June 2006 +.Re .Sh HISTORY The .Nm