⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch19_03.htm

📁 by Randal L. Schwartz and Tom Phoenix ISBN 0-596-00132-0 Third Edition, published July 2001. (See
💻 HTM
字号:
<html><head><title>Adding an Entry to the Directory with Net::LDAP (Perl in a Nutshell, 2nd Edition)</title><link rel="stylesheet" type="text/css" href="../style/style1.css" /><meta name="DC.Creator" content="Stephen Spainhour" /><meta name="DC.Format" content="text/xml" scheme="MIME" /><meta name="DC.Language" content="en-US" /><meta name="DC.Publisher" content="O'Reilly &amp; Associates, Inc." /><meta name="DC.Source" scheme="ISBN" content="0596002416L" /><meta name="DC.Subject.Keyword" content="stuff" /><meta name="DC.Title" content="Perl in a Nutshell, 2nd Edition" /><meta name="DC.Type" content="Text.Monograph" /></head><body bgcolor="#ffffff"><img src="gifs/smbanner.gif" usemap="#banner-map" border="0" alt="Book Home" /><map name="banner-map"><area shape="rect" coords="1,-2,616,66" href="index.htm" alt="Java and XSLT" /><area shape="rect" coords="629,-11,726,25" href="jobjects/fsearch.htm" alt="Search this book" /></map><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch19_02.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228" /><td align="right" valign="top" width="228"><a href="ch19_04.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr></table></div><h2 class="sect1">19.3. Adding an Entry to the Directory with Net::LDAP</h2><p><a name="INDEX-2357" />Now that you'vesearched the directory with Net::LDAP, let's add anitem. In the previous example, you bound to the directoryanonymously, but when writing changes to the directory (that is,adding or deleting entries), you'll probably have tobind as an administrator or another user delegated with similarprivileges. In this example, we'll use"Directory Manager" as thedirectory administrator.</p><p>Adding to a directory with Net::LDAP is a two-phase process:</p><ol><li><p>Bind to the directory as a user who has privileges to write to thedirectory. In this instance, we'll use"Directory Manager".</p></li><li><p>Use <tt class="literal">Net::LDAP::add( )</tt> to add the entry.<tt class="literal">add()</tt><a name="INDEX-2358" />takes the parts of the record that you will add to the directory asarguments.</p></li></ol><p>This example, based on the following LDIF, uses <tt class="literal">add()</tt> to add an account for <tt class="literal">'nvp'</tt> to thedirectory:</p><blockquote><pre class="code">dn: uid=nvp,ou=People,o=your.domainuid: nvpcn: Nathan Patwardhangivenname: Nathansn: PatwardhanobjectClass: personobjectClass: organizationalPersonobjectClass: accountobjectClass: shadowAccountobjectClass: topuserPassword: {crypt}/-password-loginShell: /usr/bin/bashuidNumber: 1000gidNumber: 1000homeDirectory: /users/nvp</pre></blockquote><p>Here's the code:</p><blockquote><pre class="code">my $admin = q[cn=Directory Manager];my $ad_pw = q[adminpass];my $lsvr  = q[ldap.my.domain];my $org   = q[o=my.domain];my $o_ou  = q[ou=People];my $o_act = q[uid=nvp];my $ldap = Net::LDAP-&gt;new($lsvr);# Bind to a directory with DN and password$ldap-&gt;bind($admin, password =&gt; $ad_pw);my $l_rec = qq[$o_act, $o_ou, $org];$result = $ldap-&gt;add($l_rec,                   attr =&gt; [ 'cn'   =&gt; ['Nathan Patwardhan'],                             'sn'   =&gt;  'Patwardhan',                             'mail' =&gt; 'nvp@my.domain',                             'objectclass' =&gt; ['top', 'person', 'organizationalPerson', 'inetOrgPerson'],                             'gecos' =&gt; ['Nathan Patwardhan'],                             'loginShell' =&gt; '/usr/bin/bash',                             'uidNumber'  =&gt; 1000,                             'gidNumber'  =&gt; 1000,                             'shadowPass' =&gt; 'XXXXXXXXX'                           ]          );if($result-&gt;code) {    warn "failed to add entry: @{[$result-&gt;error]}";}$ldap-&gt;unbind;</pre></blockquote><hr width="684" align="left" /><div class="navbar"><table width="684" border="0"><tr><td align="left" valign="top" width="228"><a href="ch19_02.htm"><img src="../gifs/txtpreva.gif" alt="Previous" border="0" /></a></td><td align="center" valign="top" width="228"><a href="index.htm"><img src="../gifs/txthome.gif" alt="Home" border="0" /></a></td><td align="right" valign="top" width="228"><a href="ch19_04.htm"><img src="../gifs/txtnexta.gif" alt="Next" border="0" /></a></td></tr><tr><td align="left" valign="top" width="228">19.2. Searching an LDAP Directory with Net::LDAP</td><td align="center" valign="top" width="228"><a href="index/index.htm"><img src="../gifs/index.gif" alt="Book Index" border="0" /></a></td><td align="right" valign="top" width="228">19.4. Net::LDAP Methods</td></tr></table></div><hr width="684" align="left" /><img src="../gifs/navbar.gif" usemap="#library-map" border="0" alt="Library Navigation Links" /><p><p><font size="-1"><a href="copyrght.htm">Copyright &copy; 2002</a> O'Reilly &amp; Associates. All rights reserved.</font></p><map name="library-map"><area shape="rect" coords="1,0,85,94" href="../index.htm"><area shape="rect" coords="86,1,178,103" href="../lwp/index.htm"><area shape="rect" coords="180,0,265,103" href="../lperl/index.htm"><area shape="rect" coords="267,0,353,105" href="../perlnut/index.htm"><area shape="rect" coords="354,1,446,115" href="../prog/index.htm"><area shape="rect" coords="448,0,526,132" href="../tk/index.htm"><area shape="rect" coords="528,1,615,119" href="../cookbook/index.htm"><area shape="rect" coords="617,0,690,135" href="../pxml/index.htm"></map></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -