LDAP中,一个条目必须包含一个objectClass属性,且需要赋予至少一个值。每一个值将用作一条LDAP条目进行数据存储的模板;模板中包含了一个条目必须被赋值的属性和可选的属性。
objectClass有着严格的等级之分,最顶层是top和alias。例如,organizationalPerson这个objectClass就隶属于person,而person又隶属于top。
objectClass可分为以下3类:
- 结构型(Structural) :如person和organizationUnit;
- 辅助型(Auxiliary) :如extensibeObject;
- 抽象型(Abstract) :如top,抽象型的objectClass不能直接使用。
在OpenLDAP的schema中定义了很多objectClass,下面列出部分常用的objectClass的名称。
● account ● alias ● dcobject ● domain ● ipHost ● organization ● organizationalRole ● organizationalUnit ● person ● organizationalPerson ● inetOrgPerson ● residentialPerson ● posixAccount ● posixGroup
3.了解Attribute
属性(Attribute)类似于程序设计中的变量,可以被赋值。在OpenLDAP中声明了许多常用的Attribute(用户也可自己定义Attribute)。常见的Attribute含义如下: ● c:国家。 ● cn:common name,指一个对象的名字。如果指人,需要使用其全名。 ● dc:domain Component,常用来指一个域名的一部分。 ● givenName:指一个人的名字,不能用来指姓。 ● l:指一个地名,如一个城市或者其他地理区域的名字。 ● mail:电子信箱地址。 ● o:organizationName,指一个组织的名字。 ● ou:organizationalUnitName,指一个组织单元的名字。 ● sn:surname,指一个人的姓。 ● telephoneNumber:电话号码,应该带有所在的国家的代码。 ● uid:userid,通常指某个用户的登录名,与Linux系统中用户的uid不同。
提示:objectClass是一种特殊的Attribute,它包含其他用到的Attribute以及其自身。
对于不同的objectClass,通常具有一些必设属性值和一些可选属性值。例如,可使用person这个objectClass来表示系统中一个用户的条目,对于系统中用户通常需要有这样一些信息:姓名、电话、密码、描述等。如下图所示,对于person,通过cn和sn设置用户的名和姓,这是必须设置的,而其他属性则是可选的。
下面列出部分常用objectClass要求必设的属性。
● account:userid。 ● organization:o。 ● person:cn和sn。 ● organizationalPerson:与person相同。 ● organizationalRole:cn。 ● organizationUnit:ou。 ● posixGroup:cn、gidNumber。 ● posixAccount:cn、gidNumber、homeDirectory、uid、uidNumber。