2023年6月21日发(作者:)
LDAP学习笔记-LDIF初始状态下,LDAP是⼀个空⽬录,即没有任何数据。可通过程序代码向⽬录数据库中添加数据,也可使⽤OpenLDAP客户端⼯具ldapadd命令来完成添加数据的操作,该命令可将⼀个LDIF⽂件中的条⽬添加到⽬录。因此,需要⾸先创建⼀个LDIF⽂件,然后再进⾏添加操作。1.LDIF⽂本条⽬格式LDIF⽤⽂本格式表⽰⽬录数据库的信息,以⽅便⽤户创建、阅读和修改。在LDIF⽂件中,⼀个条⽬的基本格式如下:写道# 注释dn: 条⽬名属性描述: 值属性描述: 值属性描述: 值... ...dn⾏类似于关系数据库中⼀条记录的关键字,不能与其他dn重复。⼀个LDIF⽂件中可以包含多个条⽬,每个条⽬之间⽤⼀个空⾏分隔。例如,以下内容组成⼀个条⽬:写道dn: dc=dlw, dc=comobjectclass: topobjectclass: dcobjectobjectclass: organizationdc: dlwo: dlw,Inc.在以上⽂本中,各⾏含义如下:第1⾏的dn定义该条⽬的标识。第2~4⾏定义该条⽬的objectcCass,可以定义多个属性,如上⾯代码中定义了3个objectClass。条⽬的属性根据objectClass的不同⽽不同,有的objectClass有必须设置的属性。在2~4⾏的3个objectClass中,top没有必须定义的属性,dcobject必须定义属性dc,⽤来表⽰⼀个域名的部分,⽽organization必须定义属性o,⽤来表⽰⼀个组织的名称。根据objectClass的要求,第5、6⾏分别定义属性dc和属性o的值。2.了解objectClassLDAP中,⼀个条⽬必须包含⼀个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● posixGroup3.了解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。4.创建LDIF⽂件对以上内容有⼀定了解之后,就可以编写输⼊LDIF⽂件,编辑需要向⽬录数据库添加的条⽬了。下⾯根据如下图所⽰的结构,创建LDIF⽂件。对上图进⾏分析,该⽬录结构分为3层,有4个结点。根据上图可创建LDIF⽂件如下:提⽰:每个结点可⽤⼀个dn表⽰,对于每个结点,⼜可继续添加新的结点。如在根结点中可添加其他部门ou,在ou=managers结点也可继续添加其他管理⼈员的信息。写道dn:dc=dlw,dc=comobjectclass:topobjectclass:dcobjectobjectclass:organizationdc:dlwo:dlw,:ou=managers, dc=dlw, dc=comou:managersobjectclass:organizationalUnitdn:cn=dlw,ou=managers,dc=dlw,dc=comcn:dlwsn:dongliweiobjectclass:persondn:cn=test,ou=managers,dc=dlw,dc=comcn:testsn:Test Userobjectclass:person以上⽂件中各⾏的含义如下:第1~6⾏创建根结点,这部分在前⾯也有介绍,就不再重复了。第7、11、16⾏为空⾏,⽤来分隔4个dn条⽬(4个结点)。第8~10⾏定义cn=managers结点的条⽬,该条⽬的objectClass为organizationalUnit,因此需要⽤ou属性定义组织名称。第12~15⾏定义cn=dlw结点的条⽬,该条⽬使⽤的objectClass为person,因此需设置cn和sn两个属性值。第17~20⾏与第12~15⾏的意义相同。在以上LDIF⽂件中,第1、8、12、17⾏以dn开头,这部分内容必须唯⼀,并且在向⽬录数据库添加这些数据时,也要确保这些数据不能与⽬录数据库中已有数据相同,否则,添加操作将中断。5.从LDIF⽂件添加到⽬录数据库新增使⽤OpenLDAP客户端⼯具ldapadd命令,可将LDIF⽂件中的条⽬添加到⽬录数据库中,该命令的格式如下:ldappadd 选项 LDIF⽂件在ldappadd命令中常⽤的选项如下:-x:进⾏简单认证。-D:⽤来绑定服务器的dn。-h:⽬录服务的地址。-w:绑定dn的密码。-f:使⽤LDIF⽂件进⾏条⽬添加的⽂件。将前⾯编写的LDIF⽂件的条⽬数据添加到⽬录数据库中。具体操作步骤如下:(1)检查⽂件中的内容,需要注意的是,每个冒号后⾯都需要空⼀格,⽽每⾏结束处不能留有空格字符。(2)使⽤以下命令将⽂件中的条⽬添加到⽬录中:写道# ldapadd -x -D "cn=root,dc=dlw,dc=com" -w secret -f 执⾏以上命令,如果添加操作正常完成,将显⽰如下图所⽰的提⽰信息,表⽰添加了4个条⽬到⽬录数据库中。提⽰:如果以上命令执⾏不成功,需要逐个字符检查⽂件中的内容,特别注意空格的问题。查询添加到⽬录中的条⽬被保存在⽬录数据库,在Linux命令界⾯下,可使⽤OpenLDAP客户端⼯具ldapsearch命令来进⾏查询。该命令的格式如下:ldapsearch 选项 过滤 属性值常⽤的选项有以下⼏个:● -x:进⾏简单认证。● -D:⽤来绑定服务器的dn。● -w:绑定dn的密码。● -b:指定要查询的根节点。● -H:制定要查询的服务器。使⽤ldapsearch命令查询“dc=dlw, dc=com”下的所有条⽬,可使⽤以下命令:# ldapsearch -x -b "dc=dlw,dc=com"
执⾏结果如下图所⽰。⽽如果使⽤以下命令,将查询显⽰sn中以字符wu开头的条⽬,将得到如下图所⽰的查询结果,只找到⼀个条⽬。# ldapsearch -x -b "dc=dlw,dc=com" "sn=wu*"修改条⽬使⽤OpenLDAP客户端⼯具ldapmodify命令可对⽬录数据库中的条⽬进⾏修改。该命令的格式如下:ldapmodify 选项该命令的选项也很多,常⽤选项与ldapadd类似,这⾥就不再列出了。提⽰:使⽤ldapmodify命令不能修改条⽬的dn,但可以修改其他属性值。使⽤ldapmodify命令修改条⽬信息可以有两种⽅式:⼀种是交互式进⾏修改,另⼀种是通过⽂件进⾏修改。1.交互式修改修改前⾯创建的条⽬“cn=test, ou=managers, dc=dlw, dc=com”,将其sn属性修改为“Test User Modify”,并添加⼀个description属性,设置其值为“add Attribute”。⾸先输⼊以下命令,进⾏修改状态:# ldapmodify -x -D "cn=root,dc=dlw,dc=com" -W secret
执⾏以上命令后,终端将等候⽤户输⼊需要修改条⽬的dn,输⼊以下内容:dn: cn=test, ou=managers, dc=dlw, dc=com
changetype: modify
replace: sn
sn: Test User Modify 以上输⼊内容中,第1⾏查找需要修改的条⽬,第2⾏设置修改模式,第3⾏设置需要替换的属性sn,第4⾏给属性sn重新设置⼀个值,替换该属性原有的值。输⼊完以上内容之后再按Enter键,程序将按以上设置更新数据,然后按Ctrl+C键退出修改命令。执⾏过程如下图所⽰。使⽤以上命令修改条⽬的数据之后,可使⽤以下命令查看是否修改成功:# ldapsearch -x -b "dc=dlw,dc=com" "cn=test"执⾏以上命令查看test条⽬的数据如下图所⽰,可以看到sn属性被修改了。2.通过⽂件修改通过前⾯的⽅式对条⽬进⾏修改时,很不⽅便,如果在交互⽅式时输错了某个字符,只能中断命令后重新进⾏修改。因此,更好的修改⽅法是⾸先将修改时输⼊的⽂字保存到⼀个⽂件中,然后以该⽂件作为输⼊进⾏修改。⽤这种⽅式进⾏操作,⾸先需要创建⼀个临时⽂件,⽤来保存需要进⾏的修改操作,下⾯演⽰这种⽅式的修改过程。【例⼦】 通过修改命令将前⾯LDAP数据库中的信息还原,即将sn属性由“Test User Modify”修改为“Test User”。具体操作步骤如下:(1)使⽤vi编辑器创建⼀个⽂件modify,在其中输⼊以下内容:dn: cn=test,ou=managers,dc=dlw,dc=com
changetype: modify
replace: sn
sn: Test User
从以上输⼊内容可看到,与在交互式时输⼊的内容完全相同。技巧:使⽤⽂件⽅式修改条⽬,可⽅便修改和检查,若某个地⽅有输⼊错误,可修改后再调⽤ldapmodify进⾏修改,减少输⼊量。(2)使⽤以下命令调⽤modify的内容进⾏修改:# ldapmodify -x -D "cn=root,dc=dlw,dc=com" -w secret -f modify
执⾏结果如下图所⽰。删除条⽬对于⽬录数据库中不⽤的条⽬,也可使⽤ldapdelete命令将其删除。该命令的格式如下:ldapdelete 选项 删除条⽬该命令使⽤的选项与ldapadd类似,就不再列出来了。删除⽬录数据库中的“cn=test,ou=managers,dc=dlw,dc=com”条⽬,具体命令如下:# ldapdelete -x -D "cn=root,dc=dlw,dc=com" -w secret
> "cn=test,ou=managers,dc=dlw,dc=com"
顺利执⾏以上命令后,终端上将不会有任何信息输出,表⽰完成了删除操作。使⽤ldapdelete命令只能删除树形结构中的叶结点条⽬,如果删除⾮叶结点条⽬,将出现错误提⽰。例如,执⾏以下命令删除根结点“dc=dlw,dc=com”。# ldapdelete -x -D "cn=root,dc=dlw,dc=com" -w secret "dc=dlw,dc=com"由于根结点下⾯还有结点,将显⽰如下图所⽰的错误提⽰信息:数据导出通过ldapadd命令可向⽬录数据库中添加数据,在某些情况下,可能还需要进⾏反向操作,即将⽬录数据库中的数据导出。使⽤ldapsearch命令对⽬录数据库进⾏搜索,然后通过重定向将搜索结果保存到⼀个⽂件中,可达到导出数据的⽬的。另外,导出数据更常⽤的是slapcat命令,该命令的格式如下:slapcat 选项最常⽤的选项就是-l,表⽰导出为LDIF⽂件格式。如将本章前⾯例⼦中创建的⽬录数据库导出为⽂件,可使⽤以下命令:slapcat -l
执⾏以上命令将在当前⼯作⽬录得到⽂件,打开⽂件将显⽰如下图所⽰的内容:提⽰:从导出结果可看出,除了使⽤ldapadd命令添加到⽬录数据库中的条⽬数据外,还导出了很多其他信息,包括条⽬录UUID、时间戳等信息。
2023年6月21日发(作者:)
LDAP学习笔记-LDIF初始状态下,LDAP是⼀个空⽬录,即没有任何数据。可通过程序代码向⽬录数据库中添加数据,也可使⽤OpenLDAP客户端⼯具ldapadd命令来完成添加数据的操作,该命令可将⼀个LDIF⽂件中的条⽬添加到⽬录。因此,需要⾸先创建⼀个LDIF⽂件,然后再进⾏添加操作。1.LDIF⽂本条⽬格式LDIF⽤⽂本格式表⽰⽬录数据库的信息,以⽅便⽤户创建、阅读和修改。在LDIF⽂件中,⼀个条⽬的基本格式如下:写道# 注释dn: 条⽬名属性描述: 值属性描述: 值属性描述: 值... ...dn⾏类似于关系数据库中⼀条记录的关键字,不能与其他dn重复。⼀个LDIF⽂件中可以包含多个条⽬,每个条⽬之间⽤⼀个空⾏分隔。例如,以下内容组成⼀个条⽬:写道dn: dc=dlw, dc=comobjectclass: topobjectclass: dcobjectobjectclass: organizationdc: dlwo: dlw,Inc.在以上⽂本中,各⾏含义如下:第1⾏的dn定义该条⽬的标识。第2~4⾏定义该条⽬的objectcCass,可以定义多个属性,如上⾯代码中定义了3个objectClass。条⽬的属性根据objectClass的不同⽽不同,有的objectClass有必须设置的属性。在2~4⾏的3个objectClass中,top没有必须定义的属性,dcobject必须定义属性dc,⽤来表⽰⼀个域名的部分,⽽organization必须定义属性o,⽤来表⽰⼀个组织的名称。根据objectClass的要求,第5、6⾏分别定义属性dc和属性o的值。2.了解objectClassLDAP中,⼀个条⽬必须包含⼀个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● posixGroup3.了解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。4.创建LDIF⽂件对以上内容有⼀定了解之后,就可以编写输⼊LDIF⽂件,编辑需要向⽬录数据库添加的条⽬了。下⾯根据如下图所⽰的结构,创建LDIF⽂件。对上图进⾏分析,该⽬录结构分为3层,有4个结点。根据上图可创建LDIF⽂件如下:提⽰:每个结点可⽤⼀个dn表⽰,对于每个结点,⼜可继续添加新的结点。如在根结点中可添加其他部门ou,在ou=managers结点也可继续添加其他管理⼈员的信息。写道dn:dc=dlw,dc=comobjectclass:topobjectclass:dcobjectobjectclass:organizationdc:dlwo:dlw,:ou=managers, dc=dlw, dc=comou:managersobjectclass:organizationalUnitdn:cn=dlw,ou=managers,dc=dlw,dc=comcn:dlwsn:dongliweiobjectclass:persondn:cn=test,ou=managers,dc=dlw,dc=comcn:testsn:Test Userobjectclass:person以上⽂件中各⾏的含义如下:第1~6⾏创建根结点,这部分在前⾯也有介绍,就不再重复了。第7、11、16⾏为空⾏,⽤来分隔4个dn条⽬(4个结点)。第8~10⾏定义cn=managers结点的条⽬,该条⽬的objectClass为organizationalUnit,因此需要⽤ou属性定义组织名称。第12~15⾏定义cn=dlw结点的条⽬,该条⽬使⽤的objectClass为person,因此需设置cn和sn两个属性值。第17~20⾏与第12~15⾏的意义相同。在以上LDIF⽂件中,第1、8、12、17⾏以dn开头,这部分内容必须唯⼀,并且在向⽬录数据库添加这些数据时,也要确保这些数据不能与⽬录数据库中已有数据相同,否则,添加操作将中断。5.从LDIF⽂件添加到⽬录数据库新增使⽤OpenLDAP客户端⼯具ldapadd命令,可将LDIF⽂件中的条⽬添加到⽬录数据库中,该命令的格式如下:ldappadd 选项 LDIF⽂件在ldappadd命令中常⽤的选项如下:-x:进⾏简单认证。-D:⽤来绑定服务器的dn。-h:⽬录服务的地址。-w:绑定dn的密码。-f:使⽤LDIF⽂件进⾏条⽬添加的⽂件。将前⾯编写的LDIF⽂件的条⽬数据添加到⽬录数据库中。具体操作步骤如下:(1)检查⽂件中的内容,需要注意的是,每个冒号后⾯都需要空⼀格,⽽每⾏结束处不能留有空格字符。(2)使⽤以下命令将⽂件中的条⽬添加到⽬录中:写道# ldapadd -x -D "cn=root,dc=dlw,dc=com" -w secret -f 执⾏以上命令,如果添加操作正常完成,将显⽰如下图所⽰的提⽰信息,表⽰添加了4个条⽬到⽬录数据库中。提⽰:如果以上命令执⾏不成功,需要逐个字符检查⽂件中的内容,特别注意空格的问题。查询添加到⽬录中的条⽬被保存在⽬录数据库,在Linux命令界⾯下,可使⽤OpenLDAP客户端⼯具ldapsearch命令来进⾏查询。该命令的格式如下:ldapsearch 选项 过滤 属性值常⽤的选项有以下⼏个:● -x:进⾏简单认证。● -D:⽤来绑定服务器的dn。● -w:绑定dn的密码。● -b:指定要查询的根节点。● -H:制定要查询的服务器。使⽤ldapsearch命令查询“dc=dlw, dc=com”下的所有条⽬,可使⽤以下命令:# ldapsearch -x -b "dc=dlw,dc=com"
执⾏结果如下图所⽰。⽽如果使⽤以下命令,将查询显⽰sn中以字符wu开头的条⽬,将得到如下图所⽰的查询结果,只找到⼀个条⽬。# ldapsearch -x -b "dc=dlw,dc=com" "sn=wu*"修改条⽬使⽤OpenLDAP客户端⼯具ldapmodify命令可对⽬录数据库中的条⽬进⾏修改。该命令的格式如下:ldapmodify 选项该命令的选项也很多,常⽤选项与ldapadd类似,这⾥就不再列出了。提⽰:使⽤ldapmodify命令不能修改条⽬的dn,但可以修改其他属性值。使⽤ldapmodify命令修改条⽬信息可以有两种⽅式:⼀种是交互式进⾏修改,另⼀种是通过⽂件进⾏修改。1.交互式修改修改前⾯创建的条⽬“cn=test, ou=managers, dc=dlw, dc=com”,将其sn属性修改为“Test User Modify”,并添加⼀个description属性,设置其值为“add Attribute”。⾸先输⼊以下命令,进⾏修改状态:# ldapmodify -x -D "cn=root,dc=dlw,dc=com" -W secret
执⾏以上命令后,终端将等候⽤户输⼊需要修改条⽬的dn,输⼊以下内容:dn: cn=test, ou=managers, dc=dlw, dc=com
changetype: modify
replace: sn
sn: Test User Modify 以上输⼊内容中,第1⾏查找需要修改的条⽬,第2⾏设置修改模式,第3⾏设置需要替换的属性sn,第4⾏给属性sn重新设置⼀个值,替换该属性原有的值。输⼊完以上内容之后再按Enter键,程序将按以上设置更新数据,然后按Ctrl+C键退出修改命令。执⾏过程如下图所⽰。使⽤以上命令修改条⽬的数据之后,可使⽤以下命令查看是否修改成功:# ldapsearch -x -b "dc=dlw,dc=com" "cn=test"执⾏以上命令查看test条⽬的数据如下图所⽰,可以看到sn属性被修改了。2.通过⽂件修改通过前⾯的⽅式对条⽬进⾏修改时,很不⽅便,如果在交互⽅式时输错了某个字符,只能中断命令后重新进⾏修改。因此,更好的修改⽅法是⾸先将修改时输⼊的⽂字保存到⼀个⽂件中,然后以该⽂件作为输⼊进⾏修改。⽤这种⽅式进⾏操作,⾸先需要创建⼀个临时⽂件,⽤来保存需要进⾏的修改操作,下⾯演⽰这种⽅式的修改过程。【例⼦】 通过修改命令将前⾯LDAP数据库中的信息还原,即将sn属性由“Test User Modify”修改为“Test User”。具体操作步骤如下:(1)使⽤vi编辑器创建⼀个⽂件modify,在其中输⼊以下内容:dn: cn=test,ou=managers,dc=dlw,dc=com
changetype: modify
replace: sn
sn: Test User
从以上输⼊内容可看到,与在交互式时输⼊的内容完全相同。技巧:使⽤⽂件⽅式修改条⽬,可⽅便修改和检查,若某个地⽅有输⼊错误,可修改后再调⽤ldapmodify进⾏修改,减少输⼊量。(2)使⽤以下命令调⽤modify的内容进⾏修改:# ldapmodify -x -D "cn=root,dc=dlw,dc=com" -w secret -f modify
执⾏结果如下图所⽰。删除条⽬对于⽬录数据库中不⽤的条⽬,也可使⽤ldapdelete命令将其删除。该命令的格式如下:ldapdelete 选项 删除条⽬该命令使⽤的选项与ldapadd类似,就不再列出来了。删除⽬录数据库中的“cn=test,ou=managers,dc=dlw,dc=com”条⽬,具体命令如下:# ldapdelete -x -D "cn=root,dc=dlw,dc=com" -w secret
> "cn=test,ou=managers,dc=dlw,dc=com"
顺利执⾏以上命令后,终端上将不会有任何信息输出,表⽰完成了删除操作。使⽤ldapdelete命令只能删除树形结构中的叶结点条⽬,如果删除⾮叶结点条⽬,将出现错误提⽰。例如,执⾏以下命令删除根结点“dc=dlw,dc=com”。# ldapdelete -x -D "cn=root,dc=dlw,dc=com" -w secret "dc=dlw,dc=com"由于根结点下⾯还有结点,将显⽰如下图所⽰的错误提⽰信息:数据导出通过ldapadd命令可向⽬录数据库中添加数据,在某些情况下,可能还需要进⾏反向操作,即将⽬录数据库中的数据导出。使⽤ldapsearch命令对⽬录数据库进⾏搜索,然后通过重定向将搜索结果保存到⼀个⽂件中,可达到导出数据的⽬的。另外,导出数据更常⽤的是slapcat命令,该命令的格式如下:slapcat 选项最常⽤的选项就是-l,表⽰导出为LDIF⽂件格式。如将本章前⾯例⼦中创建的⽬录数据库导出为⽂件,可使⽤以下命令:slapcat -l
执⾏以上命令将在当前⼯作⽬录得到⽂件,打开⽂件将显⽰如下图所⽰的内容:提⽰:从导出结果可看出,除了使⽤ldapadd命令添加到⽬录数据库中的条⽬数据外,还导出了很多其他信息,包括条⽬录UUID、时间戳等信息。
发布评论