| 1 | <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 5. Making Happy Users</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.75.2"><link rel="home" href="index.html" title="Samba-3 by Example"><link rel="up" href="ExNetworks.html" title="Part I. Example Network Configurations"><link rel="prev" href="Big500users.html" title="Chapter 4. The 500-User Office"><link rel="next" href="net2000users.html" title="Chapter 6. A Distributed 2000-User Network"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Making Happy Users</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="Big500users.html">Prev</a> </td><th width="60%" align="center">Part I. Example Network Configurations</th><td width="20%" align="right"> <a accesskey="n" href="net2000users.html">Next</a></td></tr></table><hr></div><div class="chapter" title="Chapter 5. Making Happy Users"><div class="titlepage"><div><div><h2 class="title"><a name="happy"></a>Chapter 5. Making Happy Users</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="happy.html#id341339">Regarding LDAP Directories and Windows Computer Accounts</a></span></dt><dt><span class="sect1"><a href="happy.html#id341463">Introduction</a></span></dt><dd><dl><dt><span class="sect2"><a href="happy.html#id341540">Assignment Tasks</a></span></dt></dl></dd><dt><span class="sect1"><a href="happy.html#id341668">Dissection and Discussion</a></span></dt><dd><dl><dt><span class="sect2"><a href="happy.html#id342070">Technical Issues</a></span></dt><dt><span class="sect2"><a href="happy.html#id343725">Political Issues</a></span></dt><dt><span class="sect2"><a href="happy.html#id343737">Installation Checklist</a></span></dt></dl></dd><dt><span class="sect1"><a href="happy.html#id343908">Samba Server Implementation</a></span></dt><dd><dl><dt><span class="sect2"><a href="happy.html#ldapsetup">OpenLDAP Server Configuration</a></span></dt><dt><span class="sect2"><a href="happy.html#sbehap-PAM-NSS">PAM and NSS Client Configuration</a></span></dt><dt><span class="sect2"><a href="happy.html#sbehap-massive">Samba-3 PDC Configuration</a></span></dt><dt><span class="sect2"><a href="happy.html#sbeidealx">Install and Configure Idealx smbldap-tools Scripts</a></span></dt><dt><span class="sect2"><a href="happy.html#id346546">LDAP Initialization and Creation of User and Group Accounts</a></span></dt><dt><span class="sect2"><a href="happy.html#sbehap-ptrcfg">Printer Configuration</a></span></dt></dl></dd><dt><span class="sect1"><a href="happy.html#sbehap-bldg1">Samba-3 BDC Configuration</a></span></dt><dt><span class="sect1"><a href="happy.html#id350178">Miscellaneous Server Preparation Tasks</a></span></dt><dd><dl><dt><span class="sect2"><a href="happy.html#id350194">Configuring Directory Share Point Roots</a></span></dt><dt><span class="sect2"><a href="happy.html#id350283">Configuring Profile Directories</a></span></dt><dt><span class="sect2"><a href="happy.html#id350512">Preparation of Logon Scripts</a></span></dt><dt><span class="sect2"><a href="happy.html#id350609">Assigning User Rights and Privileges</a></span></dt></dl></dd><dt><span class="sect1"><a href="happy.html#id350723">Windows Client Configuration</a></span></dt><dd><dl><dt><span class="sect2"><a href="happy.html#redirfold">Configuration of Default Profile with Folder Redirection</a></span></dt><dt><span class="sect2"><a href="happy.html#id351441">Configuration of MS Outlook to Relocate PST File</a></span></dt><dt><span class="sect2"><a href="happy.html#id351724">Configure Delete Cached Profiles on Logout</a></span></dt><dt><span class="sect2"><a href="happy.html#id351896">Uploading Printer Drivers to Samba Servers</a></span></dt><dt><span class="sect2"><a href="happy.html#id352365">Software Installation</a></span></dt><dt><span class="sect2"><a href="happy.html#id352391">Roll-out Image Creation</a></span></dt></dl></dd><dt><span class="sect1"><a href="happy.html#id352420">Key Points Learned</a></span></dt><dt><span class="sect1"><a href="happy.html#id352508">Questions and Answers</a></span></dt></dl></div><p>
|
|---|
| 2 | It is said that <span class="quote">“<span class="quote">a day that is without troubles is not fulfilling. Rather, give
|
|---|
| 3 | me a day of troubles well handled so that I can be content with my achievements.</span>”</span>
|
|---|
| 4 | </p><p>
|
|---|
| 5 | In the world of computer networks, problems are as varied as the people who create them
|
|---|
| 6 | or experience them. The design of the network implemented in <a class="link" href="Big500users.html" title="Chapter 4. The 500-User Office">“The 500-User Office”</a>
|
|---|
| 7 | may create problems for some network users. The following lists some of the problems that
|
|---|
| 8 | may occur:
|
|---|
| 9 | </p><a class="indexterm" name="id340972"></a><a class="indexterm" name="id340978"></a><a class="indexterm" name="id340987"></a><a class="indexterm" name="id340994"></a><a class="indexterm" name="id341000"></a><div class="caution" title="Caution" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Caution</h3><p>
|
|---|
| 10 | A significant number of network administrators have responded to the guidance given
|
|---|
| 11 | here. It should be noted that there are sites that have a single PDC for many hundreds of
|
|---|
| 12 | concurrent network clients. Network bandwidth, network bandwidth utilization, and server load
|
|---|
| 13 | are among the factors that determine the maximum number of Windows clients that
|
|---|
| 14 | can be served by a single domain controller (PDC or BDC) on a network segment. It is possible
|
|---|
| 15 | to operate with only a single PDC over a routed network. What is possible is not necessarily
|
|---|
| 16 | <span class="emphasis"><em>best practice</em></span>. When Windows client network logons begin to fail with
|
|---|
| 17 | the message that the domain controller cannot be found or that the user account cannot
|
|---|
| 18 | be found (when you know it exists), that may be an indication that the domain controller is
|
|---|
| 19 | overloaded or network bandwidth is overloaded. The guidance given for PDC/BDC ratio to Windows
|
|---|
| 20 | clients is conservative and if followed will minimize problems but it is not absolute.
|
|---|
| 21 | </p></div><div class="variablelist"><dl><dt><span class="term">Users experiencing difficulty logging onto the network</span></dt><dd><p>
|
|---|
| 22 | <a class="indexterm" name="id341038"></a>
|
|---|
| 23 | <a class="indexterm" name="id341046"></a>
|
|---|
| 24 | When a Windows client logs onto the network, many data packets are exchanged
|
|---|
| 25 | between the client and the server that is providing the network logon services.
|
|---|
| 26 | Each request between the client and the server must complete within a specific
|
|---|
| 27 | time limit. This is one of the primary factors that govern the installation of
|
|---|
| 28 | multiple domain controllers (usually called secondary or backup controllers).
|
|---|
| 29 | As a rough rule, there should be one such backup controller for every
|
|---|
| 30 | 30 to 150 clients. The actual limits are determined by network operational
|
|---|
| 31 | characteristics.
|
|---|
| 32 | </p><p>
|
|---|
| 33 | <a class="indexterm" name="id341061"></a>
|
|---|
| 34 | <a class="indexterm" name="id341068"></a>
|
|---|
| 35 | <a class="indexterm" name="id341074"></a>
|
|---|
| 36 | If the domain controller provides only network logon services
|
|---|
| 37 | and all file and print activity is handled by domain member servers, one domain
|
|---|
| 38 | controller per 150 clients on a single network segment may suffice. In any
|
|---|
| 39 | case, it is highly recommended to have a minimum of one domain controller (PDC or BDC)
|
|---|
| 40 | per network segment. It is better to have at least one BDC on the network
|
|---|
| 41 | segment that has a PDC. If the domain controller is also used as a file and
|
|---|
| 42 | print server, the number of clients it can service reliably is reduced,
|
|---|
| 43 | and generally for low powered hardware should not exceed 30 machines (Windows
|
|---|
| 44 | workstations plus domain member servers) per domain controller. Many sites are
|
|---|
| 45 | able to operate with more clients per domain controller, the number of clients
|
|---|
| 46 | that can be supported is limited by the CPU speed, memory and the workload on
|
|---|
| 47 | the Samba server as well as network bandwidth utilization.
|
|---|
| 48 | </p></dd><dt><span class="term">Slow logons and log-offs</span></dt><dd><p>
|
|---|
| 49 | <a class="indexterm" name="id341100"></a>
|
|---|
| 50 | Slow logons and log-offs may be caused by many factors that include:
|
|---|
| 51 |
|
|---|
| 52 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
|---|
| 53 | <a class="indexterm" name="id341113"></a>
|
|---|
| 54 | <a class="indexterm" name="id341125"></a>
|
|---|
| 55 | Excessive delays in the resolution of a NetBIOS name to its IP
|
|---|
| 56 | address. This may be observed when an overloaded domain controller
|
|---|
| 57 | is also the WINS server. Another cause may be the failure to use
|
|---|
| 58 | a WINS server (this assumes that there is a single network segment).
|
|---|
| 59 | </p></li><li class="listitem"><p>
|
|---|
| 60 | <a class="indexterm" name="id341141"></a>
|
|---|
| 61 | <a class="indexterm" name="id341147"></a>
|
|---|
| 62 | <a class="indexterm" name="id341154"></a>
|
|---|
| 63 | Network traffic collisions due to overloading of the network
|
|---|
| 64 | segment. One short-term workaround to this may be to replace
|
|---|
| 65 | network HUBs with Ethernet switches.
|
|---|
| 66 | </p></li><li class="listitem"><p>
|
|---|
| 67 | <a class="indexterm" name="id341167"></a>
|
|---|
| 68 | Defective networking hardware. Over the past few years, we have seen
|
|---|
| 69 | on the Samba mailing list a significant increase in the number of
|
|---|
| 70 | problems that were traced to a defective network interface controller,
|
|---|
| 71 | a defective HUB or Ethernet switch, or defective cabling. In most cases,
|
|---|
| 72 | it was the erratic nature of the problem that ultimately pointed to
|
|---|
| 73 | the cause of the problem.
|
|---|
| 74 | </p></li><li class="listitem"><p>
|
|---|
| 75 | <a class="indexterm" name="id341184"></a>
|
|---|
| 76 | <a class="indexterm" name="id341193"></a>
|
|---|
| 77 | Excessively large roaming profiles. This type of problem is typically
|
|---|
| 78 | the result of poor user education as well as poor network management.
|
|---|
| 79 | It can be avoided by users not storing huge quantities of email in
|
|---|
| 80 | MS Outlook PST files as well as by not storing files on the desktop.
|
|---|
| 81 | These are old bad habits that require much discipline and vigilance
|
|---|
| 82 | on the part of network management.
|
|---|
| 83 | </p></li><li class="listitem"><p>
|
|---|
| 84 | <a class="indexterm" name="id341210"></a>
|
|---|
| 85 | You should verify that the Windows XP WebClient service is not running.
|
|---|
| 86 | The use of the WebClient service has been implicated in many Windows
|
|---|
| 87 | networking-related problems.
|
|---|
| 88 | </p></li></ul></div><p>
|
|---|
| 89 | </p></dd><dt><span class="term">Loss of access to network drives and printer resources</span></dt><dd><p>
|
|---|
| 90 | Loss of access to network resources during client operation may be caused by a number
|
|---|
| 91 | of factors, including:
|
|---|
| 92 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
|---|
| 93 | <a class="indexterm" name="id341240"></a>
|
|---|
| 94 | Network overload (typically indicated by a high network collision rate)
|
|---|
| 95 | </p></li><li class="listitem"><p>
|
|---|
| 96 | Server overload
|
|---|
| 97 | </p></li><li class="listitem"><p>
|
|---|
| 98 | <a class="indexterm" name="id341258"></a>
|
|---|
| 99 | Timeout causing the client to close a connection that is in use but has
|
|---|
| 100 | been latent (no traffic) for some time (5 minutes or more)
|
|---|
| 101 | </p></li><li class="listitem"><p>
|
|---|
| 102 | <a class="indexterm" name="id341273"></a>
|
|---|
| 103 | Defective networking hardware
|
|---|
| 104 | </p></li></ul></div><p>
|
|---|
| 105 | <a class="indexterm" name="id341287"></a>
|
|---|
| 106 | No matter what the cause, a sudden loss of access to network resources can
|
|---|
| 107 | result in BSOD (blue screen of death) situations that necessitate rebooting of the client
|
|---|
| 108 | workstation. In the case of a mild problem, retrying to access the network drive of the printer
|
|---|
| 109 | may restore operations, but in any case this is a serious problem that may lead to the next
|
|---|
| 110 | problem, data corruption.
|
|---|
| 111 | </p></dd><dt><span class="term">Potential data corruption</span></dt><dd><p>
|
|---|
| 112 | <a class="indexterm" name="id341314"></a>
|
|---|
| 113 | Data corruption is one of the most serious problems. It leads to uncertainty, anger, and
|
|---|
| 114 | frustration, and generally precipitates immediate corrective demands. Management response
|
|---|
| 115 | to this type of problem may be rational, as well as highly irrational. There have been
|
|---|
| 116 | cases where management has fired network staff for permitting this situation to occur without
|
|---|
| 117 | immediate correction. There have been situations where perfectly functional hardware was thrown
|
|---|
| 118 | out and replaced, only to find the problem caused by a low-cost network hardware item. There
|
|---|
| 119 | have been cases where server operating systems were replaced, or where Samba was updated,
|
|---|
| 120 | only to later isolate the problem due to defective client software.
|
|---|
| 121 | </p></dd></dl></div><p>
|
|---|
| 122 | In this chapter, you can work through a number of measures that significantly arm you to
|
|---|
| 123 | anticipate and combat network performance issues. You can work through complex and thorny
|
|---|
| 124 | methods to improve the reliability of your network environment, but be warned that all such steps
|
|---|
| 125 | demand the price of complexity.
|
|---|
| 126 | </p><div class="sect1" title="Regarding LDAP Directories and Windows Computer Accounts"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id341339"></a>Regarding LDAP Directories and Windows Computer Accounts</h2></div></div></div><p>
|
|---|
| 127 | <a class="indexterm" name="id341347"></a>
|
|---|
| 128 | Computer (machine) accounts can be placed wherever you like in an LDAP directory subject to some
|
|---|
| 129 | constraints that are described in this section.
|
|---|
| 130 | </p><p>
|
|---|
| 131 | <a class="indexterm" name="id341361"></a>
|
|---|
| 132 | <a class="indexterm" name="id341367"></a>
|
|---|
| 133 | <a class="indexterm" name="id341374"></a>
|
|---|
| 134 | <a class="indexterm" name="id341381"></a>
|
|---|
| 135 | The POSIX and SambaSAMAccount components of computer (machine) accounts are both used by Samba.
|
|---|
| 136 | That is, machine accounts are treated inside Samba in the same way that Windows NT4/200X treats
|
|---|
| 137 | them. A user account and a machine account are indistinguishable from each other, except that
|
|---|
| 138 | the machine account ends in a $ character, as do trust accounts.
|
|---|
| 139 | </p><p>
|
|---|
| 140 | <a class="indexterm" name="id341394"></a>
|
|---|
| 141 | <a class="indexterm" name="id341401"></a>
|
|---|
| 142 | The need for Windows user, group, machine, trust, and other such accounts to be tied to a valid UNIX UID
|
|---|
| 143 | is a design decision that was made a long way back in the history of Samba development. It is
|
|---|
| 144 | unlikely that this decision will be reversed or changed during the remaining life of the
|
|---|
| 145 | Samba-3.x series.
|
|---|
| 146 | </p><p>
|
|---|
| 147 | <a class="indexterm" name="id341414"></a>
|
|---|
| 148 | <a class="indexterm" name="id341420"></a>
|
|---|
| 149 | The resolution of a UID from the Windows SID is achieved within Samba through a mechanism that
|
|---|
| 150 | must refer back to the host operating system on which Samba is running. The name service
|
|---|
| 151 | switch (NSS) is the preferred mechanism that shields applications (like Samba) from the
|
|---|
| 152 | need to know everything about every host OS it runs on.
|
|---|
| 153 | </p><p>
|
|---|
| 154 | Samba asks the host OS to provide a UID via the <span class="quote">“<span class="quote">passwd</span>”</span>, <span class="quote">“<span class="quote">shadow</span>”</span>
|
|---|
| 155 | and <span class="quote">“<span class="quote">group</span>”</span> facilities in the NSS control (configuration) file. The best tool
|
|---|
| 156 | for achieving this is left up to the UNIX administrator to determine. It is not imposed by
|
|---|
| 157 | Samba. Samba provides winbindd together with its support libraries as one method. It is
|
|---|
| 158 | possible to do this via LDAP, and for that Samba provides the appropriate hooks so that
|
|---|
| 159 | all account entities can be located in an LDAP directory.
|
|---|
| 160 | </p><p>
|
|---|
| 161 | <a class="indexterm" name="id341451"></a>
|
|---|
| 162 | For many the weapon of choice is to use the PADL nss_ldap utility. This utility must
|
|---|
| 163 | be configured so that computer accounts can be resolved to a POSIX/UNIX account UID. That
|
|---|
| 164 | is fundamentally an LDAP design question. The information provided on the Samba list and
|
|---|
| 165 | in the documentation is directed at providing working examples only. The design
|
|---|
| 166 | of an LDAP directory is a complex subject that is beyond the scope of this documentation.
|
|---|
| 167 | </p></div><div class="sect1" title="Introduction"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id341463"></a>Introduction</h2></div></div></div><p>
|
|---|
| 168 | You just opened an email from Christine that reads:
|
|---|
| 169 | </p><p>
|
|---|
| 170 | Good morning,
|
|---|
| 171 | </p><div class="blockquote"><table border="0" width="100%" cellspacing="0" cellpadding="0" class="blockquote" summary="Block quote"><tr><td width="10%" valign="top"> </td><td width="80%" valign="top"><p>
|
|---|
| 172 | A few months ago we sat down to design the network. We discussed the challenges ahead and we all
|
|---|
| 173 | agreed to compromise our design to keep it simple. We knew there would be problems, but anticipated
|
|---|
| 174 | that we would have some time to resolve any issues that might be encountered.
|
|---|
| 175 | </p><p>
|
|---|
| 176 | As you now know, we started off on the wrong foot. We have a lot of unhappy users. One of them
|
|---|
| 177 | resigned yesterday afternoon because she was under duress to complete some critical projects. She
|
|---|
| 178 | suffered a blue screen of death situation just as she was finishing four hours of intensive work, all
|
|---|
| 179 | of which was lost. She has a unique requirement that involves storing large files on her desktop.
|
|---|
| 180 | Mary's desktop profile is nearly 1 GB in size. As a result of her desktop configuration, it
|
|---|
| 181 | takes her nearly 15 minutes just to log onto her workstation. But that is not enough. Because all
|
|---|
| 182 | network logon traffic passes over the network links between our buildings, logging on may take
|
|---|
| 183 | three or four attempts due to blue screen problems associated with network timeouts.
|
|---|
| 184 | </p><p>
|
|---|
| 185 | A few of us worked to help her out of trouble. We convinced her to stay and promised to fully
|
|---|
| 186 | resolve the difficulties she is facing. We have no choice. We must implement LDAP and set hard
|
|---|
| 187 | limits on what our users can do with their desktops. Otherwise, we face staff losses
|
|---|
| 188 | that can surely do harm to our growth as well as to staff morale. I am sure we can better deal
|
|---|
| 189 | with the consequences of what we know we must do than we can with the unrest we have now.
|
|---|
| 190 | </p><p>
|
|---|
| 191 | Stan and I have discussed the current situation. We are resolved to help our users and protect
|
|---|
| 192 | the well being of Abmas. Please acknowledge this advice with consent to proceed as required to
|
|---|
| 193 | regain control of our vital IT operations.
|
|---|
| 194 | </p></td><td width="10%" valign="top"> </td></tr><tr><td width="10%" valign="top"> </td><td colspan="2" align="right" valign="top">--<span class="attribution">Christine</span></td></tr></table></div><p>
|
|---|
| 195 | </p><p>
|
|---|
| 196 | <a class="indexterm" name="id341510"></a>
|
|---|
| 197 | <a class="indexterm" name="id341517"></a>
|
|---|
| 198 | Every compromise has consequences. Having a large routed (i.e., multisegment) network with only a
|
|---|
| 199 | single domain controller is a poor design that has obvious operational effects that may
|
|---|
| 200 | frustrate users. Here is your reply:
|
|---|
| 201 | </p><div class="blockquote"><table border="0" width="100%" cellspacing="0" cellpadding="0" class="blockquote" summary="Block quote"><tr><td width="10%" valign="top"> </td><td width="80%" valign="top"><p>
|
|---|
| 202 | Christine, Your diligence and attention to detail are much valued. Stan and I fully support your
|
|---|
| 203 | proposals to resolve the issues. I am confident that your plans fully realized will significantly
|
|---|
| 204 | boost staff morale. Please go ahead with your plans. If you have any problems, please let me know.
|
|---|
| 205 | Please let Stan know what the estimated cost will be so I can approve the expense. Do not wait
|
|---|
| 206 | for approval; I appreciate the urgency.
|
|---|
| 207 | </p></td><td width="10%" valign="top"> </td></tr><tr><td width="10%" valign="top"> </td><td colspan="2" align="right" valign="top">--<span class="attribution">Bob</span></td></tr></table></div><div class="sect2" title="Assignment Tasks"><div class="titlepage"><div><div><h3 class="title"><a name="id341540"></a>Assignment Tasks</h3></div></div></div><p>
|
|---|
| 208 | The priority of assigned tasks in this chapter is:
|
|---|
| 209 | </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
|
|---|
| 210 | <a class="indexterm" name="id341559"></a>
|
|---|
| 211 | <a class="indexterm" name="id341568"></a>
|
|---|
| 212 | <a class="indexterm" name="id341575"></a>
|
|---|
| 213 | <a class="indexterm" name="id341582"></a><a class="indexterm" name="id341587"></a>
|
|---|
| 214 | Implement Backup Domain Controllers (BDCs) in each building. This involves
|
|---|
| 215 | a change from a <span class="emphasis"><em>tdbsam</em></span> backend that was used in the previous
|
|---|
| 216 | chapter to an LDAP-based backend.
|
|---|
| 217 | </p><p>
|
|---|
| 218 | You can implement a single central LDAP server for this purpose.
|
|---|
| 219 | </p></li><li class="listitem"><p>
|
|---|
| 220 | <a class="indexterm" name="id341608"></a>
|
|---|
| 221 | <a class="indexterm" name="id341614"></a>
|
|---|
| 222 | <a class="indexterm" name="id341621"></a>
|
|---|
| 223 | <a class="indexterm" name="id341628"></a>
|
|---|
| 224 | Rectify the problem of excessive logon times. This involves redirection of
|
|---|
| 225 | folders to network shares as well as modification of all user desktops to
|
|---|
| 226 | exclude the redirected folders from being loaded at login time. You can also
|
|---|
| 227 | create a new default profile that can be used for all new users.
|
|---|
| 228 | </p></li></ol></div><p>
|
|---|
| 229 | <a class="indexterm" name="id341644"></a>
|
|---|
| 230 | You configure a new MS Windows XP Professional workstation disk image that you roll out
|
|---|
| 231 | to all desktop users. The instructions you have created are followed on a staging machine
|
|---|
| 232 | from which all changes can be carefully tested before inflicting them on your network users.
|
|---|
| 233 | </p><p>
|
|---|
| 234 | <a class="indexterm" name="id341657"></a>
|
|---|
| 235 | This is the last network example in which specific mention of printing is made. The example
|
|---|
| 236 | again makes use of the CUPS printing system.
|
|---|
| 237 | </p></div></div><div class="sect1" title="Dissection and Discussion"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id341668"></a>Dissection and Discussion</h2></div></div></div><p>
|
|---|
| 238 | <a class="indexterm" name="id341676"></a>
|
|---|
| 239 | <a class="indexterm" name="id341682"></a>
|
|---|
| 240 | <a class="indexterm" name="id341689"></a>
|
|---|
| 241 | The implementation of Samba BDCs necessitates the installation and configuration of LDAP.
|
|---|
| 242 | For this site, you use OpenLDAP, the open source software LDAP server platform. Commercial
|
|---|
| 243 | LDAP servers in current use with Samba-3 include:
|
|---|
| 244 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
|---|
| 245 | <a class="indexterm" name="id341704"></a>
|
|---|
| 246 | Novell <a class="ulink" href="http://www.novell.com/products/edirectory/" target="_top">eDirectory</a>
|
|---|
| 247 | is being successfully used by some sites. Information on how to use eDirectory can be
|
|---|
| 248 | obtained from the Samba mailing lists or from Novell.
|
|---|
| 249 | </p></li><li class="listitem"><p>
|
|---|
| 250 | <a class="indexterm" name="id341723"></a>
|
|---|
| 251 | IBM <a class="ulink" href="http://www-306.ibm.com/software/tivoli/products/directory-server/" target="_top">Tivoli
|
|---|
| 252 | Directory Server</a> can be used to provide the Samba LDAP backend. Example schema
|
|---|
| 253 | files are provided in the Samba source code tarball under the directory
|
|---|
| 254 | <code class="filename">~samba/example/LDAP.</code>
|
|---|
| 255 | </p></li><li class="listitem"><p>
|
|---|
| 256 | <a class="indexterm" name="id341748"></a>
|
|---|
| 257 | Sun <a class="ulink" href="http://www.sun.com/software/software/products/identity_srvr/home_identity.xml" target="_top">ONE Identity
|
|---|
| 258 | Server product suite</a> provides an LDAP server that can be used for Samba.
|
|---|
| 259 | Example schema files are provided in the Samba source code tarball under the directory
|
|---|
| 260 | <code class="filename">~samba/example/LDAP.</code>
|
|---|
| 261 | </p></li></ul></div><p>
|
|---|
| 262 | A word of caution is fully in order. OpenLDAP is purely an LDAP server, and unlike commercial
|
|---|
| 263 | offerings, it requires that you manually edit the server configuration files and manually
|
|---|
| 264 | initialize the LDAP directory database. OpenLDAP itself has only command-line tools to
|
|---|
| 265 | help you to get OpenLDAP and Samba-3 running as required, albeit with some learning curve challenges.
|
|---|
| 266 | </p><p>
|
|---|
| 267 | <a class="indexterm" name="id341780"></a>
|
|---|
| 268 | For most sites, the deployment of Microsoft Active Directory from the shrink-wrapped installation is quite
|
|---|
| 269 | adequate. If you are migrating from Microsoft Active Directory, be warned that OpenLDAP does not include
|
|---|
| 270 | GUI-based directory management tools. Even a simple task such as adding users to the OpenLDAP database
|
|---|
| 271 | requires an understanding of what you are doing, why you are doing it, and the tools that you must use.
|
|---|
| 272 | </p><p>
|
|---|
| 273 | <a class="indexterm" name="id341793"></a>
|
|---|
| 274 | <a class="indexterm" name="id341800"></a>
|
|---|
| 275 | <a class="indexterm" name="id341807"></a>
|
|---|
| 276 | <a class="indexterm" name="id341816"></a>
|
|---|
| 277 | <a class="indexterm" name="id341825"></a>
|
|---|
| 278 | <a class="indexterm" name="id341832"></a>
|
|---|
| 279 | <a class="indexterm" name="id341841"></a>
|
|---|
| 280 | When installed and configured, an OpenLDAP Identity Management backend for Samba functions well.
|
|---|
| 281 | High availability operation may be obtained through directory replication/synchronization and
|
|---|
| 282 | master/slave server configurations. OpenLDAP is a mature platform to host the organizational
|
|---|
| 283 | directory infrastructure that can include all UNIX accounts, directories for electronic mail, and much more.
|
|---|
| 284 | The price paid through learning how to design an LDAP directory schema in implementation and configuration
|
|---|
| 285 | of management tools is well rewarded by performance and flexibility and the freedom to manage directory
|
|---|
| 286 | contents with greater ability to back up, restore, and modify the directory than is generally possible
|
|---|
| 287 | with Microsoft Active Directory.
|
|---|
| 288 | </p><p>
|
|---|
| 289 | <a class="indexterm" name="id341860"></a>
|
|---|
| 290 | <a class="indexterm" name="id341869"></a>
|
|---|
| 291 | <a class="indexterm" name="id341876"></a>
|
|---|
| 292 | <a class="indexterm" name="id341883"></a>
|
|---|
| 293 | A comparison of OpenLDAP with Microsoft Active Directory does not do justice to either. OpenLDAP is an LDAP directory
|
|---|
| 294 | tool-set. Microsoft Active Directory Server is an implementation of an LDAP server that is largely preconfigured
|
|---|
| 295 | for a specific task orientation. It comes with a set of administrative tools that is entirely customized
|
|---|
| 296 | for the purpose of running MS Windows applications that include file and print services, Microsoft Exchange
|
|---|
| 297 | server, Microsoft SQL server, and more. The complexity of OpenLDAP is highly valued by the UNIX administrator
|
|---|
| 298 | who wants to build a custom directory solution. Microsoft provides an application called
|
|---|
| 299 | <a class="ulink" href="http://www.microsoft.com/windowsserver2003/adam/default.mspx" target="_top">
|
|---|
| 300 | MS ADAM</a> that provides more generic LDAP services, yet it does not have the vanilla-like services
|
|---|
| 301 | of OpenLDAP.
|
|---|
| 302 | </p><p>
|
|---|
| 303 | <a class="indexterm" name="id341906"></a>
|
|---|
| 304 | <a class="indexterm" name="id341915"></a>
|
|---|
| 305 | You may wish to consider outsourcing the development of your OpenLDAP directory to an expert, particularly
|
|---|
| 306 | if you find the challenge of learning about LDAP directories, schemas, configuration, and management
|
|---|
| 307 | tools and the creation of shell and Perl scripts a bit
|
|---|
| 308 | challenging. OpenLDAP can be easily customized, though it includes
|
|---|
| 309 | many ready-to-use schemas. Samba-3 provides an OpenLDAP schema file
|
|---|
| 310 | that is required for use as a passdb backend.
|
|---|
| 311 | </p><p>
|
|---|
| 312 | <a class="indexterm" name="id341929"></a>
|
|---|
| 313 | For those who are willing to brave the process of installing and configuring LDAP and Samba-3 interoperability,
|
|---|
| 314 | there are a few nice Web-based tools that may help you to manage your users and groups more effectively.
|
|---|
| 315 | The Web-based tools you might like to consider include the
|
|---|
| 316 | <a class="ulink" href="http://lam.sourceforge.net/" target="_top">LDAP Account Manager</a> (LAM) and the Webmin-based
|
|---|
| 317 | <a class="ulink" href="http://www.webmin.com" target="_top">Webmin</a> Idealx
|
|---|
| 318 | <a class="ulink" href="http://webmin.idealx.org/index.en.html" target="_top">CGI tools</a>.
|
|---|
| 319 | </p><p>
|
|---|
| 320 | Some additional LDAP tools should be mentioned. Every so often a Samba user reports using one of
|
|---|
| 321 | these, so it may be useful to them:
|
|---|
| 322 | <a class="ulink" href="http://biot.com/gq" target="_top">GQ</a>, a GTK-based LDAP browser;
|
|---|
| 323 | LDAP <a class="ulink" href="http://www.iit.edu/~gawojar/ldap/" target="_top">Browser/Editor</a>
|
|---|
| 324 | <a class="ulink" href="http://www.jxplorer.org/" target="_top">; JXplorer</a> (by Computer Associates);
|
|---|
| 325 | and <a class="ulink" href="http://phpldapadmin.sourceforge.net/" target="_top">phpLDAPadmin</a>.
|
|---|
| 326 | </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
|
|---|
| 327 | The following prescriptive guidance is not an LDAP tutorial. The LDAP implementation expressly uses minimal
|
|---|
| 328 | security controls. No form of secure LDAP communications is attempted. The LDAP configuration information provided
|
|---|
| 329 | is considered to consist of the barest essentials only. You are strongly encouraged to learn more about
|
|---|
| 330 | LDAP before attempting to deploy it in a business-critical environment.
|
|---|
| 331 | </p></div><p>
|
|---|
| 332 | Information to help you get started with OpenLDAP is available from the
|
|---|
| 333 | <a class="ulink" href="http://www.openldap.org/pub/" target="_top">OpenLDAP web site</a>. Many people have found the book
|
|---|
| 334 | <a class="ulink" href="http://www.oreilly.com/catalog/ldapsa/index.html" target="_top"><span class="emphasis"><em>LDAP System Administration</em></span>,</a>
|
|---|
| 335 | by Jerry Carter quite useful.
|
|---|
| 336 | </p><p>
|
|---|
| 337 | <a class="indexterm" name="id342015"></a>
|
|---|
| 338 | <a class="indexterm" name="id342022"></a>
|
|---|
| 339 | <a class="indexterm" name="id342031"></a>
|
|---|
| 340 | <a class="indexterm" name="id342038"></a>
|
|---|
| 341 | Mary's problems are due to two factors. First, the absence of a domain controller on the local network is the
|
|---|
| 342 | main cause of the errors that result in blue screen crashes. Second, Mary has a large profile that must
|
|---|
| 343 | be loaded over the WAN connection. The addition of BDCs on each network segment significantly
|
|---|
| 344 | improves overall network performance for most users, but it is not enough. You must gain control over
|
|---|
| 345 | user desktops, and this must be done in a way that wins their support and does not cause further loss of
|
|---|
| 346 | staff morale. The following procedures solve this problem.
|
|---|
| 347 | </p><p>
|
|---|
| 348 | <a class="indexterm" name="id342055"></a>
|
|---|
| 349 | There is also an opportunity to implement smart printing features. You add this to the Samba configuration
|
|---|
| 350 | so that future printer changes can be managed without need to change desktop configurations.
|
|---|
| 351 | </p><p>
|
|---|
| 352 | You add the ability to automatically download new printer drivers, even if they are not installed
|
|---|
| 353 | in the default desktop profile. Only one example of printing configuration is given. It is assumed that
|
|---|
| 354 | you can extrapolate the principles and use them to install all printers that may be needed.
|
|---|
| 355 | </p><div class="sect2" title="Technical Issues"><div class="titlepage"><div><div><h3 class="title"><a name="id342070"></a>Technical Issues</h3></div></div></div><p>
|
|---|
| 356 | <a class="indexterm" name="id342078"></a>
|
|---|
| 357 | <a class="indexterm" name="id342087"></a>
|
|---|
| 358 | <a class="indexterm" name="id342097"></a>
|
|---|
| 359 | The solution provided is a minimal approach to getting OpenLDAP running as an identity management directory
|
|---|
| 360 | server for UNIX system accounts as well as for Samba. From the OpenLDAP perspective, UNIX system
|
|---|
| 361 | accounts are stored POSIX schema extensions. Samba provides its own schema to permit storage of account
|
|---|
| 362 | attributes Samba needs. Samba-3 can use the LDAP backend to store:
|
|---|
| 363 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Windows Networking User Accounts</p></li><li class="listitem"><p>Windows NT Group Accounts</p></li><li class="listitem"><p>Mapping Information between UNIX Groups and Windows NT Groups</p></li><li class="listitem"><p>ID Mappings for SIDs to UIDs (also for foreign Domain SIDs)</p></li></ul></div><p>
|
|---|
| 364 | <a class="indexterm" name="id342133"></a>
|
|---|
| 365 | <a class="indexterm" name="id342140"></a>
|
|---|
| 366 | <a class="indexterm" name="id342146"></a>
|
|---|
| 367 | <a class="indexterm" name="id342153"></a>
|
|---|
| 368 | <a class="indexterm" name="id342160"></a>
|
|---|
| 369 | <a class="indexterm" name="id342167"></a>
|
|---|
| 370 | <a class="indexterm" name="id342176"></a>
|
|---|
| 371 | <a class="indexterm" name="id342182"></a>
|
|---|
| 372 | <a class="indexterm" name="id342189"></a>
|
|---|
| 373 | The use of LDAP with Samba-3 makes it necessary to store UNIX accounts as well as Windows Networking
|
|---|
| 374 | accounts in the LDAP backend. This implies the need to use the
|
|---|
| 375 | <a class="ulink" href="http://www.padl.com/Contents/OpenSourceSoftware.html" target="_top">PADL LDAP tools</a>. The resolution
|
|---|
| 376 | of the UNIX group name to its GID must be enabled from either the <code class="filename">/etc/group</code>
|
|---|
| 377 | or from the LDAP backend. This requires the use of the PADL <code class="filename">nss_ldap</code> tool-set
|
|---|
| 378 | that integrates with the NSS. The same requirements exist for resolution
|
|---|
| 379 | of the UNIX username to the UID. The relationships are demonstrated in <a class="link" href="happy.html#sbehap-LDAPdiag" title="Figure 5.1. The Interaction of LDAP, UNIX Posix Accounts and Samba Accounts">“The Interaction of LDAP, UNIX Posix Accounts and Samba Accounts”</a>.
|
|---|
| 380 | </p><div class="figure"><a name="sbehap-LDAPdiag"></a><p class="title"><b>Figure 5.1. The Interaction of LDAP, UNIX Posix Accounts and Samba Accounts</b></p><div class="figure-contents"><div class="mediaobject"><img src="images/UNIX-Samba-and-LDAP.png" width="270" alt="The Interaction of LDAP, UNIX Posix Accounts and Samba Accounts"></div></div></div><br class="figure-break"><p>
|
|---|
| 381 | <a class="indexterm" name="id342269"></a>
|
|---|
| 382 | <a class="indexterm" name="id342275"></a>
|
|---|
| 383 | You configure OpenLDAP so that it is operational. Before deploying the OpenLDAP, you really
|
|---|
| 384 | ought to learn how to configure secure communications over LDAP so that site security is not
|
|---|
| 385 | at risk. This is not covered in the following guidance.
|
|---|
| 386 | </p><p>
|
|---|
| 387 | <a class="indexterm" name="id342290"></a>
|
|---|
| 388 | <a class="indexterm" name="id342296"></a>
|
|---|
| 389 | <a class="indexterm" name="id342306"></a>
|
|---|
| 390 | <a class="indexterm" name="id342312"></a>
|
|---|
| 391 | When OpenLDAP has been made operative, you configure the PDC called <code class="constant">MASSIVE</code>.
|
|---|
| 392 | You initialize the Samba <code class="filename">secrets.tdb<sub></sub></code> file. Then you
|
|---|
| 393 | create the LDAP Interchange Format (LDIF) file from which the LDAP database can be initialized.
|
|---|
| 394 | You need to decide how best to create user and group accounts. A few hints are, of course, provided.
|
|---|
| 395 | You can also find on the enclosed CD-ROM, in the <code class="filename">Chap06</code> directory, a few tools
|
|---|
| 396 | that help to manage user and group configuration.
|
|---|
| 397 | </p><p>
|
|---|
| 398 | <a class="indexterm" name="id342343"></a>
|
|---|
| 399 | <a class="indexterm" name="id342350"></a>
|
|---|
| 400 | <a class="indexterm" name="id342356"></a>
|
|---|
| 401 | In order to effect folder redirection and to add robustness to the implementation,
|
|---|
| 402 | create a network default profile. All network users workstations are configured to use
|
|---|
| 403 | the new profile. Roaming profiles will automatically be deleted from the workstation
|
|---|
| 404 | when the user logs off.
|
|---|
| 405 | </p><p>
|
|---|
| 406 | <a class="indexterm" name="id342369"></a>
|
|---|
| 407 | The profile is configured so that users cannot change the appearance
|
|---|
| 408 | of their desktop. This is known as a mandatory profile. You make certain that users
|
|---|
| 409 | are able to use their computers efficiently.
|
|---|
| 410 | </p><p>
|
|---|
| 411 | <a class="indexterm" name="id342381"></a>
|
|---|
| 412 | A network logon script is used to deliver flexible but consistent network drive
|
|---|
| 413 | connections.
|
|---|
| 414 | </p><div class="sect3" title="Addition of Machines to the Domain"><div class="titlepage"><div><div><h4 class="title"><a name="sbehap-ppc"></a>Addition of Machines to the Domain</h4></div></div></div><p>
|
|---|
| 415 | <a class="indexterm" name="id342401"></a>
|
|---|
| 416 | <a class="indexterm" name="id342406"></a>
|
|---|
| 417 | <a class="indexterm" name="id342412"></a>
|
|---|
| 418 | <a class="indexterm" name="id342417"></a>
|
|---|
| 419 | Samba versions prior to 3.0.11 necessitated the use of a domain administrator account
|
|---|
| 420 | that maps to the UNIX UID=0. The UNIX operating system permits only the <code class="constant">root</code>
|
|---|
| 421 | user to add user and group accounts. Samba 3.0.11 introduced a new facility known as
|
|---|
| 422 | <code class="constant">Privileges</code>, which provides five new privileges that
|
|---|
| 423 | can be assigned to users and/or groups; see Table 5.1.
|
|---|
| 424 | </p><div class="table"><a name="sbehap-privs"></a><p class="title"><b>Table 5.1. Current Privilege Capabilities</b></p><div class="table-contents"><table summary="Current Privilege Capabilities" border="1"><colgroup><col align="left"><col align="left"></colgroup><thead><tr><th align="left">Privilege</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><p>SeMachineAccountPrivilege</p></td><td align="left"><p>Add machines to domain</p></td></tr><tr><td align="left"><p>SePrintOperatorPrivilege</p></td><td align="left"><p>Manage printers</p></td></tr><tr><td align="left"><p>SeAddUsersPrivilege</p></td><td align="left"><p>Add users and groups to the domain</p></td></tr><tr><td align="left"><p>SeRemoteShutdownPrivilege</p></td><td align="left"><p>Force shutdown from a remote system</p></td></tr><tr><td align="left"><p>SeDiskOperatorPrivilege</p></td><td align="left"><p>Manage disk share</p></td></tr></tbody></table></div></div><br class="table-break"><p>
|
|---|
| 425 | In this network example use is made of one of the supported privileges purely to demonstrate
|
|---|
| 426 | how any user can now be given the ability to add machines to the domain using a normal user account
|
|---|
| 427 | that has been given the appropriate privileges.
|
|---|
| 428 | </p></div><div class="sect3" title="Roaming Profile Background"><div class="titlepage"><div><div><h4 class="title"><a name="id342548"></a>Roaming Profile Background</h4></div></div></div><p>
|
|---|
| 429 | As XP roaming profiles grow, so does the amount of time it takes to log in and out.
|
|---|
| 430 | </p><p>
|
|---|
| 431 | <a class="indexterm" name="id342560"></a>
|
|---|
| 432 | <a class="indexterm" name="id342566"></a>
|
|---|
| 433 | <a class="indexterm" name="id342573"></a>
|
|---|
| 434 | <a class="indexterm" name="id342580"></a>
|
|---|
| 435 | An XP roaming profile consists of the <code class="constant">HKEY_CURRENT_USER</code> hive file
|
|---|
| 436 | <code class="filename">NTUSER.DAT</code> and a number of folders (My Documents, Application Data,
|
|---|
| 437 | Desktop, Start Menu, Templates, NetHood, Favorites, and so on). When a user logs onto the
|
|---|
| 438 | network with the default configuration of MS Windows NT/200x/XPP, all this data is
|
|---|
| 439 | copied to the local machine under the <code class="filename">C:\Documents and Settings\%USERNAME%</code>
|
|---|
| 440 | directory. While the user is logged in, any changes made to any of these folders or to the
|
|---|
| 441 | <code class="constant">HKEY_CURRENT_USER</code> branch of the registry are made to the local copy
|
|---|
| 442 | of the profile. At logout the profile data is copied back to the server. This behavior
|
|---|
| 443 | can be changed through appropriate registry changes and/or through changes to the default
|
|---|
| 444 | user profile. In the latter case, it updates the registry with the values that are set in the
|
|---|
| 445 | profile <code class="filename">NTUSER.DAT</code>
|
|---|
| 446 | file.
|
|---|
| 447 | </p><p>
|
|---|
| 448 | The first challenge is to reduce the amount of data that must be transferred to and
|
|---|
| 449 | from the profile server as roaming profiles are processed. This includes removing
|
|---|
| 450 | all the shortcuts in the Recent directory, making sure the cache used by the Web browser
|
|---|
| 451 | is not being dumped into the <code class="filename">Application Data</code> folder, removing the
|
|---|
| 452 | Java plug-ins cache (the .jpi_cache directory in the profile), as well as training the
|
|---|
| 453 | user to not place large files on the desktop and to use his or her mapped home directory
|
|---|
| 454 | instead of the <code class="filename">My Documents</code> folder for saving documents.
|
|---|
| 455 | </p><p>
|
|---|
| 456 | <a class="indexterm" name="id342644"></a>
|
|---|
| 457 | Using a folder other than <code class="filename">My Documents</code> is a nuisance for
|
|---|
| 458 | some users, since many applications use it by default.
|
|---|
| 459 | </p><p>
|
|---|
| 460 | <a class="indexterm" name="id342661"></a>
|
|---|
| 461 | <a class="indexterm" name="id342668"></a>
|
|---|
| 462 | <a class="indexterm" name="id342675"></a>
|
|---|
| 463 | The secret to rapid loading of roaming profiles is to prevent unnecessary data from
|
|---|
| 464 | being copied back and forth, without losing any functionality. This is not difficult;
|
|---|
| 465 | it can be done by making changes to the Local Group Policy on each client as well
|
|---|
| 466 | as changing some paths in each user's <code class="filename">NTUSER.DAT</code> hive.
|
|---|
| 467 | </p><p>
|
|---|
| 468 | <a class="indexterm" name="id342693"></a>
|
|---|
| 469 | <a class="indexterm" name="id342700"></a>
|
|---|
| 470 | Every user profile has its own <code class="filename">NTUSER.DAT</code> file. This means
|
|---|
| 471 | you need to edit every user's profile, unless a better method can be
|
|---|
| 472 | followed. Fortunately, with the right preparations, this is not difficult.
|
|---|
| 473 | It is possible to remove the <code class="filename">NTUSER.DAT</code> file from each
|
|---|
| 474 | user's profile. Then just create a Network Default Profile. Of course, it is
|
|---|
| 475 | necessary to copy all files from redirected folders to the network share to which
|
|---|
| 476 | they are redirected.
|
|---|
| 477 | </p></div><div class="sect3" title="The Local Group Policy"><div class="titlepage"><div><div><h4 class="title"><a name="sbehap-locgrppol"></a>The Local Group Policy</h4></div></div></div><p>
|
|---|
| 478 | <a class="indexterm" name="id342736"></a>
|
|---|
| 479 | <a class="indexterm" name="id342742"></a>
|
|---|
| 480 | <a class="indexterm" name="id342749"></a>
|
|---|
| 481 | <a class="indexterm" name="id342756"></a>
|
|---|
| 482 | Without an Active Directory PDC, you cannot take full advantage of Group Policy
|
|---|
| 483 | Objects. However, you can still make changes to the Local Group Policy by using
|
|---|
| 484 | the Group Policy editor (<code class="literal">gpedit.msc</code>).
|
|---|
| 485 | </p><p>
|
|---|
| 486 | The <span class="emphasis"><em>Exclude directories in roaming profile</em></span> settings can
|
|---|
| 487 | be found under
|
|---|
| 488 | <span class="guimenu">User Configuration</span> → <span class="guimenuitem">Administrative Templates</span> → <span class="guimenuitem">System</span> → <span class="guimenuitem">User Profiles</span>.
|
|---|
| 489 | By default this setting contains
|
|---|
| 490 | <span class="quote">“<span class="quote">Local Settings; Temporary Internet Files; History; Temp</span>”</span>.
|
|---|
| 491 | </p><p>
|
|---|
| 492 | Simply add the folders you do not wish to be copied back and forth to this
|
|---|
| 493 | semicolon-separated list. Note that this change must be made on all clients
|
|---|
| 494 | that are using roaming profiles.
|
|---|
| 495 | </p></div><div class="sect3" title="Profile Changes"><div class="titlepage"><div><div><h4 class="title"><a name="id342818"></a>Profile Changes</h4></div></div></div><p>
|
|---|
| 496 | <a class="indexterm" name="id342826"></a>
|
|---|
| 497 | <a class="indexterm" name="id342832"></a>
|
|---|
| 498 | There are two changes that should be done to each user's profile. Move each of
|
|---|
| 499 | the directories that you have excluded from being copied back and forth out of
|
|---|
| 500 | the usual profile path. Modify each user's <code class="filename">NTUSER.DAT</code> file
|
|---|
| 501 | to point to the new paths that are shared over the network instead of to the default
|
|---|
| 502 | path (<code class="filename">C:\Documents and Settings\%USERNAME%</code>).
|
|---|
| 503 | </p><p>
|
|---|
| 504 | <a class="indexterm" name="id342857"></a>
|
|---|
| 505 | <a class="indexterm" name="id342864"></a>
|
|---|
| 506 | The above modifies existing user profiles. So that newly created profiles have
|
|---|
| 507 | these settings, you need to modify the <code class="filename">NTUSER.DAT</code> in
|
|---|
| 508 | the <code class="filename">C:\Documents and Settings\Default User</code> folder on each
|
|---|
| 509 | client machine, changing the same registry keys. You could do this by copying
|
|---|
| 510 | <code class="filename">NTUSER.DAT</code> to a Linux box and using <code class="literal">regedt32</code>.
|
|---|
| 511 | The basic method is described under <a class="link" href="happy.html#redirfold" title="Configuration of Default Profile with Folder Redirection">“Configuration of Default Profile with Folder Redirection”</a>.
|
|---|
| 512 | </p></div><div class="sect3" title="Using a Network Default User Profile"><div class="titlepage"><div><div><h4 class="title"><a name="id342906"></a>Using a Network Default User Profile</h4></div></div></div><p>
|
|---|
| 513 | <a class="indexterm" name="id342914"></a>
|
|---|
| 514 | <a class="indexterm" name="id342921"></a>
|
|---|
| 515 | If you are using Samba as your PDC, you should create a file share called
|
|---|
| 516 | <code class="constant">NETLOGON</code> and within that create a directory called
|
|---|
| 517 | <code class="filename">Default User</code>, which is a copy of the desired default user
|
|---|
| 518 | configuration (including a copy of <code class="filename">NTUSER.DAT</code>).
|
|---|
| 519 | If this share exists and the <code class="filename">Default User</code> folder exists,
|
|---|
| 520 | the first login from a new account pulls its configuration from it.
|
|---|
| 521 | See also <a class="ulink" href="http://isg.ee.ethz.ch/tools/realmen/det/skel.en.html" target="_top">
|
|---|
| 522 | the Real Men Don't Click</a> Web site.
|
|---|
| 523 | </p></div><div class="sect3" title="Installation of Printer Driver Auto-Download"><div class="titlepage"><div><div><h4 class="title"><a name="id342960"></a>Installation of Printer Driver Auto-Download</h4></div></div></div><p>
|
|---|
| 524 | <a class="indexterm" name="id342968"></a>
|
|---|
| 525 | <a class="indexterm" name="id342977"></a>
|
|---|
| 526 | <a class="indexterm" name="id342984"></a>
|
|---|
| 527 | The subject of printing is quite topical. Printing problems run second place to name
|
|---|
| 528 | resolution issues today. So far in this book, you have experienced only what is generally
|
|---|
| 529 | known as <span class="quote">“<span class="quote">dumb</span>”</span> printing. Dumb printing is the arrangement by which all drivers
|
|---|
| 530 | are manually installed on each client and the printing subsystems perform no filtering
|
|---|
| 531 | or intelligent processing. Dumb printing is easily understood. It usually works without
|
|---|
| 532 | many problems, but it has its limitations also. Dumb printing is better known as
|
|---|
| 533 | <code class="literal">Raw-Print-Through</code> printing.
|
|---|
| 534 | </p><p>
|
|---|
| 535 | <a class="indexterm" name="id343008"></a>
|
|---|
| 536 | <a class="indexterm" name="id343017"></a>
|
|---|
| 537 | Samba permits the configuration of <code class="literal">smart</code> printing using the Microsoft
|
|---|
| 538 | Windows point-and-click (also called drag-and-drop) printing. What this provides is
|
|---|
| 539 | essentially the ability to print to any printer. If the local client does not yet have a
|
|---|
| 540 | driver installed, the driver is automatically downloaded from the Samba server and
|
|---|
| 541 | installed on the client. Drag-and-drop printing is neat; it means the user never needs
|
|---|
| 542 | to fuss with driver installation, and that is a <span class="trademark">Good Thing,</span>™
|
|---|
| 543 | isn't it?
|
|---|
| 544 | </p><p>
|
|---|
| 545 | There is a further layer of print job processing that is known as <code class="literal">intelligent</code>
|
|---|
| 546 | printing that automatically senses the file format of data submitted for printing and
|
|---|
| 547 | then invokes a suitable print filter to convert the incoming data stream into a format
|
|---|
| 548 | suited to the printer to which the job is dispatched.
|
|---|
| 549 | </p><p>
|
|---|
| 550 | <a class="indexterm" name="id343057"></a>
|
|---|
| 551 | <a class="indexterm" name="id343064"></a>
|
|---|
| 552 | <a class="indexterm" name="id343071"></a>
|
|---|
| 553 | The CUPS printing subsystem is capable of intelligent printing. It has the capacity to
|
|---|
| 554 | detect the data format and apply a print filter. This means that it is feasible to install
|
|---|
| 555 | on all Windows clients a single printer driver for use with all printers that are routed
|
|---|
| 556 | through CUPS. The most sensible driver to use is one for a PostScript printer. Fortunately,
|
|---|
| 557 | <a class="ulink" href="http://www.easysw.com" target="_top">Easy Software Products</a>, the authors of CUPS, have
|
|---|
| 558 | released a PostScript printing driver for Windows. It can be installed into the Samba
|
|---|
| 559 | printing backend so that it automatically downloads to the client when needed.
|
|---|
| 560 | </p><p>
|
|---|
| 561 | This means that so long as there is a CUPS driver for the printer, all printing from Windows
|
|---|
| 562 | software can use PostScript, no matter what the actual printer language for the physical
|
|---|
| 563 | device is. It also means that the administrator can swap out a printer with a totally
|
|---|
| 564 | different type of device without ever needing to change a client workstation driver.
|
|---|
| 565 | </p><p>
|
|---|
| 566 | This book is about Samba-3, so you can confine the printing style to just the smart
|
|---|
| 567 | style of installation. Those interested in further information regarding intelligent
|
|---|
| 568 | printing should review documentation on the Easy Software Products Web site.
|
|---|
| 569 | </p></div><div class="sect3" title="Avoiding Failures: Solving Problems Before They Happen"><div class="titlepage"><div><div><h4 class="title"><a name="sbeavoid"></a>Avoiding Failures: Solving Problems Before They Happen</h4></div></div></div><p>
|
|---|
| 570 | It has often been said that there are three types of people in the world: those who
|
|---|
| 571 | have sharp minds and those who forget things. Please do not ask what the third group
|
|---|
| 572 | is like! Well, it seems that many of us have company in the second group. There must
|
|---|
| 573 | be a good explanation why so many network administrators fail to solve apparently
|
|---|
| 574 | simple problems efficiently and effectively.
|
|---|
| 575 | </p><p>
|
|---|
| 576 | Here are some diagnostic guidelines that can be referred to when things go wrong:
|
|---|
| 577 | </p><div class="sect4" title="Preliminary Advice: Dangers Can Be Avoided"><div class="titlepage"><div><div><h5 class="title"><a name="id343123"></a>Preliminary Advice: Dangers Can Be Avoided</h5></div></div></div><p>
|
|---|
| 578 | The best advice regarding how to mend a broken leg is <span class="quote">“<span class="quote">Never break a leg!</span>”</span>
|
|---|
| 579 | </p><p>
|
|---|
| 580 | <a class="indexterm" name="id343138"></a>
|
|---|
| 581 | Newcomers to Samba and LDAP seem to struggle a great deal at first. If you want advice
|
|---|
| 582 | regarding the best way to remedy LDAP and Samba problems: <span class="quote">“<span class="quote">Avoid them like the plague!</span>”</span>
|
|---|
| 583 | </p><p>
|
|---|
| 584 | If you are now asking yourself how problems can be avoided, the best advice is to start
|
|---|
| 585 | out your learning experience with a <span class="emphasis"><em>known-good configuration.</em></span> After
|
|---|
| 586 | you have seen a fully working solution, a good way to learn is to make slow and progressive
|
|---|
| 587 | changes that cause things to break, then observe carefully how and why things ceased to work.
|
|---|
| 588 | </p><p>
|
|---|
| 589 | The examples in this chapter (also in the book as a whole) are known to work. That means
|
|---|
| 590 | that they could serve as the kick-off point for your journey through fields of knowledge.
|
|---|
| 591 | Use this resource carefully; we hope it serves you well.
|
|---|
| 592 | </p><div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>
|
|---|
| 593 | Do not be lulled into thinking that you can easily adopt the examples in this
|
|---|
| 594 | book and adapt them without first working through the examples provided. A little
|
|---|
| 595 | thing overlooked can cause untold pain and may permanently tarnish your experience.
|
|---|
| 596 | </p></div></div><div class="sect4" title="The Name Service Caching Daemon"><div class="titlepage"><div><div><h5 class="title"><a name="id343173"></a>The Name Service Caching Daemon</h5></div></div></div><p>
|
|---|
| 597 | The name service caching daemon (nscd) is a primary cause of difficulties with name
|
|---|
| 598 | resolution, particularly where <code class="literal">winbind</code> is used. Winbind does its
|
|---|
| 599 | own caching, thus nscd causes double caching which can lead to peculiar problems during
|
|---|
| 600 | debugging. As a rule, it is a good idea to turn off the name service caching daemon.
|
|---|
| 601 | </p><p>
|
|---|
| 602 | Operation of the name service caching daemon is controlled by the
|
|---|
| 603 | <code class="filename">/etc/nscd.conf</code> file. Typical contents of this file are as follows:
|
|---|
| 604 | </p><pre class="screen">
|
|---|
| 605 | # /etc/nscd.conf
|
|---|
| 606 | # An example Name Service Cache config file. This file is needed by nscd.
|
|---|
| 607 | # Legal entries are:
|
|---|
| 608 | # logfile <file>
|
|---|
| 609 | # debug-level <level>
|
|---|
| 610 | # threads <threads to use>
|
|---|
| 611 | # server-user <user to run server as instead of root>
|
|---|
| 612 | # server-user is ignored if nscd is started with -S parameters
|
|---|
| 613 | # stat-user <user who is allowed to request statistics>
|
|---|
| 614 | # reload-count unlimited|<number>
|
|---|
| 615 | #
|
|---|
| 616 | # enable-cache <service> <yes|no>
|
|---|
| 617 | # positive-time-to-live <service> <time in seconds>
|
|---|
| 618 | # negative-time-to-live <service> <time in seconds>
|
|---|
| 619 | # suggested-size <service> <prime number>
|
|---|
| 620 | # check-files <service> <yes|no>
|
|---|
| 621 | # persistent <service> <yes|no>
|
|---|
| 622 | # shared <service> <yes|no>
|
|---|
| 623 | # Currently supported cache names (services): passwd, group, hosts
|
|---|
| 624 | # logfile /var/log/nscd.log
|
|---|
| 625 | # threads 6
|
|---|
| 626 | # server-user nobody
|
|---|
| 627 | # stat-user somebody
|
|---|
| 628 | debug-level 0
|
|---|
| 629 | # reload-count 5
|
|---|
| 630 | enable-cache passwd yes
|
|---|
| 631 | positive-time-to-live passwd 600
|
|---|
| 632 | negative-time-to-live passwd 20
|
|---|
| 633 | suggested-size passwd 211
|
|---|
| 634 | check-files passwd yes
|
|---|
| 635 | persistent passwd yes
|
|---|
| 636 | shared passwd yes
|
|---|
| 637 | enable-cache group yes
|
|---|
| 638 | positive-time-to-live group 3600
|
|---|
| 639 | negative-time-to-live group 60
|
|---|
| 640 | suggested-size group 211
|
|---|
| 641 | check-files group yes
|
|---|
| 642 | persistent group yes
|
|---|
| 643 | shared group yes
|
|---|
| 644 | # !!!!!WARNING!!!!! Host cache is insecure!!! The mechanism in nscd to
|
|---|
| 645 | # cache hosts will cause your local system to not be able to trust
|
|---|
| 646 | # forward/reverse lookup checks. DO NOT USE THIS if your system relies on
|
|---|
| 647 | # this sort of security mechanism. Use a caching DNS server instead.
|
|---|
| 648 | enable-cache hosts no
|
|---|
| 649 | positive-time-to-live hosts 3600
|
|---|
| 650 | negative-time-to-live hosts 20
|
|---|
| 651 | suggested-size hosts 211
|
|---|
| 652 | check-files hosts yes
|
|---|
| 653 | persistent hosts yes
|
|---|
| 654 | shared hosts yes
|
|---|
| 655 | </pre><p>
|
|---|
| 656 | It is feasible to comment out the <code class="constant">passwd</code> and <code class="constant">group</code>
|
|---|
| 657 | entries so they will not be cached. Alternatively, it is often simpler to just disable the
|
|---|
| 658 | <code class="literal">nscd</code> service by executing (on Novell SUSE Linux):
|
|---|
| 659 | </p><pre class="screen">
|
|---|
| 660 | <code class="prompt">root# </code> chkconfig nscd off
|
|---|
| 661 | <code class="prompt">root# </code> rcnscd off
|
|---|
| 662 | </pre><p>
|
|---|
| 663 | </p></div><div class="sect4" title="Debugging LDAP"><div class="titlepage"><div><div><h5 class="title"><a name="id343291"></a>Debugging LDAP</h5></div></div></div><p>
|
|---|
| 664 | <a class="indexterm" name="id343298"></a>
|
|---|
| 665 | <a class="indexterm" name="id343305"></a>
|
|---|
| 666 | <a class="indexterm" name="id343312"></a>
|
|---|
| 667 | In the example <code class="filename">/etc/openldap/slapd.conf</code> control file
|
|---|
| 668 | (see <a class="link" href="happy.html#sbehap-dbconf" title="Example 5.1. LDAP DB_CONFIG File">“LDAP DB_CONFIG File”</a>) there is an entry for <code class="constant">loglevel 256</code>.
|
|---|
| 669 | To enable logging via the syslog infrastructure, it is necessary to uncomment this parameter
|
|---|
| 670 | and restart <code class="literal">slapd</code>.
|
|---|
| 671 | </p><p>
|
|---|
| 672 | <a class="indexterm" name="id343346"></a>
|
|---|
| 673 | <a class="indexterm" name="id343352"></a>
|
|---|
| 674 | LDAP log information can be directed into a file that is separate from the normal system
|
|---|
| 675 | log files by changing the <code class="filename">/etc/syslog.conf</code> file so it has the following
|
|---|
| 676 | contents:
|
|---|
| 677 | </p><pre class="screen">
|
|---|
| 678 | # Some foreign boot scripts require local7
|
|---|
| 679 | #
|
|---|
| 680 | local0,local1.* -/var/log/localmessages
|
|---|
| 681 | local2,local3.* -/var/log/localmessages
|
|---|
| 682 | local5.* -/var/log/localmessages
|
|---|
| 683 | local6,local7.* -/var/log/localmessages
|
|---|
| 684 | local4.* -/var/log/ldaplogs
|
|---|
| 685 | </pre><p>
|
|---|
| 686 | In this case, all LDAP-related logs will be directed to the file
|
|---|
| 687 | <code class="filename">/var/log/ldaplogs</code>. This makes it easy to track LDAP errors.
|
|---|
| 688 | The snippet provides a simple example of usage that can be modified to suit
|
|---|
| 689 | local site needs. The configuration used later in this chapter reflects such
|
|---|
| 690 | customization with the intent that LDAP log files will be stored at a location
|
|---|
| 691 | that meets local site needs and wishes more fully.
|
|---|
| 692 | </p></div><div class="sect4" title="Debugging NSS_LDAP"><div class="titlepage"><div><div><h5 class="title"><a name="id343386"></a>Debugging NSS_LDAP</h5></div></div></div><p>
|
|---|
| 693 | The basic mechanism for diagnosing problems with the nss_ldap utility involves adding to the
|
|---|
| 694 | <code class="filename">/etc/ldap.conf</code> file the following parameters:
|
|---|
| 695 | </p><pre class="screen">
|
|---|
| 696 | debug 256
|
|---|
| 697 | logdir /data/logs
|
|---|
| 698 | </pre><p>
|
|---|
| 699 | Create the log directory as follows:
|
|---|
| 700 | </p><pre class="screen">
|
|---|
| 701 | <code class="prompt">root# </code> mkdir /data/logs
|
|---|
| 702 | </pre><p>
|
|---|
| 703 | </p><p>
|
|---|
| 704 | The diagnostic process should follow these steps:
|
|---|
| 705 | </p><div class="procedure" title="Procedure 5.1. NSS_LDAP Diagnostic Steps"><a name="id343427"></a><p class="title"><b>Procedure 5.1. NSS_LDAP Diagnostic Steps</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 706 | Verify the <code class="constant">nss_base_passwd, nss_base_shadow, nss_base_group</code> entries
|
|---|
| 707 | in the <code class="filename">/etc/ldap.conf</code> file and compare them closely with the directory
|
|---|
| 708 | tree location that was chosen when the directory was first created.
|
|---|
| 709 | </p><p>
|
|---|
| 710 | One way this can be done is by executing:
|
|---|
| 711 | </p><pre class="screen">
|
|---|
| 712 | <code class="prompt">root# </code> slapcat | grep Group | grep dn
|
|---|
| 713 | dn: ou=Groups,dc=abmas,dc=biz
|
|---|
| 714 | dn: cn=Domain Admins,ou=Groups,dc=abmas,dc=biz
|
|---|
| 715 | dn: cn=Domain Users,ou=Groups,dc=abmas,dc=biz
|
|---|
| 716 | dn: cn=Domain Guests,ou=Groups,dc=abmas,dc=biz
|
|---|
| 717 | dn: cn=Domain Computers,ou=Groups,dc=abmas,dc=biz
|
|---|
| 718 | dn: cn=Administrators,ou=Groups,dc=abmas,dc=biz
|
|---|
| 719 | dn: cn=Print Operators,ou=Groups,dc=abmas,dc=biz
|
|---|
| 720 | dn: cn=Backup Operators,ou=Groups,dc=abmas,dc=biz
|
|---|
| 721 | dn: cn=Replicators,ou=Groups,dc=abmas,dc=biz
|
|---|
| 722 | </pre><p>
|
|---|
| 723 | The first line is the DIT entry point for the container for POSIX groups. The correct entry
|
|---|
| 724 | for the <code class="filename">/etc/ldap.conf</code> for the <code class="constant">nss_base_group</code>
|
|---|
| 725 | parameter therefore is the distinguished name (dn) as applied here:
|
|---|
| 726 | </p><pre class="screen">
|
|---|
| 727 | nss_base_group ou=Groups,dc=abmas,dc=biz?one
|
|---|
| 728 | </pre><p>
|
|---|
| 729 | The same process may be followed to determine the appropriate dn for user accounts.
|
|---|
| 730 | If the container for computer accounts is not the same as that for users (see the <code class="filename">smb.conf</code>
|
|---|
| 731 | file entry for <code class="constant">ldap machine suffix</code>), it may be necessary to set the
|
|---|
| 732 | following DIT dn in the <code class="filename">/etc/ldap.conf</code> file:
|
|---|
| 733 | </p><pre class="screen">
|
|---|
| 734 | nss_base_passwd dc=abmas,dc=biz?sub
|
|---|
| 735 | </pre><p>
|
|---|
| 736 | This instructs LDAP to search for machine as well as user entries from the top of the DIT
|
|---|
| 737 | down. This is inefficient, but at least should work. Note: It is possible to specify multiple
|
|---|
| 738 | <code class="constant">nss_base_passwd</code> entries in the <code class="filename">/etc/ldap.conf</code> file; they
|
|---|
| 739 | will be evaluated sequentially. Let us consider an example of use where the following DIT
|
|---|
| 740 | has been implemented:
|
|---|
| 741 | </p><p>
|
|---|
| 742 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>User accounts are stored under the DIT: ou=Users, dc=abmas, dc=biz</p></li><li class="listitem"><p>User login accounts are under the DIT: ou=People, ou-Users, dc=abmas, dc=biz</p></li><li class="listitem"><p>Computer accounts are under the DIT: ou=Computers, ou=Users, dc=abmas, dc=biz</p></li></ul></div><p>
|
|---|
| 743 | </p><p>
|
|---|
| 744 | The appropriate multiple entry for the <code class="constant">nss_base_passwd</code> directive
|
|---|
| 745 | in the <code class="filename">/etc/ldap.conf</code> file may be:
|
|---|
| 746 | </p><pre class="screen">
|
|---|
| 747 | nss_base_passwd ou=People,ou=Users,dc=abmas,dc=org?one
|
|---|
| 748 | nss_base_passwd ou=Computers,ou=Users,dc=abmas,dc=org?one
|
|---|
| 749 | </pre><p>
|
|---|
| 750 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 751 | Perform lookups such as:
|
|---|
| 752 | </p><pre class="screen">
|
|---|
| 753 | <code class="prompt">root# </code> getent passwd
|
|---|
| 754 | </pre><p>
|
|---|
| 755 | Each such lookup will create an entry in the <code class="filename">/data/log</code> directory
|
|---|
| 756 | for each such process executed. The contents of each file created in this directory
|
|---|
| 757 | may provide a hint as to the cause of the a problem that is under investigation.
|
|---|
| 758 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 759 | For additional diagnostic information, check the contents of the <code class="filename">/var/log/messages</code>
|
|---|
| 760 | to see what error messages are being generated as a result of the LDAP lookups. Here is an example of
|
|---|
| 761 | a successful lookup:
|
|---|
| 762 | </p><pre class="screen">
|
|---|
| 763 | slapd[12164]: conn=0 fd=10 ACCEPT from IP=127.0.0.1:33539
|
|---|
| 764 | (IP=0.0.0.0:389)
|
|---|
| 765 | slapd[12164]: conn=0 op=0 BIND dn="" method=128
|
|---|
| 766 | slapd[12164]: conn=0 op=0 RESULT tag=97 err=0 text=
|
|---|
| 767 | slapd[12164]: conn=0 op=1 SRCH base="" scope=0 deref=0
|
|---|
| 768 | filter="(objectClass=*)"
|
|---|
| 769 | slapd[12164]: conn=0 op=1 SEARCH RESULT tag=101 err=0
|
|---|
| 770 | nentries=1 text=
|
|---|
| 771 | slapd[12164]: conn=0 op=2 UNBIND
|
|---|
| 772 | slapd[12164]: conn=0 fd=10 closed
|
|---|
| 773 | slapd[12164]: conn=1 fd=10 ACCEPT from
|
|---|
| 774 | IP=127.0.0.1:33540 (IP=0.0.0.0:389)
|
|---|
| 775 | slapd[12164]: conn=1 op=0 BIND
|
|---|
| 776 | dn="cn=Manager,dc=abmas,dc=biz" method=128
|
|---|
| 777 | slapd[12164]: conn=1 op=0 BIND
|
|---|
| 778 | dn="cn=Manager,dc=abmas,dc=biz" mech=SIMPLE ssf=0
|
|---|
| 779 | slapd[12164]: conn=1 op=0 RESULT tag=97 err=0 text=
|
|---|
| 780 | slapd[12164]: conn=1 op=1 SRCH
|
|---|
| 781 | base="ou=People,dc=abmas,dc=biz" scope=1 deref=0
|
|---|
| 782 | filter="(objectClass=posixAccount)"
|
|---|
| 783 | slapd[12164]: conn=1 op=1 SRCH attr=uid userPassword
|
|---|
| 784 | uidNumber gidNumber cn
|
|---|
| 785 | homeDirectory loginShell gecos description objectClass
|
|---|
| 786 | slapd[12164]: conn=1 op=1 SEARCH RESULT tag=101 err=0
|
|---|
| 787 | nentries=2 text=
|
|---|
| 788 | slapd[12164]: conn=1 fd=10 closed
|
|---|
| 789 |
|
|---|
| 790 | </pre><p>
|
|---|
| 791 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 792 | Check that the bindpw entry in the <code class="filename">/etc/ldap.conf</code> or in the
|
|---|
| 793 | <code class="filename">/etc/ldap.secrets</code> file is correct, as specified in the
|
|---|
| 794 | <code class="filename">/etc/openldap/slapd.conf</code> file.
|
|---|
| 795 | </p></li></ol></div></div><div class="sect4" title="Debugging Samba"><div class="titlepage"><div><div><h5 class="title"><a name="id343646"></a>Debugging Samba</h5></div></div></div><p>
|
|---|
| 796 | The following parameters in the <code class="filename">smb.conf</code> file can be useful in tracking down Samba-related problems:
|
|---|
| 797 | </p><pre class="screen">
|
|---|
| 798 | [global]
|
|---|
| 799 | ...
|
|---|
| 800 | log level = 5
|
|---|
| 801 | log file = /var/log/samba/%m.log
|
|---|
| 802 | max log size = 0
|
|---|
| 803 | ...
|
|---|
| 804 | </pre><p>
|
|---|
| 805 | This will result in the creation of a separate log file for every client from which connections
|
|---|
| 806 | are made. The log file will be quite verbose and will grow continually. Do not forget to
|
|---|
| 807 | change these lines to the following when debugging has been completed:
|
|---|
| 808 | </p><pre class="screen">
|
|---|
| 809 | [global]
|
|---|
| 810 | ...
|
|---|
| 811 | log level = 1
|
|---|
| 812 | log file = /var/log/samba/%m.log
|
|---|
| 813 | max log size = 50
|
|---|
| 814 | ...
|
|---|
| 815 | </pre><p>
|
|---|
| 816 | </p><p>
|
|---|
| 817 | The log file can be analyzed by executing:
|
|---|
| 818 | </p><pre class="screen">
|
|---|
| 819 | <code class="prompt">root# </code> cd /var/log/samba
|
|---|
| 820 | <code class="prompt">root# </code> grep -v "^\[200" machine_name.log
|
|---|
| 821 | </pre><p>
|
|---|
| 822 | </p><p>
|
|---|
| 823 | Search for hints of what may have failed by looking for the words <span class="emphasis"><em>fail</em></span>
|
|---|
| 824 | and <span class="emphasis"><em>error</em></span>.
|
|---|
| 825 | </p></div><div class="sect4" title="Debugging on the Windows Client"><div class="titlepage"><div><div><h5 class="title"><a name="id343710"></a>Debugging on the Windows Client</h5></div></div></div><p>
|
|---|
| 826 | MS Windows 2000 Professional and Windows XP Professional clients can be configured
|
|---|
| 827 | to create a netlogon.log file that can be very helpful in diagnosing network logon problems. Search
|
|---|
| 828 | the Microsoft knowledge base for detailed instructions. The techniques vary a little with each
|
|---|
| 829 | version of MS Windows.
|
|---|
| 830 | </p></div></div></div><div class="sect2" title="Political Issues"><div class="titlepage"><div><div><h3 class="title"><a name="id343725"></a>Political Issues</h3></div></div></div><p>
|
|---|
| 831 | MS Windows network users are generally very sensitive to limits that may be imposed when
|
|---|
| 832 | confronted with locked-down workstation configurations. The challenge you face must
|
|---|
| 833 | be promoted as a choice between reliable, fast network operation and a constant flux
|
|---|
| 834 | of problems that result in user irritation.
|
|---|
| 835 | </p></div><div class="sect2" title="Installation Checklist"><div class="titlepage"><div><div><h3 class="title"><a name="id343737"></a>Installation Checklist</h3></div></div></div><p>
|
|---|
| 836 | You are starting a complex project. Even though you went through the installation of a complex
|
|---|
| 837 | network in <a class="link" href="Big500users.html" title="Chapter 4. The 500-User Office">“The 500-User Office”</a>, this network is a bigger challenge because of the
|
|---|
| 838 | large number of complex applications that must be configured before the first few steps
|
|---|
| 839 | can be validated. Take stock of what you are about to undertake, prepare yourself, and
|
|---|
| 840 | frequently review the steps ahead while making at least a mental note of what has already
|
|---|
| 841 | been completed. The following task list may help you to keep track of the task items
|
|---|
| 842 | that are covered:
|
|---|
| 843 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Samba-3 PDC Server Configuration</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>DHCP and DNS servers</p></li><li class="listitem"><p>OpenLDAP server</p></li><li class="listitem"><p>PAM and NSS client tools</p></li><li class="listitem"><p>Samba-3 PDC</p></li><li class="listitem"><p>Idealx smbldap scripts</p></li><li class="listitem"><p>LDAP initialization</p></li><li class="listitem"><p>Create user and group accounts</p></li><li class="listitem"><p>Printers</p></li><li class="listitem"><p>Share point directory roots</p></li><li class="listitem"><p>Profile directories</p></li><li class="listitem"><p>Logon scripts</p></li><li class="listitem"><p>Configuration of user rights and privileges</p></li></ol></div></li><li class="listitem"><p>Samba-3 BDC Server Configuration</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>DHCP and DNS servers</p></li><li class="listitem"><p>PAM and NSS client tools</p></li><li class="listitem"><p>Printers</p></li><li class="listitem"><p>Share point directory roots</p></li><li class="listitem"><p>Profiles directories</p></li></ol></div></li><li class="listitem"><p>Windows XP Client Configuration</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Default profile folder redirection</p></li><li class="listitem"><p>MS Outlook PST file relocation</p></li><li class="listitem"><p>Delete roaming profile on logout</p></li><li class="listitem"><p>Upload printer drivers to Samba servers</p></li><li class="listitem"><p>Install software</p></li><li class="listitem"><p>Creation of roll-out images</p></li></ol></div></li></ul></div></div></div><div class="sect1" title="Samba Server Implementation"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id343908"></a>Samba Server Implementation</h2></div></div></div><p>
|
|---|
| 844 | <a class="indexterm" name="id343916"></a>
|
|---|
| 845 | <a class="indexterm" name="id343923"></a>
|
|---|
| 846 | The network design shown in <a class="link" href="happy.html#chap6net" title="Figure 5.2. Network Topology 500 User Network Using ldapsam passdb backend">“Network Topology 500 User Network Using ldapsam passdb backend”</a> is not comprehensive. It is assumed
|
|---|
| 847 | that you will install additional file servers and possibly additional BDCs.
|
|---|
| 848 | </p><div class="figure"><a name="chap6net"></a><p class="title"><b>Figure 5.2. Network Topology 500 User Network Using ldapsam passdb backend</b></p><div class="figure-contents"><div class="mediaobject"><img src="images/chap6-net.png" width="270" alt="Network Topology 500 User Network Using ldapsam passdb backend"></div></div></div><br class="figure-break"><p>
|
|---|
| 849 | <a class="indexterm" name="id343983"></a>
|
|---|
| 850 | <a class="indexterm" name="id343990"></a>
|
|---|
| 851 | All configuration files and locations are shown for SUSE Linux 9.2 and are equally valid for SUSE
|
|---|
| 852 | Linux Enterprise Server 9. The file locations for Red Hat Linux are similar. You may need to
|
|---|
| 853 | adjust the locations for your particular Linux system distribution/implementation.
|
|---|
| 854 | </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
|
|---|
| 855 | The following information applies to Samba-3.0.20 when used with the Idealx smbldap-tools
|
|---|
| 856 | scripts version 0.9.1. If using a different version of Samba or of the smbldap-tools tarball,
|
|---|
| 857 | please verify that the versions you are about to use are matching. The smbldap-tools package
|
|---|
| 858 | uses counter-entries in the LDAP directory to avoid duplication of the UIDs and GIDs that are
|
|---|
| 859 | issued for POSIX accounts. The LDAP rdn under which this information is stored are called
|
|---|
| 860 | <code class="constant">uidNumber</code> and <code class="constant">gidNumber</code> respectively. These may be
|
|---|
| 861 | located in any convenient part of the directory information tree (DIT). In the examples that
|
|---|
| 862 | follow they have been located under <code class="constant">dn=sambaDomainName=MEGANET2,dc=abmas,dc=org</code>.
|
|---|
| 863 | They could just as well be located under the rdn <code class="constant">cn=NextFreeUnixId</code>.
|
|---|
| 864 | </p></div><p>
|
|---|
| 865 | The steps in the process involve changes from the network configuration shown in
|
|---|
| 866 | <a class="link" href="Big500users.html" title="Chapter 4. The 500-User Office">“The 500-User Office”</a>. Before implementing the following steps, you must
|
|---|
| 867 | have completed the network implementation shown in that chapter. If you are starting
|
|---|
| 868 | with newly installed Linux servers, you must complete the steps shown in
|
|---|
| 869 | <a class="link" href="Big500users.html#ch5-dnshcp-setup" title="Installation of DHCP, DNS, and Samba Control Files">“Installation of DHCP, DNS, and Samba Control Files”</a> before commencing at <a class="link" href="happy.html#ldapsetup" title="OpenLDAP Server Configuration">“OpenLDAP Server Configuration”</a>.
|
|---|
| 870 | </p><div class="sect2" title="OpenLDAP Server Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="ldapsetup"></a>OpenLDAP Server Configuration</h3></div></div></div><p>
|
|---|
| 871 | <a class="indexterm" name="id344059"></a>
|
|---|
| 872 | <a class="indexterm" name="id344066"></a>
|
|---|
| 873 | <a class="indexterm" name="id344073"></a>
|
|---|
| 874 | Confirm that the packages shown in <a class="link" href="happy.html#oldapreq" title="Table 5.2. Required OpenLDAP Linux Packages">“Required OpenLDAP Linux Packages”</a> are installed on your system.
|
|---|
| 875 | </p><div class="table"><a name="oldapreq"></a><p class="title"><b>Table 5.2. Required OpenLDAP Linux Packages</b></p><div class="table-contents"><table summary="Required OpenLDAP Linux Packages" border="1"><colgroup><col align="left"><col align="left"><col align="left"></colgroup><thead><tr><th align="center">SUSE Linux 8.x</th><th align="center">SUSE Linux 9.x</th><th align="center">Red Hat Linux</th></tr></thead><tbody><tr><td align="left">nss_ldap</td><td align="left">nss_ldap</td><td align="left">nss_ldap</td></tr><tr><td align="left">pam_ldap</td><td align="left">pam_ldap</td><td align="left">pam_ldap</td></tr><tr><td align="left">openldap2</td><td align="left">openldap2</td><td align="left">openldap</td></tr><tr><td align="left">openldap2-client</td><td align="left">openldap2-client</td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break"><p>
|
|---|
| 876 | Samba-3 and OpenLDAP will have a degree of interdependence that is unavoidable. The method
|
|---|
| 877 | for bootstrapping the LDAP and Samba-3 configuration is relatively straightforward. If you
|
|---|
| 878 | follow these guidelines, the resulting system should work fine.
|
|---|
| 879 | </p><div class="procedure" title="Procedure 5.2. OpenLDAP Server Configuration Steps"><a name="id344202"></a><p class="title"><b>Procedure 5.2. OpenLDAP Server Configuration Steps</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 880 | <a class="indexterm" name="id344213"></a>
|
|---|
| 881 | Install the file shown in <a class="link" href="happy.html#sbehap-slapdconf" title="Example 5.2. LDAP Master Configuration File /etc/openldap/slapd.conf Part A">“LDAP Master Configuration File /etc/openldap/slapd.conf Part A”</a> in the directory
|
|---|
| 882 | <code class="filename">/etc/openldap</code>.
|
|---|
| 883 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 884 | <a class="indexterm" name="id344240"></a>
|
|---|
| 885 | <a class="indexterm" name="id344247"></a>
|
|---|
| 886 | <a class="indexterm" name="id344253"></a>
|
|---|
| 887 | Remove all files from the directory <code class="filename">/data/ldap</code>, making certain that
|
|---|
| 888 | the directory exists with permissions:
|
|---|
| 889 | </p><pre class="screen">
|
|---|
| 890 | <code class="prompt">root# </code> ls -al /data | grep ldap
|
|---|
| 891 | drwx------ 2 ldap ldap 48 Dec 15 22:11 ldap
|
|---|
| 892 | </pre><p>
|
|---|
| 893 | This may require you to add a user and a group account for LDAP if they do not exist.
|
|---|
| 894 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 895 | <a class="indexterm" name="id344286"></a>
|
|---|
| 896 | Install the file shown in <a class="link" href="happy.html#sbehap-dbconf" title="Example 5.1. LDAP DB_CONFIG File">“LDAP DB_CONFIG File”</a> in the directory
|
|---|
| 897 | <code class="filename">/data/ldap</code>. In the event that this file is added after <code class="constant">ldap</code>
|
|---|
| 898 | has been started, it is possible to cause the new settings to take effect by shutting down
|
|---|
| 899 | the <code class="constant">LDAP</code> server, executing the <code class="literal">db_recover</code> command inside the
|
|---|
| 900 | <code class="filename">/data/ldap</code> directory, and then restarting the <code class="constant">LDAP</code> server.
|
|---|
| 901 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 902 | <a class="indexterm" name="id344336"></a>
|
|---|
| 903 | Performance logging can be enabled and should preferably be sent to a file on
|
|---|
| 904 | a file system that is large enough to handle significantly sized logs. To enable
|
|---|
| 905 | the logging at a verbose level to permit detailed analysis, uncomment the entry in
|
|---|
| 906 | the <code class="filename">/etc/openldap/slapd.conf</code> shown as <span class="quote">“<span class="quote">loglevel 256</span>”</span>.
|
|---|
| 907 | </p><p>
|
|---|
| 908 | Edit the <code class="filename">/etc/syslog.conf</code> file to add the following at the end
|
|---|
| 909 | of the file:
|
|---|
| 910 | </p><pre class="screen">
|
|---|
| 911 | local4.* -/data/ldap/log/openldap.log
|
|---|
| 912 | </pre><p>
|
|---|
| 913 | Note: The path <code class="filename">/data/ldap/log</code> should be set at a location
|
|---|
| 914 | that is convenient and that can store a large volume of data.
|
|---|
| 915 | </p></li></ol></div><div class="example"><a name="sbehap-dbconf"></a><p class="title"><b>Example 5.1. LDAP DB_CONFIG File</b></p><div class="example-contents"><pre class="screen">
|
|---|
| 916 | set_cachesize 0 150000000 1
|
|---|
| 917 | set_lg_regionmax 262144
|
|---|
| 918 | set_lg_bsize 2097152
|
|---|
| 919 | #set_lg_dir /var/log/bdb
|
|---|
| 920 | set_flags DB_LOG_AUTOREMOVE
|
|---|
| 921 | </pre></div></div><br class="example-break"><div class="example"><a name="sbehap-slapdconf"></a><p class="title"><b>Example 5.2. LDAP Master Configuration File <code class="filename">/etc/openldap/slapd.conf</code> Part A</b></p><div class="example-contents"><pre class="screen">
|
|---|
| 922 | include /etc/openldap/schema/core.schema
|
|---|
| 923 | include /etc/openldap/schema/cosine.schema
|
|---|
| 924 | include /etc/openldap/schema/inetorgperson.schema
|
|---|
| 925 | include /etc/openldap/schema/nis.schema
|
|---|
| 926 | include /etc/openldap/schema/samba3.schema
|
|---|
| 927 |
|
|---|
| 928 | pidfile /var/run/slapd/slapd.pid
|
|---|
| 929 | argsfile /var/run/slapd/slapd.args
|
|---|
| 930 |
|
|---|
| 931 | access to dn.base=""
|
|---|
| 932 | by self write
|
|---|
| 933 | by * auth
|
|---|
| 934 |
|
|---|
| 935 | access to attr=userPassword
|
|---|
| 936 | by self write
|
|---|
| 937 | by * auth
|
|---|
| 938 |
|
|---|
| 939 | access to attr=shadowLastChange
|
|---|
| 940 | by self write
|
|---|
| 941 | by * read
|
|---|
| 942 |
|
|---|
| 943 | access to *
|
|---|
| 944 | by * read
|
|---|
| 945 | by anonymous auth
|
|---|
| 946 |
|
|---|
| 947 | #loglevel 256
|
|---|
| 948 |
|
|---|
| 949 | schemacheck on
|
|---|
| 950 | idletimeout 30
|
|---|
| 951 | backend bdb
|
|---|
| 952 | database bdb
|
|---|
| 953 | checkpoint 1024 5
|
|---|
| 954 | cachesize 10000
|
|---|
| 955 |
|
|---|
| 956 | suffix "dc=abmas,dc=biz"
|
|---|
| 957 | rootdn "cn=Manager,dc=abmas,dc=biz"
|
|---|
| 958 |
|
|---|
| 959 | # rootpw = not24get
|
|---|
| 960 | rootpw {SSHA}86kTavd9Dw3FAz6qzWTrCOKX/c0Qe+UV
|
|---|
| 961 |
|
|---|
| 962 | directory /data/ldap
|
|---|
| 963 | </pre></div></div><br class="example-break"><div class="example"><a name="sbehap-slapdconf2"></a><p class="title"><b>Example 5.3. LDAP Master Configuration File <code class="filename">/etc/openldap/slapd.conf</code> Part B</b></p><div class="example-contents"><pre class="screen">
|
|---|
| 964 | # Indices to maintain
|
|---|
| 965 | index objectClass eq
|
|---|
| 966 | index cn pres,sub,eq
|
|---|
| 967 | index sn pres,sub,eq
|
|---|
| 968 | index uid pres,sub,eq
|
|---|
| 969 | index displayName pres,sub,eq
|
|---|
| 970 | index uidNumber eq
|
|---|
| 971 | index gidNumber eq
|
|---|
| 972 | index memberUID eq
|
|---|
| 973 | index sambaSID eq
|
|---|
| 974 | index sambaPrimaryGroupSID eq
|
|---|
| 975 | index sambaDomainName eq
|
|---|
| 976 | index default sub
|
|---|
| 977 | </pre></div></div><br class="example-break"></div><div class="sect2" title="PAM and NSS Client Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="sbehap-PAM-NSS"></a>PAM and NSS Client Configuration</h3></div></div></div><p>
|
|---|
| 978 | <a class="indexterm" name="id344468"></a>
|
|---|
| 979 | <a class="indexterm" name="id344474"></a>
|
|---|
| 980 | <a class="indexterm" name="id344481"></a>
|
|---|
| 981 | The steps that follow involve configuration of LDAP, NSS LDAP-based resolution of users and
|
|---|
| 982 | groups. Also, so that LDAP-based accounts can log onto the system, the steps ahead configure
|
|---|
| 983 | the Pluggable Authentication Modules (PAM) to permit LDAP-based authentication.
|
|---|
| 984 | </p><p>
|
|---|
| 985 | <a class="indexterm" name="id344493"></a>
|
|---|
| 986 | <a class="indexterm" name="id344502"></a>
|
|---|
| 987 | Since you have chosen to put UNIX user and group accounts into the LDAP database, it is likely
|
|---|
| 988 | that you may want to use them for UNIX system (Linux) local machine logons. This necessitates
|
|---|
| 989 | correct configuration of PAM. The <code class="literal">pam_ldap</code> open source package provides the
|
|---|
| 990 | PAM modules that most people would use. On SUSE Linux systems, the <code class="literal">pam_unix2.so</code>
|
|---|
| 991 | module also has the ability to redirect authentication requests through LDAP.
|
|---|
| 992 | </p><p>
|
|---|
| 993 | <a class="indexterm" name="id344527"></a>
|
|---|
| 994 | <a class="indexterm" name="id344534"></a>
|
|---|
| 995 | <a class="indexterm" name="id344541"></a>
|
|---|
| 996 | <a class="indexterm" name="id344548"></a>
|
|---|
| 997 | You have chosen to configure these services by directly editing the system files, but of course, you
|
|---|
| 998 | know that this configuration can be done using system tools provided by the Linux system vendor.
|
|---|
| 999 | SUSE Linux has a facility in YaST (the system admin tool) through <span class="guimenu">yast</span> → <span class="guimenuitem">system</span> → <span class="guimenuitem">ldap-client</span> that permits
|
|---|
| 1000 | configuration of SUSE Linux as an LDAP client. Red Hat Linux provides the <code class="literal">authconfig</code>
|
|---|
| 1001 | tool for this.
|
|---|
| 1002 | </p><div class="procedure" title="Procedure 5.3. PAM and NSS Client Configuration Steps"><a name="id344584"></a><p class="title"><b>Procedure 5.3. PAM and NSS Client Configuration Steps</b></p><div class="example"><a name="sbehap-nss01"></a><p class="title"><b>Example 5.4. Configuration File for NSS LDAP Support <code class="filename">/etc/ldap.conf</code></b></p><div class="example-contents"><pre class="screen">
|
|---|
| 1003 | host 127.0.0.1
|
|---|
| 1004 |
|
|---|
| 1005 | base dc=abmas,dc=biz
|
|---|
| 1006 |
|
|---|
| 1007 | binddn cn=Manager,dc=abmas,dc=biz
|
|---|
| 1008 | bindpw not24get
|
|---|
| 1009 |
|
|---|
| 1010 | timelimit 50
|
|---|
| 1011 | bind_timelimit 50
|
|---|
| 1012 | bind_policy hard
|
|---|
| 1013 |
|
|---|
| 1014 | idle_timelimit 3600
|
|---|
| 1015 |
|
|---|
| 1016 | pam_password exop
|
|---|
| 1017 |
|
|---|
| 1018 | nss_base_passwd ou=People,dc=abmas,dc=biz?one
|
|---|
| 1019 | nss_base_shadow ou=People,dc=abmas,dc=biz?one
|
|---|
| 1020 | nss_base_group ou=Groups,dc=abmas,dc=biz?one
|
|---|
| 1021 |
|
|---|
| 1022 | ssl off
|
|---|
| 1023 | </pre></div></div><br class="example-break"><div class="example"><a name="sbehap-nss02"></a><p class="title"><b>Example 5.5. Configuration File for NSS LDAP Clients Support <code class="filename">/etc/ldap.conf</code></b></p><div class="example-contents"><pre class="screen">
|
|---|
| 1024 | host 172.16.0.1
|
|---|
| 1025 |
|
|---|
| 1026 | base dc=abmas,dc=biz
|
|---|
| 1027 |
|
|---|
| 1028 | binddn cn=Manager,dc=abmas,dc=biz
|
|---|
| 1029 | bindpw not24get
|
|---|
| 1030 |
|
|---|
| 1031 | timelimit 50
|
|---|
| 1032 | bind_timelimit 50
|
|---|
| 1033 | bind_policy hard
|
|---|
| 1034 |
|
|---|
| 1035 | idle_timelimit 3600
|
|---|
| 1036 |
|
|---|
| 1037 | pam_password exop
|
|---|
| 1038 |
|
|---|
| 1039 | nss_base_passwd ou=People,dc=abmas,dc=biz?one
|
|---|
| 1040 | nss_base_shadow ou=People,dc=abmas,dc=biz?one
|
|---|
| 1041 | nss_base_group ou=Groups,dc=abmas,dc=biz?one
|
|---|
| 1042 |
|
|---|
| 1043 | ssl off
|
|---|
| 1044 | </pre></div></div><br class="example-break"><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 1045 | <a class="indexterm" name="id344595"></a>
|
|---|
| 1046 | <a class="indexterm" name="id344602"></a>
|
|---|
| 1047 | <a class="indexterm" name="id344609"></a>
|
|---|
| 1048 | Execute the following command to find where the <code class="filename">nss_ldap</code> module
|
|---|
| 1049 | expects to find its control file:
|
|---|
| 1050 | </p><pre class="screen">
|
|---|
| 1051 | <code class="prompt">root# </code> strings /lib/libnss_ldap.so.2 | grep conf
|
|---|
| 1052 | </pre><p>
|
|---|
| 1053 | The preferred and usual location is <code class="filename">/etc/ldap.conf</code>.
|
|---|
| 1054 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 1055 | On the server <code class="constant">MASSIVE</code>, install the file shown in
|
|---|
| 1056 | <a class="link" href="happy.html#sbehap-nss01" title="Example 5.4. Configuration File for NSS LDAP Support /etc/ldap.conf">“Configuration File for NSS LDAP Support /etc/ldap.conf”</a> into the path that was obtained from the step above.
|
|---|
| 1057 | On the servers called <code class="constant">BLDG1</code> and <code class="constant">BLDG2</code>, install the file shown in
|
|---|
| 1058 | <a class="link" href="happy.html#sbehap-nss02" title="Example 5.5. Configuration File for NSS LDAP Clients Support /etc/ldap.conf">“Configuration File for NSS LDAP Clients Support /etc/ldap.conf”</a> into the path that was obtained from the step above.
|
|---|
| 1059 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 1060 | <a class="indexterm" name="id344734"></a>
|
|---|
| 1061 | Edit the NSS control file (<code class="filename">/etc/nsswitch.conf</code>) so that the lines that
|
|---|
| 1062 | control user and group resolution will obtain information from the normal system files as
|
|---|
| 1063 | well as from <code class="literal">ldap</code>:
|
|---|
| 1064 | </p><pre class="screen">
|
|---|
| 1065 | passwd: files ldap
|
|---|
| 1066 | shadow: files ldap
|
|---|
| 1067 | group: files ldap
|
|---|
| 1068 | hosts: files dns wins
|
|---|
| 1069 | </pre><p>
|
|---|
| 1070 | Later, when the LDAP database has been initialized and user and group accounts have been
|
|---|
| 1071 | added, you can validate resolution of the LDAP resolver process. The inclusion of
|
|---|
| 1072 | WINS-based hostname resolution is deliberate so that all MS Windows client hostnames can be
|
|---|
| 1073 | resolved to their IP addresses, whether or not they are DHCP clients.
|
|---|
| 1074 | </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
|
|---|
| 1075 | Some Linux systems (Novell SUSE Linux in particular) add entries to the <code class="filename">nsswitch.conf</code>
|
|---|
| 1076 | file that may cause operational problems with the configuration methods adopted in this book. It is
|
|---|
| 1077 | advisable to comment out the entries <code class="constant">passwd_compat</code> and <code class="constant">group_compat</code>
|
|---|
| 1078 | where they are found in this file.
|
|---|
| 1079 | </p></div><p>
|
|---|
| 1080 | Even at the risk of overstating the issue, incorrect and inappropriate configuration of the
|
|---|
| 1081 | <code class="filename">nsswitch.conf</code> file is a significant cause of operational problems with LDAP.
|
|---|
| 1082 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 1083 | <a class="indexterm" name="id344800"></a>
|
|---|
| 1084 | For PAM LDAP configuration on this SUSE Linux 9.0 system, the simplest solution is to edit the following
|
|---|
| 1085 | files in the <code class="filename">/etc/pam.d</code> directory: <code class="literal">login</code>, <code class="literal">password</code>,
|
|---|
| 1086 | <code class="literal">samba</code>, <code class="literal">sshd</code>. In each file, locate every entry that has the
|
|---|
| 1087 | <code class="literal">pam_unix2.so</code> entry and add to the line the entry <code class="literal">use_ldap</code> as shown
|
|---|
| 1088 | for the <code class="literal">login</code> module in this example:
|
|---|
| 1089 | </p><pre class="screen">
|
|---|
| 1090 | #%PAM-1.0
|
|---|
| 1091 | auth requisite pam_unix2.so nullok use_ldap #set_secrpc
|
|---|
| 1092 | auth required pam_securetty.so
|
|---|
| 1093 | auth required pam_nologin.so
|
|---|
| 1094 | #auth required pam_homecheck.so
|
|---|
| 1095 | auth required pam_env.so
|
|---|
| 1096 | auth required pam_mail.so
|
|---|
| 1097 | account required pam_unix2.so use_ldap
|
|---|
| 1098 | password required pam_pwcheck.s nullok
|
|---|
| 1099 | password required pam_unix2.so nullok use_first_pass \
|
|---|
| 1100 | use_authtok use_ldap
|
|---|
| 1101 | session required pam_unix2.so none use_ldap # debug or trace
|
|---|
| 1102 | session required pam_limits.so
|
|---|
| 1103 | </pre><p>
|
|---|
| 1104 | </p><p>
|
|---|
| 1105 | <a class="indexterm" name="id344872"></a>
|
|---|
| 1106 | On other Linux systems that do not have an LDAP-enabled <code class="literal">pam_unix2.so</code> module,
|
|---|
| 1107 | you must edit these files by adding the <code class="literal">pam_ldap.so</code> modules as shown here:
|
|---|
| 1108 | </p><pre class="screen">
|
|---|
| 1109 | #%PAM-1.0
|
|---|
| 1110 | auth required pam_securetty.so
|
|---|
| 1111 | auth required pam_nologin.so
|
|---|
| 1112 | auth sufficient pam_ldap.so
|
|---|
| 1113 | auth required pam_unix2.so nullok try_first_pass #set_secrpc
|
|---|
| 1114 | account sufficient pam_ldap.so
|
|---|
| 1115 | account required pam_unix2.so
|
|---|
| 1116 | password required pam_pwcheck.so nullok
|
|---|
| 1117 | password required pam_ldap.so use_first_pass use_authtok
|
|---|
| 1118 | password required pam_unix2.so nullok use_first_pass use_authtok
|
|---|
| 1119 | session required pam_unix2.so none # debug or trace
|
|---|
| 1120 | session required pam_limits.so
|
|---|
| 1121 | session required pam_env.so
|
|---|
| 1122 | session optional pam_mail.so
|
|---|
| 1123 | </pre><p>
|
|---|
| 1124 | This example does have the LDAP-enabled <code class="literal">pam_unix2.so</code>, but simply
|
|---|
| 1125 | demonstrates the use of the <code class="literal">pam_ldap.so</code> module. You can use either
|
|---|
| 1126 | implementation, but if the <code class="literal">pam_unix2.so</code> on your system supports
|
|---|
| 1127 | LDAP, you probably want to use it rather than add an additional module.
|
|---|
| 1128 | </p></li></ol></div></div><div class="sect2" title="Samba-3 PDC Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="sbehap-massive"></a>Samba-3 PDC Configuration</h3></div></div></div><p>
|
|---|
| 1129 | <a class="indexterm" name="id344942"></a>
|
|---|
| 1130 | Verify that the Samba-3.0.20 (or later) packages are installed on each SUSE Linux server
|
|---|
| 1131 | before following the steps below. If Samba-3.0.20 (or later) is not installed, you have the
|
|---|
| 1132 | choice to either build your own or obtain the packages from a dependable source.
|
|---|
| 1133 | Packages for SUSE Linux 8.x, 9.x, and SUSE Linux Enterprise Server 9, as well as for
|
|---|
| 1134 | Red Hat Fedora Core and Red Hat Enterprise Linux Server 3 and 4, are included on the CD-ROM that
|
|---|
| 1135 | is included with this book.
|
|---|
| 1136 | </p><div class="procedure" title="Procedure 5.4. Configuration of PDC Called MASSIVE"><a name="id344954"></a><p class="title"><b>Procedure 5.4. Configuration of PDC Called <code class="constant">MASSIVE</code></b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 1137 | Install the files in <a class="link" href="happy.html#sbehap-massive-smbconfa" title="Example 5.6. LDAP Based smb.conf File, Server: MASSIVE global Section: Part A">“LDAP Based smb.conf File, Server: MASSIVE global Section: Part A”</a>,
|
|---|
| 1138 | <a class="link" href="happy.html#sbehap-massive-smbconfb" title="Example 5.7. LDAP Based smb.conf File, Server: MASSIVE global Section: Part B">“LDAP Based smb.conf File, Server: MASSIVE global Section: Part B”</a>, <a class="link" href="happy.html#sbehap-shareconfa" title="Example 5.10. LDAP Based smb.conf File, Shares Section Part A">“LDAP Based smb.conf File, Shares Section Part A”</a>,
|
|---|
| 1139 | and <a class="link" href="happy.html#sbehap-shareconfb" title="Example 5.11. LDAP Based smb.conf File, Shares Section Part B">“LDAP Based smb.conf File, Shares Section Part B”</a> into the <code class="filename">/etc/samba/</code>
|
|---|
| 1140 | directory. The three files should be added together to form the <code class="filename">smb.conf</code>
|
|---|
| 1141 | master file. It is a good practice to call this file something like
|
|---|
| 1142 | <code class="filename">smb.conf.master</code> and then to perform all file edits
|
|---|
| 1143 | on the master file. The operational <code class="filename">smb.conf</code> is then generated as shown in
|
|---|
| 1144 | the next step.
|
|---|
| 1145 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 1146 | <a class="indexterm" name="id345025"></a>
|
|---|
| 1147 | Create and verify the contents of the <code class="filename">smb.conf</code> file that is generated by:
|
|---|
| 1148 | </p><pre class="screen">
|
|---|
| 1149 | <code class="prompt">root# </code> testparm -s smb.conf.master > smb.conf
|
|---|
| 1150 | </pre><p>
|
|---|
| 1151 | Immediately follow this with the following:
|
|---|
| 1152 | </p><pre class="screen">
|
|---|
| 1153 | <code class="prompt">root# </code> testparm
|
|---|
| 1154 | </pre><p>
|
|---|
| 1155 | The output that is created should be free from errors, as shown here:
|
|---|
| 1156 |
|
|---|
| 1157 | </p><pre class="screen">
|
|---|
| 1158 | Load smb config files from /etc/samba/smb.conf
|
|---|
| 1159 | Processing section "[accounts]"
|
|---|
| 1160 | Processing section "[service]"
|
|---|
| 1161 | Processing section "[pidata]"
|
|---|
| 1162 | Processing section "[homes]"
|
|---|
| 1163 | Processing section "[printers]"
|
|---|
| 1164 | Processing section "[apps]"
|
|---|
| 1165 | Processing section "[netlogon]"
|
|---|
| 1166 | Processing section "[profiles]"
|
|---|
| 1167 | Processing section "[profdata]"
|
|---|
| 1168 | Processing section "[print$]"
|
|---|
| 1169 | Loaded services file OK.
|
|---|
| 1170 | Server role: ROLE_DOMAIN_PDC
|
|---|
| 1171 | Press enter to see a dump of your service definitions
|
|---|
| 1172 | </pre><p>
|
|---|
| 1173 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 1174 | Delete all runtime files from prior Samba operation by executing (for SUSE
|
|---|
| 1175 | Linux):
|
|---|
| 1176 | </p><pre class="screen">
|
|---|
| 1177 | <code class="prompt">root# </code> rm /etc/samba/*tdb
|
|---|
| 1178 | <code class="prompt">root# </code> rm /var/lib/samba/*tdb
|
|---|
| 1179 | <code class="prompt">root# </code> rm /var/lib/samba/*dat
|
|---|
| 1180 | <code class="prompt">root# </code> rm /var/log/samba/*
|
|---|
| 1181 | </pre><p>
|
|---|
| 1182 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 1183 | <a class="indexterm" name="id345117"></a>
|
|---|
| 1184 | <a class="indexterm" name="id345124"></a>
|
|---|
| 1185 | Samba-3 communicates with the LDAP server. The password that it uses to
|
|---|
| 1186 | authenticate to the LDAP server must be stored in the <code class="filename">secrets.tdb</code>
|
|---|
| 1187 | file. Execute the following to create the new <code class="filename">secrets.tdb</code> files
|
|---|
| 1188 | and store the password for the LDAP Manager:
|
|---|
| 1189 | </p><pre class="screen">
|
|---|
| 1190 | <code class="prompt">root# </code> smbpasswd -w not24get
|
|---|
| 1191 | </pre><p>
|
|---|
| 1192 | The expected output from this command is:
|
|---|
| 1193 | </p><pre class="screen">
|
|---|
| 1194 | Setting stored password for "cn=Manager,dc=abmas,dc=biz" in secrets.tdb
|
|---|
| 1195 | </pre><p>
|
|---|
| 1196 | </p></li><li class="step" title="Step 5"><p>
|
|---|
| 1197 | <a class="indexterm" name="id345169"></a>
|
|---|
| 1198 | <a class="indexterm" name="id345176"></a>
|
|---|
| 1199 | Samba-3 generates a Windows Security Identifier (SID) only when <code class="literal">smbd</code>
|
|---|
| 1200 | has been started. For this reason, you start Samba. After a few seconds delay,
|
|---|
| 1201 | execute:
|
|---|
| 1202 | </p><pre class="screen">
|
|---|
| 1203 | <code class="prompt">root# </code> smbclient -L localhost -U%
|
|---|
| 1204 | <code class="prompt">root# </code> net getlocalsid
|
|---|
| 1205 | </pre><p>
|
|---|
| 1206 | A report such as the following means that the domain SID has not yet
|
|---|
| 1207 | been written to the <code class="filename">secrets.tdb</code> or to the LDAP backend:
|
|---|
| 1208 | </p><pre class="screen">
|
|---|
| 1209 | [2005/03/03 23:19:34, 0] lib/smbldap.c:smbldap_connect_system(852)
|
|---|
| 1210 | failed to bind to server ldap://massive.abmas.biz
|
|---|
| 1211 | with dn="cn=Manager,dc=abmas,dc=biz" Error: Can't contact LDAP server
|
|---|
| 1212 | (unknown)
|
|---|
| 1213 | [2005/03/03 23:19:48, 0] lib/smbldap.c:smbldap_search_suffix(1169)
|
|---|
| 1214 | smbldap_search_suffix: Problem during the LDAP search:
|
|---|
| 1215 | (unknown) (Timed out)
|
|---|
| 1216 | </pre><p>
|
|---|
| 1217 | The attempt to read the SID will cause and attempted bind to the LDAP server. Because the LDAP server
|
|---|
| 1218 | is not running, this operation will fail by way of a timeout, as shown previously. This is
|
|---|
| 1219 | normal output; do not worry about this error message. When the domain has been created and
|
|---|
| 1220 | written to the <code class="filename">secrets.tdb</code> file, the output should look like this:
|
|---|
| 1221 | </p><pre class="screen">
|
|---|
| 1222 | SID for domain MASSIVE is: S-1-5-21-3504140859-1010554828-2431957765
|
|---|
| 1223 | </pre><p>
|
|---|
| 1224 | If, after a short delay (a few seconds), the domain SID has still not been written to
|
|---|
| 1225 | the <code class="filename">secrets.tdb</code> file, it is necessary to investigate what
|
|---|
| 1226 | may be misconfigured. In this case, carefully check the <code class="filename">smb.conf</code> file for typographical
|
|---|
| 1227 | errors (the most common problem). The use of the <code class="literal">testparm</code> is highly
|
|---|
| 1228 | recommended to validate the contents of this file.
|
|---|
| 1229 | </p></li><li class="step" title="Step 6"><p>
|
|---|
| 1230 | When a positive domain SID has been reported, stop Samba.
|
|---|
| 1231 | </p></li><li class="step" title="Step 7"><p>
|
|---|
| 1232 | <a class="indexterm" name="id345275"></a>
|
|---|
| 1233 | <a class="indexterm" name="id345281"></a>
|
|---|
| 1234 | <a class="indexterm" name="id345288"></a>
|
|---|
| 1235 | <a class="indexterm" name="id345295"></a>
|
|---|
| 1236 | Configure the NFS server for your Linux system. So you can complete the steps that
|
|---|
| 1237 | follow, enter into the <code class="filename">/etc/exports</code> the following entry:
|
|---|
| 1238 | </p><pre class="screen">
|
|---|
| 1239 | /home *(rw,root_squash,sync)
|
|---|
| 1240 | </pre><p>
|
|---|
| 1241 | This permits the user home directories to be used on the BDC servers for testing
|
|---|
| 1242 | purposes. You, of course, decide what is the best way for your site to distribute
|
|---|
| 1243 | data drives, and you create suitable backup and restore procedures for Abmas
|
|---|
| 1244 | I'd strongly recommend that for normal operation the BDC is completely independent
|
|---|
| 1245 | of the PDC. rsync is a useful tool here, as it resembles the NT replication service quite
|
|---|
| 1246 | closely. If you do use NFS, do not forget to start the NFS server as follows:
|
|---|
| 1247 | </p><pre class="screen">
|
|---|
| 1248 | <code class="prompt">root# </code> rcnfsserver start
|
|---|
| 1249 | </pre><p>
|
|---|
| 1250 | </p></li></ol></div><p>
|
|---|
| 1251 | Your Samba-3 PDC is now ready to communicate with the LDAP password backend. Let's get on with
|
|---|
| 1252 | configuration of the LDAP server.
|
|---|
| 1253 | </p><div class="example"><a name="sbehap-massive-smbconfa"></a><p class="title"><b>Example 5.6. LDAP Based <code class="filename">smb.conf</code> File, Server: MASSIVE global Section: Part A</b></p><div class="example-contents"><table border="0" summary="Simple list" class="simplelist"><tr><td># Global parameters</td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[global]</code></em></td></tr><tr><td><a class="indexterm" name="id345373"></a><em class="parameter"><code>unix charset = LOCALE</code></em></td></tr><tr><td><a class="indexterm" name="id345384"></a><em class="parameter"><code>workgroup = MEGANET2</code></em></td></tr><tr><td><a class="indexterm" name="id345396"></a><em class="parameter"><code>netbios name = MASSIVE</code></em></td></tr><tr><td><a class="indexterm" name="id345407"></a><em class="parameter"><code>interfaces = eth1, lo</code></em></td></tr><tr><td><a class="indexterm" name="id345418"></a><em class="parameter"><code>bind interfaces only = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id345430"></a><em class="parameter"><code>passdb backend = ldapsam:ldap://massive.abmas.biz</code></em></td></tr><tr><td><a class="indexterm" name="id345442"></a><em class="parameter"><code>enable privileges = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id345453"></a><em class="parameter"><code>username map = /etc/samba/smbusers</code></em></td></tr><tr><td><a class="indexterm" name="id345465"></a><em class="parameter"><code>log level = 1</code></em></td></tr><tr><td><a class="indexterm" name="id345476"></a><em class="parameter"><code>syslog = 0</code></em></td></tr><tr><td><a class="indexterm" name="id345488"></a><em class="parameter"><code>log file = /var/log/samba/%m</code></em></td></tr><tr><td><a class="indexterm" name="id345499"></a><em class="parameter"><code>max log size = 50</code></em></td></tr><tr><td><a class="indexterm" name="id345511"></a><em class="parameter"><code>smb ports = 139</code></em></td></tr><tr><td><a class="indexterm" name="id345522"></a><em class="parameter"><code>name resolve order = wins bcast hosts</code></em></td></tr><tr><td><a class="indexterm" name="id345534"></a><em class="parameter"><code>time server = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id345545"></a><em class="parameter"><code>printcap name = CUPS</code></em></td></tr><tr><td><a class="indexterm" name="id345557"></a><em class="parameter"><code>show add printer wizard = No</code></em></td></tr><tr><td><a class="indexterm" name="id345568"></a><em class="parameter"><code>add user script = /opt/IDEALX/sbin/smbldap-useradd -m "%u"</code></em></td></tr><tr><td><a class="indexterm" name="id345580"></a><em class="parameter"><code>delete user script = /opt/IDEALX/sbin/smbldap-userdel "%u"</code></em></td></tr><tr><td><a class="indexterm" name="id345592"></a><em class="parameter"><code>add group script = /opt/IDEALX/sbin/smbldap-groupadd -p "%g"</code></em></td></tr><tr><td><a class="indexterm" name="id345604"></a><em class="parameter"><code>delete group script = /opt/IDEALX/sbin/smbldap-groupdel "%g"</code></em></td></tr><tr><td><a class="indexterm" name="id345616"></a><em class="parameter"><code>add user to group script = /opt/IDEALX/sbin/smbldap-groupmod -m "%u" "%g"</code></em></td></tr><tr><td><a class="indexterm" name="id345628"></a><em class="parameter"><code>delete user from group script = /opt/IDEALX/sbin/smbldap-groupmod -x "%u" "%g"</code></em></td></tr><tr><td><a class="indexterm" name="id345640"></a><em class="parameter"><code>set primary group script = /opt/IDEALX/sbin/smbldap-usermod -g "%g" "%u"</code></em></td></tr><tr><td><a class="indexterm" name="id345652"></a><em class="parameter"><code>add machine script = /opt/IDEALX/sbin/smbldap-useradd -w "%u"</code></em></td></tr></table></div></div><br class="example-break"><div class="example"><a name="sbehap-massive-smbconfb"></a><p class="title"><b>Example 5.7. LDAP Based <code class="filename">smb.conf</code> File, Server: MASSIVE global Section: Part B</b></p><div class="example-contents"><table border="0" summary="Simple list" class="simplelist"><tr><td><a class="indexterm" name="id345688"></a><em class="parameter"><code>logon script = scripts\logon.bat</code></em></td></tr><tr><td><a class="indexterm" name="id345700"></a><em class="parameter"><code>logon path = \\%L\profiles\%U</code></em></td></tr><tr><td><a class="indexterm" name="id345711"></a><em class="parameter"><code>logon drive = X:</code></em></td></tr><tr><td><a class="indexterm" name="id345723"></a><em class="parameter"><code>domain logons = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id345734"></a><em class="parameter"><code>preferred master = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id345746"></a><em class="parameter"><code>wins support = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id345757"></a><em class="parameter"><code>ldap suffix = dc=abmas,dc=biz</code></em></td></tr><tr><td><a class="indexterm" name="id345769"></a><em class="parameter"><code>ldap machine suffix = ou=People</code></em></td></tr><tr><td><a class="indexterm" name="id345780"></a><em class="parameter"><code>ldap user suffix = ou=People</code></em></td></tr><tr><td><a class="indexterm" name="id345792"></a><em class="parameter"><code>ldap group suffix = ou=Groups</code></em></td></tr><tr><td><a class="indexterm" name="id345804"></a><em class="parameter"><code>ldap idmap suffix = ou=Idmap</code></em></td></tr><tr><td><a class="indexterm" name="id345815"></a><em class="parameter"><code>ldap admin dn = cn=Manager,dc=abmas,dc=biz</code></em></td></tr><tr><td><a class="indexterm" name="id345827"></a><em class="parameter"><code>idmap backend = ldap:ldap://massive.abmas.biz</code></em></td></tr><tr><td><a class="indexterm" name="id345839"></a><em class="parameter"><code>idmap uid = 10000-20000</code></em></td></tr><tr><td><a class="indexterm" name="id345850"></a><em class="parameter"><code>idmap gid = 10000-20000</code></em></td></tr><tr><td><a class="indexterm" name="id345862"></a><em class="parameter"><code>map acl inherit = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id345873"></a><em class="parameter"><code>printing = cups</code></em></td></tr><tr><td><a class="indexterm" name="id345884"></a><em class="parameter"><code>printer admin = root, chrisr</code></em></td></tr></table></div></div><br class="example-break"></div><div class="sect2" title="Install and Configure Idealx smbldap-tools Scripts"><div class="titlepage"><div><div><h3 class="title"><a name="sbeidealx"></a>Install and Configure Idealx smbldap-tools Scripts</h3></div></div></div><p>
|
|---|
| 1254 | <a class="indexterm" name="id345910"></a>
|
|---|
| 1255 | The Idealx scripts, or equivalent, are necessary to permit Samba-3 to manage accounts
|
|---|
| 1256 | on the LDAP server. You have chosen the Idealx scripts because they are the best-known
|
|---|
| 1257 | LDAP configuration scripts. The use of these scripts will help avoid the necessity
|
|---|
| 1258 | to create custom scripts. It is easy to download them from the Idealx
|
|---|
| 1259 | <a class="ulink" href="http://samba.idealx.org/index.en.html" target="_top">Web site</a>. The tarball may
|
|---|
| 1260 | be directly <a class="ulink" href="http://samba.idealx.org/dist/smbldap-tools-0.9.1.tgz" target="_top">downloaded</a>
|
|---|
| 1261 | from this site also. Alternatively, you may obtain the
|
|---|
| 1262 | <a class="ulink" href="http://samba.idealx.org/dist/smbldap-tools-0.9.1-1.src.rpm" target="_top">smbldap-tools-0.9.1-1.src.rpm</a>
|
|---|
| 1263 | file that may be used to build an installable RPM package for your Linux system.
|
|---|
| 1264 | </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
|
|---|
| 1265 | The smbldap-tools scripts can be installed in any convenient directory of your choice, in which case you must
|
|---|
| 1266 | change the path to them in your <code class="filename">smb.conf</code> file on the PDC (<code class="constant">MASSIVE</code>).
|
|---|
| 1267 | </p></div><p>
|
|---|
| 1268 | The smbldap-tools are located in <code class="filename">/opt/IDEALX/sbin</code>.
|
|---|
| 1269 | The scripts are not needed on BDC machines because all LDAP updates are handled by
|
|---|
| 1270 | the PDC alone.
|
|---|
| 1271 | </p><div class="sect3" title="Installation of smbldap-tools from the Tarball"><div class="titlepage"><div><div><h4 class="title"><a name="id345968"></a>Installation of smbldap-tools from the Tarball</h4></div></div></div><p>
|
|---|
| 1272 | To perform a manual installation of the smbldap-tools scripts, the following procedure may be used:
|
|---|
| 1273 | </p><div class="procedure" title="Procedure 5.5. Unpacking and Installation Steps for the smbldap-tools Tarball"><a name="idealxscript"></a><p class="title"><b>Procedure 5.5. Unpacking and Installation Steps for the <code class="constant">smbldap-tools</code> Tarball</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 1274 | Create the <code class="filename">/opt/IDEALX/sbin</code> directory, and set its permissions
|
|---|
| 1275 | and ownership as shown here:
|
|---|
| 1276 | </p><pre class="screen">
|
|---|
| 1277 | <code class="prompt">root# </code> mkdir -p /opt/IDEALX/sbin
|
|---|
| 1278 | <code class="prompt">root# </code> chown root:root /opt/IDEALX/sbin
|
|---|
| 1279 | <code class="prompt">root# </code> chmod 755 /opt/IDEALX/sbin
|
|---|
| 1280 | <code class="prompt">root# </code> mkdir -p /etc/smbldap-tools
|
|---|
| 1281 | <code class="prompt">root# </code> chown root:root /etc/smbldap-tools
|
|---|
| 1282 | <code class="prompt">root# </code> chmod 755 /etc/smbldap-tools
|
|---|
| 1283 | </pre><p>
|
|---|
| 1284 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 1285 | If you wish to use the downloaded tarball, unpack the smbldap-tools in a suitable temporary location.
|
|---|
| 1286 | Change into either the directory extracted from the tarball or the smbldap-tools
|
|---|
| 1287 | directory in your <code class="filename">/usr/share/doc/packages</code> directory tree.
|
|---|
| 1288 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 1289 | Copy all the <code class="filename">smbldap-*</code> and the <code class="filename">configure.pl</code> files into the
|
|---|
| 1290 | <code class="filename">/opt/IDEALX/sbin</code> directory, as shown here:
|
|---|
| 1291 | </p><pre class="screen">
|
|---|
| 1292 | <code class="prompt">root# </code> cd smbldap-tools-0.9.1/
|
|---|
| 1293 | <code class="prompt">root# </code> cp smbldap-* configure.pl *pm /opt/IDEALX/sbin/
|
|---|
| 1294 | <code class="prompt">root# </code> cp smbldap*conf /etc/smbldap-tools/
|
|---|
| 1295 | <code class="prompt">root# </code> chmod 750 /opt/IDEALX/sbin/smbldap-*
|
|---|
| 1296 | <code class="prompt">root# </code> chmod 750 /opt/IDEALX/sbin/configure.pl
|
|---|
| 1297 | <code class="prompt">root# </code> chmod 640 /etc/smbldap-tools/smbldap.conf
|
|---|
| 1298 | <code class="prompt">root# </code> chmod 600 /etc/smbldap-tools/smbldap_bind.conf
|
|---|
| 1299 | </pre><p>
|
|---|
| 1300 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 1301 | The smbldap-tools scripts master control file must now be configured.
|
|---|
| 1302 | Change to the <code class="filename">/opt/IDEALX/sbin</code> directory, then edit the
|
|---|
| 1303 | <code class="filename">smbldap_tools.pm</code> to affect the changes
|
|---|
| 1304 | shown here:
|
|---|
| 1305 | </p><pre class="screen">
|
|---|
| 1306 | ...
|
|---|
| 1307 | # ugly funcs using global variables and spawning openldap clients
|
|---|
| 1308 |
|
|---|
| 1309 | my $smbldap_conf="/etc/smbldap-tools/smbldap.conf";
|
|---|
| 1310 | my $smbldap_bind_conf="/etc/smbldap-tools/smbldap_bind.conf";
|
|---|
| 1311 | ...
|
|---|
| 1312 | </pre><p>
|
|---|
| 1313 | </p></li><li class="step" title="Step 5"><p>
|
|---|
| 1314 | To complete the configuration of the smbldap-tools, set the permissions and ownership
|
|---|
| 1315 | by executing the following commands:
|
|---|
| 1316 | </p><pre class="screen">
|
|---|
| 1317 | <code class="prompt">root# </code> chown root:root /opt/IDEALX/sbin/*
|
|---|
| 1318 | <code class="prompt">root# </code> chmod 755 /opt/IDEALX/sbin/smbldap-*
|
|---|
| 1319 | <code class="prompt">root# </code> chmod 640 /opt/IDEALX/sbin/smb*pm
|
|---|
| 1320 | </pre><p>
|
|---|
| 1321 | The smbldap-tools scripts are now ready for the configuration step outlined in
|
|---|
| 1322 | <a class="link" href="happy.html#smbldap-init" title="Configuration of smbldap-tools">“Configuration of smbldap-tools”</a>.
|
|---|
| 1323 | </p></li></ol></div></div><div class="sect3" title="Installing smbldap-tools from the RPM Package"><div class="titlepage"><div><div><h4 class="title"><a name="id346204"></a>Installing smbldap-tools from the RPM Package</h4></div></div></div><p>
|
|---|
| 1324 | In the event that you have elected to use the RPM package provided by Idealx, download the
|
|---|
| 1325 | source RPM <code class="filename">smbldap-tools-0.9.1-1.src.rpm</code>, then follow this procedure:
|
|---|
| 1326 | </p><div class="procedure" title="Procedure 5.6. Installation Steps for smbldap-tools RPM's"><a name="id346220"></a><p class="title"><b>Procedure 5.6. Installation Steps for <code class="constant">smbldap-tools</code> RPM's</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 1327 | Install the source RPM that has been downloaded as follows:
|
|---|
| 1328 | </p><pre class="screen">
|
|---|
| 1329 | <code class="prompt">root# </code> rpm -i smbldap-tools-0.9.1-1.src.rpm
|
|---|
| 1330 | </pre><p>
|
|---|
| 1331 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 1332 | Change into the directory in which the SPEC files are located. On SUSE Linux:
|
|---|
| 1333 | </p><pre class="screen">
|
|---|
| 1334 | <code class="prompt">root# </code> cd /usr/src/packages/SPECS
|
|---|
| 1335 | </pre><p>
|
|---|
| 1336 | On Red Hat Linux systems:
|
|---|
| 1337 | </p><pre class="screen">
|
|---|
| 1338 | <code class="prompt">root# </code> cd /usr/src/redhat/SPECS
|
|---|
| 1339 | </pre><p>
|
|---|
| 1340 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 1341 | Edit the <code class="filename">smbldap-tools.spec</code> file to change the value of the
|
|---|
| 1342 | <code class="constant">_sysconfig</code> macro as shown here:
|
|---|
| 1343 | </p><pre class="screen">
|
|---|
| 1344 | %define _prefix /opt/IDEALX
|
|---|
| 1345 | %define _sysconfdir /etc
|
|---|
| 1346 | </pre><p>
|
|---|
| 1347 | Note: Any suitable directory can be specified.
|
|---|
| 1348 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 1349 | Build the package by executing:
|
|---|
| 1350 | </p><pre class="screen">
|
|---|
| 1351 | <code class="prompt">root# </code> rpmbuild -ba -v smbldap-tools.spec
|
|---|
| 1352 | </pre><p>
|
|---|
| 1353 | A build process that has completed without error will place the installable binary
|
|---|
| 1354 | files in the directory <code class="filename">../RPMS/noarch</code>.
|
|---|
| 1355 | </p></li><li class="step" title="Step 5"><p>
|
|---|
| 1356 | Install the binary package by executing:
|
|---|
| 1357 | </p><pre class="screen">
|
|---|
| 1358 | <code class="prompt">root# </code> rpm -Uvh ../RPMS/noarch/smbldap-tools-0.9.1-1.noarch.rpm
|
|---|
| 1359 | </pre><p>
|
|---|
| 1360 | </p></li></ol></div><p>
|
|---|
| 1361 | The Idealx scripts should now be ready for configuration using the steps outlined in
|
|---|
| 1362 | <a class="link" href="happy.html#smbldap-init" title="Configuration of smbldap-tools">Configuration of smbldap-tools</a>.
|
|---|
| 1363 | </p></div><div class="sect3" title="Configuration of smbldap-tools"><div class="titlepage"><div><div><h4 class="title"><a name="smbldap-init"></a>Configuration of smbldap-tools</h4></div></div></div><p>
|
|---|
| 1364 | Prior to use, the smbldap-tools must be configured to match the settings in the <code class="filename">smb.conf</code> file
|
|---|
| 1365 | and to match the settings in the <code class="filename">/etc/openldap/slapd.conf</code> file. The assumption
|
|---|
| 1366 | is made that the <code class="filename">smb.conf</code> file has correct contents. The following procedure ensures that
|
|---|
| 1367 | this is completed correctly:
|
|---|
| 1368 | </p><p>
|
|---|
| 1369 | The smbldap-tools require that the NetBIOS name (machine name) of the Samba server be included
|
|---|
| 1370 | in the <code class="filename">smb.conf</code> file.
|
|---|
| 1371 | </p><div class="procedure" title="Procedure 5.7. Configuration Steps for smbldap-tools to Enable Use"><a name="id346402"></a><p class="title"><b>Procedure 5.7. Configuration Steps for <code class="constant">smbldap-tools</code> to Enable Use</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 1372 | Change into the directory that contains the <code class="filename">configure.pl</code> script.
|
|---|
| 1373 | </p><pre class="screen">
|
|---|
| 1374 | <code class="prompt">root# </code> cd /opt/IDEALX/sbin
|
|---|
| 1375 | </pre><p>
|
|---|
| 1376 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 1377 | Execute the <code class="filename">configure.pl</code> script as follows:
|
|---|
| 1378 | </p><pre class="screen">
|
|---|
| 1379 | <code class="prompt">root# </code> ./configure.pl
|
|---|
| 1380 | </pre><p>
|
|---|
| 1381 | The interactive use of this script for the PDC is demonstrated here:
|
|---|
| 1382 | </p><pre class="screen">
|
|---|
| 1383 | <code class="prompt">root# </code> /opt/IDEALX/sbin/configure.pl
|
|---|
| 1384 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|---|
| 1385 | smbldap-tools script configuration
|
|---|
| 1386 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|---|
| 1387 | Before starting, check
|
|---|
| 1388 | . if your samba controller is up and running.
|
|---|
| 1389 | . if the domain SID is defined (you can get it with the
|
|---|
| 1390 | 'net getlocalsid')
|
|---|
| 1391 |
|
|---|
| 1392 | . you can leave the configuration using the Crtl-c key combination
|
|---|
| 1393 | . empty value can be set with the "." character
|
|---|
| 1394 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|---|
| 1395 | Looking for configuration files...
|
|---|
| 1396 |
|
|---|
| 1397 | Samba Config File Location [/etc/samba/smb.conf] >
|
|---|
| 1398 | smbldap-tools configuration file Location (global parameters)
|
|---|
| 1399 | [/etc/opt/IDEALX/smbldap-tools/smbldap.conf] >
|
|---|
| 1400 | smbldap Config file Location (bind parameters)
|
|---|
| 1401 | [/etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf] >
|
|---|
| 1402 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|---|
| 1403 | Let's start configuring the smbldap-tools scripts ...
|
|---|
| 1404 |
|
|---|
| 1405 | . workgroup name: name of the domain Samba act as a PDC
|
|---|
| 1406 | workgroup name [MEGANET2] >
|
|---|
| 1407 | . netbios name: netbios name of the samba controler
|
|---|
| 1408 | netbios name [MASSIVE] >
|
|---|
| 1409 | . logon drive: local path to which the home directory
|
|---|
| 1410 | will be connected (for NT Workstations). Ex: 'H:'
|
|---|
| 1411 | logon drive [H:] >
|
|---|
| 1412 | . logon home: home directory location (for Win95/98 or NT Workstation)
|
|---|
| 1413 | (use %U as username) Ex:'\\MASSIVE\%U'
|
|---|
| 1414 | logon home (press the "." character if you don't want homeDirectory)
|
|---|
| 1415 | [\\MASSIVE\%U] >
|
|---|
| 1416 | . logon path: directory where roaming profiles are stored.
|
|---|
| 1417 | Ex:'\\MASSIVE\profiles\%U'
|
|---|
| 1418 | logon path (press the "." character
|
|---|
| 1419 | if you don't want roaming profile) [\\%L\profiles\%U] >
|
|---|
| 1420 | . home directory prefix (use %U as username)
|
|---|
| 1421 | [/home/%U] > /data/users/%U
|
|---|
| 1422 | . default users' homeDirectory mode [700] >
|
|---|
| 1423 | . default user netlogon script (use %U as username)
|
|---|
| 1424 | [scripts\logon.bat] >
|
|---|
| 1425 | default password validation time (time in days) [45] > 900
|
|---|
| 1426 | . ldap suffix [dc=abmas,dc=biz] >
|
|---|
| 1427 | . ldap group suffix [ou=Groups] >
|
|---|
| 1428 | . ldap user suffix [ou=People,ou=Users] >
|
|---|
| 1429 | . ldap machine suffix [ou=Computers,ou=Users] >
|
|---|
| 1430 | . Idmap suffix [ou=Idmap] >
|
|---|
| 1431 | . sambaUnixIdPooldn: object where you want to store the next uidNumber
|
|---|
| 1432 | and gidNumber available for new users and groups
|
|---|
| 1433 | sambaUnixIdPooldn object (relative to ${suffix})
|
|---|
| 1434 | [sambaDomainName=MEGANET2] >
|
|---|
| 1435 | . ldap master server: IP adress or DNS name of the master
|
|---|
| 1436 | (writable) ldap server
|
|---|
| 1437 | ldap master server [massive.abmas.biz] >
|
|---|
| 1438 | . ldap master port [389] >
|
|---|
| 1439 | . ldap master bind dn [cn=Manager,dc=abmas,dc=biz] >
|
|---|
| 1440 | . ldap master bind password [] >
|
|---|
| 1441 | . ldap slave server: IP adress or DNS name of the slave ldap server:
|
|---|
| 1442 | can also be the master one
|
|---|
| 1443 | ldap slave server [massive.abmas.biz] >
|
|---|
| 1444 | . ldap slave port [389] >
|
|---|
| 1445 | . ldap slave bind dn [cn=Manager,dc=abmas,dc=biz] >
|
|---|
| 1446 | . ldap slave bind password [] >
|
|---|
| 1447 | . ldap tls support (1/0) [0] >
|
|---|
| 1448 | . SID for domain MEGANET2: SID of the domain
|
|---|
| 1449 | (can be obtained with 'net getlocalsid MASSIVE')
|
|---|
| 1450 | SID for domain MEGANET2
|
|---|
| 1451 | [S-1-5-21-3504140859-1010554828-2431957765]] >
|
|---|
| 1452 | . unix password encryption: encryption used for unix passwords
|
|---|
| 1453 | unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA) [SSHA] > MD5
|
|---|
| 1454 | . default user gidNumber [513] >
|
|---|
| 1455 | . default computer gidNumber [515] >
|
|---|
| 1456 | . default login shell [/bin/bash] >
|
|---|
| 1457 | . default skeleton directory [/etc/skel] >
|
|---|
| 1458 | . default domain name to append to mail adress [] > abmas.biz
|
|---|
| 1459 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|---|
| 1460 | backup old configuration files:
|
|---|
| 1461 | /etc/opt/IDEALX/smbldap-tools/smbldap.conf->
|
|---|
| 1462 | /etc/opt/IDEALX/smbldap-tools/smbldap.conf.old
|
|---|
| 1463 | /etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf->
|
|---|
| 1464 | /etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf.old
|
|---|
| 1465 | writing new configuration file:
|
|---|
| 1466 | /etc/opt/IDEALX/smbldap-tools/smbldap.conf done.
|
|---|
| 1467 | /etc/opt/IDEALX/smbldap-tools/smbldap_bind.conf done.
|
|---|
| 1468 | </pre><p>
|
|---|
| 1469 | Since a slave LDAP server has not been configured, it is necessary to specify the IP
|
|---|
| 1470 | address of the master LDAP server for both the master and the slave configuration
|
|---|
| 1471 | prompts.
|
|---|
| 1472 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 1473 | Change to the directory that contains the <code class="filename">smbldap.conf</code> file,
|
|---|
| 1474 | then verify its contents.
|
|---|
| 1475 | </p></li></ol></div><p>
|
|---|
| 1476 | The smbldap-tools are now ready for use.
|
|---|
| 1477 | </p></div></div><div class="sect2" title="LDAP Initialization and Creation of User and Group Accounts"><div class="titlepage"><div><div><h3 class="title"><a name="id346546"></a>LDAP Initialization and Creation of User and Group Accounts</h3></div></div></div><p>
|
|---|
| 1478 | The LDAP database must be populated with well-known Windows domain user accounts and domain group
|
|---|
| 1479 | accounts before Samba can be used. The following procedures step you through the process.
|
|---|
| 1480 | </p><p>
|
|---|
| 1481 | At this time, Samba-3 requires that on a PDC all UNIX (POSIX) group accounts that are
|
|---|
| 1482 | mapped (linked) to Windows domain group accounts must be in the LDAP database. It does not
|
|---|
| 1483 | hurt to have UNIX user and group accounts in both the system files as well as in the LDAP
|
|---|
| 1484 | database. From a UNIX system perspective, the NSS resolver checks system files before
|
|---|
| 1485 | referring to LDAP. If the UNIX system can resolve (find) an account in the system file, it
|
|---|
| 1486 | does not need to ask LDAP.
|
|---|
| 1487 | </p><p>
|
|---|
| 1488 | Addition of an account to the LDAP backend can be done in two ways:
|
|---|
| 1489 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
|---|
| 1490 | <a class="indexterm" name="id346574"></a>
|
|---|
| 1491 | <a class="indexterm" name="id346580"></a>
|
|---|
| 1492 | <a class="indexterm" name="id346587"></a>
|
|---|
| 1493 | <a class="indexterm" name="id346594"></a>
|
|---|
| 1494 | <a class="indexterm" name="id346601"></a>
|
|---|
| 1495 | <a class="indexterm" name="id346608"></a>
|
|---|
| 1496 | If you always have a user account in the <code class="filename">/etc/passwd</code> on every
|
|---|
| 1497 | server or in a NIS(+) backend, it is not necessary to add POSIX accounts for them in
|
|---|
| 1498 | LDAP. In this case, you can add Windows domain user accounts using the
|
|---|
| 1499 | <code class="literal">pdbedit</code> utility. Use of this tool from the command line adds the
|
|---|
| 1500 | SambaSamAccount entry for the user, but does not add the PosixAccount entry for the user.
|
|---|
| 1501 | </p><p>
|
|---|
| 1502 | This is the least desirable method because when LDAP is used as the passwd backend Samba
|
|---|
| 1503 | expects the POSIX account to be in LDAP also. It is possible to use the PADL account
|
|---|
| 1504 | migration tool to migrate all system accounts from either the <code class="filename">/etc/passwd</code>
|
|---|
| 1505 | files, or from NIS, to LDAP.
|
|---|
| 1506 | </p></li><li class="listitem"><p>
|
|---|
| 1507 | If you decide that it is probably a good idea to add both the PosixAccount attributes
|
|---|
| 1508 | as well as the SambaSamAccount attributes for each user, then a suitable script is needed.
|
|---|
| 1509 | In the example system you are installing in this exercise, you are making use of the
|
|---|
| 1510 | Idealx smbldap-tools scripts. A copy of these tools, preconfigured for this system,
|
|---|
| 1511 | is included on the enclosed CD-ROM under <code class="filename">Chap06/Tools.</code>
|
|---|
| 1512 | </p></li></ul></div><p>
|
|---|
| 1513 | <a class="indexterm" name="id346659"></a>
|
|---|
| 1514 | If you wish to have more control over how the LDAP database is initialized or
|
|---|
| 1515 | if you don't want to use the Idealx smbldap-tools, you should refer to
|
|---|
| 1516 | <a class="link" href="appendix.html" title="Chapter 15. A Collection of Useful Tidbits">“A Collection of Useful Tidbits”</a>, <a class="link" href="appendix.html#altldapcfg" title="Alternative LDAP Database Initialization">“Alternative LDAP Database Initialization”</a>.
|
|---|
| 1517 | </p><p>
|
|---|
| 1518 | <a class="indexterm" name="id346685"></a>
|
|---|
| 1519 | The following steps initialize the LDAP database, and then you can add user and group
|
|---|
| 1520 | accounts that Samba can use. You use the <code class="literal">smbldap-populate</code> to
|
|---|
| 1521 | seed the LDAP database. You then manually add the accounts shown in <a class="link" href="happy.html#sbehap-bigacct" title="Table 5.3. Abmas Network Users and Groups">“Abmas Network Users and Groups”</a>.
|
|---|
| 1522 | The list of users does not cover all 500 network users; it provides examples only.
|
|---|
| 1523 | </p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
|
|---|
| 1524 | <a class="indexterm" name="id346712"></a>
|
|---|
| 1525 | <a class="indexterm" name="id346720"></a>
|
|---|
| 1526 | <a class="indexterm" name="id346730"></a>
|
|---|
| 1527 | In the following examples, as the LDAP database is initialized, we do create a container
|
|---|
| 1528 | for Computer (machine) accounts. In the Samba-3 <code class="filename">smb.conf</code> files, specific use is made
|
|---|
| 1529 | of the People container, not the Computers container, for domain member accounts. This is not a
|
|---|
| 1530 | mistake; it is a deliberate action that is necessitated by the fact that the resolution of
|
|---|
| 1531 | a machine (computer) account to a UID is done via NSS. The only way this can be handled is
|
|---|
| 1532 | using the NSS (<code class="filename">/etc/nsswitch.conf</code>) entry for <code class="constant">passwd</code>,
|
|---|
| 1533 | which is resolved using the <code class="filename">nss_ldap</code> library. The configuration file for
|
|---|
| 1534 | the <code class="filename">nss_ldap</code> library is the file <code class="filename">/etc/ldap.conf</code> that
|
|---|
| 1535 | provides only one possible LDAP search command that is specified by the entry called
|
|---|
| 1536 | <code class="constant">nss_base_passwd</code>. This means that the search path must take into account
|
|---|
| 1537 | the directory structure so that the LDAP search will commence at a level that is above
|
|---|
| 1538 | both the Computers container and the Users (or People) container. If this is done, it is
|
|---|
| 1539 | necessary to use a search that will descend the directory tree so that the machine account
|
|---|
| 1540 | can be found. Alternatively, by placing all machine accounts in the People container, we
|
|---|
| 1541 | are able to sidestep this limitation. This is the simpler solution that has been adopted
|
|---|
| 1542 | in this chapter.
|
|---|
| 1543 | </p></div><div class="table"><a name="sbehap-bigacct"></a><p class="title"><b>Table 5.3. Abmas Network Users and Groups</b></p><div class="table-contents"><table summary="Abmas Network Users and Groups" border="1"><colgroup><col align="left"><col align="left"><col align="left"><col align="left"></colgroup><thead><tr><th align="center">Account Name</th><th align="center">Type</th><th align="center">ID</th><th align="center">Password</th></tr></thead><tbody><tr><td align="left">Robert Jordan</td><td align="left">User</td><td align="left">bobj</td><td align="left">n3v3r2l8</td></tr><tr><td align="left">Stanley Soroka</td><td align="left">User</td><td align="left">stans</td><td align="left">impl13dst4r</td></tr><tr><td align="left">Christine Roberson</td><td align="left">User</td><td align="left">chrisr</td><td align="left">S9n0nw4ll</td></tr><tr><td align="left">Mary Vortexis</td><td align="left">User</td><td align="left">maryv</td><td align="left">kw13t0n3</td></tr><tr><td align="left">Accounts</td><td align="left">Group</td><td align="left">Accounts</td><td align="left"> </td></tr><tr><td align="left">Finances</td><td align="left">Group</td><td align="left">Finances</td><td align="left"> </td></tr><tr><td align="left">Insurance</td><td align="left">Group</td><td align="left">PIOps</td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break"><div class="procedure" title="Procedure 5.8. LDAP Directory Initialization Steps"><a name="creatacc"></a><p class="title"><b>Procedure 5.8. LDAP Directory Initialization Steps</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 1544 | Start the LDAP server by executing:
|
|---|
| 1545 | </p><pre class="screen">
|
|---|
| 1546 | <code class="prompt">root# </code> rcldap start
|
|---|
| 1547 | Starting ldap-server done
|
|---|
| 1548 | </pre><p>
|
|---|
| 1549 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 1550 | Change to the <code class="filename">/opt/IDEALX/sbin</code> directory.
|
|---|
| 1551 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 1552 | Execute the script that will populate the LDAP database as shown here:
|
|---|
| 1553 | </p><pre class="screen">
|
|---|
| 1554 | <code class="prompt">root# </code> ./smbldap-populate -a root -k 0 -m 0
|
|---|
| 1555 | </pre><p>
|
|---|
| 1556 | The expected output from this is:
|
|---|
| 1557 | </p><pre class="screen">
|
|---|
| 1558 | Using workgroup name from smb.conf: sambaDomainName=MEGANET2
|
|---|
| 1559 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|---|
| 1560 | => Warning: you must update smbldap.conf configuration file to :
|
|---|
| 1561 | => sambaUnixIdPooldn parameter must be set
|
|---|
| 1562 | to "sambaDomainName=MEGANET2,dc=abmas,dc=biz"
|
|---|
| 1563 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|---|
| 1564 | Using builtin directory structure
|
|---|
| 1565 | adding new entry: dc=abmas,dc=biz
|
|---|
| 1566 | adding new entry: ou=People,dc=abmas,dc=biz
|
|---|
| 1567 | adding new entry: ou=Groups,dc=abmas,dc=biz
|
|---|
| 1568 | entry ou=People,dc=abmas,dc=biz already exist.
|
|---|
| 1569 | adding new entry: ou=Idmap,dc=abmas,dc=biz
|
|---|
| 1570 | adding new entry: sambaDomainName=MEGANET2,dc=abmas,dc=biz
|
|---|
| 1571 | adding new entry: uid=root,ou=People,dc=abmas,dc=biz
|
|---|
| 1572 | adding new entry: uid=nobody,ou=People,dc=abmas,dc=biz
|
|---|
| 1573 | adding new entry: cn=Domain Admins,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1574 | adding new entry: cn=Domain Users,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1575 | adding new entry: cn=Domain Guests,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1576 | adding new entry: cn=Domain Computers,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1577 | adding new entry: cn=Administrators,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1578 | adding new entry: cn=Print Operators,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1579 | adding new entry: cn=Backup Operators,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1580 | adding new entry: cn=Replicators,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1581 | </pre><p>
|
|---|
| 1582 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 1583 | Edit the <code class="filename">/etc/smbldap-tools/smbldap.conf</code> file so that the following
|
|---|
| 1584 | information is changed from:
|
|---|
| 1585 | </p><pre class="screen">
|
|---|
| 1586 | # Where to store next uidNumber and gidNumber available
|
|---|
| 1587 | sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
|
|---|
| 1588 | </pre><p>
|
|---|
| 1589 | to read, after modification:
|
|---|
| 1590 | </p><pre class="screen">
|
|---|
| 1591 | # Where to store next uidNumber and gidNumber available
|
|---|
| 1592 | #sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
|
|---|
| 1593 | sambaUnixIdPooldn="sambaDomainName=MEGANET2,dc=abmas,dc=biz"
|
|---|
| 1594 | </pre><p>
|
|---|
| 1595 | </p></li><li class="step" title="Step 5"><p>
|
|---|
| 1596 | It is necessary to restart the LDAP server as shown here:
|
|---|
| 1597 | </p><pre class="screen">
|
|---|
| 1598 | <code class="prompt">root# </code> rcldap restart
|
|---|
| 1599 | Shutting down ldap-server done
|
|---|
| 1600 | Starting ldap-server done
|
|---|
| 1601 | </pre><p>
|
|---|
| 1602 | </p></li><li class="step" title="Step 6"><p>
|
|---|
| 1603 | <a class="indexterm" name="id347108"></a>
|
|---|
| 1604 | So that we can use a global IDMAP repository, the LDAP directory must have a container object for IDMAP data.
|
|---|
| 1605 | There are several ways you can check that your LDAP database is able to receive IDMAP information. One of
|
|---|
| 1606 | the simplest is to execute:
|
|---|
| 1607 | </p><pre class="screen">
|
|---|
| 1608 | <code class="prompt">root# </code> slapcat | grep -i idmap
|
|---|
| 1609 | dn: ou=Idmap,dc=abmas,dc=biz
|
|---|
| 1610 | ou: idmap
|
|---|
| 1611 | </pre><p>
|
|---|
| 1612 | <a class="indexterm" name="id347129"></a>
|
|---|
| 1613 | If the execution of this command does not return IDMAP entries, you need to create an LDIF
|
|---|
| 1614 | template file (see <a class="link" href="happy.html#sbehap-ldifadd" title="Example 5.12. LDIF IDMAP Add-On Load File File: /etc/openldap/idmap.LDIF">“LDIF IDMAP Add-On Load File File: /etc/openldap/idmap.LDIF”</a>). You can add the required entries using
|
|---|
| 1615 | the following command:
|
|---|
| 1616 | </p><pre class="screen">
|
|---|
| 1617 | <code class="prompt">root# </code> ldapadd -x -D "cn=Manager,dc=abmas,dc=biz" \
|
|---|
| 1618 | -w not24get < /etc/openldap/idmap.LDIF
|
|---|
| 1619 | </pre><p>
|
|---|
| 1620 | Samba automatically populates this LDAP directory container when it needs to.
|
|---|
| 1621 | </p></li><li class="step" title="Step 7"><p>
|
|---|
| 1622 | <a class="indexterm" name="id347164"></a>
|
|---|
| 1623 | It looks like all has gone well, as expected. Let's confirm that this is the case
|
|---|
| 1624 | by running a few tests. First we check the contents of the database directly
|
|---|
| 1625 | by running <code class="literal">slapcat</code> as follows (the output has been cut down):
|
|---|
| 1626 | </p><pre class="screen">
|
|---|
| 1627 | <code class="prompt">root# </code> slapcat
|
|---|
| 1628 | dn: dc=abmas,dc=biz
|
|---|
| 1629 | objectClass: dcObject
|
|---|
| 1630 | objectClass: organization
|
|---|
| 1631 | dc: abmas
|
|---|
| 1632 | o: abmas
|
|---|
| 1633 | structuralObjectClass: organization
|
|---|
| 1634 | entryUUID: 5ab02bf6-c536-1027-9d29-b1f32350fb43
|
|---|
| 1635 | creatorsName: cn=Manager,dc=abmas,dc=biz
|
|---|
| 1636 | createTimestamp: 20031217234200Z
|
|---|
| 1637 | entryCSN: 2003121723:42:00Z#0x0001#0#0000
|
|---|
| 1638 | modifiersName: cn=Manager,dc=abmas,dc=biz
|
|---|
| 1639 | modifyTimestamp: 20031217234200Z
|
|---|
| 1640 | ...
|
|---|
| 1641 | dn: cn=Domain Computers,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1642 | objectClass: posixGroup
|
|---|
| 1643 | objectClass: sambaGroupMapping
|
|---|
| 1644 | gidNumber: 553
|
|---|
| 1645 | cn: Domain Computers
|
|---|
| 1646 | description: Netbios Domain Computers accounts
|
|---|
| 1647 | sambaSID: S-1-5-21-3504140859-1010554828-2431957765-553
|
|---|
| 1648 | sambaGroupType: 2
|
|---|
| 1649 | displayName: Domain Computers
|
|---|
| 1650 | structuralObjectClass: posixGroup
|
|---|
| 1651 | entryUUID: 5e0a41d8-c536-1027-9d3b-b1f32350fb43
|
|---|
| 1652 | creatorsName: cn=Manager,dc=abmas,dc=biz
|
|---|
| 1653 | createTimestamp: 20031217234206Z
|
|---|
| 1654 | entryCSN: 2003121723:42:06Z#0x0002#0#0000
|
|---|
| 1655 | modifiersName: cn=Manager,dc=abmas,dc=biz
|
|---|
| 1656 | modifyTimestamp: 20031217234206Z
|
|---|
| 1657 | </pre><p>
|
|---|
| 1658 | This looks good so far.
|
|---|
| 1659 | </p></li><li class="step" title="Step 8"><p>
|
|---|
| 1660 | <a class="indexterm" name="id347205"></a>
|
|---|
| 1661 | The next step is to prove that the LDAP server is running and responds to a
|
|---|
| 1662 | search request. Execute the following as shown (output has been cut to save space):
|
|---|
| 1663 | </p><pre class="screen">
|
|---|
| 1664 | <code class="prompt">root# </code> ldapsearch -x -b "dc=abmas,dc=biz" "(ObjectClass=*)"
|
|---|
| 1665 | # extended LDIF
|
|---|
| 1666 | #
|
|---|
| 1667 | # LDAPv3
|
|---|
| 1668 | # base <dc=abmas,dc=biz> with scope sub
|
|---|
| 1669 | # filter: (ObjectClass=*)
|
|---|
| 1670 | # requesting: ALL
|
|---|
| 1671 | #
|
|---|
| 1672 |
|
|---|
| 1673 | # abmas.biz
|
|---|
| 1674 | dn: dc=abmas,dc=biz
|
|---|
| 1675 | objectClass: dcObject
|
|---|
| 1676 | objectClass: organization
|
|---|
| 1677 | dc: abmas
|
|---|
| 1678 | o: abmas
|
|---|
| 1679 |
|
|---|
| 1680 | # People, abmas.biz
|
|---|
| 1681 | dn: ou=People,dc=abmas,dc=biz
|
|---|
| 1682 | objectClass: organizationalUnit
|
|---|
| 1683 | ou: People
|
|---|
| 1684 | ...
|
|---|
| 1685 | # Domain Computers, Groups, abmas.biz
|
|---|
| 1686 | dn: cn=Domain Computers,ou=Groups,dc=abmas,dc=biz
|
|---|
| 1687 | objectClass: posixGroup
|
|---|
| 1688 | objectClass: sambaGroupMapping
|
|---|
| 1689 | gidNumber: 553
|
|---|
| 1690 | cn: Domain Computers
|
|---|
| 1691 | description: Netbios Domain Computers accounts
|
|---|
| 1692 | sambaSID: S-1-5-21-3504140859-1010554828-2431957765-553
|
|---|
| 1693 | sambaGroupType: 2
|
|---|
| 1694 | displayName: Domain Computers
|
|---|
| 1695 |
|
|---|
| 1696 | # search result
|
|---|
| 1697 | search: 2
|
|---|
| 1698 | result: 0 Success
|
|---|
| 1699 |
|
|---|
| 1700 | # numResponses: 20
|
|---|
| 1701 | # numEntries: 19
|
|---|
| 1702 | </pre><p>
|
|---|
| 1703 | Good. It is all working just fine.
|
|---|
| 1704 | </p></li><li class="step" title="Step 9"><p>
|
|---|
| 1705 | <a class="indexterm" name="id347246"></a>
|
|---|
| 1706 | You must now make certain that the NSS resolver can interrogate LDAP also.
|
|---|
| 1707 | Execute the following commands:
|
|---|
| 1708 | </p><pre class="screen">
|
|---|
| 1709 | <code class="prompt">root# </code> getent passwd | grep root
|
|---|
| 1710 | root:x:998:512:Netbios Domain Administrator:/home:/bin/false
|
|---|
| 1711 |
|
|---|
| 1712 | <code class="prompt">root# </code> getent group | grep Domain
|
|---|
| 1713 | Domain Admins:x:512:root
|
|---|
| 1714 | Domain Users:x:513:
|
|---|
| 1715 | Domain Guests:x:514:
|
|---|
| 1716 | Domain Computers:x:553:
|
|---|
| 1717 | </pre><p>
|
|---|
| 1718 | <a class="indexterm" name="id347273"></a>
|
|---|
| 1719 | This demonstrates that the <code class="literal">nss_ldap</code> library is functioning
|
|---|
| 1720 | as it should. If these two steps fail to produce this information, refer to
|
|---|
| 1721 | <a class="link" href="happy.html#sbeavoid" title="Avoiding Failures: Solving Problems Before They Happen">“Avoiding Failures: Solving Problems Before They Happen”</a> for diagnostic procedures that can be followed to
|
|---|
| 1722 | isolate the cause of the problem. Proceed to the next step only when the previous steps
|
|---|
| 1723 | have been successfully completed.
|
|---|
| 1724 | </p></li><li class="step" title="Step 10"><p>
|
|---|
| 1725 | <a class="indexterm" name="id347301"></a>
|
|---|
| 1726 | <a class="indexterm" name="id347308"></a>
|
|---|
| 1727 | <a class="indexterm" name="id347314"></a>
|
|---|
| 1728 | Our database is now ready for the addition of network users. For each user for
|
|---|
| 1729 | whom an account must be created, execute the following:
|
|---|
| 1730 | </p><pre class="screen">
|
|---|
| 1731 | <code class="prompt">root# </code> ./smbldap-useradd -m -a <code class="constant">username</code>
|
|---|
| 1732 | <code class="prompt">root# </code> ./smbldap-passwd <code class="constant">username</code>
|
|---|
| 1733 | Changing password for <code class="constant">username</code>
|
|---|
| 1734 | New password : XXXXXXXX
|
|---|
| 1735 | Retype new password : XXXXXXXX
|
|---|
| 1736 |
|
|---|
| 1737 | <code class="prompt">root# </code> smbpasswd <code class="constant">username</code>
|
|---|
| 1738 | New SMB password: XXXXXXXX
|
|---|
| 1739 | Retype new SMB password: XXXXXXXX
|
|---|
| 1740 | </pre><p>
|
|---|
| 1741 | where <code class="constant">username</code> is the login ID for each user.
|
|---|
| 1742 | </p></li><li class="step" title="Step 11"><p>
|
|---|
| 1743 | <a class="indexterm" name="id347372"></a>
|
|---|
| 1744 | Now verify that the UNIX (POSIX) accounts can be resolved via NSS by executing the
|
|---|
| 1745 | following:
|
|---|
| 1746 | </p><pre class="screen">
|
|---|
| 1747 | <code class="prompt">root# </code> getent passwd
|
|---|
| 1748 | root:x:0:0:root:/root:/bin/bash
|
|---|
| 1749 | bin:x:1:1:bin:/bin:/bin/bash
|
|---|
| 1750 | ...
|
|---|
| 1751 | root:x:0:512:Netbios Domain Administrator:/home:/bin/false
|
|---|
| 1752 | nobody:x:999:514:nobody:/dev/null:/bin/false
|
|---|
| 1753 | bobj:x:1000:513:System User:/home/bobj:/bin/bash
|
|---|
| 1754 | stans:x:1001:513:System User:/home/stans:/bin/bash
|
|---|
| 1755 | chrisr:x:1002:513:System User:/home/chrisr:/bin/bash
|
|---|
| 1756 | maryv:x:1003:513:System User:/home/maryv:/bin/bash
|
|---|
| 1757 | </pre><p>
|
|---|
| 1758 | This demonstrates that user account resolution via LDAP is working.
|
|---|
| 1759 | </p></li><li class="step" title="Step 12"><p>
|
|---|
| 1760 | This step will determine whether or not identity resolution is working correctly.
|
|---|
| 1761 | Do not procede is this step fails, rather find the cause of the failure. The
|
|---|
| 1762 | <code class="literal">id</code> command may be used to validate your configuration so far,
|
|---|
| 1763 | as shown here:
|
|---|
| 1764 | </p><pre class="screen">
|
|---|
| 1765 | <code class="prompt">root# </code> id chrisr
|
|---|
| 1766 | uid=1002(chrisr) gid=513(Domain Users) groups=513(Domain Users)
|
|---|
| 1767 | </pre><p>
|
|---|
| 1768 | This confirms that the UNIX (POSIX) user account information can be resolved from LDAP
|
|---|
| 1769 | by system tools that make a getentpw() system call.
|
|---|
| 1770 | </p></li><li class="step" title="Step 13"><p>
|
|---|
| 1771 | <a class="indexterm" name="id347429"></a>
|
|---|
| 1772 | The root account must have UID=0; if not, this means that operations conducted from
|
|---|
| 1773 | a Windows client using tools such as the Domain User Manager fails under UNIX because
|
|---|
| 1774 | the management of user and group accounts requires that the UID=0. Additionally, it is
|
|---|
| 1775 | a good idea to make certain that no matter how root account credentials are resolved,
|
|---|
| 1776 | the home directory and shell are valid. You decide to effect this immediately
|
|---|
| 1777 | as demonstrated here:
|
|---|
| 1778 | </p><pre class="screen">
|
|---|
| 1779 | <code class="prompt">root# </code> cd /opt/IDEALX/sbin
|
|---|
| 1780 | <code class="prompt">root# </code> ./smbldap-usermod -u 0 -d /root -s /bin/bash root
|
|---|
| 1781 | </pre><p>
|
|---|
| 1782 | </p></li><li class="step" title="Step 14"><p>
|
|---|
| 1783 | Verify that the changes just made to the <code class="constant">root</code> account were
|
|---|
| 1784 | accepted by executing:
|
|---|
| 1785 | </p><pre class="screen">
|
|---|
| 1786 | <code class="prompt">root# </code> getent passwd | grep root
|
|---|
| 1787 | root:x:0:0:root:/root:/bin/bash
|
|---|
| 1788 | root:x:0:512:Netbios Domain Administrator:/root:/bin/bash
|
|---|
| 1789 | </pre><p>
|
|---|
| 1790 | This demonstrates that the changes were accepted.
|
|---|
| 1791 | </p></li><li class="step" title="Step 15"><p>
|
|---|
| 1792 | Make certain that a home directory has been created for every user by listing the
|
|---|
| 1793 | directories in <code class="filename">/home</code> as follows:
|
|---|
| 1794 | </p><pre class="screen">
|
|---|
| 1795 | <code class="prompt">root# </code> ls -al /home
|
|---|
| 1796 | drwxr-xr-x 8 root root 176 Dec 17 18:50 ./
|
|---|
| 1797 | drwxr-xr-x 21 root root 560 Dec 15 22:19 ../
|
|---|
| 1798 | drwx------ 7 bobj Domain Users 568 Dec 17 01:16 bobj/
|
|---|
| 1799 | drwx------ 7 chrisr Domain Users 568 Dec 17 01:19 chrisr/
|
|---|
| 1800 | drwx------ 7 maryv Domain Users 568 Dec 17 01:27 maryv/
|
|---|
| 1801 | drwx------ 7 stans Domain Users 568 Dec 17 01:43 stans/
|
|---|
| 1802 | </pre><p>
|
|---|
| 1803 | This is precisely what we want to see.
|
|---|
| 1804 | </p></li><li class="step" title="Step 16"><p>
|
|---|
| 1805 | <a class="indexterm" name="id347517"></a>
|
|---|
| 1806 | <a class="indexterm" name="id347524"></a>
|
|---|
| 1807 | The final validation step involves making certain that Samba-3 can obtain the user
|
|---|
| 1808 | accounts from the LDAP ldapsam passwd backend. Execute the following command as shown:
|
|---|
| 1809 | </p><pre class="screen">
|
|---|
| 1810 | <code class="prompt">root# </code> pdbedit -Lv chrisr
|
|---|
| 1811 | Unix username: chrisr
|
|---|
| 1812 | NT username: chrisr
|
|---|
| 1813 | Account Flags: [U ]
|
|---|
| 1814 | User SID: S-1-5-21-3504140859-1010554828-2431957765-3004
|
|---|
| 1815 | Primary Group SID: S-1-5-21-3504140859-1010554828-2431957765-513
|
|---|
| 1816 | Full Name: System User
|
|---|
| 1817 | Home Directory: \\MASSIVE\homes
|
|---|
| 1818 | HomeDir Drive: H:
|
|---|
| 1819 | Logon Script: scripts\login.cmd
|
|---|
| 1820 | Profile Path: \\MASSIVE\profiles\chrisr
|
|---|
| 1821 | Domain: MEGANET2
|
|---|
| 1822 | Account desc: System User
|
|---|
| 1823 | Workstations:
|
|---|
| 1824 | Munged dial:
|
|---|
| 1825 | Logon time: 0
|
|---|
| 1826 | Logoff time: Mon, 18 Jan 2038 20:14:07 GMT
|
|---|
| 1827 | Kickoff time: Mon, 18 Jan 2038 20:14:07 GMT
|
|---|
| 1828 | Password last set: Wed, 17 Dec 2003 17:17:40 GMT
|
|---|
| 1829 | Password can change: Wed, 17 Dec 2003 17:17:40 GMT
|
|---|
| 1830 | Password must change: Mon, 18 Jan 2038 20:14:07 GMT
|
|---|
| 1831 | Last bad password : 0
|
|---|
| 1832 | Bad password count : 0
|
|---|
| 1833 | Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
|---|
| 1834 | </pre><p>
|
|---|
| 1835 | This looks good. Of course, you fully expected that it would all work, didn't you?
|
|---|
| 1836 | </p></li><li class="step" title="Step 17"><p>
|
|---|
| 1837 | <a class="indexterm" name="id347558"></a>
|
|---|
| 1838 | Now you add the group accounts that are used on the Abmas network. Execute
|
|---|
| 1839 | the following exactly as shown:
|
|---|
| 1840 | </p><pre class="screen">
|
|---|
| 1841 | <code class="prompt">root# </code> ./smbldap-groupadd -a Accounts
|
|---|
| 1842 | <code class="prompt">root# </code> ./smbldap-groupadd -a Finances
|
|---|
| 1843 | <code class="prompt">root# </code> ./smbldap-groupadd -a PIOps
|
|---|
| 1844 | </pre><p>
|
|---|
| 1845 | The addition of groups does not involve keyboard interaction, so the lack of console
|
|---|
| 1846 | output is of no concern.
|
|---|
| 1847 | </p></li><li class="step" title="Step 18"><p>
|
|---|
| 1848 | <a class="indexterm" name="id347598"></a>
|
|---|
| 1849 | You really do want to confirm that UNIX group resolution from LDAP is functioning
|
|---|
| 1850 | as it should. Let's do this as shown here:
|
|---|
| 1851 | </p><pre class="screen">
|
|---|
| 1852 | <code class="prompt">root# </code> getent group
|
|---|
| 1853 | ...
|
|---|
| 1854 | Domain Admins:x:512:root
|
|---|
| 1855 | Domain Users:x:513:bobj,stans,chrisr,maryv
|
|---|
| 1856 | Domain Guests:x:514:
|
|---|
| 1857 | ...
|
|---|
| 1858 | Accounts:x:1000:
|
|---|
| 1859 | Finances:x:1001:
|
|---|
| 1860 | PIOps:x:1002:
|
|---|
| 1861 | </pre><p>
|
|---|
| 1862 | The well-known special accounts (Domain Admins, Domain Users, Domain Guests), as well
|
|---|
| 1863 | as our own site-specific group accounts, are correctly listed. This is looking good.
|
|---|
| 1864 | </p></li><li class="step" title="Step 19"><p>
|
|---|
| 1865 | <a class="indexterm" name="id347627"></a>
|
|---|
| 1866 | The final step we need to validate is that Samba can see all the Windows domain groups
|
|---|
| 1867 | and that they are correctly mapped to the respective UNIX group account. To do this,
|
|---|
| 1868 | just execute the following command:
|
|---|
| 1869 | </p><pre class="screen">
|
|---|
| 1870 | <code class="prompt">root# </code> net groupmap list
|
|---|
| 1871 | Domain Admins (S-1-5-21-3504140859-...-2431957765-512) -> Domain Admins
|
|---|
| 1872 | Domain Users (S-1-5-21-3504140859-...-2431957765-513) -> Domain Users
|
|---|
| 1873 | Domain Guests (S-1-5-21-3504140859-...-2431957765-514) -> Domain Guests
|
|---|
| 1874 | ...
|
|---|
| 1875 | Accounts (S-1-5-21-3504140859-1010554828-2431957765-3001) -> Accounts
|
|---|
| 1876 | Finances (S-1-5-21-3504140859-1010554828-2431957765-3003) -> Finances
|
|---|
| 1877 | PIOps (S-1-5-21-3504140859-1010554828-2431957765-3005) -> PIOps
|
|---|
| 1878 | </pre><p>
|
|---|
| 1879 | This is looking good. Congratulations it works! Note that in the above output
|
|---|
| 1880 | the lines were shortened by replacing the middle value (1010554828) of the SID with the
|
|---|
| 1881 | ellipsis (...).
|
|---|
| 1882 | </p></li><li class="step" title="Step 20"><p>
|
|---|
| 1883 | The server you have so carefully built is now ready for another important step. You
|
|---|
| 1884 | start the Samba-3 server and validate its operation. Execute the following to render all
|
|---|
| 1885 | the processes needed fully operative so that, on system reboot, they are automatically
|
|---|
| 1886 | started:
|
|---|
| 1887 | </p><pre class="screen">
|
|---|
| 1888 | <code class="prompt">root# </code> chkconfig named on
|
|---|
| 1889 | <code class="prompt">root# </code> chkconfig dhcpd on
|
|---|
| 1890 | <code class="prompt">root# </code> chkconfig ldap on
|
|---|
| 1891 | <code class="prompt">root# </code> chkconfig nmb on
|
|---|
| 1892 | <code class="prompt">root# </code> chkconfig smb on
|
|---|
| 1893 | <code class="prompt">root# </code> chkconfig winbind on
|
|---|
| 1894 | <code class="prompt">root# </code> rcnmb start
|
|---|
| 1895 | <code class="prompt">root# </code> rcsmb start
|
|---|
| 1896 | <code class="prompt">root# </code> rcwinbind start
|
|---|
| 1897 | </pre><p>
|
|---|
| 1898 | </p></li><li class="step" title="Step 21"><p>
|
|---|
| 1899 | The next step might seem a little odd at this point, but take note that you are about to
|
|---|
| 1900 | start <code class="literal">winbindd</code>, which must be able to authenticate to the PDC via the
|
|---|
| 1901 | localhost interface with the <code class="literal">smbd</code> process. This account can be
|
|---|
| 1902 | easily created by joining the PDC to the domain by executing the following command:
|
|---|
| 1903 | </p><pre class="screen">
|
|---|
| 1904 | <code class="prompt">root# </code> net rpc join -S MASSIVE -U root%not24get
|
|---|
| 1905 | </pre><p>
|
|---|
| 1906 | Note: Before executing this command on the PDC, both <code class="literal">nmbd</code> and
|
|---|
| 1907 | <code class="literal">smbd</code> must be started so that the <code class="literal">net</code> command
|
|---|
| 1908 | can communicate with <code class="literal">smbd</code>. The expected output is as follows:
|
|---|
| 1909 | </p><pre class="screen">
|
|---|
| 1910 | Joined domain MEGANET2.
|
|---|
| 1911 | </pre><p>
|
|---|
| 1912 | This indicates that the domain security account for the PDC has been correctly created.
|
|---|
| 1913 | </p></li><li class="step" title="Step 22"><p>
|
|---|
| 1914 | At this time it is necessary to restart <code class="literal">winbindd</code> so that it can
|
|---|
| 1915 | correctly authenticate to the PDC. The following command achieves that:
|
|---|
| 1916 | </p><pre class="screen">
|
|---|
| 1917 | <code class="prompt">root# </code> rcwinbind restart
|
|---|
| 1918 | </pre><p>
|
|---|
| 1919 | </p></li><li class="step" title="Step 23"><p>
|
|---|
| 1920 | <a class="indexterm" name="id347824"></a>
|
|---|
| 1921 | You may now check Samba-3 operation as follows:
|
|---|
| 1922 | </p><pre class="screen">
|
|---|
| 1923 | <code class="prompt">root# </code> smbclient -L massive -U%
|
|---|
| 1924 |
|
|---|
| 1925 | Sharename Type Comment
|
|---|
| 1926 | --------- ---- -------
|
|---|
| 1927 | IPC$ IPC IPC Service (Samba 3.0.20)
|
|---|
| 1928 | accounts Disk Accounting Files
|
|---|
| 1929 | service Disk Financial Services Files
|
|---|
| 1930 | pidata Disk Property Insurance Files
|
|---|
| 1931 | apps Disk Application Files
|
|---|
| 1932 | netlogon Disk Network Logon Service
|
|---|
| 1933 | profiles Disk Profile Share
|
|---|
| 1934 | profdata Disk Profile Data Share
|
|---|
| 1935 | ADMIN$ IPC IPC Service (Samba 3.0.20)
|
|---|
| 1936 |
|
|---|
| 1937 | Server Comment
|
|---|
| 1938 | --------- -------
|
|---|
| 1939 | MASSIVE Samba 3.0.20
|
|---|
| 1940 |
|
|---|
| 1941 | Workgroup Master
|
|---|
| 1942 | --------- -------
|
|---|
| 1943 | MEGANET2 MASSIVE
|
|---|
| 1944 | </pre><p>
|
|---|
| 1945 | This shows that an anonymous connection is working.
|
|---|
| 1946 | </p></li><li class="step" title="Step 24"><p>
|
|---|
| 1947 | For your finale, let's try an authenticated connection:
|
|---|
| 1948 | </p><pre class="screen">
|
|---|
| 1949 | <code class="prompt">root# </code> smbclient //massive/bobj -Ubobj%n3v3r2l8
|
|---|
| 1950 | smb: \> dir
|
|---|
| 1951 | . D 0 Wed Dec 17 01:16:19 2003
|
|---|
| 1952 | .. D 0 Wed Dec 17 19:04:42 2003
|
|---|
| 1953 | bin D 0 Tue Sep 2 04:00:57 2003
|
|---|
| 1954 | Documents D 0 Sun Nov 30 07:28:20 2003
|
|---|
| 1955 | public_html D 0 Sun Nov 30 07:28:20 2003
|
|---|
| 1956 | .urlview H 311 Fri Jul 7 06:55:35 2000
|
|---|
| 1957 | .dvipsrc H 208 Fri Nov 17 11:22:02 1995
|
|---|
| 1958 |
|
|---|
| 1959 | 57681 blocks of size 524288. 57128 blocks available
|
|---|
| 1960 | smb: \> q
|
|---|
| 1961 | </pre><p>
|
|---|
| 1962 | Well done. All is working fine.
|
|---|
| 1963 | </p></li></ol></div><p>
|
|---|
| 1964 | The server <code class="constant">MASSIVE</code> is now configured, and it is time to move onto the next task.
|
|---|
| 1965 | </p></div><div class="sect2" title="Printer Configuration"><div class="titlepage"><div><div><h3 class="title"><a name="sbehap-ptrcfg"></a>Printer Configuration</h3></div></div></div><p>
|
|---|
| 1966 | <a class="indexterm" name="id347908"></a>
|
|---|
| 1967 | The configuration for Samba-3 to enable CUPS raw-print-through printing has already been
|
|---|
| 1968 | taken care of in the <code class="filename">smb.conf</code> file. The only preparation needed for <code class="constant">smart</code>
|
|---|
| 1969 | printing to be possible involves creation of the directories in which Samba-3 stores
|
|---|
| 1970 | Windows printing driver files.
|
|---|
| 1971 | </p><div class="procedure" title="Procedure 5.9. Printer Configuration Steps"><a name="id347927"></a><p class="title"><b>Procedure 5.9. Printer Configuration Steps</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 1972 | Configure all network-attached printers to have a fixed IP address.
|
|---|
| 1973 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 1974 | Create an entry in the DNS database on the server <code class="constant">MASSIVE</code>
|
|---|
| 1975 | in both the forward lookup database for the zone <code class="constant">abmas.biz.hosts</code>
|
|---|
| 1976 | and in the reverse lookup database for the network segment that the printer is to
|
|---|
| 1977 | be located in. Example configuration files for similar zones were presented in <a class="link" href="secure.html" title="Chapter 3. Secure Office Networking">“Secure Office Networking”</a>,
|
|---|
| 1978 | <a class="link" href="secure.html#abmasbiz" title="Example 3.14. DNS Abmas.biz Forward Zone File">“DNS Abmas.biz Forward Zone File”</a> and in <a class="link" href="secure.html#eth2zone" title="Example 3.13. DNS 192.168.2 Reverse Zone File">“DNS 192.168.2 Reverse Zone File”</a>.
|
|---|
| 1979 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 1980 | Follow the instructions in the printer manufacturers' manuals to permit printing
|
|---|
| 1981 | to port 9100. Use any other port the manufacturer specifies for direct mode,
|
|---|
| 1982 | raw printing. This allows the CUPS spooler to print using raw mode protocols.
|
|---|
| 1983 | <a class="indexterm" name="id347982"></a>
|
|---|
| 1984 | <a class="indexterm" name="id347989"></a>
|
|---|
| 1985 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 1986 | <a class="indexterm" name="id348002"></a>
|
|---|
| 1987 | <a class="indexterm" name="id348009"></a>
|
|---|
| 1988 | Only on the server to which the printer is attached, configure the CUPS Print
|
|---|
| 1989 | Queues as follows:
|
|---|
| 1990 | </p><pre class="screen">
|
|---|
| 1991 | <code class="prompt">root# </code> lpadmin -p <em class="parameter"><code>printque</code></em>
|
|---|
| 1992 | -v socket://<em class="parameter"><code>printer-name</code></em>.abmas.biz:9100 -E
|
|---|
| 1993 | </pre><p>
|
|---|
| 1994 | <a class="indexterm" name="id348043"></a>
|
|---|
| 1995 | This step creates the necessary print queue to use no assigned print filter. This
|
|---|
| 1996 | is ideal for raw printing, that is, printing without use of filters.
|
|---|
| 1997 | The name <em class="parameter"><code>printque</code></em> is the name you have assigned for
|
|---|
| 1998 | the particular printer.
|
|---|
| 1999 | </p></li><li class="step" title="Step 5"><p>
|
|---|
| 2000 | Print queues may not be enabled at creation. Make certain that the queues
|
|---|
| 2001 | you have just created are enabled by executing the following:
|
|---|
| 2002 | </p><pre class="screen">
|
|---|
| 2003 | <code class="prompt">root# </code> /usr/bin/enable <em class="parameter"><code>printque</code></em>
|
|---|
| 2004 | </pre><p>
|
|---|
| 2005 | </p></li><li class="step" title="Step 6"><p>
|
|---|
| 2006 | Even though your print queue may be enabled, it is still possible that it
|
|---|
| 2007 | may not accept print jobs. A print queue will service incoming printing
|
|---|
| 2008 | requests only when configured to do so. Ensure that your print queue is
|
|---|
| 2009 | set to accept incoming jobs by executing the following commands:
|
|---|
| 2010 | </p><pre class="screen">
|
|---|
| 2011 | <code class="prompt">root# </code> /usr/bin/accept <em class="parameter"><code>printque</code></em>
|
|---|
| 2012 | </pre><p>
|
|---|
| 2013 | </p></li><li class="step" title="Step 7"><p>
|
|---|
| 2014 | <a class="indexterm" name="id348117"></a>
|
|---|
| 2015 | <a class="indexterm" name="id348124"></a>
|
|---|
| 2016 | <a class="indexterm" name="id348130"></a>
|
|---|
| 2017 | Edit the file <code class="filename">/etc/cups/mime.convs</code> to uncomment the line:
|
|---|
| 2018 | </p><pre class="screen">
|
|---|
| 2019 | application/octet-stream application/vnd.cups-raw 0 -
|
|---|
| 2020 | </pre><p>
|
|---|
| 2021 | </p></li><li class="step" title="Step 8"><p>
|
|---|
| 2022 | <a class="indexterm" name="id348157"></a>
|
|---|
| 2023 | Edit the file <code class="filename">/etc/cups/mime.types</code> to uncomment the line:
|
|---|
| 2024 | </p><pre class="screen">
|
|---|
| 2025 | application/octet-stream
|
|---|
| 2026 | </pre><p>
|
|---|
| 2027 | </p></li><li class="step" title="Step 9"><p>
|
|---|
| 2028 | Refer to the CUPS printing manual for instructions regarding how to configure
|
|---|
| 2029 | CUPS so that print queues that reside on CUPS servers on remote networks
|
|---|
| 2030 | route print jobs to the print server that owns that queue. The default setting
|
|---|
| 2031 | on your CUPS server may automatically discover remotely installed printers and
|
|---|
| 2032 | may permit this functionality without requiring specific configuration.
|
|---|
| 2033 | </p></li><li class="step" title="Step 10"><p>
|
|---|
| 2034 | The following action creates the necessary directory subsystem. Follow these
|
|---|
| 2035 | steps to printing heaven:
|
|---|
| 2036 | </p><pre class="screen">
|
|---|
| 2037 | <code class="prompt">root# </code> mkdir -p /var/lib/samba/drivers/{W32ALPHA,W32MIPS,W32X86,WIN40}
|
|---|
| 2038 | <code class="prompt">root# </code> chown -R root:root /var/lib/samba/drivers
|
|---|
| 2039 | <code class="prompt">root# </code> chmod -R ug=rwx,o=rx /var/lib/samba/drivers
|
|---|
| 2040 | </pre><p>
|
|---|
| 2041 | </p></li></ol></div></div></div><div class="sect1" title="Samba-3 BDC Configuration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sbehap-bldg1"></a>Samba-3 BDC Configuration</h2></div></div></div><div class="procedure" title="Procedure 5.10. Configuration of BDC Called: BLDG1"><a name="id348233"></a><p class="title"><b>Procedure 5.10. Configuration of BDC Called: <code class="constant">BLDG1</code></b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 2042 | Install the files in <a class="link" href="happy.html#sbehap-bldg1-smbconf" title="Example 5.8. LDAP Based smb.conf File, Server: BLDG1">“LDAP Based smb.conf File, Server: BLDG1”</a>,
|
|---|
| 2043 | <a class="link" href="happy.html#sbehap-shareconfa" title="Example 5.10. LDAP Based smb.conf File, Shares Section Part A">“LDAP Based smb.conf File, Shares Section Part A”</a>, and <a class="link" href="happy.html#sbehap-shareconfb" title="Example 5.11. LDAP Based smb.conf File, Shares Section Part B">“LDAP Based smb.conf File, Shares Section Part B”</a>
|
|---|
| 2044 | into the <code class="filename">/etc/samba/</code> directory. The three files
|
|---|
| 2045 | should be added together to form the <code class="filename">smb.conf</code> file.
|
|---|
| 2046 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 2047 | Verify the <code class="filename">smb.conf</code> file as in step 2 of <a class="link" href="happy.html#sbehap-massive" title="Samba-3 PDC Configuration">“Samba-3 PDC Configuration”</a>.
|
|---|
| 2048 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 2049 | Carefully follow the steps outlined in <a class="link" href="happy.html#sbehap-PAM-NSS" title="PAM and NSS Client Configuration">“PAM and NSS Client Configuration”</a>, taking
|
|---|
| 2050 | particular note to install the correct <code class="filename">ldap.conf</code>.
|
|---|
| 2051 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 2052 | Verify that the NSS resolver is working. You may need to cycle the run level
|
|---|
| 2053 | to 1 and back to 5 before the NSS LDAP resolver functions. Follow these
|
|---|
| 2054 | commands:
|
|---|
| 2055 | </p><pre class="screen">
|
|---|
| 2056 | <code class="prompt">root# </code> init 1
|
|---|
| 2057 | </pre><p>
|
|---|
| 2058 | After the run level has been achieved, you are prompted to provide the
|
|---|
| 2059 | <code class="constant">root</code> password. Log on, and then execute:
|
|---|
| 2060 | </p><pre class="screen">
|
|---|
| 2061 | <code class="prompt">root# </code> init 5
|
|---|
| 2062 | </pre><p>
|
|---|
| 2063 | When the normal logon prompt appears, log into the system as <code class="constant">root</code>
|
|---|
| 2064 | and then execute these commands:
|
|---|
| 2065 | </p><pre class="screen">
|
|---|
| 2066 | <code class="prompt">root# </code> getent passwd
|
|---|
| 2067 | root:x:0:0:root:/root:/bin/bash
|
|---|
| 2068 | bin:x:1:1:bin:/bin:/bin/bash
|
|---|
| 2069 | daemon:x:2:2:Daemon:/sbin:/bin/bash
|
|---|
| 2070 | lp:x:4:7:Printing daemon:/var/spool/lpd:/bin/bash
|
|---|
| 2071 | mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false
|
|---|
| 2072 | ...
|
|---|
| 2073 | root:x:0:512:Netbios Domain Administrator:/root:/bin/bash
|
|---|
| 2074 | nobody:x:999:514:nobody:/dev/null:/bin/false
|
|---|
| 2075 | bobj:x:1000:513:System User:/home/bobj:/bin/bash
|
|---|
| 2076 | stans:x:1001:513:System User:/home/stans:/bin/bash
|
|---|
| 2077 | chrisr:x:1002:513:System User:/home/chrisr:/bin/bash
|
|---|
| 2078 | maryv:x:1003:513:System User:/home/maryv:/bin/bash
|
|---|
| 2079 | vaioboss$:x:1005:553:vaioboss$:/dev/null:/bin/false
|
|---|
| 2080 | bldg1$:x:1006:553:bldg1$:/dev/null:/bin/false
|
|---|
| 2081 | </pre><p>
|
|---|
| 2082 | This is the correct output. If the accounts that have UIDs above 512 are not shown, there is a problem.
|
|---|
| 2083 | </p></li><li class="step" title="Step 5"><p>
|
|---|
| 2084 | <a class="indexterm" name="id348380"></a>
|
|---|
| 2085 | The next step in the verification process involves testing the operation of UNIX group
|
|---|
| 2086 | resolution via the NSS LDAP resolver. Execute these commands:
|
|---|
| 2087 | </p><pre class="screen">
|
|---|
| 2088 | <code class="prompt">root# </code> getent group
|
|---|
| 2089 | root:x:0:
|
|---|
| 2090 | bin:x:1:daemon
|
|---|
| 2091 | daemon:x:2:
|
|---|
| 2092 | sys:x:3:
|
|---|
| 2093 | ...
|
|---|
| 2094 | Domain Admins:x:512:root
|
|---|
| 2095 | Domain Users:x:513:bobj,stans,chrisr,maryv,jht
|
|---|
| 2096 | Domain Guests:x:514:
|
|---|
| 2097 | Administrators:x:544:
|
|---|
| 2098 | Users:x:545:
|
|---|
| 2099 | Guests:x:546:nobody
|
|---|
| 2100 | Power Users:x:547:
|
|---|
| 2101 | Account Operators:x:548:
|
|---|
| 2102 | Server Operators:x:549:
|
|---|
| 2103 | Print Operators:x:550:
|
|---|
| 2104 | Backup Operators:x:551:
|
|---|
| 2105 | Replicator:x:552:
|
|---|
| 2106 | Domain Computers:x:553:
|
|---|
| 2107 | Accounts:x:1000:
|
|---|
| 2108 | Finances:x:1001:
|
|---|
| 2109 | PIOps:x:1002:
|
|---|
| 2110 | </pre><p>
|
|---|
| 2111 | This is also the correct and desired output, because it demonstrates that the LDAP client
|
|---|
| 2112 | is able to communicate correctly with the LDAP server (<code class="constant">MASSIVE</code>).
|
|---|
| 2113 | </p></li><li class="step" title="Step 6"><p>
|
|---|
| 2114 | <a class="indexterm" name="id348415"></a>
|
|---|
| 2115 | You must now set the LDAP administrative password into the Samba-3 <code class="filename">secrets.tdb</code>
|
|---|
| 2116 | file by executing this command:
|
|---|
| 2117 | </p><pre class="screen">
|
|---|
| 2118 | <code class="prompt">root# </code> smbpasswd -w not24get
|
|---|
| 2119 | Setting stored password for "cn=Manager,dc=abmas,dc=biz" in secrets.tdb
|
|---|
| 2120 | </pre><p>
|
|---|
| 2121 | </p></li><li class="step" title="Step 7"><p>
|
|---|
| 2122 | Now you must obtain the domain SID from the PDC and store it into the
|
|---|
| 2123 | <code class="filename">secrets.tdb</code> file also. This step is not necessary with an LDAP
|
|---|
| 2124 | passdb backend because Samba-3 obtains the domain SID from the
|
|---|
| 2125 | sambaDomain object it automatically stores in the LDAP backend. It does not hurt to
|
|---|
| 2126 | add the SID to the <code class="filename">secrets.tdb</code>, and if you wish to do so, this
|
|---|
| 2127 | command can achieve that:
|
|---|
| 2128 | </p><pre class="screen">
|
|---|
| 2129 | <code class="prompt">root# </code> net rpc getsid MEGANET2
|
|---|
| 2130 | Storing SID S-1-5-21-3504140859-1010554828-2431957765 \
|
|---|
| 2131 | for Domain MEGANET2 in secrets.tdb
|
|---|
| 2132 | </pre><p>
|
|---|
| 2133 | When configuring a Samba-3 BDC that has an LDAP backend, there is no need to take
|
|---|
| 2134 | any special action to join it to the domain. However, winbind communicates with the
|
|---|
| 2135 | domain controller that is running on the localhost and must be able to authenticate,
|
|---|
| 2136 | thus requiring that the BDC should be joined to the domain. The process of joining
|
|---|
| 2137 | the domain creates the necessary authentication accounts.
|
|---|
| 2138 | </p></li><li class="step" title="Step 8"><p>
|
|---|
| 2139 | To join the Samba BDC to the domain, execute the following:
|
|---|
| 2140 | </p><pre class="screen">
|
|---|
| 2141 | <code class="prompt">root# </code> net rpc join -U root%not24get
|
|---|
| 2142 | Joined domain MEGANET2.
|
|---|
| 2143 | </pre><p>
|
|---|
| 2144 | This indicates that the domain security account for the BDC has been correctly created.
|
|---|
| 2145 | </p></li><li class="step" title="Step 9"><p>
|
|---|
| 2146 | <a class="indexterm" name="id348504"></a>
|
|---|
| 2147 | Verify that user and group account resolution works via Samba-3 tools as follows:
|
|---|
| 2148 | </p><pre class="screen">
|
|---|
| 2149 | <code class="prompt">root# </code> pdbedit -L
|
|---|
| 2150 | root:0:root
|
|---|
| 2151 | nobody:65534:nobody
|
|---|
| 2152 | bobj:1000:System User
|
|---|
| 2153 | stans:1001:System User
|
|---|
| 2154 | chrisr:1002:System User
|
|---|
| 2155 | maryv:1003:System User
|
|---|
| 2156 | bldg1$:1006:bldg1$
|
|---|
| 2157 |
|
|---|
| 2158 | <code class="prompt">root# </code> net groupmap list
|
|---|
| 2159 | Domain Admins (S-1-5-21-3504140859-...-2431957765-512) ->
|
|---|
| 2160 | Domain Admins
|
|---|
| 2161 | Domain Users (S-1-5-21-3504140859-...-2431957765-513) -> Domain Users
|
|---|
| 2162 | Domain Guests (S-1-5-21-3504140859-...-2431957765-514) ->
|
|---|
| 2163 | Domain Guests
|
|---|
| 2164 | Administrators (S-1-5-21-3504140859-...-2431957765-544) ->
|
|---|
| 2165 | Administrators
|
|---|
| 2166 | ...
|
|---|
| 2167 | Accounts (S-1-5-21-3504140859-1010554828-2431957765-3001) -> Accounts
|
|---|
| 2168 | Finances (S-1-5-21-3504140859-1010554828-2431957765-3003) -> Finances
|
|---|
| 2169 | PIOps (S-1-5-21-3504140859-1010554828-2431957765-3005) -> PIOps
|
|---|
| 2170 | </pre><p>
|
|---|
| 2171 | These results show that all things are in order.
|
|---|
| 2172 | </p></li><li class="step" title="Step 10"><p>
|
|---|
| 2173 | The server you have so carefully built is now ready for another important step. Now
|
|---|
| 2174 | start the Samba-3 server and validate its operation. Execute the following to render all
|
|---|
| 2175 | the processes needed fully operative so that, upon system reboot, they are automatically
|
|---|
| 2176 | started:
|
|---|
| 2177 | </p><pre class="screen">
|
|---|
| 2178 | <code class="prompt">root# </code> chkconfig named on
|
|---|
| 2179 | <code class="prompt">root# </code> chkconfig dhcpd on
|
|---|
| 2180 | <code class="prompt">root# </code> chkconfig nmb on
|
|---|
| 2181 | <code class="prompt">root# </code> chkconfig smb on
|
|---|
| 2182 | <code class="prompt">root# </code> chkconfig winbind on
|
|---|
| 2183 | <code class="prompt">root# </code> rcnmb start
|
|---|
| 2184 | <code class="prompt">root# </code> rcsmb start
|
|---|
| 2185 | <code class="prompt">root# </code> rcwinbind start
|
|---|
| 2186 | </pre><p>
|
|---|
| 2187 | Samba-3 should now be running and is ready for a quick test. But not quite yet!
|
|---|
| 2188 | </p></li><li class="step" title="Step 11"><p>
|
|---|
| 2189 | Your new <code class="constant">BLDG1, BLDG2</code> servers do not have home directories for users.
|
|---|
| 2190 | To rectify this using the SUSE yast2 utility or by manually editing the <code class="filename">/etc/fstab</code>
|
|---|
| 2191 | file, add a mount entry to mount the <code class="constant">home</code> directory that has been exported
|
|---|
| 2192 | from the <code class="constant">MASSIVE</code> server. Mount this resource before proceeding. An alternate
|
|---|
| 2193 | approach could be to create local home directories for users who are to use these machines.
|
|---|
| 2194 | This is a choice that you, as system administrator, must make. The following entry in the
|
|---|
| 2195 | <code class="filename">/etc/fstab</code> file suffices for now:
|
|---|
| 2196 | </p><pre class="screen">
|
|---|
| 2197 | massive.abmas.biz:/home /home nfs rw 0 0
|
|---|
| 2198 | </pre><p>
|
|---|
| 2199 | To mount this resource, execute:
|
|---|
| 2200 | </p><pre class="screen">
|
|---|
| 2201 | <code class="prompt">root# </code> mount -a
|
|---|
| 2202 | </pre><p>
|
|---|
| 2203 | Verify that the home directory has been mounted as follows:
|
|---|
| 2204 | </p><pre class="screen">
|
|---|
| 2205 | <code class="prompt">root# </code> df | grep home
|
|---|
| 2206 | massive:/home 29532988 283388 29249600 1% /home
|
|---|
| 2207 | </pre><p>
|
|---|
| 2208 | </p></li><li class="step" title="Step 12"><p>
|
|---|
| 2209 | Implement a quick check using one of the users that is in the LDAP database. Here you go:
|
|---|
| 2210 | </p><pre class="screen">
|
|---|
| 2211 | <code class="prompt">root# </code> smbclient //bldg1/bobj -Ubobj%n3v3r2l8
|
|---|
| 2212 | smb: \> dir
|
|---|
| 2213 | . D 0 Wed Dec 17 01:16:19 2003
|
|---|
| 2214 | .. D 0 Wed Dec 17 19:04:42 2003
|
|---|
| 2215 | bin D 0 Tue Sep 2 04:00:57 2003
|
|---|
| 2216 | Documents D 0 Sun Nov 30 07:28:20 2003
|
|---|
| 2217 | public_html D 0 Sun Nov 30 07:28:20 2003
|
|---|
| 2218 | .urlview H 311 Fri Jul 7 06:55:35 2000
|
|---|
| 2219 | .dvipsrc H 208 Fri Nov 17 11:22:02 1995
|
|---|
| 2220 |
|
|---|
| 2221 | 57681 blocks of size 524288. 57128 blocks available
|
|---|
| 2222 | smb: \> q
|
|---|
| 2223 | </pre><p>
|
|---|
| 2224 | </p></li></ol></div><p>
|
|---|
| 2225 | Now that the first BDC (<code class="constant">BDLG1</code>) has been configured it is time to build
|
|---|
| 2226 | and configure the second BDC server (<code class="constant">BLDG2</code>) as follows:
|
|---|
| 2227 | </p><div class="procedure" title="Procedure 5.11. Configuration of BDC Called BLDG2"><a name="sbehap-bldg2"></a><p class="title"><b>Procedure 5.11. Configuration of BDC Called <code class="constant">BLDG2</code></b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 2228 | Install the files in <a class="link" href="happy.html#sbehap-bldg2-smbconf" title="Example 5.9. LDAP Based smb.conf File, Server: BLDG2">“LDAP Based smb.conf File, Server: BLDG2”</a>,
|
|---|
| 2229 | <a class="link" href="happy.html#sbehap-shareconfa" title="Example 5.10. LDAP Based smb.conf File, Shares Section Part A">“LDAP Based smb.conf File, Shares Section Part A”</a>, and <a class="link" href="happy.html#sbehap-shareconfb" title="Example 5.11. LDAP Based smb.conf File, Shares Section Part B">“LDAP Based smb.conf File, Shares Section Part B”</a>
|
|---|
| 2230 | into the <code class="filename">/etc/samba/</code> directory. The three files
|
|---|
| 2231 | should be added together to form the <code class="filename">smb.conf</code> file.
|
|---|
| 2232 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 2233 | Follow carefully the steps shown in <a class="link" href="happy.html#sbehap-bldg1" title="Samba-3 BDC Configuration">“Samba-3 BDC Configuration”</a>, starting at step 2.
|
|---|
| 2234 | </p></li></ol></div><div class="example"><a name="sbehap-bldg1-smbconf"></a><p class="title"><b>Example 5.8. LDAP Based <code class="filename">smb.conf</code> File, Server: BLDG1</b></p><div class="example-contents"><table border="0" summary="Simple list" class="simplelist"><tr><td># Global parameters</td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[global]</code></em></td></tr><tr><td><a class="indexterm" name="id348810"></a><em class="parameter"><code>unix charset = LOCALE</code></em></td></tr><tr><td><a class="indexterm" name="id348821"></a><em class="parameter"><code>workgroup = MEGANET2</code></em></td></tr><tr><td><a class="indexterm" name="id348832"></a><em class="parameter"><code>netbios name = BLDG1</code></em></td></tr><tr><td><a class="indexterm" name="id348844"></a><em class="parameter"><code>passdb backend = ldapsam:ldap://massive.abmas.biz</code></em></td></tr><tr><td><a class="indexterm" name="id348856"></a><em class="parameter"><code>enable privileges = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id348867"></a><em class="parameter"><code>username map = /etc/samba/smbusers</code></em></td></tr><tr><td><a class="indexterm" name="id348879"></a><em class="parameter"><code>log level = 1</code></em></td></tr><tr><td><a class="indexterm" name="id348890"></a><em class="parameter"><code>syslog = 0</code></em></td></tr><tr><td><a class="indexterm" name="id348902"></a><em class="parameter"><code>log file = /var/log/samba/%m</code></em></td></tr><tr><td><a class="indexterm" name="id348913"></a><em class="parameter"><code>max log size = 50</code></em></td></tr><tr><td><a class="indexterm" name="id348925"></a><em class="parameter"><code>smb ports = 139</code></em></td></tr><tr><td><a class="indexterm" name="id348936"></a><em class="parameter"><code>name resolve order = wins bcast hosts</code></em></td></tr><tr><td><a class="indexterm" name="id348948"></a><em class="parameter"><code>printcap name = CUPS</code></em></td></tr><tr><td><a class="indexterm" name="id348959"></a><em class="parameter"><code>show add printer wizard = No</code></em></td></tr><tr><td><a class="indexterm" name="id348971"></a><em class="parameter"><code>logon script = scripts\logon.bat</code></em></td></tr><tr><td><a class="indexterm" name="id348982"></a><em class="parameter"><code>logon path = \\%L\profiles\%U</code></em></td></tr><tr><td><a class="indexterm" name="id348994"></a><em class="parameter"><code>logon drive = X:</code></em></td></tr><tr><td><a class="indexterm" name="id349006"></a><em class="parameter"><code>domain logons = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id349017"></a><em class="parameter"><code>domain master = No</code></em></td></tr><tr><td><a class="indexterm" name="id349028"></a><em class="parameter"><code>wins server = 172.16.0.1</code></em></td></tr><tr><td><a class="indexterm" name="id349040"></a><em class="parameter"><code>ldap suffix = dc=abmas,dc=biz</code></em></td></tr><tr><td><a class="indexterm" name="id349052"></a><em class="parameter"><code>ldap machine suffix = ou=People</code></em></td></tr><tr><td><a class="indexterm" name="id349063"></a><em class="parameter"><code>ldap user suffix = ou=People</code></em></td></tr><tr><td><a class="indexterm" name="id349075"></a><em class="parameter"><code>ldap group suffix = ou=Groups</code></em></td></tr><tr><td><a class="indexterm" name="id349086"></a><em class="parameter"><code>ldap idmap suffix = ou=Idmap</code></em></td></tr><tr><td><a class="indexterm" name="id349098"></a><em class="parameter"><code>ldap admin dn = cn=Manager,dc=abmas,dc=biz</code></em></td></tr><tr><td><a class="indexterm" name="id349110"></a><em class="parameter"><code>idmap backend = ldap:ldap://massive.abmas.biz</code></em></td></tr><tr><td><a class="indexterm" name="id349122"></a><em class="parameter"><code>idmap uid = 10000-20000</code></em></td></tr><tr><td><a class="indexterm" name="id349133"></a><em class="parameter"><code>idmap gid = 10000-20000</code></em></td></tr><tr><td><a class="indexterm" name="id349144"></a><em class="parameter"><code>printing = cups</code></em></td></tr><tr><td><a class="indexterm" name="id349156"></a><em class="parameter"><code>printer admin = root, chrisr</code></em></td></tr></table></div></div><br class="example-break"><div class="example"><a name="sbehap-bldg2-smbconf"></a><p class="title"><b>Example 5.9. LDAP Based <code class="filename">smb.conf</code> File, Server: BLDG2</b></p><div class="example-contents"><table border="0" summary="Simple list" class="simplelist"><tr><td># Global parameters</td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[global]</code></em></td></tr><tr><td><a class="indexterm" name="id349201"></a><em class="parameter"><code>unix charset = LOCALE</code></em></td></tr><tr><td><a class="indexterm" name="id349213"></a><em class="parameter"><code>workgroup = MEGANET2</code></em></td></tr><tr><td><a class="indexterm" name="id349224"></a><em class="parameter"><code>netbios name = BLDG2</code></em></td></tr><tr><td><a class="indexterm" name="id349236"></a><em class="parameter"><code>passdb backend = ldapsam:ldap://massive.abmas.biz</code></em></td></tr><tr><td><a class="indexterm" name="id349247"></a><em class="parameter"><code>enable privileges = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id349259"></a><em class="parameter"><code>username map = /etc/samba/smbusers</code></em></td></tr><tr><td><a class="indexterm" name="id349270"></a><em class="parameter"><code>log level = 1</code></em></td></tr><tr><td><a class="indexterm" name="id349282"></a><em class="parameter"><code>syslog = 0</code></em></td></tr><tr><td><a class="indexterm" name="id349293"></a><em class="parameter"><code>log file = /var/log/samba/%m</code></em></td></tr><tr><td><a class="indexterm" name="id349305"></a><em class="parameter"><code>max log size = 50</code></em></td></tr><tr><td><a class="indexterm" name="id349316"></a><em class="parameter"><code>smb ports = 139</code></em></td></tr><tr><td><a class="indexterm" name="id349328"></a><em class="parameter"><code>name resolve order = wins bcast hosts</code></em></td></tr><tr><td><a class="indexterm" name="id349339"></a><em class="parameter"><code>printcap name = CUPS</code></em></td></tr><tr><td><a class="indexterm" name="id349351"></a><em class="parameter"><code>show add printer wizard = No</code></em></td></tr><tr><td><a class="indexterm" name="id349362"></a><em class="parameter"><code>logon script = scripts\logon.bat</code></em></td></tr><tr><td><a class="indexterm" name="id349374"></a><em class="parameter"><code>logon path = \\%L\profiles\%U</code></em></td></tr><tr><td><a class="indexterm" name="id349386"></a><em class="parameter"><code>logon drive = X:</code></em></td></tr><tr><td><a class="indexterm" name="id349397"></a><em class="parameter"><code>domain logons = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id349409"></a><em class="parameter"><code>domain master = No</code></em></td></tr><tr><td><a class="indexterm" name="id349420"></a><em class="parameter"><code>wins server = 172.16.0.1</code></em></td></tr><tr><td><a class="indexterm" name="id349432"></a><em class="parameter"><code>ldap suffix = dc=abmas,dc=biz</code></em></td></tr><tr><td><a class="indexterm" name="id349443"></a><em class="parameter"><code>ldap machine suffix = ou=People</code></em></td></tr><tr><td><a class="indexterm" name="id349455"></a><em class="parameter"><code>ldap user suffix = ou=People</code></em></td></tr><tr><td><a class="indexterm" name="id349466"></a><em class="parameter"><code>ldap group suffix = ou=Groups</code></em></td></tr><tr><td><a class="indexterm" name="id349478"></a><em class="parameter"><code>ldap idmap suffix = ou=Idmap</code></em></td></tr><tr><td><a class="indexterm" name="id349490"></a><em class="parameter"><code>ldap admin dn = cn=Manager,dc=abmas,dc=biz</code></em></td></tr><tr><td><a class="indexterm" name="id349501"></a><em class="parameter"><code>idmap backend = ldap:ldap://massive.abmas.biz</code></em></td></tr><tr><td><a class="indexterm" name="id349513"></a><em class="parameter"><code>idmap uid = 10000-20000</code></em></td></tr><tr><td><a class="indexterm" name="id349525"></a><em class="parameter"><code>idmap gid = 10000-20000</code></em></td></tr><tr><td><a class="indexterm" name="id349536"></a><em class="parameter"><code>printing = cups</code></em></td></tr><tr><td><a class="indexterm" name="id349548"></a><em class="parameter"><code>printer admin = root, chrisr</code></em></td></tr></table></div></div><br class="example-break"><div class="example"><a name="sbehap-shareconfa"></a><p class="title"><b>Example 5.10. LDAP Based <code class="filename">smb.conf</code> File, Shares Section Part A</b></p><div class="example-contents"><table border="0" summary="Simple list" class="simplelist"><tr><td> </td></tr><tr><td><em class="parameter"><code>[accounts]</code></em></td></tr><tr><td><a class="indexterm" name="id349592"></a><em class="parameter"><code>comment = Accounting Files</code></em></td></tr><tr><td><a class="indexterm" name="id349604"></a><em class="parameter"><code>path = /data/accounts</code></em></td></tr><tr><td><a class="indexterm" name="id349615"></a><em class="parameter"><code>read only = No</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[service]</code></em></td></tr><tr><td><a class="indexterm" name="id349635"></a><em class="parameter"><code>comment = Financial Services Files</code></em></td></tr><tr><td><a class="indexterm" name="id349647"></a><em class="parameter"><code>path = /data/service</code></em></td></tr><tr><td><a class="indexterm" name="id349658"></a><em class="parameter"><code>read only = No</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[pidata]</code></em></td></tr><tr><td><a class="indexterm" name="id349679"></a><em class="parameter"><code>comment = Property Insurance Files</code></em></td></tr><tr><td><a class="indexterm" name="id349690"></a><em class="parameter"><code>path = /data/pidata</code></em></td></tr><tr><td><a class="indexterm" name="id349702"></a><em class="parameter"><code>read only = No</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[homes]</code></em></td></tr><tr><td><a class="indexterm" name="id349722"></a><em class="parameter"><code>comment = Home Directories</code></em></td></tr><tr><td><a class="indexterm" name="id349734"></a><em class="parameter"><code>valid users = %S</code></em></td></tr><tr><td><a class="indexterm" name="id349745"></a><em class="parameter"><code>read only = No</code></em></td></tr><tr><td><a class="indexterm" name="id349757"></a><em class="parameter"><code>browseable = No</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[printers]</code></em></td></tr><tr><td><a class="indexterm" name="id349777"></a><em class="parameter"><code>comment = SMB Print Spool</code></em></td></tr><tr><td><a class="indexterm" name="id349789"></a><em class="parameter"><code>path = /var/spool/samba</code></em></td></tr><tr><td><a class="indexterm" name="id349800"></a><em class="parameter"><code>guest ok = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id349812"></a><em class="parameter"><code>printable = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id349823"></a><em class="parameter"><code>browseable = No</code></em></td></tr></table></div></div><br class="example-break"><div class="example"><a name="sbehap-shareconfb"></a><p class="title"><b>Example 5.11. LDAP Based <code class="filename">smb.conf</code> File, Shares Section Part B</b></p><div class="example-contents"><table border="0" summary="Simple list" class="simplelist"><tr><td> </td></tr><tr><td><em class="parameter"><code>[apps]</code></em></td></tr><tr><td><a class="indexterm" name="id349868"></a><em class="parameter"><code>comment = Application Files</code></em></td></tr><tr><td><a class="indexterm" name="id349879"></a><em class="parameter"><code>path = /apps</code></em></td></tr><tr><td><a class="indexterm" name="id349891"></a><em class="parameter"><code>admin users = bjordan</code></em></td></tr><tr><td><a class="indexterm" name="id349902"></a><em class="parameter"><code>read only = No</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[netlogon]</code></em></td></tr><tr><td><a class="indexterm" name="id349922"></a><em class="parameter"><code>comment = Network Logon Service</code></em></td></tr><tr><td><a class="indexterm" name="id349934"></a><em class="parameter"><code>path = /var/lib/samba/netlogon</code></em></td></tr><tr><td><a class="indexterm" name="id349946"></a><em class="parameter"><code>guest ok = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id349957"></a><em class="parameter"><code>locking = No</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[profiles]</code></em></td></tr><tr><td><a class="indexterm" name="id349978"></a><em class="parameter"><code>comment = Profile Share</code></em></td></tr><tr><td><a class="indexterm" name="id349989"></a><em class="parameter"><code>path = /var/lib/samba/profiles</code></em></td></tr><tr><td><a class="indexterm" name="id350001"></a><em class="parameter"><code>read only = No</code></em></td></tr><tr><td><a class="indexterm" name="id350012"></a><em class="parameter"><code>profile acls = Yes</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[profdata]</code></em></td></tr><tr><td><a class="indexterm" name="id350032"></a><em class="parameter"><code>comment = Profile Data Share</code></em></td></tr><tr><td><a class="indexterm" name="id350044"></a><em class="parameter"><code>path = /var/lib/samba/profdata</code></em></td></tr><tr><td><a class="indexterm" name="id350056"></a><em class="parameter"><code>read only = No</code></em></td></tr><tr><td><a class="indexterm" name="id350067"></a><em class="parameter"><code>profile acls = Yes</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[print$]</code></em></td></tr><tr><td><a class="indexterm" name="id350088"></a><em class="parameter"><code>comment = Printer Drivers</code></em></td></tr><tr><td><a class="indexterm" name="id350099"></a><em class="parameter"><code>path = /var/lib/samba/drivers</code></em></td></tr><tr><td><a class="indexterm" name="id350111"></a><em class="parameter"><code>browseable = yes</code></em></td></tr><tr><td><a class="indexterm" name="id350122"></a><em class="parameter"><code>guest ok = no</code></em></td></tr><tr><td><a class="indexterm" name="id350134"></a><em class="parameter"><code>read only = yes</code></em></td></tr><tr><td><a class="indexterm" name="id350145"></a><em class="parameter"><code>write list = root, chrisr</code></em></td></tr></table></div></div><br class="example-break"><div class="example"><a name="sbehap-ldifadd"></a><p class="title"><b>Example 5.12. LDIF IDMAP Add-On Load File File: /etc/openldap/idmap.LDIF</b></p><div class="example-contents"><pre class="screen">
|
|---|
| 2235 | dn: ou=Idmap,dc=abmas,dc=biz
|
|---|
| 2236 | objectClass: organizationalUnit
|
|---|
| 2237 | ou: idmap
|
|---|
| 2238 | structuralObjectClass: organizationalUnit
|
|---|
| 2239 | </pre></div></div><br class="example-break"></div><div class="sect1" title="Miscellaneous Server Preparation Tasks"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id350178"></a>Miscellaneous Server Preparation Tasks</h2></div></div></div><p>
|
|---|
| 2240 | My father would say, <span class="quote">“<span class="quote">Dinner is not over until the dishes have been done.</span>”</span>
|
|---|
| 2241 | The makings of a great network environment take a lot of effort and attention to detail.
|
|---|
| 2242 | So far, you have completed most of the complex (and to many administrators, the interesting
|
|---|
| 2243 | part of server configuration) steps, but remember to tie it all together. Here are
|
|---|
| 2244 | a few more steps that must be completed so that your network runs like a well-rehearsed
|
|---|
| 2245 | orchestra.
|
|---|
| 2246 | </p><div class="sect2" title="Configuring Directory Share Point Roots"><div class="titlepage"><div><div><h3 class="title"><a name="id350194"></a>Configuring Directory Share Point Roots</h3></div></div></div><p>
|
|---|
| 2247 | In your <code class="filename">smb.conf</code> file, you have specified Windows shares. Each has a <em class="parameter"><code>path</code></em>
|
|---|
| 2248 | parameter. Even though it is obvious to all, one of the common Samba networking problems is
|
|---|
| 2249 | caused by forgetting to verify that every such share root directory actually exists and that it
|
|---|
| 2250 | has the necessary permissions and ownership.
|
|---|
| 2251 | </p><p>
|
|---|
| 2252 | Here is an example, but remember to create the directory needed for every share:
|
|---|
| 2253 | </p><pre class="screen">
|
|---|
| 2254 | <code class="prompt">root# </code> mkdir -p /data/{accounts,finsvcs,piops}
|
|---|
| 2255 | <code class="prompt">root# </code> mkdir -p /apps
|
|---|
| 2256 | <code class="prompt">root# </code> chown -R root:root /data
|
|---|
| 2257 | <code class="prompt">root# </code> chown -R root:root /apps
|
|---|
| 2258 | <code class="prompt">root# </code> chown -R bobj:Accounts /data/accounts
|
|---|
| 2259 | <code class="prompt">root# </code> chown -R bobj:Finances /data/finsvcs
|
|---|
| 2260 | <code class="prompt">root# </code> chown -R bobj:PIOps /data/piops
|
|---|
| 2261 | <code class="prompt">root# </code> chmod -R ug+rwxs,o-rwx /data
|
|---|
| 2262 | <code class="prompt">root# </code> chmod -R ug+rwx,o+rx-w /apps
|
|---|
| 2263 | </pre><p>
|
|---|
| 2264 | </p></div><div class="sect2" title="Configuring Profile Directories"><div class="titlepage"><div><div><h3 class="title"><a name="id350283"></a>Configuring Profile Directories</h3></div></div></div><p>
|
|---|
| 2265 | You made a conscious decision to do everything it would take to improve network client
|
|---|
| 2266 | performance. One of your decisions was to implement folder redirection. This means that Windows
|
|---|
| 2267 | user desktop profiles are now made up of two components: a dynamically loaded part and a set of file
|
|---|
| 2268 | network folders.
|
|---|
| 2269 | </p><p>
|
|---|
| 2270 | For this arrangement to work, every user needs a directory structure for the network folder
|
|---|
| 2271 | portion of his or her profile as shown here:
|
|---|
| 2272 | </p><pre class="screen">
|
|---|
| 2273 | <code class="prompt">root# </code> mkdir -p /var/lib/samba/profdata
|
|---|
| 2274 | <code class="prompt">root# </code> chown root:root /var/lib/samba/profdata
|
|---|
| 2275 | <code class="prompt">root# </code> chmod 755 /var/lib/samba/profdata
|
|---|
| 2276 |
|
|---|
| 2277 | # Per user structure
|
|---|
| 2278 | <code class="prompt">root# </code> cd /var/lib/samba/profdata
|
|---|
| 2279 | <code class="prompt">root# </code> mkdir -p <span class="emphasis"><em>username</em></span>
|
|---|
| 2280 | <code class="prompt">root# </code> for i in InternetFiles Cookies History AppData \
|
|---|
| 2281 | LocalSettings MyPictures MyDocuments Recent
|
|---|
| 2282 | <code class="prompt">root# </code> do
|
|---|
| 2283 | <code class="prompt">root# </code> mkdir <span class="emphasis"><em>username</em></span>/$i
|
|---|
| 2284 | <code class="prompt">root# </code> done
|
|---|
| 2285 | <code class="prompt">root# </code> chown -R <span class="emphasis"><em>username</em></span>:Domain\ Users <span class="emphasis"><em>username</em></span>
|
|---|
| 2286 | <code class="prompt">root# </code> chmod -R 750 <span class="emphasis"><em>username</em></span>
|
|---|
| 2287 | </pre><p>
|
|---|
| 2288 | </p><p>
|
|---|
| 2289 | <a class="indexterm" name="id350393"></a>
|
|---|
| 2290 | <a class="indexterm" name="id350399"></a>
|
|---|
| 2291 | You have three options insofar as the dynamically loaded portion of the roaming profile
|
|---|
| 2292 | is concerned:
|
|---|
| 2293 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>You may permit the user to obtain a default profile.</p></li><li class="listitem"><p>You can create a mandatory profile.</p></li><li class="listitem"><p>You can create a group profile (which is almost always a mandatory profile).</p></li></ul></div><p>
|
|---|
| 2294 | Mandatory profiles cannot be overwritten by a user. The change from a user profile to a mandatory
|
|---|
| 2295 | profile is effected by renaming the <code class="filename">NTUSER.DAT</code> to <code class="filename">NTUSER.MAN</code>,
|
|---|
| 2296 | that is, just by changing the filename extension.
|
|---|
| 2297 | </p><p>
|
|---|
| 2298 | <a class="indexterm" name="id350445"></a>
|
|---|
| 2299 | <a class="indexterm" name="id350452"></a>
|
|---|
| 2300 | The location of the profile that a user can obtain is set in the user's account in the LDAP passdb backend.
|
|---|
| 2301 | You can manage this using the Idealx smbldap-tools or using the
|
|---|
| 2302 | <a class="ulink" href="ftp://ftp.microsoft.com/Softlib/MSLFILES/SRVTOOLS.EXE" target="_top">Windows NT4 Domain User Manager</a>.
|
|---|
| 2303 | </p><p>
|
|---|
| 2304 | It may not be obvious that you must ensure that the root directory for the user's profile exists
|
|---|
| 2305 | and has the needed permissions. Use the following commands to create this directory:
|
|---|
| 2306 | </p><pre class="screen">
|
|---|
| 2307 | <code class="prompt">root# </code> mkdir -p /var/lib/samba/profiles/<span class="emphasis"><em>username</em></span>
|
|---|
| 2308 | <code class="prompt">root# </code> chown <span class="emphasis"><em>username</em></span>:Domain\ Users
|
|---|
| 2309 | /var/lib/samba/profiles/<span class="emphasis"><em>username</em></span>
|
|---|
| 2310 | <code class="prompt">root# </code> chmod 700 /var/lib/samba/profiles/<span class="emphasis"><em>username</em></span>
|
|---|
| 2311 | </pre><p>
|
|---|
| 2312 | </p></div><div class="sect2" title="Preparation of Logon Scripts"><div class="titlepage"><div><div><h3 class="title"><a name="id350512"></a>Preparation of Logon Scripts</h3></div></div></div><p>
|
|---|
| 2313 | <a class="indexterm" name="id350519"></a>
|
|---|
| 2314 | The use of a logon script with Windows XP Professional is an option that every site should consider.
|
|---|
| 2315 | Unless you have locked down the desktop so the user cannot change anything, there is risk that
|
|---|
| 2316 | a vital network drive setting may be broken or that printer connections may be lost. Logon scripts
|
|---|
| 2317 | can help to restore persistent network folder (drive) and printer connections in a predictable
|
|---|
| 2318 | manner. One situation in which such breakage may occur in particular is when a mobile PC (notebook)
|
|---|
| 2319 | user attaches to another company's network that forces environment changes that are alien to your
|
|---|
| 2320 | network.
|
|---|
| 2321 | </p><p>
|
|---|
| 2322 | If you decide to use network logon scripts, by reference to the <code class="filename">smb.conf</code> files for the domain
|
|---|
| 2323 | controllers, you see that the path to the share point for the <code class="constant">NETLOGON</code>
|
|---|
| 2324 | share defined is <code class="filename">/var/lib/samba/netlogon</code>. The path defined for the logon
|
|---|
| 2325 | script inside that share is <code class="filename">scripts\logon.bat</code>. This means that as a Windows
|
|---|
| 2326 | NT/200x/XP client logs onto the network, it tries to obtain the file <code class="filename">logon.bat</code>
|
|---|
| 2327 | from the fully qualified path <code class="filename">/var/lib/samba/netlogon/scripts</code>. This fully
|
|---|
| 2328 | qualified path should therefore exist whether you install the <code class="filename">logon.bat</code>.
|
|---|
| 2329 | </p><p>
|
|---|
| 2330 | You can, of course, create the fully qualified path by executing:
|
|---|
| 2331 | </p><pre class="screen">
|
|---|
| 2332 | <code class="prompt">root# </code> mkdir -p /var/lib/samba/netlogon/scripts
|
|---|
| 2333 | </pre><p>
|
|---|
| 2334 | </p><p>
|
|---|
| 2335 | You should research the options for logon script implementation by referring to <span class="emphasis"><em>TOSHARG2</em></span>, Chapter 24,
|
|---|
| 2336 | Section 24.4. A quick Web search will bring up a host of options. One of the most popular logon
|
|---|
| 2337 | facilities in use today is called <a class="ulink" href="http://www.kixtart.org" target="_top">KiXtart</a>.
|
|---|
| 2338 | </p></div><div class="sect2" title="Assigning User Rights and Privileges"><div class="titlepage"><div><div><h3 class="title"><a name="id350609"></a>Assigning User Rights and Privileges</h3></div></div></div><p>
|
|---|
| 2339 | The ability to perform tasks such as joining Windows clients to the domain can be assigned to
|
|---|
| 2340 | normal user accounts. By default, only the domain administrator account (<code class="constant">root</code> on UNIX
|
|---|
| 2341 | systems because it has UID=0) can add accounts. New to Samba 3.0.11 is the ability to grant
|
|---|
| 2342 | this privilege in a very limited fashion to particular accounts.
|
|---|
| 2343 | </p><p>
|
|---|
| 2344 | By default, even Samba-3.0.11 does not grant any rights even to the <code class="constant">Domain Admins</code>
|
|---|
| 2345 | group. Here we grant this group all privileges.
|
|---|
| 2346 | </p><p>
|
|---|
| 2347 | Samba limits privileges on a per-server basis. This is a deliberate limitation so that users who
|
|---|
| 2348 | are granted rights can be restricted to particular machines. It is left to the network administrator
|
|---|
| 2349 | to determine which rights should be provided and to whom.
|
|---|
| 2350 | </p><div class="procedure" title="Procedure 5.12. Steps for Assignment of User Rights and Privileges"><a name="id350638"></a><p class="title"><b>Procedure 5.12. Steps for Assignment of User Rights and Privileges</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 2351 | Log onto the PDC as the <code class="constant">root</code> account.
|
|---|
| 2352 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 2353 | Execute the following command to grant the <code class="constant">Domain Admins</code> group all
|
|---|
| 2354 | rights and privileges:
|
|---|
| 2355 | </p><pre class="screen">
|
|---|
| 2356 | <code class="prompt">root# </code> net -S MASSIVE -U root%not24get rpc rights grant \
|
|---|
| 2357 | "MEGANET2\Domain Admins" SeMachineAccountPrivilege \
|
|---|
| 2358 | SePrintOperatorPrivilege SeAddUsersPrivilege \
|
|---|
| 2359 | SeDiskOperatorPrivilege SeRemoteShutdownPrivilege
|
|---|
| 2360 | Successfully granted rights.
|
|---|
| 2361 | </pre><p>
|
|---|
| 2362 | Repeat this step on each domain controller, in each case substituting the name of the server
|
|---|
| 2363 | (e.g., BLDG1, BLDG2) in place of the PDC called MASSIVE.
|
|---|
| 2364 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 2365 | In this step the privilege will be granted to Bob Jordan (bobj) to add Windows workstations
|
|---|
| 2366 | to the domain. Execute the following only on the PDC. It is not necessary to do this on
|
|---|
| 2367 | BDCs or on DMS machines because machine accounts are only ever added by the PDC:
|
|---|
| 2368 | </p><pre class="screen">
|
|---|
| 2369 | <code class="prompt">root# </code> net -S MASSIVE -U root%not24get rpc rights grant \
|
|---|
| 2370 | "MEGANET2\bobj" SeMachineAccountPrivilege
|
|---|
| 2371 | Successfully granted rights.
|
|---|
| 2372 | </pre><p>
|
|---|
| 2373 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 2374 | Verify that privilege assignments have been correctly applied by executing:
|
|---|
| 2375 | </p><pre class="screen">
|
|---|
| 2376 | net rpc rights list accounts -Uroot%not24get
|
|---|
| 2377 | MEGANET2\bobj
|
|---|
| 2378 | SeMachineAccountPrivilege
|
|---|
| 2379 |
|
|---|
| 2380 | S-0-0
|
|---|
| 2381 | No privileges assigned
|
|---|
| 2382 |
|
|---|
| 2383 | BUILTIN\Print Operators
|
|---|
| 2384 | No privileges assigned
|
|---|
| 2385 |
|
|---|
| 2386 | BUILTIN\Account Operators
|
|---|
| 2387 | No privileges assigned
|
|---|
| 2388 |
|
|---|
| 2389 | BUILTIN\Backup Operators
|
|---|
| 2390 | No privileges assigned
|
|---|
| 2391 |
|
|---|
| 2392 | BUILTIN\Server Operators
|
|---|
| 2393 | No privileges assigned
|
|---|
| 2394 |
|
|---|
| 2395 | BUILTIN\Administrators
|
|---|
| 2396 | No privileges assigned
|
|---|
| 2397 |
|
|---|
| 2398 | Everyone
|
|---|
| 2399 | No privileges assigned
|
|---|
| 2400 |
|
|---|
| 2401 | MEGANET2\Domain Admins
|
|---|
| 2402 | SeMachineAccountPrivilege
|
|---|
| 2403 | SePrintOperatorPrivilege
|
|---|
| 2404 | SeAddUsersPrivilege
|
|---|
| 2405 | SeRemoteShutdownPrivilege
|
|---|
| 2406 | SeDiskOperatorPrivilege
|
|---|
| 2407 | </pre><p>
|
|---|
| 2408 | </p></li></ol></div></div></div><div class="sect1" title="Windows Client Configuration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id350723"></a>Windows Client Configuration</h2></div></div></div><p>
|
|---|
| 2409 | <a class="indexterm" name="id350731"></a>
|
|---|
| 2410 | In the next few sections, you can configure a new Windows XP Professional disk image on a staging
|
|---|
| 2411 | machine. You will configure all software, printer settings, profile and policy handling, and desktop
|
|---|
| 2412 | default profile settings on this system. When it is complete, you copy the contents of the
|
|---|
| 2413 | <code class="filename">C:\Documents and Settings\Default User</code> directory to a directory with the same
|
|---|
| 2414 | name in the <code class="constant">NETLOGON</code> share on the domain controllers.
|
|---|
| 2415 | </p><p>
|
|---|
| 2416 | Much can be learned from the Microsoft Support site regarding how best to set up shared profiles.
|
|---|
| 2417 | One knowledge-base article in particular stands out:
|
|---|
| 2418 | "<a class="ulink" href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;168475" target="_top">How to Create a
|
|---|
| 2419 | Base Profile for All Users."</a>
|
|---|
| 2420 |
|
|---|
| 2421 | </p><div class="sect2" title="Configuration of Default Profile with Folder Redirection"><div class="titlepage"><div><div><h3 class="title"><a name="redirfold"></a>Configuration of Default Profile with Folder Redirection</h3></div></div></div><p>
|
|---|
| 2422 | <a class="indexterm" name="id350774"></a>
|
|---|
| 2423 | Log onto the Windows XP Professional workstation as the local <code class="constant">Administrator</code>.
|
|---|
| 2424 | It is necessary to expose folders that are generally hidden to provide access to the
|
|---|
| 2425 | <code class="constant">Default User</code> folder.
|
|---|
| 2426 | </p><div class="procedure" title="Procedure 5.13. Expose Hidden Folders"><a name="id350791"></a><p class="title"><b>Procedure 5.13. Expose Hidden Folders</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 2427 | Launch the Windows Explorer by clicking
|
|---|
| 2428 | <span class="guimenu">Start</span> → <span class="guimenuitem">My Computer</span> → <span class="guimenuitem">Tools</span> → <span class="guimenuitem">Folder Options</span> → <span class="guimenuitem">View Tab</span>.
|
|---|
| 2429 | Select <span class="guilabel">Show hidden files and folders</span>,
|
|---|
| 2430 | and click <span class="guibutton">OK</span>. Exit Windows Explorer.
|
|---|
| 2431 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 2432 | <a class="indexterm" name="id350856"></a>
|
|---|
| 2433 | Launch the Registry Editor. Click
|
|---|
| 2434 | <span class="guimenu">Start</span> → <span class="guimenuitem">Run</span>. Key in <code class="literal">regedt32</code>, and click
|
|---|
| 2435 | <span class="guibutton">OK</span>.
|
|---|
| 2436 | </p></li></ol></div><p>
|
|---|
| 2437 | </p><div class="procedure" title="Procedure 5.14. Redirect Folders in Default System User Profile"><a name="sbehap-rdrfldr"></a><p class="title"><b>Procedure 5.14. Redirect Folders in Default System User Profile</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 2438 | <a class="indexterm" name="id350912"></a>
|
|---|
| 2439 | <a class="indexterm" name="id350919"></a>
|
|---|
| 2440 | Give focus to <code class="constant">HKEY_LOCAL_MACHINE</code> hive entry in the left panel.
|
|---|
| 2441 | Click <span class="guimenu">File</span> → <span class="guimenuitem">Load Hive...</span> → <span class="guimenuitem">Documents and Settings</span> → <span class="guimenuitem">Default User</span> → <span class="guimenuitem">NTUSER</span> → <span class="guimenuitem">Open</span>. In the dialog box that opens, enter the key name
|
|---|
| 2442 | <code class="constant">Default</code> and click <span class="guibutton">OK</span>.
|
|---|
| 2443 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 2444 | Browse inside the newly loaded Default folder to:
|
|---|
| 2445 | </p><pre class="screen">
|
|---|
| 2446 | HKEY_LOCAL_MACHINE\Default\Software\Microsoft\Windows\
|
|---|
| 2447 | CurrentVersion\Explorer\User Shell Folders\
|
|---|
| 2448 | </pre><p>
|
|---|
| 2449 | The right panel reveals the contents as shown in <a class="link" href="happy.html#XP-screen001" title="Figure 5.3. Windows XP Professional User Shared Folders">“Windows XP Professional User Shared Folders”</a>.
|
|---|
| 2450 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 2451 | <a class="indexterm" name="id351008"></a>
|
|---|
| 2452 | <a class="indexterm" name="id351015"></a>
|
|---|
| 2453 | You edit hive keys. Acceptable values to replace the
|
|---|
| 2454 | <code class="constant">%USERPROFILE%</code> variable includes:
|
|---|
| 2455 |
|
|---|
| 2456 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>A drive letter such as <code class="constant">U:</code></p></li><li class="listitem"><p>A direct network path such as
|
|---|
| 2457 | <code class="constant">\\MASSIVE\profdata</code></p></li><li class="listitem"><p>A network redirection (UNC name) that contains a macro such as </p><p><code class="constant">%LOGONSERVER%\profdata\</code></p></li></ul></div><p>
|
|---|
| 2458 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 2459 | <a class="indexterm" name="id351059"></a>
|
|---|
| 2460 | Set the registry keys as shown in <a class="link" href="happy.html#proffold" title="Table 5.4. Default Profile Redirections">“Default Profile Redirections”</a>. Your implementation makes the assumption
|
|---|
| 2461 | that users have statically located machines. Notebook computers (mobile users) need to be
|
|---|
| 2462 | accommodated using local profiles. This is not an uncommon assumption.
|
|---|
| 2463 | </p></li><li class="step" title="Step 5"><p>
|
|---|
| 2464 | Click back to the root of the loaded hive <code class="constant">Default</code>.
|
|---|
| 2465 | Click <span class="guimenu">File</span> → <span class="guimenuitem">Unload Hive...</span> → <span class="guimenuitem">Yes</span>.
|
|---|
| 2466 | </p></li><li class="step" title="Step 6"><p>
|
|---|
| 2467 | <a class="indexterm" name="id351112"></a>
|
|---|
| 2468 | Click <span class="guimenu">File</span> → <span class="guimenuitem">Exit</span>. This exits the
|
|---|
| 2469 | Registry Editor.
|
|---|
| 2470 | </p></li><li class="step" title="Step 7"><p>
|
|---|
| 2471 | Now follow the procedure given in <a class="link" href="happy.html#sbehap-locgrppol" title="The Local Group Policy">“The Local Group Policy”</a>. Make sure that each folder you
|
|---|
| 2472 | have redirected is in the exclusion list.
|
|---|
| 2473 | </p></li><li class="step" title="Step 8"><p>
|
|---|
| 2474 | You are now ready to copy<sup>[<a name="id351153" href="#ftn.id351153" class="footnote">11</a>]</sup>
|
|---|
| 2475 | the Default User profile to the Samba domain controllers. Launch Microsoft Windows Explorer,
|
|---|
| 2476 | and use it to copy the full contents of the directory <code class="filename">Default User</code> that
|
|---|
| 2477 | is in the <code class="filename">C:\Documents and Settings</code> to the root directory of the
|
|---|
| 2478 | <code class="constant">NETLOGON</code> share. If the <code class="constant">NETLOGON</code> share has the defined
|
|---|
| 2479 | UNIX path of <code class="filename">/var/lib/samba/netlogon</code>, when the copy is complete there must
|
|---|
| 2480 | be a directory in there called <code class="filename">Default User</code>.
|
|---|
| 2481 | </p></li></ol></div><p>
|
|---|
| 2482 | Before punching out new desktop images for the client workstations, it is perhaps a good idea that
|
|---|
| 2483 | desktop behavior should be returned to the original Microsoft settings. The following steps achieve
|
|---|
| 2484 | that ojective:
|
|---|
| 2485 | </p><div class="procedure" title="Procedure 5.15. Reset Folder Display to Original Behavior"><a name="id351213"></a><p class="title"><b>Procedure 5.15. Reset Folder Display to Original Behavior</b></p><ul class="procedure"><li class="step" title="Step 1"><p>
|
|---|
| 2486 | To launch the Windows Explorer, click
|
|---|
| 2487 | <span class="guimenu">Start</span> → <span class="guimenuitem">My Computer</span> → <span class="guimenuitem">Tools</span> → <span class="guimenuitem">Folder Options</span> → <span class="guimenuitem">View Tab</span>.
|
|---|
| 2488 | Deselect <span class="guilabel">Show hidden files and folders</span>, and click <span class="guibutton">OK</span>.
|
|---|
| 2489 | Exit Windows Explorer.
|
|---|
| 2490 | </p></li></ul></div><div class="figure"><a name="XP-screen001"></a><p class="title"><b>Figure 5.3. Windows XP Professional User Shared Folders</b></p><div class="figure-contents"><div class="mediaobject"><img src="images/XP-screen001.png" width="351" alt="Windows XP Professional User Shared Folders"></div></div></div><br class="figure-break"><div class="table"><a name="proffold"></a><p class="title"><b>Table 5.4. Default Profile Redirections</b></p><div class="table-contents"><table summary="Default Profile Redirections" border="1"><colgroup><col align="left"><col align="left"></colgroup><thead><tr><th align="left">Registry Key</th><th align="left">Redirected Value</th></tr></thead><tbody><tr><td align="left">Cache</td><td align="left">%LOGONSERVER%\profdata\%USERNAME%\InternetFiles</td></tr><tr><td align="left">Cookies</td><td align="left">%LOGONSERVER%\profdata\%USERNAME%\Cookies</td></tr><tr><td align="left">History</td><td align="left">%LOGONSERVER%\profdata\%USERNAME%\History</td></tr><tr><td align="left">Local AppData</td><td align="left">%LOGONSERVER%\profdata\%USERNAME%\AppData</td></tr><tr><td align="left">Local Settings</td><td align="left">%LOGONSERVER%\profdata\%USERNAME%\LocalSettings</td></tr><tr><td align="left">My Pictures</td><td align="left">%LOGONSERVER%\profdata\%USERNAME%\MyPictures</td></tr><tr><td align="left">Personal</td><td align="left">%LOGONSERVER%\profdata\%USERNAME%\MyDocuments</td></tr><tr><td align="left">Recent</td><td align="left">%LOGONSERVER%\profdata\%USERNAME%\Recent</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" title="Configuration of MS Outlook to Relocate PST File"><div class="titlepage"><div><div><h3 class="title"><a name="id351441"></a>Configuration of MS Outlook to Relocate PST File</h3></div></div></div><p>
|
|---|
| 2491 | <a class="indexterm" name="id351449"></a>
|
|---|
| 2492 | <a class="indexterm" name="id351458"></a>
|
|---|
| 2493 | Microsoft Outlook can store a Personal Storage file, generally known as a PST file.
|
|---|
| 2494 | It is the nature of email storage that this file grows, at times quite rapidly.
|
|---|
| 2495 | So that users' email is available to them at every workstation they may log onto,
|
|---|
| 2496 | it is common practice in well-controlled sites to redirect the PST folder to the
|
|---|
| 2497 | users' home directory. Follow these steps for each user who wishes to do this.
|
|---|
| 2498 | </p><p>
|
|---|
| 2499 | To redirect the Outlook PST file in Outlook 2003 (older versions of Outlook behave
|
|---|
| 2500 | slightly differently), follow these steps:
|
|---|
| 2501 | </p><div class="procedure" title="Procedure 5.16. Outlook PST File Relocation"><a name="id351476"></a><p class="title"><b>Procedure 5.16. Outlook PST File Relocation</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 2502 | Close Outlook if it is open.
|
|---|
| 2503 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 2504 | From the <span class="guimenu">Control Panel</span>, launch the Mail icon.
|
|---|
| 2505 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 2506 | Click <span class="guimenu">Email Accounts.</span>
|
|---|
| 2507 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 2508 | Make a note of the location of the PST file(s). From this location, move
|
|---|
| 2509 | the files to the desired new target location. The most desired new target location
|
|---|
| 2510 | may well be the users' home directory.
|
|---|
| 2511 | </p></li><li class="step" title="Step 5"><p>
|
|---|
| 2512 | Add a new data file, selecting the PST file in the new desired target location.
|
|---|
| 2513 | Give this entry (not the filename) a new name such as <span class="quote">“<span class="quote">Personal Mail Folders.</span>”</span>
|
|---|
| 2514 | </p><p>
|
|---|
| 2515 | Note: If MS Outlook has been configured to use an IMAP account configuration there may be problems
|
|---|
| 2516 | following these instructions. Feedback from users suggests that where IMAP is used the PST
|
|---|
| 2517 | file is used to store rules and filters. When the PST store is relocated it appears to break
|
|---|
| 2518 | MS Outlook's Send/Receive button. If anyone has sucessfully relocated PST files where IMAP is
|
|---|
| 2519 | used please email <code class="literal">jht@samba.org</code> with useful tips and suggestions so that
|
|---|
| 2520 | this warning can be removed or modified.
|
|---|
| 2521 | </p></li><li class="step" title="Step 6"><p>
|
|---|
| 2522 | Close the <span class="guimenu">Date Files</span> windows, then click <span class="guimenu">Email Accounts</span>.
|
|---|
| 2523 | </p></li><li class="step" title="Step 7"><p>
|
|---|
| 2524 | Select <span class="guimenu">View of Change</span> exiting email accounts, click <span class="guibutton">Next.</span>
|
|---|
| 2525 | </p></li><li class="step" title="Step 8"><p>
|
|---|
| 2526 | Change the <span class="guimenu">Mail Delivery Location</span> so as to use the data file in the new
|
|---|
| 2527 | target location.
|
|---|
| 2528 | </p></li><li class="step" title="Step 9"><p>
|
|---|
| 2529 | Go back to the <span class="guimenu">Data Files</span> window, then delete the old data file entry.
|
|---|
| 2530 | </p></li></ol></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
|
|---|
| 2531 | <a class="indexterm" name="id351615"></a>
|
|---|
| 2532 | You may have to remove and reinstall the Outlook Address Book (Contacts) entries, otherwise
|
|---|
| 2533 | the user may be not be able to retrieve contacts when addressing a new email message.
|
|---|
| 2534 | </p></div><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
|
|---|
| 2535 | <a class="indexterm" name="id351628"></a>
|
|---|
| 2536 | Outlook Express is not at all like MS OutLook. It stores file very differently also. Outlook
|
|---|
| 2537 | Express storage files can not be redirected to network shares. The options panel will not permit
|
|---|
| 2538 | this, but they can be moved to folders outside of the user's profile. They can also be excluded
|
|---|
| 2539 | from folder synchronization as part of the roaming profile.
|
|---|
| 2540 | </p><p>
|
|---|
| 2541 | While it is possible to redirect the data stores for Outlook Express data stores by editing the
|
|---|
| 2542 | registry, experience has shown that data corruption and loss of email messages will result.
|
|---|
| 2543 | </p><p>
|
|---|
| 2544 | <a class="indexterm" name="id351646"></a>
|
|---|
| 2545 | <a class="indexterm" name="id351653"></a>
|
|---|
| 2546 | In the same vane as MS Outlook, Outlook Express data stores can become very large. When used with
|
|---|
| 2547 | roaming profiles this can result in excruciatingly long login and logout behavior will files are
|
|---|
| 2548 | synchronized. For this reason, it is highly recommended not to use Outlook Express where roaming
|
|---|
| 2549 | profiles are used.
|
|---|
| 2550 | </p></div><p>
|
|---|
| 2551 | <a class="indexterm" name="id351665"></a>
|
|---|
| 2552 | Microsoft does not support storing PST files on network shares, although the practice does appear
|
|---|
| 2553 | to be rather popular. Anyone who does relocation the PST file to a network resource should refer
|
|---|
| 2554 | the Microsoft <a class="ulink" href="http://support.microsoft.com/kb/297019/" target="_top">reference</a> to better
|
|---|
| 2555 | understand the issues.
|
|---|
| 2556 | </p><p>
|
|---|
| 2557 | <a class="indexterm" name="id351684"></a>
|
|---|
| 2558 | Apart from manually moving PST files to a network share, it is possible to set the default PST
|
|---|
| 2559 | location for new accounts by following the instructions at the WindowsITPro <a class="ulink" href="http://www.windowsitpro.com/Windows/Article/ArticleID/48228/48228.html" target="_top">web</a> site.
|
|---|
| 2560 | </p><p>
|
|---|
| 2561 | <a class="indexterm" name="id351701"></a>
|
|---|
| 2562 | User feedback suggests that disabling of oplocks on PST files will significantly improve
|
|---|
| 2563 | network performance by reducing locking overheads. One way this can be done is to add to the
|
|---|
| 2564 | <code class="filename">smb.conf</code> file stanza for the share the PST file the following:
|
|---|
| 2565 | </p><pre class="screen">
|
|---|
| 2566 | veto oplock files = /*.pdf/*.PST/
|
|---|
| 2567 | </pre><p>
|
|---|
| 2568 | </p></div><div class="sect2" title="Configure Delete Cached Profiles on Logout"><div class="titlepage"><div><div><h3 class="title"><a name="id351724"></a>Configure Delete Cached Profiles on Logout</h3></div></div></div><p>
|
|---|
| 2569 | Configure the Windows XP Professional client to auto-delete roaming profiles on logout:
|
|---|
| 2570 | </p><p>
|
|---|
| 2571 | <a class="indexterm" name="id351736"></a>
|
|---|
| 2572 | Click
|
|---|
| 2573 | <span class="guimenu">Start</span> → <span class="guimenuitem">Run</span>. In the dialog box, enter <code class="literal">MMC</code> and click <span class="guibutton">OK</span>.
|
|---|
| 2574 | </p><p>
|
|---|
| 2575 | Follow these steps to set the default behavior of the staging machine so that all roaming
|
|---|
| 2576 | profiles are deleted as network users log out of the system. Click
|
|---|
| 2577 | <span class="guimenu">File</span> → <span class="guimenuitem">Add/Remove Snap-in</span> → <span class="guimenuitem">Add</span> → <span class="guimenuitem">Group Policy</span> → <span class="guimenuitem">Add</span> → <span class="guimenuitem">Finish</span> → <span class="guimenuitem">Close</span> → <span class="guimenuitem">OK</span>.
|
|---|
| 2578 | </p><p>
|
|---|
| 2579 | <a class="indexterm" name="id351830"></a>
|
|---|
| 2580 | The Microsoft Management Console now shows the <span class="guimenu">Group Policy</span>
|
|---|
| 2581 | utility that enables you to set the policies needed. In the left panel, click
|
|---|
| 2582 | <span class="guimenuitem">Local Computer Policy</span> → <span class="guimenuitem">Administrative Templates</span> → <span class="guimenuitem">System</span> → <span class="guimenuitem">User Profiles</span>. In the right panel, set the properties shown here by double-clicking on each
|
|---|
| 2583 | item as shown:
|
|---|
| 2584 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Do not check for user ownership of Roaming Profile Folders = Enabled</p></li><li class="listitem"><p>Delete cached copies of roaming profiles = Enabled</p></li></ul></div><p>
|
|---|
| 2585 | Close the Microsoft Management Console. The settings take immediate effect and persist onto all image copies
|
|---|
| 2586 | made of this system to deploy the new standard desktop system.
|
|---|
| 2587 | </p></div><div class="sect2" title="Uploading Printer Drivers to Samba Servers"><div class="titlepage"><div><div><h3 class="title"><a name="id351896"></a>Uploading Printer Drivers to Samba Servers</h3></div></div></div><p>
|
|---|
| 2588 | <a class="indexterm" name="id351904"></a>
|
|---|
| 2589 | Users want to be able to use network printers. You have a vested interest in making
|
|---|
| 2590 | it easy for them to print. You have chosen to install the printer drivers onto the Samba
|
|---|
| 2591 | servers and to enable point-and-click (drag-and-drop) printing. This process results in
|
|---|
| 2592 | Samba being able to automatically provide the Windows client with the driver necessary to
|
|---|
| 2593 | print to the printer chosen. The following procedure must be followed for every network
|
|---|
| 2594 | printer:
|
|---|
| 2595 | </p><div class="procedure" title="Procedure 5.17. Steps to Install Printer Drivers on the Samba Servers"><a name="id351918"></a><p class="title"><b>Procedure 5.17. Steps to Install Printer Drivers on the Samba Servers</b></p><ol class="procedure" type="1"><li class="step" title="Step 1"><p>
|
|---|
| 2596 | Join your Windows XP Professional workstation (the staging machine) to the
|
|---|
| 2597 | <code class="constant">MEGANET2</code> domain. If you are not sure of the procedure,
|
|---|
| 2598 | follow the guidance given in <a class="link" href="appendix.html" title="Chapter 15. A Collection of Useful Tidbits">“A Collection of Useful Tidbits”</a>, <a class="link" href="appendix.html#domjoin" title="Joining a Domain: Windows 200x/XP Professional">“Joining a Domain: Windows 200x/XP Professional”</a>.
|
|---|
| 2599 | </p></li><li class="step" title="Step 2"><p>
|
|---|
| 2600 | After the machine has rebooted, log onto the workstation as the domain
|
|---|
| 2601 | <code class="constant">root</code> (this is the Administrator account for the
|
|---|
| 2602 | operating system that is the host platform for this implementation of Samba.
|
|---|
| 2603 | </p></li><li class="step" title="Step 3"><p>
|
|---|
| 2604 | Launch MS Windows Explorer. Navigate in the left panel. Click
|
|---|
| 2605 | <span class="guimenu">My Network Places</span> → <span class="guimenuitem">Entire Network</span> → <span class="guimenuitem">Microsoft Windows Network</span> → <span class="guimenuitem">Meganet2</span> → <span class="guimenuitem">Massive</span>. Click on <span class="guimenu">Massive</span>
|
|---|
| 2606 | <span class="guimenu">Printers and Faxes</span>.
|
|---|
| 2607 | </p></li><li class="step" title="Step 4"><p>
|
|---|
| 2608 | Identify a printer that is shown in the right panel. Let us assume the printer is called
|
|---|
| 2609 | <code class="constant">ps01-color</code>. Right-click on the <span class="guimenu">ps01-color</span> icon
|
|---|
| 2610 | and select the <span class="guimenu">Properties</span> entry. This opens a dialog box that indicates
|
|---|
| 2611 | that <span class="quote">“<span class="quote">The printer driver is not installed on this computer. Some printer properties
|
|---|
| 2612 | will not be accessible unless you install the printer driver. Do you want to install the
|
|---|
| 2613 | driver now?</span>”</span> It is important at this point you answer <span class="guimenu">No</span>.
|
|---|
| 2614 | </p></li><li class="step" title="Step 5"><p>
|
|---|
| 2615 | The printer properties panel for the <span class="guimenu">ps01-color</span> printer on the server
|
|---|
| 2616 | <code class="constant">MASSIVE</code> is displayed. Click the <span class="guimenu">Advanced</span> tab.
|
|---|
| 2617 | Note that the box labeled <span class="guimenu">Driver</span> is empty. Click the <span class="guimenu">New Driver</span>
|
|---|
| 2618 | button that is next to the <span class="guimenu">Driver</span> box. This launches the <span class="quote">“<span class="quote">Add Printer Wizard</span>”</span>.
|
|---|
| 2619 | </p></li><li class="step" title="Step 6"><p>
|
|---|
| 2620 | <a class="indexterm" name="id352097"></a>
|
|---|
| 2621 | <a class="indexterm" name="id352106"></a>
|
|---|
| 2622 | The <span class="quote">“<span class="quote">Add Printer Driver Wizard on <code class="constant">MASSIVE</code></span>”</span> panel
|
|---|
| 2623 | is now presented. Click <span class="guimenu">Next</span> to continue. From the left panel, select the
|
|---|
| 2624 | printer manufacturer. In your case, you are adding a driver for a printer manufactured by
|
|---|
| 2625 | Lexmark. In the right panel, select the printer (Lexmark Optra Color 40 PS). Click
|
|---|
| 2626 | <span class="guimenu">Next</span>, and then <span class="guimenu">Finish</span> to commence driver upload. A
|
|---|
| 2627 | progress bar appears and instructs you as each file is being uploaded and that it is being
|
|---|
| 2628 | directed at the network server <code class="constant">\\massive\ps01-color</code>.
|
|---|
| 2629 | </p></li><li class="step" title="Step 7"><p>
|
|---|
| 2630 | <a class="indexterm" name="id352150"></a>
|
|---|
| 2631 | <a class="indexterm" name="id352160"></a>
|
|---|
| 2632 | <a class="indexterm" name="id352169"></a>
|
|---|
| 2633 | <a class="indexterm" name="id352178"></a>
|
|---|
| 2634 | <a class="indexterm" name="id352187"></a>
|
|---|
| 2635 | <a class="indexterm" name="id352196"></a>
|
|---|
| 2636 | The driver upload completes in anywhere from a few seconds to a few minutes. When it completes,
|
|---|
| 2637 | you are returned to the <span class="guimenu">Advanced</span> tab in the <span class="guimenu">Properties</span> panel.
|
|---|
| 2638 | You can set the Location (under the <span class="guimenu">General</span> tab) and Security settings (under
|
|---|
| 2639 | the <span class="guimenu">Security</span> tab). Under the <span class="guimenu">Sharing</span> tab it is possible to
|
|---|
| 2640 | load additional printer drivers; there is also a check-box in this tab called <span class="quote">“<span class="quote">List in the
|
|---|
| 2641 | directory</span>”</span>. When this box is checked, the printer will be published in Active Directory
|
|---|
| 2642 | (Applicable to Active Directory use only.)
|
|---|
| 2643 | </p></li><li class="step" title="Step 8"><p>
|
|---|
| 2644 | <a class="indexterm" name="id352247"></a>
|
|---|
| 2645 | Click <span class="guimenu">OK</span>. It will take a minute or so to upload the settings to the server.
|
|---|
| 2646 | You are now returned to the <span class="guimenu">Printers and Faxes on Massive</span> monitor.
|
|---|
| 2647 | Right-click on the printer, click <span class="guimenu">Properties</span> → <span class="guimenuitem">Device Settings</span>. Now change the settings to suit
|
|---|
| 2648 | your requirements. BE CERTAIN TO CHANGE AT LEAST ONE SETTING and apply the changes even if
|
|---|
| 2649 | you need to reverse the changes back to their original settings.
|
|---|
| 2650 | </p></li><li class="step" title="Step 9"><p>
|
|---|
| 2651 | This is necessary so that the printer settings are initialized in the Samba printers
|
|---|
| 2652 | database. Click <span class="guimenu">Apply</span> to commit your settings. Revert any settings you changed
|
|---|
| 2653 | just to initialize the Samba printers database entry for this printer. If you need to revert a setting,
|
|---|
| 2654 | click <span class="guimenu">Apply</span> again.
|
|---|
| 2655 | </p></li><li class="step" title="Step 10"><p>
|
|---|
| 2656 | <a class="indexterm" name="id352314"></a>
|
|---|
| 2657 | Verify that all printer settings are at the desired configuration. When you are satisfied that they are,
|
|---|
| 2658 | click the <span class="guimenu">General</span> tab. Now click the <span class="guimenu">Print Test Page</span> button.
|
|---|
| 2659 | A test page should print. Verify that it has printed correctly. Then click <span class="guimenu">OK</span>
|
|---|
| 2660 | in the panel that is newly presented. Click <span class="guimenu">OK</span> on the <span class="guimenu">ps01-color on
|
|---|
| 2661 | massive Properties</span> panel.
|
|---|
| 2662 | </p></li><li class="step" title="Step 11"><p>
|
|---|
| 2663 | You must repeat this process for all network printers (i.e., for every printer on each server).
|
|---|
| 2664 | When you have finished uploading drivers to all printers, close all applications. The next task
|
|---|
| 2665 | is to install software your users require to do their work.
|
|---|
| 2666 | </p></li></ol></div></div><div class="sect2" title="Software Installation"><div class="titlepage"><div><div><h3 class="title"><a name="id352365"></a>Software Installation</h3></div></div></div><p>
|
|---|
| 2667 | Your network has both fixed desktop workstations as well as notebook computers. As a general rule, it is
|
|---|
| 2668 | a good idea to not tamper with the operating system that is provided by the notebook computer manufacturer.
|
|---|
| 2669 | Notebooks require special handling that is beyond the scope of this chapter.
|
|---|
| 2670 | </p><p>
|
|---|
| 2671 | For desktop systems, the installation of software onto administratively centralized application servers
|
|---|
| 2672 | make a lot of sense. This means that you can manage software maintenance from a central
|
|---|
| 2673 | perspective and that only minimal application stubware needs to be installed onto the desktop
|
|---|
| 2674 | systems. You should proceed with software installation and default configuration as far as is humanly
|
|---|
| 2675 | possible and so long as it makes sense to do so. Make certain to thoroughly test and validate every aspect
|
|---|
| 2676 | of software operations and configuration.
|
|---|
| 2677 | </p><p>
|
|---|
| 2678 | When you believe that the overall configuration is complete, be sure to create a shared group profile
|
|---|
| 2679 | and migrate that to the Samba server for later reuse when creating custom mandatory profiles, just in
|
|---|
| 2680 | case a user may have specific needs you had not anticipated.
|
|---|
| 2681 | </p></div><div class="sect2" title="Roll-out Image Creation"><div class="titlepage"><div><div><h3 class="title"><a name="id352391"></a>Roll-out Image Creation</h3></div></div></div><p>
|
|---|
| 2682 | The final steps before preparing the distribution Norton Ghost image file you might follow are:
|
|---|
| 2683 | </p><div class="blockquote"><blockquote class="blockquote"><p>
|
|---|
| 2684 | Unjoin the domain Each workstation requires a unique name and must be independently
|
|---|
| 2685 | joined into domain membership.
|
|---|
| 2686 | </p></blockquote></div><div class="blockquote"><blockquote class="blockquote"><p>
|
|---|
| 2687 | Defragment the hard disk While not obvious to the uninitiated, defragmentation results
|
|---|
| 2688 | in better performance and often significantly reduces the size of the compressed disk image. That
|
|---|
| 2689 | also means it will take less time to deploy the image onto 500 workstations.
|
|---|
| 2690 | </p></blockquote></div></div></div><div class="sect1" title="Key Points Learned"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id352420"></a>Key Points Learned</h2></div></div></div><p>
|
|---|
| 2691 | This chapter introduced many new concepts. Is it a sad fact that the example presented deliberately
|
|---|
| 2692 | avoided any consideration of security. Security does not just happen; you must design it into your total
|
|---|
| 2693 | network. Security begins with a systems design and implementation that anticipates hostile behavior from
|
|---|
| 2694 | users both inside and outside the organization. Hostile and malicious intruders do not respect barriers;
|
|---|
| 2695 | they accept them as challenges. For that reason, if not simply from a desire to establish safe networking
|
|---|
| 2696 | practices, you must not deploy the design presented in this book in an environment where there is risk
|
|---|
| 2697 | of compromise.
|
|---|
| 2698 | </p><p>
|
|---|
| 2699 | <a class="indexterm" name="id352437"></a>
|
|---|
| 2700 | <a class="indexterm" name="id352445"></a>
|
|---|
| 2701 | As a minimum, the LDAP server must be protected by way of Access Control Lists (ACLs), and it must be
|
|---|
| 2702 | configured to use secure protocols for all communications over the network. Of course, secure networking
|
|---|
| 2703 | does not result just from systems design and implementation but involves constant user education
|
|---|
| 2704 | training and, above all, disciplined attention to detail and constant searching for signs of unfriendly
|
|---|
| 2705 | or alien activities. Security is itself a topic for a whole book. Please do consult appropriate sources.
|
|---|
| 2706 | Jerry Carter's book <a class="ulink" href="http://www.booksense.com/product/info.jsp&isbn=1565924916" target="_top">
|
|---|
| 2707 | <span class="emphasis"><em>LDAP System Administration</em></span></a> is a good place to start reading about OpenLDAP
|
|---|
| 2708 | as well as security considerations.
|
|---|
| 2709 | </p><p>
|
|---|
| 2710 | The substance of this chapter that has been deserving of particular attention includes:
|
|---|
| 2711 | </p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
|
|---|
| 2712 | Implementation of an OpenLDAP-based passwd backend, necessary to support distributed
|
|---|
| 2713 | domain control.
|
|---|
| 2714 | </p></li><li class="listitem"><p>
|
|---|
| 2715 | Implementation of Samba primary and secondary domain controllers with a common LDAP backend
|
|---|
| 2716 | for user and group accounts that is shared with the UNIX system through the PADL nss_ldap and
|
|---|
| 2717 | pam_ldap tool-sets.
|
|---|
| 2718 | </p></li><li class="listitem"><p>
|
|---|
| 2719 | Use of the Idealx smbldap-tools scripts for UNIX (POSIX) account management as well as
|
|---|
| 2720 | to manage Samba Windows user and group accounts.
|
|---|
| 2721 | </p></li><li class="listitem"><p>
|
|---|
| 2722 | The basics of implementation of Group Policy controls for Windows network clients.
|
|---|
| 2723 | </p></li><li class="listitem"><p>
|
|---|
| 2724 | Control over roaming profiles, with particular focus on folder redirection to network drives.
|
|---|
| 2725 | </p></li><li class="listitem"><p>
|
|---|
| 2726 | Use of the CUPS printing system together with Samba-based printer driver auto-download.
|
|---|
| 2727 | </p></li></ul></div></div><div class="sect1" title="Questions and Answers"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id352508"></a>Questions and Answers</h2></div></div></div><p>
|
|---|
| 2728 | Well, here we are at the end of this chapter and we have only ten questions to help you to
|
|---|
| 2729 | remember so much. There are bound to be some sticky issues here.
|
|---|
| 2730 | </p><div class="qandaset" title="Frequently Asked Questions"><a name="id352518"></a><dl><dt> <a href="happy.html#id352525">
|
|---|
| 2731 | Why did you not cover secure practices? Isn't it rather irresponsible to instruct
|
|---|
| 2732 | network administrators to implement insecure solutions?
|
|---|
| 2733 | </a></dt><dt> <a href="happy.html#id352558">
|
|---|
| 2734 | You have focused much on SUSE Linux and little on the market leader, Red Hat. Do
|
|---|
| 2735 | you have a problem with Red Hat Linux? Doesn't that make your guidance irrelevant
|
|---|
| 2736 | to the Linux I might be using?
|
|---|
| 2737 | </a></dt><dt> <a href="happy.html#id352600">
|
|---|
| 2738 | You did not use SWAT to configure Samba. Is there something wrong with it?
|
|---|
| 2739 | </a></dt><dt> <a href="happy.html#id352635">
|
|---|
| 2740 | You have exposed a well-used password not24get. Is that
|
|---|
| 2741 | not irresponsible?
|
|---|
| 2742 | </a></dt><dt> <a href="happy.html#id352657">
|
|---|
| 2743 | The Idealx smbldap-tools create many domain group accounts that are not used. Is that
|
|---|
| 2744 | a good thing?
|
|---|
| 2745 | </a></dt><dt> <a href="happy.html#id352681">
|
|---|
| 2746 | Can I use LDAP just for Samba accounts and not for UNIX system accounts?
|
|---|
| 2747 | </a></dt><dt> <a href="happy.html#id352701">
|
|---|
| 2748 | Why are the Windows domain RID portions not the same as the UNIX UID?
|
|---|
| 2749 | </a></dt><dt> <a href="happy.html#id352732">
|
|---|
| 2750 | Printer configuration examples all show printing to the HP port 9100. Does this
|
|---|
| 2751 | mean that I must have HP printers for these solutions to work?
|
|---|
| 2752 | </a></dt><dt> <a href="happy.html#id352757">
|
|---|
| 2753 | Is folder redirection dangerous? I've heard that you can lose your data that way.
|
|---|
| 2754 | </a></dt><dt> <a href="happy.html#id352779">
|
|---|
| 2755 | Is it really necessary to set a local Group Policy to exclude the redirected
|
|---|
| 2756 | folders from the roaming profile?
|
|---|
| 2757 | </a></dt></dl><table border="0" width="100%" summary="Q and A Set"><col align="left" width="1%"><col><tbody><tr class="question"><td align="left" valign="top"><a name="id352525"></a><a name="id352527"></a></td><td align="left" valign="top"><p>
|
|---|
| 2758 | Why did you not cover secure practices? Isn't it rather irresponsible to instruct
|
|---|
| 2759 | network administrators to implement insecure solutions?
|
|---|
| 2760 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2761 | Let's get this right. This is a book about Samba, not about OpenLDAP and secure
|
|---|
| 2762 | communication protocols for subjects other than Samba. Earlier on, you note,
|
|---|
| 2763 | that the dynamic DNS and DHCP solutions also used no protective secure communications
|
|---|
| 2764 | protocols. The reason for this is simple: There are so many ways of implementing
|
|---|
| 2765 | secure protocols that this book would have been even larger and more complex.
|
|---|
| 2766 | </p><p>
|
|---|
| 2767 | The solutions presented here all work (at least they did for me). Network administrators
|
|---|
| 2768 | have the interest and the need to be better trained and instructed in secure networking
|
|---|
| 2769 | practices and ought to implement safe systems. I made the decision, right or wrong,
|
|---|
| 2770 | to keep this material as simple as possible. The intent of this book is to demonstrate
|
|---|
| 2771 | a working solution and not to discuss too many peripheral issues.
|
|---|
| 2772 | </p><p>
|
|---|
| 2773 | This book makes little mention of backup techniques. Does that mean that I am recommending
|
|---|
| 2774 | that you should implement a network without provision for data recovery and for disaster
|
|---|
| 2775 | management? Back to our focus: The deployment of Samba has been clearly demonstrated.
|
|---|
| 2776 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id352558"></a><a name="id352561"></a></td><td align="left" valign="top"><p>
|
|---|
| 2777 | You have focused much on SUSE Linux and little on the market leader, Red Hat. Do
|
|---|
| 2778 | you have a problem with Red Hat Linux? Doesn't that make your guidance irrelevant
|
|---|
| 2779 | to the Linux I might be using?
|
|---|
| 2780 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2781 | Both Red Hat Linux and SUSE Linux comply with the Linux Standards Base specifications
|
|---|
| 2782 | for a standard Linux distribution. The differences are marginal. Surely you know
|
|---|
| 2783 | your Linux platform, and you do have access to administration manuals for it. This
|
|---|
| 2784 | book is not a Linux tutorial; it is a Samba tutorial. Let's keep the focus on
|
|---|
| 2785 | the Samba part of the book; all the other bits are peripheral (but important) to
|
|---|
| 2786 | creation of a total network solution.
|
|---|
| 2787 | </p><p>
|
|---|
| 2788 | What I find interesting is the attention reviewers give to Linux installation and to
|
|---|
| 2789 | the look and feel of the desktop, but does that make for a great server? In this book,
|
|---|
| 2790 | I have paid particular attention to the details of creating a whole solution framework.
|
|---|
| 2791 | I have not tightened every nut and bolt, but I have touched on all the issues you
|
|---|
| 2792 | need to be familiar with. Over the years many people have approached me wanting to
|
|---|
| 2793 | know the details of exactly how to implement a DHCP and dynamic DNS server with Samba
|
|---|
| 2794 | and WINS. In this chapter, it is plain to see what needs to be configured to provide
|
|---|
| 2795 | transparent interoperability. Likewise for CUPS and Samba interoperation. These are
|
|---|
| 2796 | key stumbling areas for many people.
|
|---|
| 2797 | </p><p>
|
|---|
| 2798 | At every critical junction, I have provided comparative guidance for both SUSE and
|
|---|
| 2799 | Red Hat Linux. Both manufacturers have done a great job in furthering the cause
|
|---|
| 2800 | of open source software. I favor neither and respect both. I like particular
|
|---|
| 2801 | features of both products (companies also). No bias in presentation is intended.
|
|---|
| 2802 | Oh, before I forget, I particularly like Debian Linux; that is my favorite playground.
|
|---|
| 2803 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id352600"></a><a name="id352603"></a></td><td align="left" valign="top"><p>
|
|---|
| 2804 | You did not use SWAT to configure Samba. Is there something wrong with it?
|
|---|
| 2805 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2806 | That is a good question. As it is, the <code class="filename">smb.conf</code> file configurations are presented
|
|---|
| 2807 | in as direct a format as possible. Adding SWAT into the equation would have complicated
|
|---|
| 2808 | matters. I sought simplicity of implementation. The fact is that I did use SWAT to
|
|---|
| 2809 | create the files in the first place.
|
|---|
| 2810 | </p><p>
|
|---|
| 2811 | There are people in the Linux and open source community who feel that SWAT is dangerous
|
|---|
| 2812 | and insecure. Many will not touch it with a barge-pole. By not introducing SWAT, I
|
|---|
| 2813 | hope to have brought their interests on board. SWAT is well covered is <span class="emphasis"><em>TOSHARG2</em></span>.
|
|---|
| 2814 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id352635"></a><a name="id352637"></a></td><td align="left" valign="top"><p>
|
|---|
| 2815 | You have exposed a well-used password <span class="emphasis"><em>not24get</em></span>. Is that
|
|---|
| 2816 | not irresponsible?
|
|---|
| 2817 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2818 | Well, I had to use a password of some sort. At least this one has been consistently
|
|---|
| 2819 | used throughout. I guess you can figure out that in a real deployment it would make
|
|---|
| 2820 | sense to use a more secure and original password.
|
|---|
| 2821 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id352657"></a><a name="id352660"></a></td><td align="left" valign="top"><p>
|
|---|
| 2822 | The Idealx smbldap-tools create many domain group accounts that are not used. Is that
|
|---|
| 2823 | a good thing?
|
|---|
| 2824 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2825 | I took this up with Idealx and found them most willing to change that in the next version.
|
|---|
| 2826 | Let's give Idealx some credit for the contribution they have made. I appreciate their work
|
|---|
| 2827 | and, besides, it does no harm to create accounts that are not now used at some time
|
|---|
| 2828 | Samba may well use them.
|
|---|
| 2829 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id352681"></a><a name="id352683"></a></td><td align="left" valign="top"><p>
|
|---|
| 2830 | Can I use LDAP just for Samba accounts and not for UNIX system accounts?
|
|---|
| 2831 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2832 | Yes, you can do that for user accounts only. Samba requires there to be a POSIX (UNIX)
|
|---|
| 2833 | group account for every Windows domain group account. But if you put your users into
|
|---|
| 2834 | the system password account, how do you plan to keep all domain controller system
|
|---|
| 2835 | password files in sync? I think that having everything in LDAP makes a lot of sense
|
|---|
| 2836 | for the UNIX administrator who is still learning the craft and is migrating from MS Windows.
|
|---|
| 2837 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id352701"></a><a name="id352703"></a></td><td align="left" valign="top"><p>
|
|---|
| 2838 | Why are the Windows domain RID portions not the same as the UNIX UID?
|
|---|
| 2839 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2840 | Samba uses a well-known public algorithm for assigning RIDs from UIDs and GIDs.
|
|---|
| 2841 | This algorithm ought to ensure that there will be no clashes with well-known RIDs.
|
|---|
| 2842 | Well-known RIDs have special significance to MS Windows clients. The automatic
|
|---|
| 2843 | assignment used the calculation: RID = UID x 2 + 1000. Of course, Samba does
|
|---|
| 2844 | permit you to override that to some extent. See the <code class="filename">smb.conf</code> man page entry
|
|---|
| 2845 | for <em class="parameter"><code>algorithmic rid base</code></em>.
|
|---|
| 2846 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id352732"></a><a name="id352735"></a></td><td align="left" valign="top"><p>
|
|---|
| 2847 | Printer configuration examples all show printing to the HP port 9100. Does this
|
|---|
| 2848 | mean that I must have HP printers for these solutions to work?
|
|---|
| 2849 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2850 | No. You can use any type of printer and must use the interfacing protocol supported
|
|---|
| 2851 | by the printer. Many networks use LPR/LPD print servers to which are attached
|
|---|
| 2852 | PCL printers, inkjet printers, plotters, and so on. At home I use a USB-attached
|
|---|
| 2853 | inkjet printer. Use the appropriate device URI (Universal Resource Interface)
|
|---|
| 2854 | argument to the <code class="constant">lpadmin -v</code> option that is right for your
|
|---|
| 2855 | printer.
|
|---|
| 2856 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id352757"></a><a name="id352759"></a></td><td align="left" valign="top"><p>
|
|---|
| 2857 | Is folder redirection dangerous? I've heard that you can lose your data that way.
|
|---|
| 2858 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2859 | The only loss of data I know of that involved folder redirection was caused by
|
|---|
| 2860 | manual misuse of the redirection tool. The administrator redirected a folder to
|
|---|
| 2861 | a network drive and said he wanted to migrate (move) the data over. Then he
|
|---|
| 2862 | changed his mind, so he moved the folder back to the roaming profile. This time,
|
|---|
| 2863 | he declined to move the data because he thought it was still in the local profile
|
|---|
| 2864 | folder. That was not the case, so by declining to move the data back, he wiped out
|
|---|
| 2865 | the data. You cannot hold the tool responsible for that. Caveat emptor still applies.
|
|---|
| 2866 | </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id352779"></a><a name="id352781"></a></td><td align="left" valign="top"><p>
|
|---|
| 2867 | Is it really necessary to set a local Group Policy to exclude the redirected
|
|---|
| 2868 | folders from the roaming profile?
|
|---|
| 2869 | </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>
|
|---|
| 2870 | Yes. If you do not do this, the data will still be copied from the network folder
|
|---|
| 2871 | (share) to the local cached copy of the profile.
|
|---|
| 2872 | </p></td></tr></tbody></table></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id351153" href="#id351153" class="para">11</a>] </sup>
|
|---|
| 2873 | There is an alternate method by which a default user profile can be added to the
|
|---|
| 2874 | <code class="constant">NETLOGON</code> share. This facility in the Windows System tool
|
|---|
| 2875 | permits profiles to be exported. The export target may be a particular user or
|
|---|
| 2876 | group profile share point or else the <code class="constant">NETLOGON</code> share.
|
|---|
| 2877 | In this case, the profile directory must be named <code class="constant">Default User</code>.
|
|---|
| 2878 | </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="Big500users.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ExNetworks.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="net2000users.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. The 500-User Office </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 6. A Distributed 2000-User Network</td></tr></table></div></body></html>
|
|---|