- Timestamp:
- May 20, 2009, 6:46:53 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.2.x/docs/htmldocs/Samba3-HOWTO/winbind.html
r149 r204 1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 24. Winbind: Use of Domain Accounts</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.1"><link rel="start" href="index.html" title="The Official Samba 3.2.x HOWTO and Reference Guide"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="prev" href="VFS.html" title="Chapter 23. Stackable VFS modules"><link rel="next" href="AdvancedNetworkManagement.html" title="Chapter 25. Advanced Network Management"></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 24. Winbind: Use of Domain Accounts</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="VFS.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="AdvancedNetworkManagement.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="winbind"></a>Chapter 24. Winbind: Use of Domain Accounts</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Tim</span> <span class="surname">Potter</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:tpot@linuxcare.com.au">tpot@linuxcare.com.au</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Andrew</span> <span class="surname">Tridgell</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:tridge@samba.org">tridge@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Naag</span> <span class="surname">Mummaneni</span></h3><span class="contrib">Notes for Solaris</span> <div class="affiliation"><div class="address"><p><code class="email"><<a class="email" href="mailto:getnag@rediffmail.com">getnag@rediffmail.com</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="surname">Trostel</span></h3><div class="affiliation"><span class="orgname">SNAP<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jtrostel@snapserver.com">jtrostel@snapserver.com</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="othername">R.</span> <span class="surname">Vernooij</span></h3><div class="affiliation"><span class="orgname">The Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jelmer@samba.org">jelmer@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jht@samba.org">jht@samba.org</a>></code></p></div></div></div></div><div><p class="pubdate">June 15, 2005</p></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="winbind.html#id2646 095">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="winbind.html#id2646438">Introduction</a></span></dt><dt><span class="sect1"><a href="winbind.html#id2646528">What Winbind Provides</a></span></dt><dd><dl><dt><span class="sect2"><a href="winbind.html#id2646681">Target Uses</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2646726">Handling of Foreign SIDs</a></span></dt></dl></dd><dt><span class="sect1"><a href="winbind.html#id2646852">How Winbind Works</a></span></dt><dd><dl><dt><span class="sect2"><a href="winbind.html#id2646902">Microsoft Remote Procedure Calls</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2646989">Microsoft Active Directory Services</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647036">Name Service Switch</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647268">Pluggable Authentication Modules</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647424">User and Group ID Allocation</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647499">Result Caching</a></span></dt></dl></dd><dt><span class="sect1"><a href="winbind.html#id2647556">Installation and Configuration</a></span></dt><dd><dl><dt><span class="sect2"><a href="winbind.html#id2647562">Introduction</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647677">Requirements</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647829">Testing Things Out</a></span></dt></dl></dd><dt><span class="sect1"><a href="winbind.html#id2650287">Conclusion</a></span></dt><dt><span class="sect1"><a href="winbind.html#id2650336">Common Errors</a></span></dt><dd><dl><dt><span class="sect2"><a href="winbind.html#id2650378">NSCD Problem Warning</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2650414">Winbind Is Not Resolving Users and Groups</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2646095"></a>Features and Benefits</h2></div></div></div><p>2 <a class="indexterm" name="id26461 03"></a>3 <a class="indexterm" name="id26461 10"></a>1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 24. Winbind: Use of Domain Accounts</title><link rel="stylesheet" href="../samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.1"><link rel="start" href="index.html" title="The Official Samba 3.2.x HOWTO and Reference Guide"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="prev" href="VFS.html" title="Chapter 23. Stackable VFS modules"><link rel="next" href="AdvancedNetworkManagement.html" title="Chapter 25. Advanced Network Management"></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 24. Winbind: Use of Domain Accounts</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="VFS.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="AdvancedNetworkManagement.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="winbind"></a>Chapter 24. Winbind: Use of Domain Accounts</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Tim</span> <span class="surname">Potter</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:tpot@linuxcare.com.au">tpot@linuxcare.com.au</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Andrew</span> <span class="surname">Tridgell</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:tridge@samba.org">tridge@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Naag</span> <span class="surname">Mummaneni</span></h3><span class="contrib">Notes for Solaris</span> <div class="affiliation"><div class="address"><p><code class="email"><<a class="email" href="mailto:getnag@rediffmail.com">getnag@rediffmail.com</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="surname">Trostel</span></h3><div class="affiliation"><span class="orgname">SNAP<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jtrostel@snapserver.com">jtrostel@snapserver.com</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="othername">R.</span> <span class="surname">Vernooij</span></h3><div class="affiliation"><span class="orgname">The Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jelmer@samba.org">jelmer@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a class="email" href="mailto:jht@samba.org">jht@samba.org</a>></code></p></div></div></div></div><div><p class="pubdate">June 15, 2005</p></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="winbind.html#id2646109">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="winbind.html#id2646452">Introduction</a></span></dt><dt><span class="sect1"><a href="winbind.html#id2646541">What Winbind Provides</a></span></dt><dd><dl><dt><span class="sect2"><a href="winbind.html#id2646694">Target Uses</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2646740">Handling of Foreign SIDs</a></span></dt></dl></dd><dt><span class="sect1"><a href="winbind.html#id2646865">How Winbind Works</a></span></dt><dd><dl><dt><span class="sect2"><a href="winbind.html#id2646916">Microsoft Remote Procedure Calls</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647002">Microsoft Active Directory Services</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647050">Name Service Switch</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647282">Pluggable Authentication Modules</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647437">User and Group ID Allocation</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647513">Result Caching</a></span></dt></dl></dd><dt><span class="sect1"><a href="winbind.html#id2647570">Installation and Configuration</a></span></dt><dd><dl><dt><span class="sect2"><a href="winbind.html#id2647576">Introduction</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647690">Requirements</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2647842">Testing Things Out</a></span></dt></dl></dd><dt><span class="sect1"><a href="winbind.html#id2650301">Conclusion</a></span></dt><dt><span class="sect1"><a href="winbind.html#id2650350">Common Errors</a></span></dt><dd><dl><dt><span class="sect2"><a href="winbind.html#id2650391">NSCD Problem Warning</a></span></dt><dt><span class="sect2"><a href="winbind.html#id2650428">Winbind Is Not Resolving Users and Groups</a></span></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2646109"></a>Features and Benefits</h2></div></div></div><p> 2 <a class="indexterm" name="id2646117"></a> 3 <a class="indexterm" name="id2646123"></a> 4 4 Integration of UNIX and Microsoft Windows NT through a unified logon has 5 5 been considered a “<span class="quote">holy grail</span>” in heterogeneous computing environments for 6 6 a long time. 7 7 </p><p> 8 <a class="indexterm" name="id2646126"></a>9 <a class="indexterm" name="id2646133"></a>10 8 <a class="indexterm" name="id2646140"></a> 11 9 <a class="indexterm" name="id2646147"></a> 10 <a class="indexterm" name="id2646154"></a> 11 <a class="indexterm" name="id2646161"></a> 12 12 There is one other facility without which UNIX and Microsoft Windows network 13 13 interoperability would suffer greatly. It is imperative that there be a … … 15 15 domain user and group ownerships with integrity. 16 16 </p><p> 17 <a class="indexterm" name="id2646162"></a> 18 <a class="indexterm" name="id2646171"></a> 19 <a class="indexterm" name="id2646178"></a> 17 <a class="indexterm" name="id2646176"></a> 20 18 <a class="indexterm" name="id2646185"></a> 19 <a class="indexterm" name="id2646192"></a> 20 <a class="indexterm" name="id2646198"></a> 21 21 <span class="emphasis"><em>winbind</em></span> is a component of the Samba suite of programs that 22 22 solves the unified logon problem. Winbind uses a UNIX implementation of Microsoft … … 28 28 Winbind provides three separate functions: 29 29 </p><div class="itemizedlist"><ul type="disc"><li><p> 30 <a class="indexterm" name="id26462 13"></a>31 <a class="indexterm" name="id26462 19"></a>30 <a class="indexterm" name="id2646226"></a> 31 <a class="indexterm" name="id2646233"></a> 32 32 Authentication of user credentials (via PAM). This makes it possible to 33 33 log onto a UNIX/Linux system using user and group accounts from a Windows 34 34 NT4 (including a Samba domain) or an Active Directory domain. 35 35 </p></li><li><p> 36 <a class="indexterm" name="id26462 34"></a>37 <a class="indexterm" name="id26462 41"></a>36 <a class="indexterm" name="id2646248"></a> 37 <a class="indexterm" name="id2646255"></a> 38 38 Identity resolution (via NSS). This is the default when winbind is not used. 39 39 </p></li><li><p> 40 <a class="indexterm" name="id2646253"></a> 41 <a class="indexterm" name="id2646260"></a> 42 <a class="indexterm" name="id2646266"></a> 40 <a class="indexterm" name="id2646267"></a> 43 41 <a class="indexterm" name="id2646273"></a> 44 42 <a class="indexterm" name="id2646280"></a> 45 43 <a class="indexterm" name="id2646286"></a> 46 44 <a class="indexterm" name="id2646293"></a> 45 <a class="indexterm" name="id2646300"></a> 46 <a class="indexterm" name="id2646307"></a> 47 47 Winbind maintains a database called winbind_idmap.tdb in which it stores 48 48 mappings between UNIX UIDs, GIDs, and NT SIDs. This mapping is used only … … 53 53 from the LDAP database. 54 54 </p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> 55 <a class="indexterm" name="id2646323"></a> 56 <a class="indexterm" name="id2646330"></a> 57 <a class="indexterm" name="id2646339"></a> 58 <a class="indexterm" name="id2646346"></a> 55 <a class="indexterm" name="id2646337"></a> 56 <a class="indexterm" name="id2646343"></a> 59 57 <a class="indexterm" name="id2646353"></a> 60 <a class="indexterm" name="id2646359"></a> 58 <a class="indexterm" name="id2646360"></a> 59 <a class="indexterm" name="id2646366"></a> 60 <a class="indexterm" name="id2646373"></a> 61 61 If <code class="literal">winbindd</code> is not running, smbd (which calls <code class="literal">winbindd</code>) will fall back to 62 62 using purely local information from <code class="filename">/etc/passwd</code> and <code class="filename">/etc/group</code> and no dynamic 63 63 mapping will be used. On an operating system that has been enabled with the NSS, 64 64 the resolution of user and group information will be accomplished via NSS. 65 </p></div><div class="figure"><a name="winbind_idmap"></a><p class="title"><b>Figure 24.1. Winbind Idmap</b></p><div class="figure-contents"><div class="mediaobject"><img src="images/idmap_winbind_no_loop.png" width="243" alt="Winbind Idmap"></div></div></div><br class="figure-break"></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id26464 38"></a>Introduction</h2></div></div></div><p>It is well known that UNIX and Microsoft Windows NT have65 </p></div><div class="figure"><a name="winbind_idmap"></a><p class="title"><b>Figure 24.1. Winbind Idmap</b></p><div class="figure-contents"><div class="mediaobject"><img src="images/idmap_winbind_no_loop.png" width="243" alt="Winbind Idmap"></div></div></div><br class="figure-break"></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2646452"></a>Introduction</h2></div></div></div><p>It is well known that UNIX and Microsoft Windows NT have 66 66 different models for representing user and group information and 67 67 use different technologies for implementing them. This fact has 68 68 made it difficult to integrate the two systems in a satisfactory 69 69 manner.</p><p> 70 <a class="indexterm" name="id26464 54"></a>71 <a class="indexterm" name="id26464 61"></a>70 <a class="indexterm" name="id2646468"></a> 71 <a class="indexterm" name="id2646475"></a> 72 72 One common solution in use today has been to create 73 73 identically named user accounts on both the UNIX and Windows systems … … 82 82 </p></li><li><p>Password changing for Windows NT users. 83 83 </p></li></ul></div><p> 84 <a class="indexterm" name="id26465 05"></a>85 <a class="indexterm" name="id26465 12"></a>84 <a class="indexterm" name="id2646518"></a> 85 <a class="indexterm" name="id2646525"></a> 86 86 Ideally, a prospective solution to the unified logon problem 87 87 would satisfy all the above components without duplication of … … 90 90 groups on either system. The Winbind system provides a simple 91 91 and elegant solution to all three components of the unified logon 92 problem.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2646528"></a>What Winbind Provides</h2></div></div></div><p> 93 <a class="indexterm" name="id2646536"></a> 94 <a class="indexterm" name="id2646543"></a> 92 problem.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2646541"></a>What Winbind Provides</h2></div></div></div><p> 95 93 <a class="indexterm" name="id2646549"></a> 96 94 <a class="indexterm" name="id2646556"></a> 95 <a class="indexterm" name="id2646563"></a> 96 <a class="indexterm" name="id2646570"></a> 97 97 Winbind unifies UNIX and Windows NT account management by 98 98 allowing a UNIX box to become a full member of an NT domain. Once … … 101 101 to be used in much the same manner that NIS+ is used within 102 102 UNIX-only environments.</p><p> 103 <a class="indexterm" name="id2646576"></a>104 <a class="indexterm" name="id2646582"></a>105 103 <a class="indexterm" name="id2646589"></a> 106 104 <a class="indexterm" name="id2646596"></a> 105 <a class="indexterm" name="id2646603"></a> 106 <a class="indexterm" name="id2646610"></a> 107 107 The end result is that whenever a 108 108 program on the UNIX machine asks the operating system to look up … … 113 113 redirection to the NT domain controller is completely 114 114 transparent.</p><p> 115 <a class="indexterm" name="id26466 13"></a>116 <a class="indexterm" name="id26466 20"></a>115 <a class="indexterm" name="id2646627"></a> 116 <a class="indexterm" name="id2646634"></a> 117 117 Users on the UNIX machine can then use NT user and group 118 118 names as they would “<span class="quote">native</span>” UNIX names. They can chown files 119 119 so they are owned by NT domain users or even login to the 120 120 UNIX machine and run a UNIX X-Window session as a domain user.</p><p> 121 <a class="indexterm" name="id26466 38"></a>121 <a class="indexterm" name="id2646652"></a> 122 122 The only obvious indication that Winbind is being used is 123 123 that user and group names take the form <code class="constant">DOMAIN\user</code> and … … 125 125 that redirection to a domain controller is wanted for a particular 126 126 lookup and which trusted domain is being referenced.</p><p> 127 <a class="indexterm" name="id26466 60"></a>128 <a class="indexterm" name="id26466 67"></a>127 <a class="indexterm" name="id2646674"></a> 128 <a class="indexterm" name="id2646681"></a> 129 129 Additionally, Winbind provides an authentication service that hooks into the PAM system 130 130 to provide authentication via an NT domain to any PAM-enabled 131 131 applications. This capability solves the problem of synchronizing 132 132 passwords between systems, since all passwords are stored in a single 133 location (on the domain controller).</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id26466 81"></a>Target Uses</h3></div></div></div><p>134 <a class="indexterm" name="id2646 688"></a>133 location (on the domain controller).</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2646694"></a>Target Uses</h3></div></div></div><p> 134 <a class="indexterm" name="id2646702"></a> 135 135 Winbind is targeted at organizations that have an 136 136 existing NT-based domain infrastructure into which they wish … … 140 140 simplifies the administrative overhead of deploying UNIX 141 141 workstations into an NT-based organization.</p><p> 142 <a class="indexterm" name="id26467 06"></a>143 <a class="indexterm" name="id26467 12"></a>142 <a class="indexterm" name="id2646719"></a> 143 <a class="indexterm" name="id2646726"></a> 144 144 Another interesting way in which we expect Winbind to 145 145 be used is as a central part of UNIX-based appliances. Appliances 146 146 that provide file and print services to Microsoft-based networks 147 147 will be able to use Winbind to provide seamless integration of 148 the appliance into the domain.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id26467 26"></a>Handling of Foreign SIDs</h3></div></div></div><p>149 <a class="indexterm" name="id26467 34"></a>148 the appliance into the domain.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2646740"></a>Handling of Foreign SIDs</h3></div></div></div><p> 149 <a class="indexterm" name="id2646748"></a> 150 150 The term <span class="emphasis"><em>foreign SID</em></span> is often met with the reaction that it 151 151 is not relevant to a particular environment. The following documents an interchange … … 153 153 often expressed regarding the use of winbind. 154 154 </p><p> 155 <a class="indexterm" name="id26467 52"></a>155 <a class="indexterm" name="id2646766"></a> 156 156 Fact: Winbind is needed to handle users who use workstations that are NOT part 157 157 of the local domain. 158 158 </p><p> 159 <a class="indexterm" name="id26467 64"></a>159 <a class="indexterm" name="id2646778"></a> 160 160 Response: “<span class="quote">Why? I've used Samba with workstations that are not part of my domains 161 161 lots of times without using winbind. I thought winbind was for using Samba as a member server 162 162 in a domain controlled by another Samba/Windows PDC.</span>” 163 163 </p><p> 164 <a class="indexterm" name="id26467 81"></a>165 <a class="indexterm" name="id2646 788"></a>166 <a class="indexterm" name="id2646 794"></a>164 <a class="indexterm" name="id2646795"></a> 165 <a class="indexterm" name="id2646802"></a> 166 <a class="indexterm" name="id2646808"></a> 167 167 If the Samba server will be accessed from a domain other than the local Samba domain, or 168 168 if there will be access from machines that are not local domain members, winbind will … … 170 170 of the foreign user separate from users that are members of the Samba domain. 171 171 </p><p> 172 <a class="indexterm" name="id2646811"></a>173 <a class="indexterm" name="id2646817"></a>174 172 <a class="indexterm" name="id2646824"></a> 175 173 <a class="indexterm" name="id2646831"></a> 174 <a class="indexterm" name="id2646838"></a> 175 <a class="indexterm" name="id2646845"></a> 176 176 This means that winbind is eminently useful in cases where a single 177 177 Samba PDC on a local network is combined with both domain member and domain non-member workstations. … … 182 182 foreign (non-member of the domain) account will be treated as MACHINE\george because 183 183 each has a different SID. 184 </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2646852"></a>How Winbind Works</h2></div></div></div><p> 185 <a class="indexterm" name="id2646859"></a> 186 <a class="indexterm" name="id2646866"></a> 184 </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2646865"></a>How Winbind Works</h2></div></div></div><p> 187 185 <a class="indexterm" name="id2646873"></a> 188 186 <a class="indexterm" name="id2646880"></a> 187 <a class="indexterm" name="id2646887"></a> 188 <a class="indexterm" name="id2646893"></a> 189 189 The Winbind system is designed around a client/server 190 190 architecture. A long-running <code class="literal">winbindd</code> daemon … … 192 192 to arrive. These requests are generated by the NSS and PAM 193 193 clients and are processed sequentially.</p><p>The technologies used to implement Winbind are described 194 in detail below.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2646902"></a>Microsoft Remote Procedure Calls</h3></div></div></div><p> 195 <a class="indexterm" name="id2646910"></a> 196 <a class="indexterm" name="id2646920"></a> 197 <a class="indexterm" name="id2646926"></a> 194 in detail below.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2646916"></a>Microsoft Remote Procedure Calls</h3></div></div></div><p> 195 <a class="indexterm" name="id2646924"></a> 198 196 <a class="indexterm" name="id2646933"></a> 199 197 <a class="indexterm" name="id2646940"></a> 198 <a class="indexterm" name="id2646947"></a> 199 <a class="indexterm" name="id2646954"></a> 200 200 Over the last few years, efforts have been underway by various Samba Team members to implement various aspects of 201 201 the Microsoft Remote Procedure Call (MSRPC) system. This system is used for most network-related operations … … 204 204 Samba, it has also yielded a body of code that can be used for other purposes. 205 205 </p><p> 206 <a class="indexterm" name="id2646959"></a>207 <a class="indexterm" name="id2646966"></a>208 206 <a class="indexterm" name="id2646973"></a> 207 <a class="indexterm" name="id2646980"></a> 208 <a class="indexterm" name="id2646987"></a> 209 209 Winbind uses various MSRPC calls to enumerate domain users and groups and to obtain detailed information about 210 210 individual users or groups. Other MSRPC calls can be used to authenticate NT domain users and to change user 211 211 passwords. By directly querying a Windows PDC for user and group information, Winbind maps the NT account 212 212 information onto UNIX user and group names. 213 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2646989"></a>Microsoft Active Directory Services</h3></div></div></div><p> 214 <a class="indexterm" name="id2646997"></a> 215 <a class="indexterm" name="id2647004"></a> 216 <a class="indexterm" name="id2647010"></a> 213 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647002"></a>Microsoft Active Directory Services</h3></div></div></div><p> 214 <a class="indexterm" name="id2647011"></a> 217 215 <a class="indexterm" name="id2647017"></a> 216 <a class="indexterm" name="id2647024"></a> 217 <a class="indexterm" name="id2647031"></a> 218 218 Since late 2001, Samba has gained the ability to interact with Microsoft Windows 2000 using its “<span class="quote">native 219 219 mode</span>” protocols rather than the NT4 RPC services. Using LDAP and Kerberos, a domain member running 220 220 Winbind can enumerate users and groups in exactly the same way as a Windows 200x client would, and in so doing 221 221 provide a much more efficient and effective Winbind implementation. 222 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647036"></a>Name Service Switch</h3></div></div></div><p> 223 <a class="indexterm" name="id2647044"></a> 224 <a class="indexterm" name="id2647051"></a> 222 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647050"></a>Name Service Switch</h3></div></div></div><p> 225 223 <a class="indexterm" name="id2647058"></a> 226 224 <a class="indexterm" name="id2647064"></a> 225 <a class="indexterm" name="id2647072"></a> 226 <a class="indexterm" name="id2647078"></a> 227 227 The NSS is a feature that is present in many UNIX operating systems. It allows system 228 228 information such as hostnames, mail aliases, and user information … … 233 233 and then consult an NIS database for user information or a DNS server 234 234 for hostname information.</p><p> 235 <a class="indexterm" name="id2647083"></a> 236 <a class="indexterm" name="id2647090"></a> 237 <a class="indexterm" name="id2647096"></a> 235 <a class="indexterm" name="id2647097"></a> 238 236 <a class="indexterm" name="id2647103"></a> 239 237 <a class="indexterm" name="id2647110"></a> 238 <a class="indexterm" name="id2647117"></a> 239 <a class="indexterm" name="id2647124"></a> 240 240 The NSS application programming interface allows Winbind to present itself as a source of system 241 241 information when resolving UNIX usernames and groups. Winbind uses this interface and information obtained … … 244 244 groups in an NT domain plus any trusted domain as though they were local users and groups. 245 245 </p><p> 246 <a class="indexterm" name="id2647129"></a>247 <a class="indexterm" name="id2647136"></a>248 246 <a class="indexterm" name="id2647143"></a> 247 <a class="indexterm" name="id2647149"></a> 248 <a class="indexterm" name="id2647156"></a> 249 249 The primary control file for NSS is <code class="filename">/etc/nsswitch.conf</code>. When a UNIX application 250 250 makes a request to do a lookup, the C library looks in <code class="filename">/etc/nsswitch.conf</code> for a line that … … 255 255 passwd: files example 256 256 </pre><p> 257 <a class="indexterm" name="id2647178"></a>258 <a class="indexterm" name="id2647185"></a>259 257 <a class="indexterm" name="id2647192"></a> 258 <a class="indexterm" name="id2647199"></a> 259 <a class="indexterm" name="id2647206"></a> 260 260 then the C library will first load a module called <code class="filename">/lib/libnss_files.so</code> followed 261 261 by the module <code class="filename">/lib/libnss_example.so</code>. The C library will dynamically load each of these … … 263 263 is resolved, the C library returns the result to the application. 264 264 </p><p> 265 <a class="indexterm" name="id26472 20"></a>266 <a class="indexterm" name="id26472 26"></a>267 <a class="indexterm" name="id26472 33"></a>265 <a class="indexterm" name="id2647234"></a> 266 <a class="indexterm" name="id2647240"></a> 267 <a class="indexterm" name="id2647247"></a> 268 268 This NSS interface provides an easy way for Winbind to hook into the operating system. All that needs 269 269 to be done is to put <code class="filename">libnss_winbind.so</code> in <code class="filename">/lib/</code> then add 270 270 “<span class="quote">winbind</span>” into <code class="filename">/etc/nsswitch.conf</code> at the appropriate place. The C library 271 271 will then call Winbind to resolve user and group names. 272 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647268"></a>Pluggable Authentication Modules</h3></div></div></div><p> 273 <a class="indexterm" name="id2647277"></a> 274 <a class="indexterm" name="id2647283"></a> 272 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647282"></a>Pluggable Authentication Modules</h3></div></div></div><p> 275 273 <a class="indexterm" name="id2647290"></a> 276 274 <a class="indexterm" name="id2647297"></a> 275 <a class="indexterm" name="id2647304"></a> 276 <a class="indexterm" name="id2647311"></a> 277 277 PAMs provide a system for abstracting authentication and authorization technologies. With a PAM 278 278 module, it is possible to specify different authentication methods for different system applications without … … 281 281 local password file but only allow users resolved from an NIS database to log in over the network. 282 282 </p><p> 283 <a class="indexterm" name="id2647316"></a> 284 <a class="indexterm" name="id2647323"></a> 285 <a class="indexterm" name="id2647329"></a> 283 <a class="indexterm" name="id2647330"></a> 286 284 <a class="indexterm" name="id2647336"></a> 287 285 <a class="indexterm" name="id2647343"></a> 286 <a class="indexterm" name="id2647350"></a> 287 <a class="indexterm" name="id2647357"></a> 288 288 Winbind uses the authentication management and password management PAM interface to integrate Windows 289 289 NT users into a UNIX system. This allows Windows NT users to log in to a UNIX machine and be authenticated … … 291 291 on the PDC. 292 292 </p><p> 293 <a class="indexterm" name="id2647359"></a> 294 <a class="indexterm" name="id2647366"></a> 295 <a class="indexterm" name="id2647372"></a> 293 <a class="indexterm" name="id2647373"></a> 296 294 <a class="indexterm" name="id2647379"></a> 295 <a class="indexterm" name="id2647386"></a> 296 <a class="indexterm" name="id2647393"></a> 297 297 PAM is configured by providing control files in the directory <code class="filename">/etc/pam.d/</code> for 298 298 each of the services that require authentication. When an authentication request is made by an application, … … 302 302 and the PAM control files for relevant services are updated to allow authentication via Winbind. See the PAM 303 303 documentation in <a class="link" href="pam.html" title="Chapter 28. PAM-Based Distributed Authentication">PAM-Based Distributed Authentication</a>, for more information. 304 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647424"></a>User and Group ID Allocation</h3></div></div></div><p> 305 <a class="indexterm" name="id2647432"></a> 306 <a class="indexterm" name="id2647438"></a> 304 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647437"></a>User and Group ID Allocation</h3></div></div></div><p> 307 305 <a class="indexterm" name="id2647445"></a> 306 <a class="indexterm" name="id2647452"></a> 307 <a class="indexterm" name="id2647458"></a> 308 308 When a user or group is created under Windows NT/200x, it is allocated a numerical relative identifier 309 309 (RID). This is slightly different from UNIX, which has a range of numbers that are used to identify users and … … 314 314 will have mapped all Windows NT users and groups to UNIX user IDs and group IDs. 315 315 </p><p> 316 <a class="indexterm" name="id2647467"></a>317 <a class="indexterm" name="id2647474"></a>318 316 <a class="indexterm" name="id2647481"></a> 319 317 <a class="indexterm" name="id2647488"></a> 318 <a class="indexterm" name="id2647494"></a> 319 <a class="indexterm" name="id2647501"></a> 320 320 The results of this mapping are stored persistently in an ID mapping database held in a tdb database. 321 321 This ensures that RIDs are mapped to UNIX IDs in a consistent way. 322 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647499"></a>Result Caching</h3></div></div></div><p> 323 <a class="indexterm" name="id2647507"></a> 324 <a class="indexterm" name="id2647514"></a> 322 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647513"></a>Result Caching</h3></div></div></div><p> 325 323 <a class="indexterm" name="id2647521"></a> 326 324 <a class="indexterm" name="id2647527"></a> 327 325 <a class="indexterm" name="id2647534"></a> 326 <a class="indexterm" name="id2647541"></a> 327 <a class="indexterm" name="id2647548"></a> 328 328 An active directory system can generate a lot of user and group name lookups. To reduce the network 329 329 cost of these lookups, Winbind uses a caching scheme based on the SAM sequence number supplied by NT domain … … 333 333 compared against the sequence number of the cached entry. If the sequence numbers do not match, then the 334 334 cached information is discarded and up-to-date information is requested directly from the PDC. 335 </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id26475 56"></a>Installation and Configuration</h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647562"></a>Introduction</h3></div></div></div><p>336 <a class="indexterm" name="id26475 70"></a>337 <a class="indexterm" name="id26475 77"></a>338 <a class="indexterm" name="id26475 83"></a>335 </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2647570"></a>Installation and Configuration</h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647576"></a>Introduction</h3></div></div></div><p> 336 <a class="indexterm" name="id2647584"></a> 337 <a class="indexterm" name="id2647591"></a> 338 <a class="indexterm" name="id2647597"></a> 339 339 This section describes the procedures used to get Winbind up and running. Winbind is capable of providing 340 340 access and authentication control for Windows Domain users through an NT or Windows 200x PDC for regular … … 343 343 <span class="emphasis"><em>Why should I do this?</em></span> 344 344 </p><p> 345 <a class="indexterm" name="id2647610"></a> 346 <a class="indexterm" name="id2647616"></a> 347 <a class="indexterm" name="id2647624"></a> 345 <a class="indexterm" name="id2647623"></a> 348 346 <a class="indexterm" name="id2647630"></a> 347 <a class="indexterm" name="id2647637"></a> 348 <a class="indexterm" name="id2647644"></a> 349 349 This allows the Samba administrator to rely on the authentication mechanisms on the Windows NT/200x PDC 350 350 for the authentication of domain members. Windows NT/200x users no longer need to have separate accounts on … … 353 353 <span class="emphasis"><em>Who should be reading this document?</em></span> 354 354 </p><p> 355 <a class="indexterm" name="id26476 55"></a>356 <a class="indexterm" name="id26476 61"></a>355 <a class="indexterm" name="id2647669"></a> 356 <a class="indexterm" name="id2647675"></a> 357 357 This document is designed for system administrators. If you are implementing Samba on a file server and wish 358 358 to (fairly easily) integrate existing Windows NT/200x users from your PDC onto the Samba server, this document 359 359 is for you. 360 </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647677"></a>Requirements</h3></div></div></div><p> 361 <a class="indexterm" name="id2647684"></a> 362 <a class="indexterm" name="id2647691"></a> 360 </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647690"></a>Requirements</h3></div></div></div><p> 363 361 <a class="indexterm" name="id2647698"></a> 362 <a class="indexterm" name="id2647705"></a> 363 <a class="indexterm" name="id2647712"></a> 364 364 If you have a Samba configuration file that you are currently using, <span class="emphasis"><em>BACK IT UP!</em></span> 365 365 If your system already uses PAM, <span class="emphasis"><em>back up the <code class="filename">/etc/pam.d</code> directory 366 366 contents!</em></span> If you haven't already made a boot disk, <span class="emphasis"><em>MAKE ONE NOW!</em></span> 367 367 </p><p> 368 <a class="indexterm" name="id2647728"></a>369 <a class="indexterm" name="id2647734"></a>370 368 <a class="indexterm" name="id2647741"></a> 369 <a class="indexterm" name="id2647748"></a> 370 <a class="indexterm" name="id2647755"></a> 371 371 Messing with the PAM configuration files can make it nearly impossible to log in to your machine. That's 372 372 why you want to be able to boot back into your machine in single-user mode and restore your … … 374 374 way things are going. 375 375 </p><p> 376 <a class="indexterm" name="id26477 62"></a>377 <a class="indexterm" name="id26477 69"></a>376 <a class="indexterm" name="id2647776"></a> 377 <a class="indexterm" name="id2647783"></a> 378 378 The latest version of Samba-3 includes a functioning winbindd daemon. Please refer to the <a class="ulink" href="http://samba.org/" target="_top">main Samba Web page</a>, or better yet, your closest Samba mirror site for 379 379 instructions on downloading the source code. 380 380 </p><p> 381 <a class="indexterm" name="id2647788"></a>382 <a class="indexterm" name="id2647795"></a>383 381 <a class="indexterm" name="id2647802"></a> 384 382 <a class="indexterm" name="id2647809"></a> 383 <a class="indexterm" name="id2647816"></a> 384 <a class="indexterm" name="id2647822"></a> 385 385 To allow domain users the ability to access Samba shares and files, as well as potentially other services 386 386 provided by your Samba machine, PAM must be set up properly on your 387 387 machine. In order to compile the Winbind modules, you should have at least the PAM development libraries installed 388 388 on your system. Please refer to the PAM Web site <a class="ulink" href="http://www.kernel.org/pub/linux/libs/pam/" target="_top">http://www.kernel.org/pub/linux/libs/pam/</a>. 389 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647829"></a>Testing Things Out</h3></div></div></div><p> 390 <a class="indexterm" name="id2647836"></a> 391 <a class="indexterm" name="id2647843"></a> 389 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2647842"></a>Testing Things Out</h3></div></div></div><p> 392 390 <a class="indexterm" name="id2647850"></a> 393 391 <a class="indexterm" name="id2647857"></a> 394 392 <a class="indexterm" name="id2647864"></a> 393 <a class="indexterm" name="id2647871"></a> 394 <a class="indexterm" name="id2647877"></a> 395 395 Before starting, it is probably best to kill off all the Samba-related daemons running on your server. 396 396 Kill off all <span class="application">smbd</span>, <span class="application">nmbd</span>, and <span class="application">winbindd</span> processes that may be running. To use PAM, … … 400 400 better in Samba if the pam-devel package is also installed. This package includes the header files 401 401 needed to compile PAM-aware applications. 402 </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2647916"></a>Configure <code class="filename">nsswitch.conf</code> and the Winbind Libraries on Linux and Solaris</h4></div></div></div><p> 403 <a class="indexterm" name="id2647930"></a> 404 <a class="indexterm" name="id2647937"></a> 405 <a class="indexterm" name="id2647943"></a> 402 </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2647929"></a>Configure <code class="filename">nsswitch.conf</code> and the Winbind Libraries on Linux and Solaris</h4></div></div></div><p> 403 <a class="indexterm" name="id2647944"></a> 406 404 <a class="indexterm" name="id2647950"></a> 405 <a class="indexterm" name="id2647957"></a> 406 <a class="indexterm" name="id2647964"></a> 407 407 PAM is a standard component of most current generation UNIX/Linux systems. Unfortunately, few systems install 408 408 the <code class="filename">pam-devel</code> libraries that are needed to build PAM-enabled Samba. Additionally, Samba-3 … … 414 414 The libraries needed to run the <span class="application">winbindd</span> daemon through nsswitch need to be copied to their proper locations: 415 415 </p><p> 416 <a class="indexterm" name="id264 7990"></a>416 <a class="indexterm" name="id2648004"></a> 417 417 </p><pre class="screen"> 418 418 <code class="prompt">root# </code><strong class="userinput"><code>cp ../samba/source/nsswitch/libnss_winbind.so /lib</code></strong> … … 423 423 <code class="prompt">root# </code> <strong class="userinput"><code>ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2</code></strong> 424 424 </p><p>And, in the case of Sun Solaris: 425 <a class="indexterm" name="id26480 37"></a>425 <a class="indexterm" name="id2648051"></a> 426 426 </p><pre class="screen"> 427 427 <code class="prompt">root# </code><strong class="userinput"><code>ln -s /usr/lib/libnss_winbind.so /usr/lib/libnss_winbind.so.1</code></strong> … … 430 430 </pre><p> 431 431 </p><p> 432 <a class="indexterm" name="id2648 087"></a>432 <a class="indexterm" name="id2648100"></a> 433 433 As root, edit <code class="filename">/etc/nsswitch.conf</code> to allow user and group entries to be visible from the 434 434 <span class="application">winbindd</span> daemon. My <code class="filename">/etc/nsswitch.conf</code> file looked like this after editing: … … 438 438 group: files winbind 439 439 </pre><p> 440 <a class="indexterm" name="id2648123"></a> 441 <a class="indexterm" name="id2648130"></a> 442 <a class="indexterm" name="id2648136"></a> 440 <a class="indexterm" name="id2648137"></a> 443 441 <a class="indexterm" name="id2648143"></a> 444 442 <a class="indexterm" name="id2648150"></a> 443 <a class="indexterm" name="id2648157"></a> 444 <a class="indexterm" name="id2648164"></a> 445 445 The libraries needed by the <code class="literal">winbindd</code> daemon will be automatically 446 446 entered into the <code class="literal">ldconfig</code> cache the next time … … 454 454 this library is indeed recognized by the dynamic link loader. 455 455 </p><p> 456 <a class="indexterm" name="id2648214"></a>457 <a class="indexterm" name="id2648221"></a>458 456 <a class="indexterm" name="id2648228"></a> 459 457 <a class="indexterm" name="id2648235"></a> 460 <a class="indexterm" name="id2648242"></a> 458 <a class="indexterm" name="id2648241"></a> 459 <a class="indexterm" name="id2648248"></a> 460 <a class="indexterm" name="id2648255"></a> 461 461 The Sun Solaris dynamic link loader management tool is called <code class="literal">crle</code>. The 462 462 use of this tool is necessary to instruct the dynamic link loader to search directories that … … 481 481 From this it is apparent that the <code class="filename">/usr/local/lib</code> directory is included 482 482 in the search dynamic link libraries in order to satisfy object module dependencies. 483 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2648314"></a>NSS Winbind on AIX</h4></div></div></div><p>(This section is only for those running AIX.)</p><p> 484 <a class="indexterm" name="id2648326"></a> 485 <a class="indexterm" name="id2648332"></a> 483 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2648327"></a>NSS Winbind on AIX</h4></div></div></div><p>(This section is only for those running AIX.)</p><p> 486 484 <a class="indexterm" name="id2648339"></a> 487 485 <a class="indexterm" name="id2648346"></a> 488 486 <a class="indexterm" name="id2648353"></a> 489 487 <a class="indexterm" name="id2648360"></a> 488 <a class="indexterm" name="id2648367"></a> 489 <a class="indexterm" name="id2648374"></a> 490 490 The Winbind AIX identification module gets built as <code class="filename">libnss_winbind.so</code> in the 491 491 nsswitch directory of the Samba source. This file can be copied to <code class="filename">/usr/lib/security</code>, … … 505 505 can be found in the <a class="ulink" href="http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixbman/baseadmn/iandaadmin.htm" target="_top">System 506 506 Management Guide: Operating System and Devices.</a> 507 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id26484 27"></a>Configure smb.conf</h4></div></div></div><p>508 <a class="indexterm" name="id26484 35"></a>509 <a class="indexterm" name="id26484 42"></a>510 <a class="indexterm" name="id26484 48"></a>507 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2648441"></a>Configure smb.conf</h4></div></div></div><p> 508 <a class="indexterm" name="id2648449"></a> 509 <a class="indexterm" name="id2648455"></a> 510 <a class="indexterm" name="id2648462"></a> 511 511 Several parameters are needed in the <code class="filename">smb.conf</code> file to control the behavior of <span class="application">winbindd</span>. These 512 512 are described in more detail in the <a class="citerefentry" href="winbindd.8.html"><span class="citerefentry"><span class="refentrytitle">winbindd</span>(8)</span></a> man page. My <code class="filename">smb.conf</code> file, as shown in <a class="link" href="winbind.html#winbindcfg" title="Example 24.1. smb.conf for Winbind Setup">the smb.conf for Winbind Setup</a>, was modified to include the necessary entries in the [global] section. 513 </p><div class="example"><a name="winbindcfg"></a><p class="title"><b>Example 24.1. smb.conf for Winbind Setup</b></p><div class="example-contents"><table class="simplelist" border="0" summary="Simple list"><tr><td> </td></tr><tr><td><em class="parameter"><code>[global]</code></em></td></tr><tr><td># separate domain and username with '\', like DOMAIN\username</td></tr><tr><td><a class="indexterm" name="id2648522"></a><em class="parameter"><code>winbind separator = \</code></em></td></tr><tr><td># use uids from 10000 to 20000 for domain users</td></tr><tr><td><a class="indexterm" name="id2648538"></a><em class="parameter"><code>idmap uid = 10000-20000</code></em></td></tr><tr><td># use gids from 10000 to 20000 for domain groups</td></tr><tr><td><a class="indexterm" name="id2648554"></a><em class="parameter"><code>idmap gid = 10000-20000</code></em></td></tr><tr><td># allow enumeration of winbind users and groups</td></tr><tr><td><a class="indexterm" name="id2648570"></a><em class="parameter"><code>winbind enum users = yes</code></em></td></tr><tr><td><a class="indexterm" name="id2648582"></a><em class="parameter"><code>winbind enum groups = yes</code></em></td></tr><tr><td># give winbind users a real shell (only needed if they have telnet access)</td></tr><tr><td><a class="indexterm" name="id2648598"></a><em class="parameter"><code>template homedir = /home/winnt/%D/%U</code></em></td></tr><tr><td><a class="indexterm" name="id2648610"></a><em class="parameter"><code>template shell = /bin/bash</code></em></td></tr></table></div></div><br class="example-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2648624"></a>Join the Samba Server to the PDC Domain</h4></div></div></div><p> 514 <a class="indexterm" name="id2648632"></a> 515 <a class="indexterm" name="id2648639"></a> 513 </p><div class="example"><a name="winbindcfg"></a><p class="title"><b>Example 24.1. smb.conf for Winbind Setup</b></p><div class="example-contents"><table class="simplelist" border="0" summary="Simple list"><tr><td> </td></tr><tr><td><em class="parameter"><code>[global]</code></em></td></tr><tr><td># separate domain and username with '\', like DOMAIN\username</td></tr><tr><td><a class="indexterm" name="id2648536"></a><em class="parameter"><code>winbind separator = \</code></em></td></tr><tr><td># use uids from 10000 to 20000 for domain users</td></tr><tr><td><a class="indexterm" name="id2648552"></a><em class="parameter"><code>idmap uid = 10000-20000</code></em></td></tr><tr><td># use gids from 10000 to 20000 for domain groups</td></tr><tr><td><a class="indexterm" name="id2648568"></a><em class="parameter"><code>idmap gid = 10000-20000</code></em></td></tr><tr><td># allow enumeration of winbind users and groups</td></tr><tr><td><a class="indexterm" name="id2648583"></a><em class="parameter"><code>winbind enum users = yes</code></em></td></tr><tr><td><a class="indexterm" name="id2648595"></a><em class="parameter"><code>winbind enum groups = yes</code></em></td></tr><tr><td># give winbind users a real shell (only needed if they have telnet access)</td></tr><tr><td><a class="indexterm" name="id2648612"></a><em class="parameter"><code>template homedir = /home/winnt/%D/%U</code></em></td></tr><tr><td><a class="indexterm" name="id2648624"></a><em class="parameter"><code>template shell = /bin/bash</code></em></td></tr></table></div></div><br class="example-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2648638"></a>Join the Samba Server to the PDC Domain</h4></div></div></div><p> 516 514 <a class="indexterm" name="id2648646"></a> 515 <a class="indexterm" name="id2648653"></a> 516 <a class="indexterm" name="id2648660"></a> 517 517 All machines that will participate in domain security should be members of 518 518 the domain. This applies also to the PDC and all BDCs. 519 519 </p><p> 520 <a class="indexterm" name="id2648658"></a>521 <a class="indexterm" name="id2648665"></a>522 520 <a class="indexterm" name="id2648672"></a> 523 <a class="indexterm" name="id26486 83"></a>524 <a class="indexterm" name="id264868 9"></a>521 <a class="indexterm" name="id2648678"></a> 522 <a class="indexterm" name="id2648685"></a> 525 523 <a class="indexterm" name="id2648696"></a> 526 524 <a class="indexterm" name="id2648703"></a> 527 525 <a class="indexterm" name="id2648710"></a> 528 <a class="indexterm" name="id2648716"></a> 526 <a class="indexterm" name="id2648717"></a> 527 <a class="indexterm" name="id2648723"></a> 528 <a class="indexterm" name="id2648730"></a> 529 529 The process of joining a domain requires the use of the <code class="literal">net rpc join</code> 530 530 command. This process communicates with the domain controller it will register with … … 533 533 start Samba on a PDC so that it can join its own domain. 534 534 </p><p> 535 <a class="indexterm" name="id2648744"></a>536 <a class="indexterm" name="id2648751"></a>537 535 <a class="indexterm" name="id2648758"></a> 536 <a class="indexterm" name="id2648765"></a> 537 <a class="indexterm" name="id2648772"></a> 538 538 Enter the following command to make the Samba server join the domain, where <em class="replaceable"><code>PDC</code></em> is 539 539 the name of your PDC and <em class="replaceable"><code>Administrator</code></em> is a domain user who has administrative 540 540 privileges in the domain. 541 541 </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> 542 <a class="indexterm" name="id2648779"></a>543 <a class="indexterm" name="id2648786"></a>544 542 <a class="indexterm" name="id2648793"></a> 545 543 <a class="indexterm" name="id2648800"></a> 544 <a class="indexterm" name="id2648806"></a> 545 <a class="indexterm" name="id2648813"></a> 546 546 Before attempting to join a machine to the domain, verify that Samba is running 547 547 on the target domain controller (usually PDC) and that it is capable of being reached via ports 548 548 137/udp, 135/tcp, 139/tcp, and 445/tcp (if Samba or Windows Server 2Kx). 549 549 </p></div><p> 550 <a class="indexterm" name="id26488 14"></a>550 <a class="indexterm" name="id2648828"></a> 551 551 The use of the <code class="literal">net rpc join</code> facility is shown here: 552 552 </p><pre class="screen"> … … 556 556 <em class="replaceable"><code>DOMAIN</code></em></span>” where <em class="replaceable"><code>DOMAIN</code></em> 557 557 is your domain name. 558 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2648862"></a>Starting and Testing the <code class="literal">winbindd</code> Daemon</h4></div></div></div><p> 559 <a class="indexterm" name="id2648876"></a> 560 <a class="indexterm" name="id2648883"></a> 558 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2648876"></a>Starting and Testing the <code class="literal">winbindd</code> Daemon</h4></div></div></div><p> 561 559 <a class="indexterm" name="id2648890"></a> 560 <a class="indexterm" name="id2648896"></a> 561 <a class="indexterm" name="id2648903"></a> 562 562 Eventually, you will want to modify your Samba startup script to automatically invoke the winbindd daemon when 563 563 the other parts of Samba start, but it is possible to test out just the Winbind portion first. To start up … … 568 568 Use the appropriate path to the location of the <code class="literal">winbindd</code> executable file. 569 569 </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> 570 <a class="indexterm" name="id26489 29"></a>571 <a class="indexterm" name="id26489 36"></a>570 <a class="indexterm" name="id2648943"></a> 571 <a class="indexterm" name="id2648949"></a> 572 572 The command to start up Winbind services assumes that Samba has been installed in the 573 573 <code class="filename">/usr/local/samba</code> directory tree. You may need to search for the location of Samba files 574 574 if this is not the location of <code class="literal">winbindd</code> on your system. 575 575 </p></div><p> 576 <a class="indexterm" name="id26489 61"></a>577 <a class="indexterm" name="id26489 68"></a>576 <a class="indexterm" name="id2648975"></a> 577 <a class="indexterm" name="id2648982"></a> 578 578 I'm always paranoid and like to make sure the daemon is really running. 579 579 </p><pre class="screen"> … … 581 581 </pre><p> 582 582 </p><p> 583 <a class="indexterm" name="id264 8996"></a>583 <a class="indexterm" name="id2649010"></a> 584 584 This command should produce output like the following if the daemon is running. 585 585 </p><pre class="screen"> … … 587 587 </pre><p> 588 588 </p><p> 589 <a class="indexterm" name="id26490 14"></a>590 <a class="indexterm" name="id26490 20"></a>589 <a class="indexterm" name="id2649027"></a> 590 <a class="indexterm" name="id2649034"></a> 591 591 Now, for the real test, try to get some information about the users on your PDC: 592 592 </p><pre class="screen"> … … 606 606 “<span class="quote">\</span>”. 607 607 </p><p> 608 <a class="indexterm" name="id26490 78"></a>609 <a class="indexterm" name="id26490 85"></a>608 <a class="indexterm" name="id2649092"></a> 609 <a class="indexterm" name="id2649099"></a> 610 610 You can do the same sort of thing to get group information from the PDC: 611 611 </p><pre class="screen"> … … 621 621 CEO\Group Policy Creator Owners 622 622 </pre><p> 623 <a class="indexterm" name="id2649115"></a>624 <a class="indexterm" name="id2649122"></a>625 623 <a class="indexterm" name="id2649128"></a> 626 624 <a class="indexterm" name="id2649135"></a> 627 <a class="indexterm" name="id264914 1"></a>628 <a class="indexterm" name="id264914 8"></a>625 <a class="indexterm" name="id2649142"></a> 626 <a class="indexterm" name="id2649149"></a> 629 627 <a class="indexterm" name="id2649155"></a> 628 <a class="indexterm" name="id2649162"></a> 629 <a class="indexterm" name="id2649169"></a> 630 630 The function <code class="literal">getent</code> can now be used to get unified lists of both local and PDC users and 631 631 groups. Try the following command: … … 641 641 <code class="prompt">root# </code><strong class="userinput"><code>getent group</code></strong> 642 642 </pre><p> 643 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2649217"></a>Fix the init.d Startup Scripts</h4></div></div></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2649223"></a>Linux</h5></div></div></div><p> 644 <a class="indexterm" name="id2649231"></a> 645 <a class="indexterm" name="id2649238"></a> 643 </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2649231"></a>Fix the init.d Startup Scripts</h4></div></div></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2649237"></a>Linux</h5></div></div></div><p> 646 644 <a class="indexterm" name="id2649244"></a> 647 645 <a class="indexterm" name="id2649251"></a> … … 649 647 <a class="indexterm" name="id2649265"></a> 650 648 <a class="indexterm" name="id2649272"></a> 651 <a class="indexterm" name="id2649278"></a> 652 <a class="indexterm" name="id2649283"></a> 649 <a class="indexterm" name="id2649279"></a> 650 <a class="indexterm" name="id2649286"></a> 651 <a class="indexterm" name="id2649291"></a> 652 <a class="indexterm" name="id2649297"></a> 653 653 The <span class="application">winbindd</span> daemon needs to start up after the <span class="application">smbd</span> and <span class="application">nmbd</span> daemons are running. To accomplish this 654 654 task, you need to modify the startup scripts of your system. They are located at … … 711 711 return $RETVAL 712 712 } 713 </pre></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id26494 28"></a>Solaris</h5></div></div></div><p>713 </pre></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2649442"></a>Solaris</h5></div></div></div><p> 714 714 Winbind does not work on Solaris 9; see <a class="link" href="Portability.html#winbind-solaris9" title="Winbind on Solaris 9">Winbind on Solaris 9 section</a> 715 715 for details. 716 716 </p><p> 717 <a class="indexterm" name="id2649449"></a>718 <a class="indexterm" name="id2649456"></a>719 717 <a class="indexterm" name="id2649463"></a> 720 718 <a class="indexterm" name="id2649470"></a> 721 719 <a class="indexterm" name="id2649477"></a> 722 720 <a class="indexterm" name="id2649484"></a> 721 <a class="indexterm" name="id2649491"></a> 722 <a class="indexterm" name="id2649498"></a> 723 723 On Solaris, you need to modify the <code class="filename">/etc/init.d/samba.server</code> startup script. It 724 724 usually only starts smbd and nmbd but should now start winbindd, too. If you have Samba installed in … … 781 781 /usr/local/samba/sbin/winbindd -B 782 782 </pre><p> 783 </p></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id26495 73"></a>Restarting</h5></div></div></div><p>784 <a class="indexterm" name="id26495 80"></a>785 <a class="indexterm" name="id2649 587"></a>783 </p></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2649586"></a>Restarting</h5></div></div></div><p> 784 <a class="indexterm" name="id2649594"></a> 785 <a class="indexterm" name="id2649601"></a> 786 786 If you restart the <span class="application">smbd</span>, <span class="application">nmbd</span>, and <span class="application">winbindd</span> daemons at this point, you 787 787 should be able to connect to the Samba server as a domain member just as 788 788 if you were a local user. 789 </p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2649617"></a>Configure Winbind and PAM</h4></div></div></div><p> 790 <a class="indexterm" name="id2649625"></a> 791 <a class="indexterm" name="id2649632"></a> 789 </p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2649631"></a>Configure Winbind and PAM</h4></div></div></div><p> 792 790 <a class="indexterm" name="id2649639"></a> 793 791 <a class="indexterm" name="id2649646"></a> 792 <a class="indexterm" name="id2649653"></a> 793 <a class="indexterm" name="id2649659"></a> 794 794 If you have made it this far, you know that <code class="literal">winbindd</code> and Samba are working together. If you 795 795 want to use Winbind to provide authentication for other services, keep reading. The PAM configuration files … … 797 797 <code class="filename">/etc/pam.d</code> files? If not, do it now.) 798 798 </p><p> 799 <a class="indexterm" name="id2649673"></a>800 <a class="indexterm" name="id2649679"></a>801 799 <a class="indexterm" name="id2649686"></a> 802 800 <a class="indexterm" name="id2649693"></a> 803 801 <a class="indexterm" name="id2649700"></a> 804 802 <a class="indexterm" name="id2649707"></a> 803 <a class="indexterm" name="id2649714"></a> 804 <a class="indexterm" name="id2649721"></a> 805 805 You will need a PAM module to use winbindd with these other services. This module will be compiled in the 806 806 <code class="filename">../source/nsswitch</code> directory by invoking the command: … … 815 815 <code class="prompt">root# </code><strong class="userinput"><code>cp ../samba/source/nsswitch/pam_winbind.so /lib/security</code></strong> 816 816 </pre><p> 817 </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id26497 84"></a>Linux/FreeBSD-Specific PAM Configuration</h5></div></div></div><p>818 <a class="indexterm" name="id2649 792"></a>817 </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2649797"></a>Linux/FreeBSD-Specific PAM Configuration</h5></div></div></div><p> 818 <a class="indexterm" name="id2649806"></a> 819 819 The <code class="filename">/etc/pam.d/samba</code> file does not need to be changed. I just left this file as it was: 820 820 </p><pre class="programlisting"> … … 822 822 account required /lib/security/pam_stack.so service=system-auth 823 823 </pre><p> 824 <a class="indexterm" name="id2649816"></a>825 <a class="indexterm" name="id2649823"></a>826 824 <a class="indexterm" name="id2649830"></a> 827 825 <a class="indexterm" name="id2649837"></a> … … 831 829 <a class="indexterm" name="id2649864"></a> 832 830 <a class="indexterm" name="id2649871"></a> 831 <a class="indexterm" name="id2649878"></a> 832 <a class="indexterm" name="id2649885"></a> 833 833 The other services that I modified to allow the use of Winbind as an authentication service were the normal 834 834 login on the console (or a terminal session), telnet logins, and ftp service. In order to enable these … … 844 844 enable = yes 845 845 </pre><p> 846 <a class="indexterm" name="id2649924"></a>847 <a class="indexterm" name="id2649931"></a>848 846 <a class="indexterm" name="id2649938"></a> 847 <a class="indexterm" name="id2649945"></a> 848 <a class="indexterm" name="id2649952"></a> 849 849 For ftp services to work properly, you will also need to either have individual directories for the domain 850 850 users already present on the server or change the home directory template to a general directory for all 851 851 domain users. These can be easily set using the <code class="filename">smb.conf</code> global entry <a class="link" href="smb.conf.5.html#TEMPLATEHOMEDIR">template homedir</a>. 852 852 </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> 853 <a class="indexterm" name="id26499 73"></a>853 <a class="indexterm" name="id2649987"></a> 854 854 The directory in <a class="link" href="smb.conf.5.html#TEMPLATEHOMEDIR">template homedir</a> is not created automatically! Use pam_mkhomedir or 855 855 pre-create the directories of users to make sure users can log in on UNIX with their own home directory. 856 856 </p></div><p> 857 <a class="indexterm" name="id26 49998"></a>858 <a class="indexterm" name="id26500 05"></a>859 <a class="indexterm" name="id26500 11"></a>857 <a class="indexterm" name="id2650012"></a> 858 <a class="indexterm" name="id2650018"></a> 859 <a class="indexterm" name="id2650025"></a> 860 860 The <code class="filename">/etc/pam.d/ftp</code> file can be changed to allow Winbind ftp access in a manner similar to 861 861 the samba file. My <code class="filename">/etc/pam.d/ftp</code> file was changed to look like this: … … 870 870 session required /lib/security/pam_stack.so service=system-auth 871 871 </pre><p> 872 <a class="indexterm" name="id26500 48"></a>872 <a class="indexterm" name="id2650061"></a> 873 873 The <code class="filename">/etc/pam.d/login</code> file can be changed in nearly the same way. It now looks like this: 874 874 </p><pre class="programlisting"> … … 884 884 session optional /lib/security/pam_console.so 885 885 </pre><p> 886 <a class="indexterm" name="id2650078"></a>887 <a class="indexterm" name="id2650085"></a>888 886 <a class="indexterm" name="id2650092"></a> 887 <a class="indexterm" name="id2650099"></a> 888 <a class="indexterm" name="id2650106"></a> 889 889 In this case, I added the </p><pre class="programlisting">auth sufficient /lib/security/pam_winbind.so</pre><p> lines 890 890 as before, but also added the </p><pre class="programlisting">required pam_securetty.so</pre><p> above it to disallow … … 892 892 use_first_pass</pre><p> line after the <code class="literal">winbind.so</code> line to get rid of annoying 893 893 double prompts for passwords. 894 </p></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id26501 30"></a>Solaris-Specific Configuration</h5></div></div></div><p>895 <a class="indexterm" name="id26501 38"></a>896 <a class="indexterm" name="id26501 45"></a>894 </p></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2650143"></a>Solaris-Specific Configuration</h5></div></div></div><p> 895 <a class="indexterm" name="id2650152"></a> 896 <a class="indexterm" name="id2650158"></a> 897 897 The <code class="filename">/etc/pam.conf</code> needs to be changed. I changed this file so my Domain 898 898 users can log on both locally as well as with telnet. The following are the changes … … 961 961 #other password optional /usr/lib/security/$ISA/pam_krb5.so.1 try_first_pass 962 962 </pre><p> 963 <a class="indexterm" name="id26502 57"></a>963 <a class="indexterm" name="id2650270"></a> 964 964 I also added a <em class="parameter"><code>try_first_pass</code></em> line after the <code class="filename">winbind.so</code> 965 965 line to get rid of annoying double prompts for passwords. … … 967 967 Now restart your Samba and try connecting through your application that you 968 968 configured in the pam.conf. 969 </p></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2650287"></a>Conclusion</h2></div></div></div><p> 970 <a class="indexterm" name="id2650295"></a> 971 <a class="indexterm" name="id2650302"></a> 972 <a class="indexterm" name="id2650308"></a> 973 <a class="indexterm" name="id2650315"></a> 969 </p></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2650301"></a>Conclusion</h2></div></div></div><p> 970 <a class="indexterm" name="id2650309"></a> 971 <a class="indexterm" name="id2650316"></a> 974 972 <a class="indexterm" name="id2650322"></a> 973 <a class="indexterm" name="id2650329"></a> 974 <a class="indexterm" name="id2650335"></a> 975 975 The Winbind system, through the use of the NSS, PAMs, and appropriate Microsoft RPC calls, have allowed us to 976 976 provide seamless integration of Microsoft Windows NT domain users on a UNIX system. The result is a great 977 977 reduction in the administrative cost of running a mixed UNIX and NT network. 978 </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id26503 36"></a>Common Errors</h2></div></div></div><p>978 </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2650350"></a>Common Errors</h2></div></div></div><p> 979 979 Winbind has a number of limitations in its current released version that we hope to overcome in future releases: 980 980 </p><div class="itemizedlist"><ul type="disc"><li><p> … … 990 990 Currently the Winbind PAM module does not take into account possible workstation and logon time 991 991 restrictions that may be set for Windows NT users; this is instead up to the PDC to enforce. 992 </p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id26503 78"></a>NSCD Problem Warning</h3></div></div></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>992 </p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2650391"></a>NSCD Problem Warning</h3></div></div></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p> 993 993 Do not under any circumstances run <code class="literal">nscd</code> on any system 994 994 on which <code class="literal">winbindd</code> is running. … … 997 997 even though NSSWITCH is correctly configured, it will not be possible to resolve 998 998 domain users and groups for file and directory controls. 999 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id26504 14"></a>Winbind Is Not Resolving Users and Groups</h3></div></div></div><p>“<span class="quote">999 </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2650428"></a>Winbind Is Not Resolving Users and Groups</h3></div></div></div><p>“<span class="quote"> 1000 1000 My <code class="filename">smb.conf</code> file is correctly configured. I have specified <a class="link" href="smb.conf.5.html#IDMAPUID">idmap uid = 12000</a>, 1001 1001 and <a class="link" href="smb.conf.5.html#IDMAPGID">idmap gid = 3000-3500</a> and <code class="literal">winbind</code> is running.
Note:
See TracChangeset
for help on using the changeset viewer.