有关如何创建目录服务条目的通用信息位于 Sun Directory Services 3.1 管理指南 中的第 5 章“加载和维护目录信息”。本节描述如何创建 Solaris for ISPs 所要求的指定条目的操作说明。
有关如何使用 Deja 工具创建目录条目的信息,请参阅 SunTM Internet AdministratorTM 联机帮助。
Sun Directory Services 有下列命令行实用程序用于创建和修改目录条目:
ldapadd
ldapmodify
ldapdelete
这些目录服务命令行实用程序需要根访问权。它们全部是以参考手册页的形式提供的(第 1 节)。
ldapadd 和 ldapmodify 都可以从命令行或指定文件获取输入。因为条目的信息可能相当长而复杂,随后的几节将描述要求文本文件的格式。
在各种情况下,创建一个(或多个)条目都需要下列步骤:
在各种情况下,ldapadd 命令的格式都应该是:
# ldapadd -D "BindDN" -w password -f file
其中 BindDN 为判别名 (DN),用于绑定到对目录树的这一部分具有写访问权的目录上, 而 password 为用于绑定的口令。将 file 选项替换为您已创建的 ldif 文件的名称。
对于您在命令行添加的每一条目,您都将创建一个 ldif 格式的文件以容纳该条目的信息。这些文件是简单文本文件,带有一个或多个由单个空行隔开的目录条目。每一条目的结构均如下例所示。
示例中只显示强制属性。绝大多数对象类都具有多个可选属性,可加以设置以适合您对该条目的特殊用途。
dn: ou=wcgate1,ou=eng,o=sun,c=US ou: wcgate1 associateddomain: wcgate1.eng.sun.com objectclass: organizationalUnit objectclass: domainRelatedObject
其中
指示正在创建的条目的判别名。
为正在创建的条目的命名属性。公用命名属性包括 commonName、organizationalUnit (ou) 和 domainComponent (dc)。
包含 DC 树中相应条目的域名(采用圆点记法)。有关 OSI 树和 DC 树如何交互作用的信息,请参阅 "Solaris for ISPs 目录结构"。至于为某个域创建两个相互参照的条目方面的指导,可参阅 "创建域条目"。
在此位置可以有多个“属性:值”(attribute:value) 对,每行一对。
为条目的对象类(类型)。可以有多个 objectClass 条目,本例显示两个。
有关可用的对象类和属性的更详细信息,请参阅本指南的 第 6 章,Solaris for ISPs 目录服务规划 以及 Sun Directory Services 3.1 管理指南 的第 8 章“配置目录规划”。
若要在目录中创建一个条目,您必须创建两个平行的域条目,一个在 OSI 树中,另一个在 DC 树中,然后在 OSI 树中的域条目下创建要求的 organizationalUnit 条目。
要在 eng.sun.com 下创建域 wcgate1,执行下列步骤:
编辑一个文本文件(例如,domain.ldif)并输入用于 OSI 树条目的数据:
dn: ou=wcgate1,ou=eng,o=sun,c=US ou: wcgate1 associateddomain: wcgate1.eng.sun.com objectclass: organizationalUnit objectclass: domainRelatedObject
请注意条目的 associatedDomain 属性包含使用圆点记法(DNS 式样)的 DC 树条目的名称。
向 domain.ldif 添加用于 DC 树条目的数据:
dn: dc=wcgate1,dc=eng,dc=sun,dc=com dc: wcgate1 associatedname: ou=wcgate1,ou=eng,o=sun,c=US description: DNS-to-DN Mapping for wcgate1.eng.sun.com labeleduri: ldap:///ou=wcgate1,ou=eng,o=sun,c=US??sub objectclass: domain objectclass: labeledURIObject
请注意条目的 associatedName 属性包含 OSI 树条目的判别名。 labeledURI 属性包含同样的信息(在 RFC 2255 中有具体说明)。
向 domain.ldif 添加数据以用于要求的 Services 组织单元条目:
dn: ou=Services,ou=wcgate1,ou=eng,o=sun,c=US ou: Services objectclass: organizationalUnit
向 domain.ldif 添加数据以用于要求的 People 组织单元条目:
dn: ou=People,ou=wcgate1,ou=eng,o=sun,c=US ou: People objectclass: organizationalUnit
向 domain.ldif 添加数据以用于要求的 Groups 组织单元条目:
dn: ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US ou: Groups objectclass: organizationalUnit
保存然后关闭 domain.ldif。
获得根访问权并使用以下命令将条目添加到目录,从而将绑定 DN 和口令替换为您自己的:
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f domain.ldif
当您完成 ldapadd后,目录外观类似于 图形 5-5。
Solaris for ISPs 订户分为几种类型:
一般(基本)订户
使用虚拟主机 FTP 或 Web 服务的订户
通过 RADIUS 服务器获取对服务的访问的订户
使用两者,且其目录条目要求 RADIUS 和 FTP 两种信息的订户
在以下几节中,为生成复杂的订户条目提供了操作说明,方法是先创建较为简单的条目再往里面进行添加。
在您能够创建订户条目之前,域和 People 组织单元条目必须已经存在。一旦您创建了这些条目,您即可编辑一个文本文件(例如, people.ldif),然后输入订户的数据。基本订户条目只有单个对象类 ispSubscriber 以及非常少的强制属性。基本订户的文件类似这样:
dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US commonname: Jane Doe (jldoe) sn: Doe uid: jldoe userpassword: hidden objectclass: ispSubscriber
其中
为订户条目的判别名。
为订户条目的命名属性 (ispSubscriber 对象类)。对于 Solaris for ISPs 订户和管理员,commonName 属性的值格式为 Firstname Lastname (userid)。
为订户的姓氏。
为订户的登录名。
为口令,限制为八个字符,如果您与 UNIX 帐户共享口令信息的话。此值是用您在目录服务管理控制台中设置的加密法生成的。
为该订户条目的对象类类型。
您可以通过向文件中添加带有不同属性值的数据块来创建任何数目的订户条目。完成之后,保存并关闭 people.ldif。获得根访问权并用以下命令向目录添加订户条目,将绑定 DN 和口令替换为您自己的:
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif
通过 SunTM Internet FTP ServerTM 和 SunTM WebServerTM (SWS) 得到的特殊配置的虚拟主机所要求的信息只向数据文件添加三个属性:
gidnumber: 60001 uidnumber: 60001 ispcontentdirectory: jldoe
其中
是为该用户在用于 FTP 和 Web 服务的虚拟主机域中指定的 UNIX 组 ID。
是为该用户在用于 FTP 和 Web 服务的虚拟主机域中指定的 UNIX 用户 ID。
是该订户的目录文件所在的位置(相对于关联域的文档根)。
为 uidNumber 和 gidNumber 属性设置值要求现有的 UNIX 帐户设置正确,以便能够共享对虚拟 FTP 域的访问。有关对虚拟主机配置进行定义的信息,请参阅 Sun Internet FTP Server 联机帮助。
您可以通过向文件中添加数据块来创建任何数目的订户条目。完成之后,保存并关闭 people.ldif。获得根访问权并用以下命令向目录添加订户条目,将绑定 DN 和口令替换为您自己的:
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif
若您已经创建这些条目,您必须执行一次 ldapmodify。找到 ldapmodify(1) 的手册页并遵照那些操作说明。
通过 RADIUS 服务器获得对 ISP 服务访问权的订户,其条目必须支持附加的对象类 (remoteUser) 并且已有若干属性被添加到条目信息中。
缺省的 Solaris for ISPs 配置指定根域作为对 RADIUS 订户条目的查找基础。若您的配置有所不同,请使用目录服务管理控制台来配置 RADIUS,并输入与您的查找基础相符的值。
ldif 文件中的附加行如下:
objectclass: remoteUser authsuffixname: @ispxpress grpcheckinfo: authSuffixName grpcheckinfo: userPassword authserviceprotocol: Framed-User framedrouting: None framedprotocol: PPP grpreplyinfo: authServiceProtocol grpreplyinfo: framedProtocol grpreplyinfo: framedRouting
其中
为使用 RADIUS 服务器访问服务的订户所要求的对象类。
为添加至订户用户名的后缀,它使 RADIUS 服务器得以区分不同域中带有相同 uid 的条目。请输入与指定的用户条目相符的后缀。
表明在选择要对比鉴别的条目之前 RADIUS 服务器应该验证 authSuffixName 的属性值。
表明在选择要对比鉴别的条目之前 RADIUS 服务器应该验证 userPassword 属性 值。
若您使用的是缺省 RADIUS 配置,请严格地按所示输入此属性。正确的值是由您的网络访问服务器的配置确定的。
若您使用的是缺省 RADIUS 配置,请严格地按所示输入此属性。正确的值是由您的网络访问服务器的配置确定的。
若您使用的是缺省 RADIUS 配置,请严格地按所示输入此属性。正确的值是由您的网络访问服务器的配置确定的。
命令 RADIUS 服务器将 authServiceProtocol 属性的值包含在其回复消息中。
命令 RADIUS 服务器将 framedProtocol 属性的值包含在其回复消息中。
命令 RADIUS 服务器将 framedRouting 属性的值包含在其回复消息中。
您可以通过向文件中添加数据块来创建任何数目的订户条目。完成之后,保存并关闭 people.ldif。 获得根访问权并用以下命令向目录添加订户条目,将绑定 DN 和口令替换为您自己的:
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f people.ldif
若您已经创建这些条目,您必须执行一次 ldapmodify。找到 ldapmodify(1) 的手册页并遵照那些操作说明。
复杂用户的完整的 ldif 文件类似这样:
dn: cn=Jane Doe (jldoe),ou=People,ou=wcgate1,ou=eng,o=sun,c=US commonname: Jane Doe (jldoe) sn: Doe uid: jldoe userpassword: hidden gidnumber: 60001 uidnumber: 60001 objectclass: ispSubscriber objectclass: remoteUser ispcontentdirectory: /home/users/jldoe authsuffixname: @ispxpress grpcheckinfo: authSuffixName grpcheckinfo: userPassword authserviceprotocol: Framed-User framedrouting: None framedprotocol: PPP grpreplyinfo: authServiceProtocol grpreplyinfo: framedProtocol grpreplyinfo: framedRouting
在能够创建组条目之前,一些条目必须已经存在:
两个域条目(OSI 和 DC 树)
Group 组织单元条目
将要成为组的成员的订户条目(在 People 节点下)。
一旦您创建了这些条目,您即可启动一个文本文件(例如,groups.ldif)并输入该组的数据。典型的数据集如下所示:
dn: cn=isp-gp1,ou=Groups,ou=wcgate1,ou=eng,o=sun,c=US cn: isp-grp1 objectclass: groupOfNames member: cn=Ed Anchor (anchor),ou=People,ou=wcgate1,ou=eng,o=sun,c=US member: cn=April Shower (showers),ou=People,ou=wcgate1,ou=eng,o=sun,c=US member: cn=Chili Jones (relleno),ou=People,ou=wcgate1,ou=eng,o=sun,c=US
其中
为要创建的组的判别名。
为组条目的相对判别名。
对象类 groupOfNames 区分这种类型的条目。
每个 member 属性都将某个已有订户条目的判别名作为它的值。
您可以通过向文件中添加数据块来创建任何数目的订户条目。完成之后,保存并关闭 groups.ldif。 获得根访问权并用以下命令向目录添加组,将绑定 DN 和口令替换为您自己的:
# ldapadd -D "cn=admin,o=sun,c=US" -w password -f groups.ldif