作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
一个object class定义了描述一个object所需的一组属性,例如,创建了一个object class tempEmployee ,其中就包含了与临时雇员相关的属性,比如idNumber, dateOfHire,
assignmentLength. object class的基本类型包含如下几种类型:
Groups
Locations
Organizations
People
1.定义object classes
定义一个objece classes,要通过定义它的特征类型、继承和属性来定义。
object class的类型:
第一个是:Structural
每一个入口必须从属于一个且仅一个Structural型的object class,它定义了这个入口的基本内容。这个object class反映了一个真实世界的object。这种类型是最常见的。
第二个是:Structural
这个类型被superclass或定义其他object class的模板所用。它定义了一组属性,这组属性是一组structural的object class所共有的。这些object class若是被定义为abstract class的子集,那么就继承了abstract class定义了的属性。
第三个是:Auxiliary
这个类型指定了一些可以与一个从属于某个特定structral object class的入口有关的属性。虽然一个入口只能属于一个单一的structural object class,但是它可以从属于auxiliary object classes。
2.object classes的继承
一个新的object class 可以带着父class和额外添加或修改的属性被定义。所有的object class都是从abstract object class开始继承的,称为top继承。它们也可以从其他object class继承。abstract object class定义了一系列一个特定入口需要和允许的属性。object class继承取决于object class定义的顺序。一个object class只能继承在它之前定义的object class
3.属性
每个object class都包含一组必须或可选的属性。
4.查看object class
idsldapsearch -b cn=schema -s base objectclass=* objectclasses
5.增加object class
idsldapmodify -D <admindn> -w <adminpw> -i <filename>
filename中包含如下信息:
dn: cn=Schema
changetype: modify
add: objectclasses
objectclasses: ( <myobjectclass-oid> NAME '<myobjectclass>' DESC '<An object class
I defined for my LDAP application>' SUP '<objectclassinheritance>'
<objectclasstype> MUST (<attribute1> $ <attribute2>)
MAY (<attribute3> $ <attribute4>) )
6.编辑一个object class
并不是所有的schema都允许被修改的,
idsldapmodify -D <admindn> -w <adminpw> -i <filename>
filename中指代的file是指
dn: cn=schema
changetype: modify
replace: objectclasses
objectclasses: ( <myobjectclass-oid> NAME '<myobjectclass>' DESC '<An object class
I defined for my LDAP application>' SUP '<newsuperiorclassobject>'
<newobjectclasstype> MUST (<attribute1> $ <attribute2>)
MAY (<attribute3> $ <attribute4>) )
在其中要注意对于cn=schema的入口的修改是与其他入口的行为不一样的,它只修改了相对应的值而对其他的所有的object class没有做出删除的动作。
7.复制object class
先查询在这个schema中所包含的object class,idsldapsearch -b cn=schema -s base objectclass=* objectclasses,选择你所要拷贝object class,设定脚本,执行
idsldapmodify -D <admindn> -w <adminpw> -i <filename>
脚本内容如下:
changetype: modify
replace: objectclasses
objectclasses: ( <mynewobjectclass-oid> NAME '<mynewobjectclass>'
DESC '<a>'
SUP '<superiorclassobject>'<objectclasstype>
MUST (<attribute1> $ <attribute2>)
MAY (>attribute3> $ <attribute4> $ <attribute3>) )
8.删除object class
并不是所有的object class都可以随意改动的。
idsldapmodify -D <admindn> -w <adminpw> -i <filename>
filename内容形如:
dn: cn=schema
changetype: modify
delete: objectclasses
objectclasses: ( <myobjectclass-oid> NAME '<myobjectclass>'
DESC '<an>'
SUP '<objectclassinheritance>' <objectclasstype>
MUST (<attribute1> $ <attribute2>) >
MAY (<attribute3> $ <attribute4>) )
作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。