summaryrefslogtreecommitdiffstats
path: root/docs/htmldocs
diff options
context:
space:
mode:
authorJohn Terpstra <jht@samba.org>2003-06-14 22:18:16 +0000
committerJohn Terpstra <jht@samba.org>2003-06-14 22:18:16 +0000
commitab1f2fe4a840c9603bf5da5c133c137542fe0319 (patch)
treebb3594036d9bd9e7cdb5f9238ff5435d1d7d2803 /docs/htmldocs
parentf65370b5c4fd4f5d4c4fdffd87a7cbe0bc2a7021 (diff)
downloadsamba-ab1f2fe4a840c9603bf5da5c133c137542fe0319.tar.gz
samba-ab1f2fe4a840c9603bf5da5c133c137542fe0319.tar.xz
samba-ab1f2fe4a840c9603bf5da5c133c137542fe0319.zip
Updating html stuff.
Diffstat (limited to 'docs/htmldocs')
-rw-r--r--docs/htmldocs/Samba-Developers-Guide.html342
-rw-r--r--docs/htmldocs/bugreport.html13
-rw-r--r--docs/htmldocs/diagnosis.html13
-rw-r--r--docs/htmldocs/groupmapping.html71
-rw-r--r--docs/htmldocs/install.html45
-rw-r--r--docs/htmldocs/integrate-ms-networks.html45
-rw-r--r--docs/htmldocs/introduction.html9
-rw-r--r--docs/htmldocs/msdfs.html5
-rw-r--r--docs/htmldocs/optional.html51
-rw-r--r--docs/htmldocs/pam.html81
-rw-r--r--docs/htmldocs/printing.html199
-rw-r--r--docs/htmldocs/samba-bdc.html31
-rw-r--r--docs/htmldocs/samba-pdc.html59
-rw-r--r--docs/htmldocs/smb.conf.5.html2880
-rw-r--r--docs/htmldocs/speed.html25
-rw-r--r--docs/htmldocs/type.html11
-rw-r--r--docs/htmldocs/winbind.html95
17 files changed, 3433 insertions, 542 deletions
diff --git a/docs/htmldocs/Samba-Developers-Guide.html b/docs/htmldocs/Samba-Developers-Guide.html
index 86de03d627f..e1df878bb1e 100644
--- a/docs/htmldocs/Samba-Developers-Guide.html
+++ b/docs/htmldocs/Samba-Developers-Guide.html
@@ -12,10 +12,10 @@ Please send updates to Jelmer Vernooij.
This documentation is distributed under the GNU General Public License (GPL)
version 2. A copy of the license is included with the Samba source
distribution. A copy can be found on-line at http://www.fsf.org/licenses/gpl.txt
-"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="Samba-Developers-Guide"></a>SAMBA Developers Guide</h1></div><div><div class="author"><h3 class="author"><span class="surname">SAMBA Team</span></h3></div></div><div><div class="legalnotice"><p><b>Attributions. </b>
- </p><div class="variablelist"><dl><dt><span class="term"><a href="#netbios" title="Chapter 1. Definition of NetBIOS Protocol and Name Resolution Modes">Definition of NetBIOS Protocol and Name Resolution Modes</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Luke Leighton</p></li></ul></div></dd><dt><span class="term"><a href="#architecture" title="Chapter 2. Samba Architecture">Samba Architecture</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Dan Shearer</p></li></ul></div></dd><dt><span class="term"><a href="#debug" title="Chapter 3. The samba DEBUG system">The samba DEBUG system</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Chris Hertel</p></li></ul></div></dd><dt><span class="term"><a href="#CodingSuggestions" title="Chapter 4. Coding Suggestions">Coding Suggestions</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Steve French</p></li><li><p>Simo Sorce</p></li><li><p>Andrew Bartlett</p></li><li><p>Tim Potter</p></li><li><p>Martin Pool</p></li></ul></div></dd><dt><span class="term"><a href="#internals" title="Chapter 5. Samba Internals">Samba Internals</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>David Chappell &lt;<a href="David.Chappell@mail.trincoll.edu" target="_top">David.Chappell@mail.trincoll.edu</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#parsing" title="Chapter 6. The smb.conf file">The smb.conf file</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Chris Hertel</p></li></ul></div></dd><dt><span class="term"><a href="#unix-smb" title="Chapter 7. NetBIOS in a Unix World">NetBIOS in a Unix World</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Andrew Tridgell</p></li></ul></div></dd><dt><span class="term"><a href="#tracing" title="Chapter 8. Tracing samba system calls">Tracing samba system calls</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Andrew Tridgell</p></li></ul></div></dd><dt><span class="term"><a href="#ntdomain" title="Chapter 9. NT Domain RPC's">NT Domain RPC's</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Luke Leighton &lt;<a href="lkcl@switchboard.net" target="_top">lkcl@switchboard.net</a>&gt;</p></li><li><p>Paul Ashton &lt;<a href="paul@argo.demon.co.uk" target="_top">paul@argo.demon.co.uk</a>&gt;</p></li><li><p>Duncan Stansfield &lt;<a href="duncans@sco.com" target="_top">duncans@sco.com</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#printing" title="Chapter 10. Samba Printing Internals">Samba Printing Internals</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Gerald Carter</p></li></ul></div></dd><dt><span class="term"><a href="#wins" title="Chapter 11. Samba WINS Internals">Samba WINS Internals</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Gerald Carter</p></li></ul></div></dd><dt><span class="term"><a href="#sam" title="Chapter 12. The Upcoming SAM System">The Upcoming SAM System</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Andrew Bartlett</p></li></ul></div></dd><dt><span class="term"><a href="#pwencrypt" title="Chapter 13. LanMan and NT Password Encryption">LanMan and NT Password Encryption</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Jeremy Allison &lt;<a href="samba@samba.org" target="_top">samba@samba.org</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#modules" title="Chapter 14. Modules">Modules</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Jelmer Vernooij &lt;<a href="jelmer@samba.org" target="_top">jelmer@samba.org</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#rpc-plugin" title="Chapter 15. RPC Pluggable Modules">RPC Pluggable Modules</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Anthony Liguori &lt;<a href="aliguor@us.ibm.com" target="_top">aliguor@us.ibm.com</a>&gt;</p></li><li><p>Jelmer Vernooij &lt;<a href="jelmer@samba.org" target="_top">jelmer@samba.org</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#vfs" title="Chapter 16. VFS Modules">VFS Modules</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Alexander Bokovoy &lt;<a href="ab@samba.org" target="_top">ab@samba.org</a>&gt;</p></li><li><p>Stefan Metzmacher &lt;<a href="metze@metzemix.de" target="_top">metze@metzemix.de</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#Packaging" title="Chapter 17. Notes to packagers">Notes to packagers</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Jelmer Vernooij</p></li></ul></div></dd><dt><span class="term"><a href="#contributing" title="Chapter 18. Contributing code">Contributing code</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Jelmer Vernooij &lt;<a href="jelmer@samba.org" target="_top">jelmer@samba.org</a>&gt;</p></li></ul></div></dd></dl></div><p>
+"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="Samba-Developers-Guide"></a>SAMBA Developers Guide</h1></div><div><div class="author"><h3 class="author"><span class="surname">SAMBA Team</span></h3></div></div><div><div xmlns:ns1="" class="legalnotice"><ns1:p><b>Attributions. </b>
+ </ns1:p><div class="variablelist"><dl><dt><span class="term"><a href="#netbios" title="Chapter 1. Definition of NetBIOS Protocol and Name Resolution Modes">Definition of NetBIOS Protocol and Name Resolution Modes</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Luke Leighton</p></li></ul></div></dd><dt><span class="term"><a href="#architecture" title="Chapter 2. Samba Architecture">Samba Architecture</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Dan Shearer</p></li></ul></div></dd><dt><span class="term"><a href="#debug" title="Chapter 3. The samba DEBUG system">The samba DEBUG system</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Chris Hertel</p></li></ul></div></dd><dt><span class="term"><a href="#CodingSuggestions" title="Chapter 4. Coding Suggestions">Coding Suggestions</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Steve French</p></li><li><p>Simo Sorce</p></li><li><p>Andrew Bartlett</p></li><li><p>Tim Potter</p></li><li><p>Martin Pool</p></li></ul></div></dd><dt><span class="term"><a href="#internals" title="Chapter 5. Samba Internals">Samba Internals</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>David Chappell &lt;<a href="mailto:David.Chappell@mail.trincoll.edu" target="_top">David.Chappell@mail.trincoll.edu</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#parsing" title="Chapter 6. The smb.conf file">The smb.conf file</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Chris Hertel</p></li></ul></div></dd><dt><span class="term"><a href="#unix-smb" title="Chapter 7. NetBIOS in a Unix World">NetBIOS in a Unix World</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Andrew Tridgell</p></li></ul></div></dd><dt><span class="term"><a href="#tracing" title="Chapter 8. Tracing samba system calls">Tracing samba system calls</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Andrew Tridgell</p></li></ul></div></dd><dt><span class="term"><a href="#ntdomain" title="Chapter 9. NT Domain RPC's">NT Domain RPC's</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Luke Leighton &lt;<a href="mailto:lkcl@switchboard.net" target="_top">lkcl@switchboard.net</a>&gt;</p></li><li><p>Paul Ashton &lt;<a href="mailto:paul@argo.demon.co.uk" target="_top">paul@argo.demon.co.uk</a>&gt;</p></li><li><p>Duncan Stansfield &lt;<a href="mailto:duncans@sco.com" target="_top">duncans@sco.com</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#printing" title="Chapter 10. Samba Printing Internals">Samba Printing Internals</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Gerald Carter</p></li></ul></div></dd><dt><span class="term"><a href="#wins" title="Chapter 11. Samba WINS Internals">Samba WINS Internals</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Gerald Carter</p></li></ul></div></dd><dt><span class="term"><a href="#sam" title="Chapter 12. The Upcoming SAM System">The Upcoming SAM System</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Andrew Bartlett</p></li></ul></div></dd><dt><span class="term"><a href="#pwencrypt" title="Chapter 13. LanMan and NT Password Encryption">LanMan and NT Password Encryption</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Jeremy Allison &lt;<a href="mailto:samba@samba.org" target="_top">samba@samba.org</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#modules" title="Chapter 14. Modules">Modules</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Jelmer Vernooij &lt;<a href="mailto:jelmer@samba.org" target="_top">jelmer@samba.org</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#rpc-plugin" title="Chapter 15. RPC Pluggable Modules">RPC Pluggable Modules</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Anthony Liguori &lt;<a href="mailto:aliguor@us.ibm.com" target="_top">aliguor@us.ibm.com</a>&gt;</p></li><li><p>Jelmer Vernooij &lt;<a href="mailto:jelmer@samba.org" target="_top">jelmer@samba.org</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#vfs" title="Chapter 16. VFS Modules">VFS Modules</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Alexander Bokovoy &lt;<a href="mailto:ab@samba.org" target="_top">ab@samba.org</a>&gt;</p></li><li><p>Stefan Metzmacher &lt;<a href="mailto:metze@metzemix.de" target="_top">metze@metzemix.de</a>&gt;</p></li></ul></div></dd><dt><span class="term"><a href="#Packaging" title="Chapter 17. Notes to packagers">Notes to packagers</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Jelmer Vernooij</p></li></ul></div></dd><dt><span class="term"><a href="#contributing" title="Chapter 18. Contributing code">Contributing code</a></span></dt><dd><div class="itemizedlist"><ul type="disc"><li><p>Jelmer Vernooij &lt;<a href="mailto:jelmer@samba.org" target="_top">jelmer@samba.org</a>&gt;</p></li></ul></div></dd></dl></div><ns1:p>
- </p></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>
+ </ns1:p></div></div><div><div class="abstract"><p class="title"><b>Abstract</b></p><p>
<span class="emphasis"><em>Last Update</em></span> : Fri Jun 6 00:45:54 CEST 2003
</p><p>
This book is a collection of documents that might be useful for
@@ -29,15 +29,15 @@ Please send updates to <a href="mailto:jelmer@samba.org" target="_top">Jelmer Ve
This documentation is distributed under the GNU General Public License (GPL)
version 2. A copy of the license is included with the Samba source
distribution. A copy can be found on-line at <a href="http://www.fsf.org/licenses/gpl.txt" target="_top">http://www.fsf.org/licenses/gpl.txt</a>
-</p></div></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1. <a href="#netbios">Definition of NetBIOS Protocol and Name Resolution Modes</a></dt><dd><dl><dt><a href="#id2797526">NETBIOS</a></dt><dt><a href="#id2866011">BROADCAST NetBIOS</a></dt><dt><a href="#id2866042">NBNS NetBIOS</a></dt></dl></dd><dt>2. <a href="#architecture">Samba Architecture</a></dt><dd><dl><dt><a href="#id2797150">Introduction</a></dt><dt><a href="#id2797202">Multithreading and Samba</a></dt><dt><a href="#id2797240">Threading smbd</a></dt><dt><a href="#id2797314">Threading nmbd</a></dt><dt><a href="#id2797382">nbmd Design</a></dt></dl></dd><dt>3. <a href="#debug">The samba DEBUG system</a></dt><dd><dl><dt><a href="#id2796808">New Output Syntax</a></dt><dt><a href="#id2796946">The DEBUG() Macro</a></dt><dt><a href="#id2867248">The DEBUGADD() Macro</a></dt><dt><a href="#id2867293">The DEBUGLVL() Macro</a></dt><dt><a href="#id2867398">New Functions</a></dt><dd><dl><dt><a href="#id2867405">dbgtext()</a></dt><dt><a href="#id2867425">dbghdr()</a></dt><dt><a href="#id2867448">format_debug_text()</a></dt></dl></dd></dl></dd><dt>4. <a href="#CodingSuggestions">Coding Suggestions</a></dt><dt>5. <a href="#internals">Samba Internals</a></dt><dd><dl><dt><a href="#id2866821">Character Handling</a></dt><dt><a href="#id2866847">The new functions</a></dt><dt><a href="#id2868099">Macros in byteorder.h</a></dt><dd><dl><dt><a href="#id2869024">CVAL(buf,pos)</a></dt><dt><a href="#id2869037">PVAL(buf,pos)</a></dt><dt><a href="#id2869051">SCVAL(buf,pos,val)</a></dt><dt><a href="#id2869064">SVAL(buf,pos)</a></dt><dt><a href="#id2869080">IVAL(buf,pos)</a></dt><dt><a href="#id2869094">SVALS(buf,pos)</a></dt><dt><a href="#id2869109">IVALS(buf,pos)</a></dt><dt><a href="#id2869123">SSVAL(buf,pos,val)</a></dt><dt><a href="#id2869138">SIVAL(buf,pos,val)</a></dt><dt><a href="#id2869152">SSVALS(buf,pos,val)</a></dt><dt><a href="#id2869166">SIVALS(buf,pos,val)</a></dt><dt><a href="#id2869181">RSVAL(buf,pos)</a></dt><dt><a href="#id2869195">RIVAL(buf,pos)</a></dt><dt><a href="#id2869210">RSSVAL(buf,pos,val)</a></dt><dt><a href="#id2869225">RSIVAL(buf,pos,val)</a></dt></dl></dd><dt><a href="#id2869240">LAN Manager Samba API</a></dt><dd><dl><dt><a href="#id2869276">Parameters</a></dt><dt><a href="#id2869427">Return value</a></dt></dl></dd><dt><a href="#id2869512">Code character table</a></dt></dl></dd><dt>6. <a href="#parsing">The smb.conf file</a></dt><dd><dl><dt><a href="#id2868851">Lexical Analysis</a></dt><dd><dl><dt><a href="#id2868944">Handling of Whitespace</a></dt><dt><a href="#id2869000">Handling of Line Continuation</a></dt><dt><a href="#id2870660">Line Continuation Quirks</a></dt></dl></dd><dt><a href="#id2870758">Syntax</a></dt><dd><dl><dt><a href="#id2870829">About params.c</a></dt></dl></dd></dl></dd><dt>7. <a href="#unix-smb">NetBIOS in a Unix World</a></dt><dd><dl><dt><a href="#id2870276">Introduction</a></dt><dt><a href="#id2870301">Usernames</a></dt><dt><a href="#id2870529">File Ownership</a></dt><dt><a href="#id2870566">Passwords</a></dt><dt><a href="#id2870604">Locking</a></dt><dt><a href="#id2871543">Deny Modes</a></dt><dt><a href="#id2871573">Trapdoor UIDs</a></dt><dt><a href="#id2871598">Port numbers</a></dt><dt><a href="#id2871644">Protocol Complexity</a></dt></dl></dd><dt>8. <a href="#tracing">Tracing samba system calls</a></dt><dt>9. <a href="#ntdomain">NT Domain RPC's</a></dt><dd><dl><dt><a href="#id2871220">Introduction</a></dt><dd><dl><dt><a href="#id2872245">Sources</a></dt><dt><a href="#id2872278">Credits</a></dt></dl></dd><dt><a href="#id2872317">Notes and Structures</a></dt><dd><dl><dt><a href="#id2872324">Notes</a></dt><dt><a href="#id2873087">Enumerations</a></dt><dt><a href="#id2873300">Structures</a></dt></dl></dd><dt><a href="#id2876250">MSRPC over Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2876262">MSRPC Pipes</a></dt><dt><a href="#id2876365">Header</a></dt><dt><a href="#id2877236">Tail</a></dt><dt><a href="#id2877281">RPC Bind / Bind Ack</a></dt><dt><a href="#id2877461">NTLSA Transact Named Pipe</a></dt><dt><a href="#id2877626">LSA Open Policy</a></dt><dt><a href="#id2877752">LSA Query Info Policy</a></dt><dt><a href="#id2877858">LSA Enumerate Trusted Domains</a></dt><dt><a href="#id2877950">LSA Open Secret</a></dt><dt><a href="#id2878060">LSA Close</a></dt><dt><a href="#id2878126">LSA Lookup SIDS</a></dt><dt><a href="#id2878335">LSA Lookup Names</a></dt></dl></dd><dt><a href="#id2878561">NETLOGON rpc Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2878722">LSA Request Challenge</a></dt><dt><a href="#id2878856">LSA Authenticate 2</a></dt><dt><a href="#id2879004">LSA Server Password Set</a></dt><dt><a href="#id2879119">LSA SAM Logon</a></dt><dt><a href="#id2879232">LSA SAM Logoff</a></dt></dl></dd><dt><a href="#id2879324">\\MAILSLOT\NET\NTLOGON</a></dt><dd><dl><dt><a href="#id2879336">Query for PDC</a></dt><dt><a href="#id2879604">SAM Logon</a></dt></dl></dd><dt><a href="#id2879929">SRVSVC Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2879974">Net Share Enum</a></dt><dt><a href="#id2880194">Net Server Get Info</a></dt></dl></dd><dt><a href="#id2880310">Cryptographic side of NT Domain Authentication</a></dt><dd><dl><dt><a href="#id2880318">Definitions</a></dt><dt><a href="#id2880480">Protocol</a></dt><dt><a href="#id2880577">Comments</a></dt></dl></dd><dt><a href="#id2880626">SIDs and RIDs</a></dt><dd><dl><dt><a href="#id2880666">Well-known SIDs</a></dt><dt><a href="#id2880981">Well-known RIDS</a></dt></dl></dd></dl></dd><dt>10. <a href="#printing">Samba Printing Internals</a></dt><dd><dl><dt><a href="#id2889663">Abstract</a></dt><dt><a href="#id2889679">
+</p></div></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1. <a href="#netbios">Definition of NetBIOS Protocol and Name Resolution Modes</a></dt><dd><dl><dt><a href="#id2801706">NETBIOS</a></dt><dt><a href="#id2801790">BROADCAST NetBIOS</a></dt><dt><a href="#id2801821">NBNS NetBIOS</a></dt></dl></dd><dt>2. <a href="#architecture">Samba Architecture</a></dt><dd><dl><dt><a href="#id2800444">Introduction</a></dt><dt><a href="#id2800493">Multithreading and Samba</a></dt><dt><a href="#id2800530">Threading smbd</a></dt><dt><a href="#id2800121">Threading nmbd</a></dt><dt><a href="#id2800174">nbmd Design</a></dt></dl></dd><dt>3. <a href="#debug">The samba DEBUG system</a></dt><dd><dl><dt><a href="#id2799483">New Output Syntax</a></dt><dt><a href="#id2799606">The DEBUG() Macro</a></dt><dt><a href="#id2799736">The DEBUGADD() Macro</a></dt><dt><a href="#id2799781">The DEBUGLVL() Macro</a></dt><dt><a href="#id2799887">New Functions</a></dt><dd><dl><dt><a href="#id2799894">dbgtext()</a></dt><dt><a href="#id2799913">dbghdr()</a></dt><dt><a href="#id2799936">format_debug_text()</a></dt></dl></dd></dl></dd><dt>4. <a href="#CodingSuggestions">Coding Suggestions</a></dt><dt>5. <a href="#internals">Samba Internals</a></dt><dd><dl><dt><a href="#id2867396">Character Handling</a></dt><dt><a href="#id2867421">The new functions</a></dt><dt><a href="#id2866034">Macros in byteorder.h</a></dt><dd><dl><dt><a href="#id2866047">CVAL(buf,pos)</a></dt><dt><a href="#id2866061">PVAL(buf,pos)</a></dt><dt><a href="#id2866075">SCVAL(buf,pos,val)</a></dt><dt><a href="#id2866088">SVAL(buf,pos)</a></dt><dt><a href="#id2866101">IVAL(buf,pos)</a></dt><dt><a href="#id2866115">SVALS(buf,pos)</a></dt><dt><a href="#id2866130">IVALS(buf,pos)</a></dt><dt><a href="#id2866144">SSVAL(buf,pos,val)</a></dt><dt><a href="#id2866158">SIVAL(buf,pos,val)</a></dt><dt><a href="#id2866173">SSVALS(buf,pos,val)</a></dt><dt><a href="#id2866187">SIVALS(buf,pos,val)</a></dt><dt><a href="#id2866201">RSVAL(buf,pos)</a></dt><dt><a href="#id2867059">RIVAL(buf,pos)</a></dt><dt><a href="#id2867074">RSSVAL(buf,pos,val)</a></dt><dt><a href="#id2867089">RSIVAL(buf,pos,val)</a></dt></dl></dd><dt><a href="#id2867105">LAN Manager Samba API</a></dt><dd><dl><dt><a href="#id2867139">Parameters</a></dt><dt><a href="#id2867290">Return value</a></dt></dl></dd><dt><a href="#id2867973">Code character table</a></dt></dl></dd><dt>6. <a href="#parsing">The smb.conf file</a></dt><dd><dl><dt><a href="#id2868095">Lexical Analysis</a></dt><dd><dl><dt><a href="#id2868180">Handling of Whitespace</a></dt><dt><a href="#id2868234">Handling of Line Continuation</a></dt><dt><a href="#id2868297">Line Continuation Quirks</a></dt></dl></dd><dt><a href="#id2868394">Syntax</a></dt><dd><dl><dt><a href="#id2869245">About params.c</a></dt></dl></dd></dl></dd><dt>7. <a href="#unix-smb">NetBIOS in a Unix World</a></dt><dd><dl><dt><a href="#id2869924">Introduction</a></dt><dt><a href="#id2869945">Usernames</a></dt><dt><a href="#id2870011">File Ownership</a></dt><dt><a href="#id2870047">Passwords</a></dt><dt><a href="#id2869310">Locking</a></dt><dt><a href="#id2869371">Deny Modes</a></dt><dt><a href="#id2869402">Trapdoor UIDs</a></dt><dt><a href="#id2869427">Port numbers</a></dt><dt><a href="#id2869472">Protocol Complexity</a></dt></dl></dd><dt>8. <a href="#tracing">Tracing samba system calls</a></dt><dt>9. <a href="#ntdomain">NT Domain RPC's</a></dt><dd><dl><dt><a href="#id2870486">Introduction</a></dt><dd><dl><dt><a href="#id2870684">Sources</a></dt><dt><a href="#id2870718">Credits</a></dt></dl></dd><dt><a href="#id2871306">Notes and Structures</a></dt><dd><dl><dt><a href="#id2871313">Notes</a></dt><dt><a href="#id2871388">Enumerations</a></dt><dt><a href="#id2871600">Structures</a></dt></dl></dd><dt><a href="#id2883067">MSRPC over Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2883079">MSRPC Pipes</a></dt><dt><a href="#id2883181">Header</a></dt><dt><a href="#id2884052">Tail</a></dt><dt><a href="#id2884098">RPC Bind / Bind Ack</a></dt><dt><a href="#id2884278">NTLSA Transact Named Pipe</a></dt><dt><a href="#id2884443">LSA Open Policy</a></dt><dt><a href="#id2884568">LSA Query Info Policy</a></dt><dt><a href="#id2884674">LSA Enumerate Trusted Domains</a></dt><dt><a href="#id2884766">LSA Open Secret</a></dt><dt><a href="#id2884876">LSA Close</a></dt><dt><a href="#id2884941">LSA Lookup SIDS</a></dt><dt><a href="#id2885151">LSA Lookup Names</a></dt></dl></dd><dt><a href="#id2885377">NETLOGON rpc Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2885537">LSA Request Challenge</a></dt><dt><a href="#id2885672">LSA Authenticate 2</a></dt><dt><a href="#id2885819">LSA Server Password Set</a></dt><dt><a href="#id2885934">LSA SAM Logon</a></dt><dt><a href="#id2886037">LSA SAM Logoff</a></dt></dl></dd><dt><a href="#id2886129">\\MAILSLOT\NET\NTLOGON</a></dt><dd><dl><dt><a href="#id2886146">Query for PDC</a></dt><dt><a href="#id2886407">SAM Logon</a></dt></dl></dd><dt><a href="#id2886733">SRVSVC Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2886778">Net Share Enum</a></dt><dt><a href="#id2886997">Net Server Get Info</a></dt></dl></dd><dt><a href="#id2887114">Cryptographic side of NT Domain Authentication</a></dt><dd><dl><dt><a href="#id2887121">Definitions</a></dt><dt><a href="#id2887283">Protocol</a></dt><dt><a href="#id2887363">Comments</a></dt></dl></dd><dt><a href="#id2887413">SIDs and RIDs</a></dt><dd><dl><dt><a href="#id2887453">Well-known SIDs</a></dt><dt><a href="#id2887767">Well-known RIDS</a></dt></dl></dd></dl></dd><dt>10. <a href="#printing">Samba Printing Internals</a></dt><dd><dl><dt><a href="#id2889311">Abstract</a></dt><dt><a href="#id2889327">
Printing Interface to Various Back ends
-</a></dt><dt><a href="#id2889934">
+</a></dt><dt><a href="#id2889419">
Print Queue TDB's
-</a></dt><dt><a href="#id2890143">
+</a></dt><dt><a href="#id2888211">
ChangeID and Client Caching of Printer Information
-</a></dt><dt><a href="#id2890156">
+</a></dt><dt><a href="#id2888224">
Windows NT/2K Printer Change Notify
-</a></dt></dl></dd><dt>11. <a href="#wins">Samba WINS Internals</a></dt><dd><dl><dt><a href="#id2889624">WINS Failover</a></dt></dl></dd><dt>12. <a href="#sam">The Upcoming SAM System</a></dt><dd><dl><dt><a href="#id2889427">Security in the 'new SAM'</a></dt><dt><a href="#id2890951">Standalone from UNIX</a></dt><dt><a href="#id2890985">Handles and Races in the new SAM</a></dt><dt><a href="#id2891054">Layers</a></dt><dd><dl><dt><a href="#id2891061">Application</a></dt><dt><a href="#id2891077">SAM Interface</a></dt><dt><a href="#id2891105">SAM Modules</a></dt></dl></dd><dt><a href="#id2891126">SAM Modules</a></dt><dd><dl><dt><a href="#id2891134">Special Module: sam_passdb</a></dt><dt><a href="#id2891152">sam_ads</a></dt></dl></dd><dt><a href="#id2891191">Memory Management</a></dt><dt><a href="#id2891281">Testing</a></dt></dl></dd><dt>13. <a href="#pwencrypt">LanMan and NT Password Encryption</a></dt><dd><dl><dt><a href="#id2891920">Introduction</a></dt><dt><a href="#id2891945">How does it work?</a></dt><dt><a href="#id2890832">The smbpasswd file</a></dt></dl></dd><dt>14. <a href="#modules">Modules</a></dt><dd><dl><dt><a href="#id2891872">Advantages</a></dt><dt><a href="#id2892773">Loading modules</a></dt><dd><dl><dt><a href="#id2892806">Static modules</a></dt><dt><a href="#id2893746">Shared modules</a></dt></dl></dd><dt><a href="#id2893775">Writing modules</a></dt><dd><dl><dt><a href="#id2893837">Static/Shared selection in configure.in</a></dt></dl></dd></dl></dd><dt>15. <a href="#rpc-plugin">RPC Pluggable Modules</a></dt><dd><dl><dt><a href="#id2892540">About</a></dt><dt><a href="#id2892559">General Overview</a></dt></dl></dd><dt>16. <a href="#vfs">VFS Modules</a></dt><dd><dl><dt><a href="#id2894852">The Samba (Posix) VFS layer</a></dt><dd><dl><dt><a href="#id2894859">The general interface</a></dt><dt><a href="#id2894974">Possible VFS operation layers</a></dt></dl></dd><dt><a href="#id2895046">The Interaction between the Samba VFS subsystem and the modules</a></dt><dd><dl><dt><a href="#id2895054">Initialization and registration</a></dt><dt><a href="#id2895246">How the Modules handle per connection data</a></dt></dl></dd><dt><a href="#id2895490">Upgrading to the New VFS Interface</a></dt><dd><dl><dt><a href="#id2895497">Upgrading from 2.2.* and 3.0aplha modules</a></dt></dl></dd><dt><a href="#id2896037">Some Notes</a></dt><dd><dl><dt><a href="#id2896044">Implement TRANSPARENT functions</a></dt><dt><a href="#id2896069">Implement OPAQUE functions</a></dt></dl></dd></dl></dd><dt>17. <a href="#Packaging">Notes to packagers</a></dt><dd><dl><dt><a href="#id2894645">Versioning</a></dt><dt><a href="#id2894678">Modules</a></dt></dl></dd><dt>18. <a href="#contributing">Contributing code</a></dt></dl></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="netbios"></a>Chapter 1. Definition of NetBIOS Protocol and Name Resolution Modes</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Luke</span> <span class="surname">Leighton</span></h3></div></div><div><p class="pubdate">12 June 1997</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2797526">NETBIOS</a></dt><dt><a href="#id2866011">BROADCAST NetBIOS</a></dt><dt><a href="#id2866042">NBNS NetBIOS</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2797526"></a>NETBIOS</h2></div></div><div></div></div><p>
+</a></dt></dl></dd><dt>11. <a href="#wins">Samba WINS Internals</a></dt><dd><dl><dt><a href="#id2888880">WINS Failover</a></dt></dl></dd><dt>12. <a href="#sam">The Upcoming SAM System</a></dt><dd><dl><dt><a href="#id2888557">Security in the 'new SAM'</a></dt><dt><a href="#id2888685">Standalone from UNIX</a></dt><dt><a href="#id2888711">Handles and Races in the new SAM</a></dt><dt><a href="#id2888780">Layers</a></dt><dd><dl><dt><a href="#id2888787">Application</a></dt><dt><a href="#id2888803">SAM Interface</a></dt><dt><a href="#id2888829">SAM Modules</a></dt></dl></dd><dt><a href="#id2888851">SAM Modules</a></dt><dd><dl><dt><a href="#id2888858">Special Module: sam_passdb</a></dt><dt><a href="#id2890101">sam_ads</a></dt></dl></dd><dt><a href="#id2890131">Memory Management</a></dt><dt><a href="#id2890217">Testing</a></dt></dl></dd><dt>13. <a href="#pwencrypt">LanMan and NT Password Encryption</a></dt><dd><dl><dt><a href="#id2890947">Introduction</a></dt><dt><a href="#id2890972">How does it work?</a></dt><dt><a href="#id2891066">The smbpasswd file</a></dt></dl></dd><dt>14. <a href="#modules">Modules</a></dt><dd><dl><dt><a href="#id2892850">Advantages</a></dt><dt><a href="#id2892895">Loading modules</a></dt><dd><dl><dt><a href="#id2892925">Static modules</a></dt><dt><a href="#id2892965">Shared modules</a></dt></dl></dd><dt><a href="#id2892994">Writing modules</a></dt><dd><dl><dt><a href="#id2893054">Static/Shared selection in configure.in</a></dt></dl></dd></dl></dd><dt>15. <a href="#rpc-plugin">RPC Pluggable Modules</a></dt><dd><dl><dt><a href="#id2893212">About</a></dt><dt><a href="#id2893231">General Overview</a></dt></dl></dd><dt>16. <a href="#vfs">VFS Modules</a></dt><dd><dl><dt><a href="#id2895474">The Samba (Posix) VFS layer</a></dt><dd><dl><dt><a href="#id2895481">The general interface</a></dt><dt><a href="#id2895581">Possible VFS operation layers</a></dt></dl></dd><dt><a href="#id2895645">The Interaction between the Samba VFS subsystem and the modules</a></dt><dd><dl><dt><a href="#id2895653">Initialization and registration</a></dt><dt><a href="#id2891713">How the Modules handle per connection data</a></dt></dl></dd><dt><a href="#id2891932">Upgrading to the New VFS Interface</a></dt><dd><dl><dt><a href="#id2893534">Upgrading from 2.2.* and 3.0aplha modules</a></dt></dl></dd><dt><a href="#id2893946">Some Notes</a></dt><dd><dl><dt><a href="#id2893953">Implement TRANSPARENT functions</a></dt><dt><a href="#id2893976">Implement OPAQUE functions</a></dt></dl></dd></dl></dd><dt>17. <a href="#Packaging">Notes to packagers</a></dt><dd><dl><dt><a href="#id2894041">Versioning</a></dt><dt><a href="#id2894070">Modules</a></dt></dl></dd><dt>18. <a href="#contributing">Contributing code</a></dt></dl></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="netbios"></a>Chapter 1. Definition of NetBIOS Protocol and Name Resolution Modes</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Luke</span> <span class="surname">Leighton</span></h3></div></div><div><p class="pubdate">12 June 1997</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2801706">NETBIOS</a></dt><dt><a href="#id2801790">BROADCAST NetBIOS</a></dt><dt><a href="#id2801821">NBNS NetBIOS</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2801706"></a>NETBIOS</h2></div></div><div></div></div><p>
NetBIOS runs over the following tranports: TCP/IP; NetBEUI and IPX/SPX.
Samba only uses NetBIOS over TCP/IP. For details on the TCP/IP NetBIOS
Session Service NetBIOS Datagram Service, and NetBIOS Names, see
@@ -78,7 +78,7 @@ NetBIOS names are either UNIQUE or GROUP. Only one application can claim a
UNIQUE NetBIOS name on a network.
</p><p>
There are two kinds of NetBIOS Name resolution: Broadcast and Point-to-Point.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2866011"></a>BROADCAST NetBIOS</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2801790"></a>BROADCAST NetBIOS</h2></div></div><div></div></div><p>
Clients can claim names, and therefore offer services on successfully claimed
names, on their broadcast-isolated subnet. One way to get NetBIOS services
(such as browsing: see ftp.microsoft.com/drg/developr/CIFS/browdiff.txt; and
@@ -90,7 +90,7 @@ find that some of your hosts spend 95 percent of their time dealing with
broadcast traffic. [If you have IPX/SPX on your LAN or WAN, you will find
that this is already happening: a packet analyzer will show, roughly
every twelve minutes, great swathes of broadcast traffic!].
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2866042"></a>NBNS NetBIOS</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2801821"></a>NBNS NetBIOS</h2></div></div><div></div></div><p>
rfc1001.txt describes, amongst other things, the implementation and use
of, a 'NetBIOS Name Service'. NT/AS offers 'Windows Internet Name Service'
which is fully rfc1001/2 compliant, but has had to take specific action
@@ -131,7 +131,7 @@ WINS Clients therefore claim names from the WINS server. If the WINS
server allows them to register a name, the client's NetBIOS session service
can then offer services on this name. Other WINS clients will then
contact the WINS server to resolve a NetBIOS name.
-</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="architecture"></a>Chapter 2. Samba Architecture</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Dan</span> <span class="surname">Shearer</span></h3></div></div><div><p class="pubdate"> November 1997</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2797150">Introduction</a></dt><dt><a href="#id2797202">Multithreading and Samba</a></dt><dt><a href="#id2797240">Threading smbd</a></dt><dt><a href="#id2797314">Threading nmbd</a></dt><dt><a href="#id2797382">nbmd Design</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2797150"></a>Introduction</h2></div></div><div></div></div><p>
+</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="architecture"></a>Chapter 2. Samba Architecture</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Dan</span> <span class="surname">Shearer</span></h3></div></div><div><p class="pubdate"> November 1997</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2800444">Introduction</a></dt><dt><a href="#id2800493">Multithreading and Samba</a></dt><dt><a href="#id2800530">Threading smbd</a></dt><dt><a href="#id2800121">Threading nmbd</a></dt><dt><a href="#id2800174">nbmd Design</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2800444"></a>Introduction</h2></div></div><div></div></div><p>
This document gives a general overview of how Samba works
internally. The Samba Team has tried to come up with a model which is
the best possible compromise between elegance, portability, security
@@ -142,7 +142,7 @@ It also tries to answer some of the frequently asked questions such as:
</p><div class="orderedlist"><ol type="1"><li><p>
Is Samba secure when running on Unix? The xyz platform?
What about the root priveliges issue?
-</p></li><li><p>Pros and cons of multithreading in various parts of Samba</p></li><li><p>Why not have a separate process for name resolution, WINS, and browsing?</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2797202"></a>Multithreading and Samba</h2></div></div><div></div></div><p>
+</p></li><li><p>Pros and cons of multithreading in various parts of Samba</p></li><li><p>Why not have a separate process for name resolution, WINS, and browsing?</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2800493"></a>Multithreading and Samba</h2></div></div><div></div></div><p>
People sometimes tout threads as a uniformly good thing. They are very
nice in their place but are quite inappropriate for smbd. nmbd is
another matter, and multi-threading it would be very nice.
@@ -159,7 +159,7 @@ smbd multi-threaded. Multi-threading would actually make Samba much
slower, less scalable, less portable and much less robust. The fact
that we use a separate process for each connection is one of Samba's
biggest advantages.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2797240"></a>Threading smbd</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2800530"></a>Threading smbd</h2></div></div><div></div></div><p>
A few problems that would arise from a threaded smbd are:
</p><div class="orderedlist"><ol type="1"><li><p>
It's not only to create threads instead of processes, but you
@@ -184,7 +184,7 @@ A few problems that would arise from a threaded smbd are:
</p></li><li><p>
we couldn't use the system locking calls as the locking context of
fcntl() is a process, not a thread.
-</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2797314"></a>Threading nmbd</h2></div></div><div></div></div><p>
+</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2800121"></a>Threading nmbd</h2></div></div><div></div></div><p>
This would be ideal, but gets sunk by portability requirements.
</p><p>
Andrew tried to write a test threads library for nmbd that used only
@@ -211,7 +211,7 @@ packet that arrives. Having a pool of processes is possible but is
nasty to program cleanly due to the enormous amount of shared data (in
complex structures) between the processes. We can't rely on each
platform having a shared memory system.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2797382"></a>nbmd Design</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2800174"></a>nbmd Design</h2></div></div><div></div></div><p>
Originally Andrew used recursion to simulate a multi-threaded
environment, which use the stack enormously and made for really
confusing debugging sessions. Luke Leighton rewrote it to use a
@@ -232,7 +232,7 @@ keeps the idea of a distinct packet. See &quot;struct packet_struct&quot; in
nameserv.h. It has all the detail but none of the on-the-wire
mess. This makes it ideal for using in disk or memory-based databases
for browsing and WINS support.
-</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="debug"></a>Chapter 3. The samba DEBUG system</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Chris</span> <span class="surname">Hertel</span></h3></div></div><div><p class="pubdate">July 1998</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2796808">New Output Syntax</a></dt><dt><a href="#id2796946">The DEBUG() Macro</a></dt><dt><a href="#id2867248">The DEBUGADD() Macro</a></dt><dt><a href="#id2867293">The DEBUGLVL() Macro</a></dt><dt><a href="#id2867398">New Functions</a></dt><dd><dl><dt><a href="#id2867405">dbgtext()</a></dt><dt><a href="#id2867425">dbghdr()</a></dt><dt><a href="#id2867448">format_debug_text()</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2796808"></a>New Output Syntax</h2></div></div><div></div></div><p>
+</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="debug"></a>Chapter 3. The samba DEBUG system</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Chris</span> <span class="surname">Hertel</span></h3></div></div><div><p class="pubdate">July 1998</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2799483">New Output Syntax</a></dt><dt><a href="#id2799606">The DEBUG() Macro</a></dt><dt><a href="#id2799736">The DEBUGADD() Macro</a></dt><dt><a href="#id2799781">The DEBUGLVL() Macro</a></dt><dt><a href="#id2799887">New Functions</a></dt><dd><dl><dt><a href="#id2799894">dbgtext()</a></dt><dt><a href="#id2799913">dbghdr()</a></dt><dt><a href="#id2799936">format_debug_text()</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2799483"></a>New Output Syntax</h2></div></div><div></div></div><p>
The syntax of a debugging log file is represented as:
</p><pre class="programlisting">
&gt;debugfile&lt; :== { &gt;debugmsg&lt; }
@@ -285,7 +285,7 @@ by a newline.
Note that in the above example the function names are not listed on
the header line. That's because the example above was generated on an
SGI Indy, and the SGI compiler doesn't support the __FUNCTION__ macro.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2796946"></a>The DEBUG() Macro</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2799606"></a>The DEBUG() Macro</h2></div></div><div></div></div><p>
Use of the DEBUG() macro is unchanged. DEBUG() takes two parameters.
The first is the message level, the second is the body of a function
call to the Debug1() function.
@@ -336,7 +336,7 @@ would look like this:
[1998/07/30 16:00:51, 0] file.c:function(261)
.
</pre><p>Which isn't much use. The format buffer kludge fixes this problem.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2867248"></a>The DEBUGADD() Macro</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2799736"></a>The DEBUGADD() Macro</h2></div></div><div></div></div><p>
In addition to the kludgey solution to the broken line problem
described above, there is a clean solution. The DEBUGADD() macro never
generates a header. It will append new text to the current debug
@@ -350,7 +350,7 @@ DEBUGADD() macro is the same as that of the DEBUG() macro.
This is the first line.
This is the second line.
This is the third line.
-</pre></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2867293"></a>The DEBUGLVL() Macro</h2></div></div><div></div></div><p>
+</pre></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2799781"></a>The DEBUGLVL() Macro</h2></div></div><div></div></div><p>
One of the problems with the DEBUG() macro was that DEBUG() lines
tended to get a bit long. Consider this example from
nmbd_sendannounce.c:
@@ -385,7 +385,7 @@ within the DEBUGLVL() block.
</p></li><li><p>
Processing that is only relevant to debug output can be contained
within the DEBUGLVL() block.
-</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2867398"></a>New Functions</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2867405"></a>dbgtext()</h3></div></div><div></div></div><p>
+</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2799887"></a>New Functions</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2799894"></a>dbgtext()</h3></div></div><div></div></div><p>
This function prints debug message text to the debug file (and
possibly to syslog) via the format buffer. The function uses a
variable argument list just like printf() or Debug1(). The
@@ -394,7 +394,7 @@ and then passed to format_debug_text().
If you use DEBUGLVL() you will probably print the body of the
message using dbgtext().
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2867425"></a>dbghdr()</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2799913"></a>dbghdr()</h3></div></div><div></div></div><p>
This is the function that writes a debug message header.
Headers are not processed via the format buffer. Also note that
if the format buffer is not empty, a call to dbghdr() will not
@@ -402,7 +402,7 @@ produce any output. See the comments in dbghdr() for more info.
</p><p>
It is not likely that this function will be called directly. It
is used by DEBUG() and DEBUGADD().
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2867448"></a>format_debug_text()</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2799936"></a>format_debug_text()</h3></div></div><div></div></div><p>
This is a static function in debug.c. It stores the output text
for the body of the message in a buffer until it encounters a
newline. When the newline character is found, the buffer is
@@ -553,7 +553,7 @@ The suggestions above are simply that, suggestions, but the information may
help in reducing the routine rework done on new code. The preceeding list
is expected to change routinely as new support routines and macros are
added.
-</p></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="internals"></a>Chapter 5. Samba Internals</h2></div><div><div class="author"><h3 class="author"><span class="firstname">David</span> <span class="surname">Chappell</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:David.Chappell@mail.trincoll.edu">David.Chappell@mail.trincoll.edu</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">8 May 1996</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2866821">Character Handling</a></dt><dt><a href="#id2866847">The new functions</a></dt><dt><a href="#id2868099">Macros in byteorder.h</a></dt><dd><dl><dt><a href="#id2869024">CVAL(buf,pos)</a></dt><dt><a href="#id2869037">PVAL(buf,pos)</a></dt><dt><a href="#id2869051">SCVAL(buf,pos,val)</a></dt><dt><a href="#id2869064">SVAL(buf,pos)</a></dt><dt><a href="#id2869080">IVAL(buf,pos)</a></dt><dt><a href="#id2869094">SVALS(buf,pos)</a></dt><dt><a href="#id2869109">IVALS(buf,pos)</a></dt><dt><a href="#id2869123">SSVAL(buf,pos,val)</a></dt><dt><a href="#id2869138">SIVAL(buf,pos,val)</a></dt><dt><a href="#id2869152">SSVALS(buf,pos,val)</a></dt><dt><a href="#id2869166">SIVALS(buf,pos,val)</a></dt><dt><a href="#id2869181">RSVAL(buf,pos)</a></dt><dt><a href="#id2869195">RIVAL(buf,pos)</a></dt><dt><a href="#id2869210">RSSVAL(buf,pos,val)</a></dt><dt><a href="#id2869225">RSIVAL(buf,pos,val)</a></dt></dl></dd><dt><a href="#id2869240">LAN Manager Samba API</a></dt><dd><dl><dt><a href="#id2869276">Parameters</a></dt><dt><a href="#id2869427">Return value</a></dt></dl></dd><dt><a href="#id2869512">Code character table</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2866821"></a>Character Handling</h2></div></div><div></div></div><p>
+</p></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="internals"></a>Chapter 5. Samba Internals</h2></div><div><div class="author"><h3 class="author"><span class="firstname">David</span> <span class="surname">Chappell</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:David.Chappell@mail.trincoll.edu">David.Chappell@mail.trincoll.edu</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">8 May 1996</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2867396">Character Handling</a></dt><dt><a href="#id2867421">The new functions</a></dt><dt><a href="#id2866034">Macros in byteorder.h</a></dt><dd><dl><dt><a href="#id2866047">CVAL(buf,pos)</a></dt><dt><a href="#id2866061">PVAL(buf,pos)</a></dt><dt><a href="#id2866075">SCVAL(buf,pos,val)</a></dt><dt><a href="#id2866088">SVAL(buf,pos)</a></dt><dt><a href="#id2866101">IVAL(buf,pos)</a></dt><dt><a href="#id2866115">SVALS(buf,pos)</a></dt><dt><a href="#id2866130">IVALS(buf,pos)</a></dt><dt><a href="#id2866144">SSVAL(buf,pos,val)</a></dt><dt><a href="#id2866158">SIVAL(buf,pos,val)</a></dt><dt><a href="#id2866173">SSVALS(buf,pos,val)</a></dt><dt><a href="#id2866187">SIVALS(buf,pos,val)</a></dt><dt><a href="#id2866201">RSVAL(buf,pos)</a></dt><dt><a href="#id2867059">RIVAL(buf,pos)</a></dt><dt><a href="#id2867074">RSSVAL(buf,pos,val)</a></dt><dt><a href="#id2867089">RSIVAL(buf,pos,val)</a></dt></dl></dd><dt><a href="#id2867105">LAN Manager Samba API</a></dt><dd><dl><dt><a href="#id2867139">Parameters</a></dt><dt><a href="#id2867290">Return value</a></dt></dl></dd><dt><a href="#id2867973">Code character table</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2867396"></a>Character Handling</h2></div></div><div></div></div><p>
This section describes character set handling in Samba, as implemented in
Samba 3.0 and above
</p><p>
@@ -563,7 +563,7 @@ strings to/from DOS codepages. The problem is that there was no way of
telling if a particular char* is in dos codepage or unix
codepage. This led to a nightmare of code that tried to cope with
particular cases without handlingt the general case.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2866847"></a>The new functions</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2867421"></a>The new functions</h2></div></div><div></div></div><p>
The new system works like this:
</p><div class="orderedlist"><ol type="1"><li><p>
all char* strings inside Samba are &quot;unix&quot; strings. These are
@@ -625,41 +625,41 @@ The new system works like this:
parameters is gone.
</p></li><li><p>
all vfs functions take unix strings. Don't convert when passing to them
-</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2868099"></a>Macros in byteorder.h</h2></div></div><div></div></div><p>
+</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2866034"></a>Macros in byteorder.h</h2></div></div><div></div></div><p>
This section describes the macros defined in byteorder.h. These macros
are used extensively in the Samba code.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869024"></a>CVAL(buf,pos)</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866047"></a>CVAL(buf,pos)</h3></div></div><div></div></div><p>
returns the byte at offset pos within buffer buf as an unsigned character.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869037"></a>PVAL(buf,pos)</h3></div></div><div></div></div><p>returns the value of CVAL(buf,pos) cast to type unsigned integer.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869051"></a>SCVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the byte at offset pos within buffer buf to value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869064"></a>SVAL(buf,pos)</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866061"></a>PVAL(buf,pos)</h3></div></div><div></div></div><p>returns the value of CVAL(buf,pos) cast to type unsigned integer.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866075"></a>SCVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the byte at offset pos within buffer buf to value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866088"></a>SVAL(buf,pos)</h3></div></div><div></div></div><p>
returns the value of the unsigned short (16 bit) little-endian integer at
offset pos within buffer buf. An integer of this type is sometimes
refered to as &quot;USHORT&quot;.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869080"></a>IVAL(buf,pos)</h3></div></div><div></div></div><p>returns the value of the unsigned 32 bit little-endian integer at offset
-pos within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869094"></a>SVALS(buf,pos)</h3></div></div><div></div></div><p>returns the value of the signed short (16 bit) little-endian integer at
-offset pos within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869109"></a>IVALS(buf,pos)</h3></div></div><div></div></div><p>returns the value of the signed 32 bit little-endian integer at offset pos
-within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869123"></a>SSVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the unsigned short (16 bit) little-endian integer at offset pos within
-buffer buf to value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869138"></a>SIVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the unsigned 32 bit little-endian integer at offset pos within buffer
-buf to the value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869152"></a>SSVALS(buf,pos,val)</h3></div></div><div></div></div><p>sets the short (16 bit) signed little-endian integer at offset pos within
-buffer buf to the value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869166"></a>SIVALS(buf,pos,val)</h3></div></div><div></div></div><p>sets the signed 32 bit little-endian integer at offset pos withing buffer
-buf to the value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869181"></a>RSVAL(buf,pos)</h3></div></div><div></div></div><p>returns the value of the unsigned short (16 bit) big-endian integer at
-offset pos within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869195"></a>RIVAL(buf,pos)</h3></div></div><div></div></div><p>returns the value of the unsigned 32 bit big-endian integer at offset
-pos within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869210"></a>RSSVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the value of the unsigned short (16 bit) big-endian integer at
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866101"></a>IVAL(buf,pos)</h3></div></div><div></div></div><p>returns the value of the unsigned 32 bit little-endian integer at offset
+pos within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866115"></a>SVALS(buf,pos)</h3></div></div><div></div></div><p>returns the value of the signed short (16 bit) little-endian integer at
+offset pos within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866130"></a>IVALS(buf,pos)</h3></div></div><div></div></div><p>returns the value of the signed 32 bit little-endian integer at offset pos
+within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866144"></a>SSVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the unsigned short (16 bit) little-endian integer at offset pos within
+buffer buf to value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866158"></a>SIVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the unsigned 32 bit little-endian integer at offset pos within buffer
+buf to the value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866173"></a>SSVALS(buf,pos,val)</h3></div></div><div></div></div><p>sets the short (16 bit) signed little-endian integer at offset pos within
+buffer buf to the value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866187"></a>SIVALS(buf,pos,val)</h3></div></div><div></div></div><p>sets the signed 32 bit little-endian integer at offset pos withing buffer
+buf to the value val.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2866201"></a>RSVAL(buf,pos)</h3></div></div><div></div></div><p>returns the value of the unsigned short (16 bit) big-endian integer at
+offset pos within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2867059"></a>RIVAL(buf,pos)</h3></div></div><div></div></div><p>returns the value of the unsigned 32 bit big-endian integer at offset
+pos within buffer buf.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2867074"></a>RSSVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the value of the unsigned short (16 bit) big-endian integer at
offset pos within buffer buf to value val.
-refered to as &quot;USHORT&quot;.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869225"></a>RSIVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the value of the unsigned 32 bit big-endian integer at offset
-pos within buffer buf to value val.</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2869240"></a>LAN Manager Samba API</h2></div></div><div></div></div><p>
+refered to as &quot;USHORT&quot;.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2867089"></a>RSIVAL(buf,pos,val)</h3></div></div><div></div></div><p>sets the value of the unsigned 32 bit big-endian integer at offset
+pos within buffer buf to value val.</p></div></div><div xmlns:ns2="" class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2867105"></a>LAN Manager Samba API</h2></div></div><div></div></div><p>
This section describes the functions need to make a LAN Manager RPC call.
This information had been obtained by examining the Samba code and the LAN
Manager 2.0 API documentation. It should not be considered entirely
reliable.
-</p><p>
-</p><pre class="programlisting">
+</p><ns2:p>
+</ns2:p><pre class="programlisting">
call_api(int prcnt, int drcnt, int mprcnt, int mdrcnt,
char *param, char *data, char **rparam, char **rdata);
-</pre><p>
-</p><p>
+</pre><ns2:p>
+</ns2:p><p>
This function is defined in client.c. It uses an SMB transaction to call a
remote api.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869276"></a>Parameters</h3></div></div><div></div></div><p>The parameters are as follows:</p><div class="orderedlist"><ol type="1"><li><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2867139"></a>Parameters</h3></div></div><div></div></div><p>The parameters are as follows:</p><div class="orderedlist"><ol type="1"><li><p>
prcnt: the number of bytes of parameters begin sent.
</p></li><li><p>
drcnt: the number of bytes of data begin sent.
@@ -704,7 +704,7 @@ substructures apply, this string is of zero length.
</p></li></ol></div><p>
The code in client.c always calls call_api() with no data. It is unclear
when a non-zero length data buffer would be sent.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869427"></a>Return value</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2867290"></a>Return value</h3></div></div><div></div></div><p>
The returned parameters (pointed to by rparam), in their order of appearance
are:</p><div class="orderedlist"><ol type="1"><li><p>
An unsigned 16 bit integer which contains the API function's return code.
@@ -735,7 +735,7 @@ fix_char_ptr() in client.c can be used for this purpose.
The third parameter (which may be read as &quot;SVAL(rparam,4)&quot;) has something to
do with indicating the amount of data returned or possibly the amount of
data which can be returned if enough buffer space is allowed.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2869512"></a>Code character table</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2867973"></a>Code character table</h2></div></div><div></div></div><p>
Certain data structures are described by means of ASCIIz strings containing
code characters. These are the code characters:
</p><div class="orderedlist"><ol type="1"><li><p>
@@ -758,7 +758,7 @@ r pointer to returned data buffer???
L length in bytes of returned data buffer???
</p></li><li><p>
h number of bytes of information available???
-</p></li></ol></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="parsing"></a>Chapter 6. The smb.conf file</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Chris</span> <span class="surname">Hertel</span></h3></div></div><div><p class="pubdate">November 1997</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2868851">Lexical Analysis</a></dt><dd><dl><dt><a href="#id2868944">Handling of Whitespace</a></dt><dt><a href="#id2869000">Handling of Line Continuation</a></dt><dt><a href="#id2870660">Line Continuation Quirks</a></dt></dl></dd><dt><a href="#id2870758">Syntax</a></dt><dd><dl><dt><a href="#id2870829">About params.c</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2868851"></a>Lexical Analysis</h2></div></div><div></div></div><p>
+</p></li></ol></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="parsing"></a>Chapter 6. The smb.conf file</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Chris</span> <span class="surname">Hertel</span></h3></div></div><div><p class="pubdate">November 1997</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2868095">Lexical Analysis</a></dt><dd><dl><dt><a href="#id2868180">Handling of Whitespace</a></dt><dt><a href="#id2868234">Handling of Line Continuation</a></dt><dt><a href="#id2868297">Line Continuation Quirks</a></dt></dl></dd><dt><a href="#id2868394">Syntax</a></dt><dd><dl><dt><a href="#id2869245">About params.c</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2868095"></a>Lexical Analysis</h2></div></div><div></div></div><p>
Basically, the file is processed on a line by line basis. There are
four types of lines that are recognized by the lexical analyzer
(params.c):
@@ -785,7 +785,7 @@ ignores them. The latter two line types are scanned for
These are the only tokens passed to the parameter loader
(loadparm.c). Parameter names and values are divided from one
another by an equal sign: '='.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2868944"></a>Handling of Whitespace</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2868180"></a>Handling of Whitespace</h3></div></div><div></div></div><p>
Whitespace is defined as all characters recognized by the isspace()
function (see ctype(3C)) except for the newline character ('\n')
The newline is excluded because it identifies the end of the line.
@@ -800,7 +800,7 @@ the exception of carriage return characters ('\r'), all of which
are removed.
</p></li><li><p>
Leading and trailing whitespace is removed from names and values.
-</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869000"></a>Handling of Line Continuation</h3></div></div><div></div></div><p>
+</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2868234"></a>Handling of Line Continuation</h3></div></div><div></div></div><p>
Long section header and parameter lines may be extended across
multiple lines by use of the backslash character ('\\'). Line
continuation is ignored for blank and comment lines.
@@ -823,7 +823,7 @@ line, plus the four preceeding the word 'with' in the second line.
Line continuation characters are ignored on blank lines and at the end
of comments. They are *only* recognized within section and parameter
lines.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2870660"></a>Line Continuation Quirks</h3></div></div><div></div></div><p>Note the following example:</p><pre class="programlisting">
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2868297"></a>Line Continuation Quirks</h3></div></div><div></div></div><p>Note the following example:</p><pre class="programlisting">
param name = parameter value string \
\
with line continuation.
@@ -847,7 +847,7 @@ terminating character, and the rest of the line is ignored. The lines
</pre><p>are read as</p><pre class="programlisting">
[section name]
param name = value
-</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2870758"></a>Syntax</h2></div></div><div></div></div><p>The syntax of the smb.conf file is as follows:</p><pre class="programlisting">
+</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2868394"></a>Syntax</h2></div></div><div></div></div><p>The syntax of the smb.conf file is as follows:</p><pre class="programlisting">
&lt;file&gt; :== { &lt;section&gt; } EOF
&lt;section&gt; :== &lt;section header&gt; { &lt;parameter line&gt; }
&lt;section header&gt; :== '[' NAME ']'
@@ -866,12 +866,12 @@ terminating character, and the rest of the line is ignored. The lines
A parameter line is divided into a NAME and a VALUE. The *first*
equal sign on the line separates the NAME from the VALUE. The
VALUE is terminated by a newline character (NL = '\n').
-</p></li></ol></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2870829"></a>About params.c</h3></div></div><div></div></div><p>
+</p></li></ol></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2869245"></a>About params.c</h3></div></div><div></div></div><p>
The parsing of the config file is a bit unusual if you are used to
lex, yacc, bison, etc. Both lexical analysis (scanning) and parsing
are performed by params.c. Values are loaded via callbacks to
loadparm.c.
-</p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="unix-smb"></a>Chapter 7. NetBIOS in a Unix World</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Andrew</span> <span class="surname">Tridgell</span></h3></div></div><div><p class="pubdate">April 1995</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2870276">Introduction</a></dt><dt><a href="#id2870301">Usernames</a></dt><dt><a href="#id2870529">File Ownership</a></dt><dt><a href="#id2870566">Passwords</a></dt><dt><a href="#id2870604">Locking</a></dt><dt><a href="#id2871543">Deny Modes</a></dt><dt><a href="#id2871573">Trapdoor UIDs</a></dt><dt><a href="#id2871598">Port numbers</a></dt><dt><a href="#id2871644">Protocol Complexity</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2870276"></a>Introduction</h2></div></div><div></div></div><p>
+</p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="unix-smb"></a>Chapter 7. NetBIOS in a Unix World</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Andrew</span> <span class="surname">Tridgell</span></h3></div></div><div><p class="pubdate">April 1995</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2869924">Introduction</a></dt><dt><a href="#id2869945">Usernames</a></dt><dt><a href="#id2870011">File Ownership</a></dt><dt><a href="#id2870047">Passwords</a></dt><dt><a href="#id2869310">Locking</a></dt><dt><a href="#id2869371">Deny Modes</a></dt><dt><a href="#id2869402">Trapdoor UIDs</a></dt><dt><a href="#id2869427">Port numbers</a></dt><dt><a href="#id2869472">Protocol Complexity</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2869924"></a>Introduction</h2></div></div><div></div></div><p>
This is a short document that describes some of the issues that
confront a SMB implementation on unix, and how Samba copes with
them. They may help people who are looking at unix&lt;-&gt;PC
@@ -879,7 +879,7 @@ interoperability.
</p><p>
It was written to help out a person who was writing a paper on unix to
PC connectivity.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2870301"></a>Usernames</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2869945"></a>Usernames</h2></div></div><div></div></div><p>
The SMB protocol has only a loose username concept. Early SMB
protocols (such as CORE and COREPLUS) have no username concept at
all. Even in later protocols clients often attempt operations
@@ -916,7 +916,7 @@ in the vast majority of cases. The methods include username maps, the
service%user syntax, the saving of session setup usernames for later
validation and the derivation of the username from the service name
(either directly or via the user= option).
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2870529"></a>File Ownership</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2870011"></a>File Ownership</h2></div></div><div></div></div><p>
The commonly used SMB protocols have no way of saying &quot;you can't do
that because you don't own the file&quot;. They have, in fact, no concept
of file ownership at all.
@@ -934,7 +934,7 @@ file time comparisons right.
There are several possible solutions to this problem, including
username mapping, and forcing a specific username for particular
shares.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2870566"></a>Passwords</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2870047"></a>Passwords</h2></div></div><div></div></div><p>
Many SMB clients uppercase passwords before sending them. I have no
idea why they do this. Interestingly WfWg uppercases the password only
if the server is running a protocol greater than COREPLUS, so
@@ -956,7 +956,7 @@ This means that it is *VERY* important to ensure that the Samba
smbpasswd file containing these password hashes is only readable
by the root user. See the documentation ENCRYPTION.txt for more
details.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2870604"></a>Locking</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2869310"></a>Locking</h2></div></div><div></div></div><p>
Since samba 2.2, samba supports other types of locking as well. This
section is outdated.
</p><p>
@@ -987,7 +987,7 @@ asking the server to notify it if anyone else tries to do something on
the same file, at which time the client will say if it is willing to
give up its lock. Unix has no simple way of implementing
opportunistic locking, and currently Samba has no support for it.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2871543"></a>Deny Modes</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2869371"></a>Deny Modes</h2></div></div><div></div></div><p>
When a SMB client opens a file it asks for a particular &quot;deny mode&quot; to
be placed on the file. These modes (DENY_NONE, DENY_READ, DENY_WRITE,
DENY_ALL, DENY_FCB and DENY_DOS) specify what actions should be
@@ -1001,7 +1001,7 @@ directory or a shared memory implementation. The lock file method
is clumsy and consumes processing and file resources,
the shared memory implementation is vastly prefered and is turned on
by default for those systems that support it.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2871573"></a>Trapdoor UIDs</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2869402"></a>Trapdoor UIDs</h2></div></div><div></div></div><p>
A SMB session can run with several uids on the one socket. This
happens when a user connects to two shares with different
usernames. To cope with this the unix server needs to switch uids
@@ -1011,7 +1011,7 @@ a single uid.
</p><p>
Note that you can also get the &quot;trapdoor uid&quot; message for other
reasons. Please see the FAQ for details.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2871598"></a>Port numbers</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2869427"></a>Port numbers</h2></div></div><div></div></div><p>
There is a convention that clients on sockets use high &quot;unprivilaged&quot;
port numbers (&gt;1000) and connect to servers on low &quot;privilaged&quot; port
numbers. This is enforced in Unix as non-root users can't open a
@@ -1034,7 +1034,7 @@ to any of these OSes unless they are running as root. The answer comes
back, but it goes to port 137 which the unix user can't listen
on. Interestingly WinNT3.1 got this right - it sends node status
responses back to the source port in the request.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2871644"></a>Protocol Complexity</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2869472"></a>Protocol Complexity</h2></div></div><div></div></div><p>
There are many &quot;protocol levels&quot; in the SMB protocol. It seems that
each time new functionality was added to a Microsoft operating system,
they added the equivalent functions in a new protocol level of the SMB
@@ -1148,7 +1148,7 @@ causes printing to fail with Samba:
The process is trying to first open <tt class="filename">/dev/null</tt> read-write
then read-only. Both fail. This means <tt class="filename">/dev/null</tt> has
incorrect permissions.
-</p></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="ntdomain"></a>Chapter 9. NT Domain RPC's</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Luke</span> <span class="surname">Leighton</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:lkcl@switchboard.net">lkcl@switchboard.net</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Paul</span> <span class="surname">Ashton</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:paul@argo.demon.co.uk">paul@argo.demon.co.uk</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Duncan</span> <span class="surname">Stansfield</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:duncans@sco.com">duncans@sco.com</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">01 November 97(version 0.0.24)</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2871220">Introduction</a></dt><dd><dl><dt><a href="#id2872245">Sources</a></dt><dt><a href="#id2872278">Credits</a></dt></dl></dd><dt><a href="#id2872317">Notes and Structures</a></dt><dd><dl><dt><a href="#id2872324">Notes</a></dt><dt><a href="#id2873087">Enumerations</a></dt><dt><a href="#id2873300">Structures</a></dt></dl></dd><dt><a href="#id2876250">MSRPC over Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2876262">MSRPC Pipes</a></dt><dt><a href="#id2876365">Header</a></dt><dt><a href="#id2877236">Tail</a></dt><dt><a href="#id2877281">RPC Bind / Bind Ack</a></dt><dt><a href="#id2877461">NTLSA Transact Named Pipe</a></dt><dt><a href="#id2877626">LSA Open Policy</a></dt><dt><a href="#id2877752">LSA Query Info Policy</a></dt><dt><a href="#id2877858">LSA Enumerate Trusted Domains</a></dt><dt><a href="#id2877950">LSA Open Secret</a></dt><dt><a href="#id2878060">LSA Close</a></dt><dt><a href="#id2878126">LSA Lookup SIDS</a></dt><dt><a href="#id2878335">LSA Lookup Names</a></dt></dl></dd><dt><a href="#id2878561">NETLOGON rpc Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2878722">LSA Request Challenge</a></dt><dt><a href="#id2878856">LSA Authenticate 2</a></dt><dt><a href="#id2879004">LSA Server Password Set</a></dt><dt><a href="#id2879119">LSA SAM Logon</a></dt><dt><a href="#id2879232">LSA SAM Logoff</a></dt></dl></dd><dt><a href="#id2879324">\\MAILSLOT\NET\NTLOGON</a></dt><dd><dl><dt><a href="#id2879336">Query for PDC</a></dt><dt><a href="#id2879604">SAM Logon</a></dt></dl></dd><dt><a href="#id2879929">SRVSVC Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2879974">Net Share Enum</a></dt><dt><a href="#id2880194">Net Server Get Info</a></dt></dl></dd><dt><a href="#id2880310">Cryptographic side of NT Domain Authentication</a></dt><dd><dl><dt><a href="#id2880318">Definitions</a></dt><dt><a href="#id2880480">Protocol</a></dt><dt><a href="#id2880577">Comments</a></dt></dl></dd><dt><a href="#id2880626">SIDs and RIDs</a></dt><dd><dl><dt><a href="#id2880666">Well-known SIDs</a></dt><dt><a href="#id2880981">Well-known RIDS</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2871220"></a>Introduction</h2></div></div><div></div></div><p>
+</p></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="ntdomain"></a>Chapter 9. NT Domain RPC's</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Luke</span> <span class="surname">Leighton</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:lkcl@switchboard.net">lkcl@switchboard.net</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Paul</span> <span class="surname">Ashton</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:paul@argo.demon.co.uk">paul@argo.demon.co.uk</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Duncan</span> <span class="surname">Stansfield</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:duncans@sco.com">duncans@sco.com</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">01 November 97(version 0.0.24)</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2870486">Introduction</a></dt><dd><dl><dt><a href="#id2870684">Sources</a></dt><dt><a href="#id2870718">Credits</a></dt></dl></dd><dt><a href="#id2871306">Notes and Structures</a></dt><dd><dl><dt><a href="#id2871313">Notes</a></dt><dt><a href="#id2871388">Enumerations</a></dt><dt><a href="#id2871600">Structures</a></dt></dl></dd><dt><a href="#id2883067">MSRPC over Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2883079">MSRPC Pipes</a></dt><dt><a href="#id2883181">Header</a></dt><dt><a href="#id2884052">Tail</a></dt><dt><a href="#id2884098">RPC Bind / Bind Ack</a></dt><dt><a href="#id2884278">NTLSA Transact Named Pipe</a></dt><dt><a href="#id2884443">LSA Open Policy</a></dt><dt><a href="#id2884568">LSA Query Info Policy</a></dt><dt><a href="#id2884674">LSA Enumerate Trusted Domains</a></dt><dt><a href="#id2884766">LSA Open Secret</a></dt><dt><a href="#id2884876">LSA Close</a></dt><dt><a href="#id2884941">LSA Lookup SIDS</a></dt><dt><a href="#id2885151">LSA Lookup Names</a></dt></dl></dd><dt><a href="#id2885377">NETLOGON rpc Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2885537">LSA Request Challenge</a></dt><dt><a href="#id2885672">LSA Authenticate 2</a></dt><dt><a href="#id2885819">LSA Server Password Set</a></dt><dt><a href="#id2885934">LSA SAM Logon</a></dt><dt><a href="#id2886037">LSA SAM Logoff</a></dt></dl></dd><dt><a href="#id2886129">\\MAILSLOT\NET\NTLOGON</a></dt><dd><dl><dt><a href="#id2886146">Query for PDC</a></dt><dt><a href="#id2886407">SAM Logon</a></dt></dl></dd><dt><a href="#id2886733">SRVSVC Transact Named Pipe</a></dt><dd><dl><dt><a href="#id2886778">Net Share Enum</a></dt><dt><a href="#id2886997">Net Server Get Info</a></dt></dl></dd><dt><a href="#id2887114">Cryptographic side of NT Domain Authentication</a></dt><dd><dl><dt><a href="#id2887121">Definitions</a></dt><dt><a href="#id2887283">Protocol</a></dt><dt><a href="#id2887363">Comments</a></dt></dl></dd><dt><a href="#id2887413">SIDs and RIDs</a></dt><dd><dl><dt><a href="#id2887453">Well-known SIDs</a></dt><dt><a href="#id2887767">Well-known RIDS</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2870486"></a>Introduction</h2></div></div><div></div></div><p>
This document contains information to provide an NT workstation with login
services, without the need for an NT server. It is the sgml version of <a href="http://mailhost.cb1.com/~lkcl/cifsntdomain.txt" target="_top">http://mailhost.cb1.com/~lkcl/cifsntdomain.txt</a>, controlled by Luke.
</p><p>
@@ -1194,7 +1194,7 @@ Failure to return this error code will make the workstation report
that it is already a member of the domain.</p></li><li><p>the cryptographic side of the NetrServerPasswordSet command,
which would allow the workstation to change its password. This password is
used to generate the long-term session key. [It is possible to reject this
-command, and keep the default workstation password].</p></li></ol></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2872245"></a>Sources</h3></div></div><div></div></div><table class="simplelist" border="0" summary="Simple list"><tr><td>cket Traces from Netmonitor (Service Pack 1 and above)</td></tr><tr><td>ul Ashton and Luke Leighton's other &quot;NT Domain&quot; doc.</td></tr><tr><td>FS documentation - cifs6.txt</td></tr><tr><td>FS documentation - cifsrap2.txt</td></tr></table></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2872278"></a>Credits</h3></div></div><div></div></div><table class="simplelist" border="0" summary="Simple list"><tr><td>Paul Ashton: loads of work with Net Monitor; understanding the NT authentication system; reference implementation of the NT domain support on which this document is originally based.</td></tr><tr><td>Duncan Stansfield: low-level analysis of MSRPC Pipes.</td></tr><tr><td>Linus Nordberg: producing c-code from Paul's crypto spec.</td></tr><tr><td>Windows Sourcer development team</td></tr></table></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2872317"></a>Notes and Structures</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2872324"></a>Notes</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p>
+command, and keep the default workstation password].</p></li></ol></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2870684"></a>Sources</h3></div></div><div></div></div><table class="simplelist" border="0" summary="Simple list"><tr><td>cket Traces from Netmonitor (Service Pack 1 and above)</td></tr><tr><td>ul Ashton and Luke Leighton's other &quot;NT Domain&quot; doc.</td></tr><tr><td>FS documentation - cifs6.txt</td></tr><tr><td>FS documentation - cifsrap2.txt</td></tr></table></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2870718"></a>Credits</h3></div></div><div></div></div><table class="simplelist" border="0" summary="Simple list"><tr><td>Paul Ashton: loads of work with Net Monitor; understanding the NT authentication system; reference implementation of the NT domain support on which this document is originally based.</td></tr><tr><td>Duncan Stansfield: low-level analysis of MSRPC Pipes.</td></tr><tr><td>Linus Nordberg: producing c-code from Paul's crypto spec.</td></tr><tr><td>Windows Sourcer development team</td></tr></table></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2871306"></a>Notes and Structures</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2871313"></a>Notes</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p>
In the SMB Transact pipes, some &quot;Structures&quot;, described here, appear to be
4-byte aligned with the SMB header, at their start. Exactly which
&quot;Structures&quot; need aligning is not precisely known or documented.
@@ -1222,15 +1222,15 @@ into or taken out of the SMB data stream. if the count is non-zero, then
the pointer is also non-zero. immediately following the pointer is the
count again, followed by an array of container sub-structures. the count
appears a third time after the last sub-structure.
-</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2873087"></a>Enumerations</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873094"></a>MSRPC Header type</h4></div></div><div></div></div><p>command number in the msrpc packet header</p><div class="variablelist"><dl><dt><span class="term">MSRPC_Request:</span></dt><dd><p>0x00</p></dd><dt><span class="term">MSRPC_Response:</span></dt><dd><p>0x02</p></dd><dt><span class="term">MSRPC_Bind:</span></dt><dd><p>0x0B</p></dd><dt><span class="term">MSRPC_BindAck:</span></dt><dd><p>0x0C</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873169"></a>MSRPC Packet info</h4></div></div><div></div></div><p>The meaning of these flags is undocumented</p><div class="variablelist"><dl><dt><span class="term">FirstFrag:</span></dt><dd><p>0x01 </p></dd><dt><span class="term">LastFrag:</span></dt><dd><p>0x02 </p></dd><dt><span class="term">NotaFrag:</span></dt><dd><p>0x04 </p></dd><dt><span class="term">RecRespond:</span></dt><dd><p>0x08 </p></dd><dt><span class="term">NoMultiplex:</span></dt><dd><p>0x10 </p></dd><dt><span class="term">NotForIdemp:</span></dt><dd><p>0x20 </p></dd><dt><span class="term">NotforBcast:</span></dt><dd><p>0x40 </p></dd><dt><span class="term">NoUuid:</span></dt><dd><p>0x80 </p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2873300"></a>Structures</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873307"></a>VOID *</h4></div></div><div></div></div><p>sizeof VOID* is 32 bits.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873319"></a>char</h4></div></div><div></div></div><p>sizeof char is 8 bits.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873330"></a>UTIME</h4></div></div><div></div></div><p>UTIME is 32 bits, indicating time in seconds since 01jan1970. documented in cifs6.txt (section 3.5 page, page 30).</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873343"></a>NTTIME</h4></div></div><div></div></div><p>NTTIME is 64 bits. documented in cifs6.txt (section 3.5 page, page 30).</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873355"></a>DOM_SID (domain SID structure)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>num of sub-authorities in domain SID</p></dd><dt><span class="term">UINT8</span></dt><dd><p>SID revision number</p></dd><dt><span class="term">UINT8</span></dt><dd><p>num of sub-authorities in domain SID</p></dd><dt><span class="term">UINT8[6]</span></dt><dd><p>6 bytes for domain SID - Identifier Authority.</p></dd><dt><span class="term">UINT16[n_subauths]</span></dt><dd><p>domain SID sub-authorities</p></dd></dl></div><p><span class="emphasis"><em>Note: the domain SID is documented elsewhere.</em></span>
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873449"></a>STR (string)</h4></div></div><div></div></div><p>STR (string) is a char[] : a null-terminated string of ascii characters.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873462"></a>UNIHDR (unicode string header) </h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>length of unicode string</p></dd><dt><span class="term">UINT16</span></dt><dd><p>max length of unicode string</p></dd><dt><span class="term">UINT32</span></dt><dd><p>4 - undocumented.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873519"></a>UNIHDR2 (unicode string header plus buffer pointer)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UNIHDR</span></dt><dd><p>unicode string header</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873561"></a>UNISTR (unicode string)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16[]</span></dt><dd><p>null-terminated string of unicode characters.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873589"></a>NAME (length-indicated unicode string)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>length of unicode string</p></dd><dt><span class="term">UINT16[]</span></dt><dd><p>null-terminated string of unicode characters.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873631"></a>UNISTR2 (aligned unicode string)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT8[]</span></dt><dd><p>padding to get unicode string 4-byte aligned with the start of the SMB header.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>max length of unicode string</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>length of unicode string</p></dd><dt><span class="term">UINT16[]</span></dt><dd><p>string of uncode characters</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873717"></a>OBJ_ATTR (object attributes)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>0x18 - length (in bytes) including the length field.</p></dd><dt><span class="term">VOID*</span></dt><dd><p>0 - root directory (pointer)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>0 - object name (pointer)</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - attributes (undocumented)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>0 - security descriptior (pointer)</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - security quality of service</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873810"></a>POL_HND (LSA policy handle)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">char[20]</span></dt><dd><p>policy handle</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873837"></a>DOM_SID2 (domain SID structure, SIDS stored in unicode)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>5 - SID type</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UNIHDR2</span></dt><dd><p>domain SID unicode string header</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>domain SID unicode string</p></dd></dl></div><p><span class="emphasis"><em>Note: there is a conflict between the unicode string header and the unicode string itself as to which to use to indicate string length. this will need to be resolved.</em></span></p><p><span class="emphasis"><em>Note: the SID type indicates, for example, an alias; a well-known group etc. this is documented somewhere.</em></span></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873924"></a>DOM_RID (domain RID structure)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>5 - well-known SID. 1 - user SID (see ShowACLs)</p></dd><dt><span class="term">UINT32</span></dt><dd><p>5 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>domain RID </p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - domain index out of above reference domains</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2873993"></a>LOG_INFO (server, account, client structure)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: logon server name starts with two '\' characters and is upper case.</em></span></p><p><span class="emphasis"><em>Note: account name is the logon client name from the LSA Request Challenge, with a $ on the end of it, in upper case.</em></span></p><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon server unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>account name unicode string</p></dd><dt><span class="term">UINT16</span></dt><dd><p>sec_chan - security channel type</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon client machine unicode string</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874093"></a>CLNT_SRV (server, client names structure)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: logon server name starts with two '\' characters and is upper case.</em></span></p><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon server unicode string</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon client machine unicode string</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874170"></a>CREDS (credentials + time stamp)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">char[8]</span></dt><dd><p>credentials</p></dd><dt><span class="term">UTIME</span></dt><dd><p>time stamp</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874210"></a>CLNT_INFO2 (server, client structure, client credentials)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: whenever this structure appears in a request, you must take a copy of the client-calculated credentials received, because they will beused in subsequent credential checks. the presumed intention is to
- maintain an authenticated request/response trail.</em></span></p><div class="variablelist"><dl><dt><span class="term">CLNT_SRV</span></dt><dd><p>client and server names</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>???? padding, for 4-byte alignment with SMB header.</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to client credentials.</p></dd><dt><span class="term">CREDS</span></dt><dd><p>client-calculated credentials + client time</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874294"></a>CLNT_INFO (server, account, client structure, client credentials)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: whenever this structure appears in a request, you must take a copy of the client-calculated credentials received, because they will be used in subsequent credential checks. the presumed intention is to maintain an authenticated request/response trail.</em></span></p><div class="variablelist"><dl><dt><span class="term">LOG_INFO</span></dt><dd><p>logon account info</p></dd><dt><span class="term">CREDS</span></dt><dd><p>client-calculated credentials + client time</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874346"></a>ID_INFO_1 (id info structure, auth level 1)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>ptr_id_info_1</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>domain name unicode header</p></dd><dt><span class="term">UINT32</span></dt><dd><p>param control</p></dd><dt><span class="term">UINT64</span></dt><dd><p>logon ID</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>user name unicode header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>workgroup name unicode header</p></dd><dt><span class="term">char[16]</span></dt><dd><p>arc4 LM OWF Password</p></dd><dt><span class="term">char[16]</span></dt><dd><p>arc4 NT OWF Password</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>domain name unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>user name unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>workstation name unicode string</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874516"></a>SAM_INFO (sam logon/logoff id info structure)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: presumably, the return credentials is supposedly for the server to verify that the credential chain hasn't been compromised.</em></span></p><div class="variablelist"><dl><dt><span class="term">CLNT_INFO2</span></dt><dd><p>client identification/authentication info</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to return credentials.</p></dd><dt><span class="term">CRED</span></dt><dd><p>return credentials - ignored.</p></dd><dt><span class="term">UINT16</span></dt><dd><p>logon level</p></dd><dt><span class="term">UINT16</span></dt><dd><p>switch value</p></dd></dl></div><pre class="programlisting">
+</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2871388"></a>Enumerations</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2871395"></a>MSRPC Header type</h4></div></div><div></div></div><p>command number in the msrpc packet header</p><div class="variablelist"><dl><dt><span class="term">MSRPC_Request:</span></dt><dd><p>0x00</p></dd><dt><span class="term">MSRPC_Response:</span></dt><dd><p>0x02</p></dd><dt><span class="term">MSRPC_Bind:</span></dt><dd><p>0x0B</p></dd><dt><span class="term">MSRPC_BindAck:</span></dt><dd><p>0x0C</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2871469"></a>MSRPC Packet info</h4></div></div><div></div></div><p>The meaning of these flags is undocumented</p><div class="variablelist"><dl><dt><span class="term">FirstFrag:</span></dt><dd><p>0x01 </p></dd><dt><span class="term">LastFrag:</span></dt><dd><p>0x02 </p></dd><dt><span class="term">NotaFrag:</span></dt><dd><p>0x04 </p></dd><dt><span class="term">RecRespond:</span></dt><dd><p>0x08 </p></dd><dt><span class="term">NoMultiplex:</span></dt><dd><p>0x10 </p></dd><dt><span class="term">NotForIdemp:</span></dt><dd><p>0x20 </p></dd><dt><span class="term">NotforBcast:</span></dt><dd><p>0x40 </p></dd><dt><span class="term">NoUuid:</span></dt><dd><p>0x80 </p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2871600"></a>Structures</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2871607"></a>VOID *</h4></div></div><div></div></div><p>sizeof VOID* is 32 bits.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2871619"></a>char</h4></div></div><div></div></div><p>sizeof char is 8 bits.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2871630"></a>UTIME</h4></div></div><div></div></div><p>UTIME is 32 bits, indicating time in seconds since 01jan1970. documented in cifs6.txt (section 3.5 page, page 30).</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2871643"></a>NTTIME</h4></div></div><div></div></div><p>NTTIME is 64 bits. documented in cifs6.txt (section 3.5 page, page 30).</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2871656"></a>DOM_SID (domain SID structure)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>num of sub-authorities in domain SID</p></dd><dt><span class="term">UINT8</span></dt><dd><p>SID revision number</p></dd><dt><span class="term">UINT8</span></dt><dd><p>num of sub-authorities in domain SID</p></dd><dt><span class="term">UINT8[6]</span></dt><dd><p>6 bytes for domain SID - Identifier Authority.</p></dd><dt><span class="term">UINT16[n_subauths]</span></dt><dd><p>domain SID sub-authorities</p></dd></dl></div><p><span class="emphasis"><em>Note: the domain SID is documented elsewhere.</em></span>
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872013"></a>STR (string)</h4></div></div><div></div></div><p>STR (string) is a char[] : a null-terminated string of ascii characters.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872027"></a>UNIHDR (unicode string header) </h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>length of unicode string</p></dd><dt><span class="term">UINT16</span></dt><dd><p>max length of unicode string</p></dd><dt><span class="term">UINT32</span></dt><dd><p>4 - undocumented.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872083"></a>UNIHDR2 (unicode string header plus buffer pointer)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UNIHDR</span></dt><dd><p>unicode string header</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872125"></a>UNISTR (unicode string)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16[]</span></dt><dd><p>null-terminated string of unicode characters.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872152"></a>NAME (length-indicated unicode string)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>length of unicode string</p></dd><dt><span class="term">UINT16[]</span></dt><dd><p>null-terminated string of unicode characters.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872195"></a>UNISTR2 (aligned unicode string)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT8[]</span></dt><dd><p>padding to get unicode string 4-byte aligned with the start of the SMB header.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>max length of unicode string</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>length of unicode string</p></dd><dt><span class="term">UINT16[]</span></dt><dd><p>string of uncode characters</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872280"></a>OBJ_ATTR (object attributes)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>0x18 - length (in bytes) including the length field.</p></dd><dt><span class="term">VOID*</span></dt><dd><p>0 - root directory (pointer)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>0 - object name (pointer)</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - attributes (undocumented)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>0 - security descriptior (pointer)</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - security quality of service</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872374"></a>POL_HND (LSA policy handle)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">char[20]</span></dt><dd><p>policy handle</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872401"></a>DOM_SID2 (domain SID structure, SIDS stored in unicode)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>5 - SID type</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UNIHDR2</span></dt><dd><p>domain SID unicode string header</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>domain SID unicode string</p></dd></dl></div><p><span class="emphasis"><em>Note: there is a conflict between the unicode string header and the unicode string itself as to which to use to indicate string length. this will need to be resolved.</em></span></p><p><span class="emphasis"><em>Note: the SID type indicates, for example, an alias; a well-known group etc. this is documented somewhere.</em></span></p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872487"></a>DOM_RID (domain RID structure)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>5 - well-known SID. 1 - user SID (see ShowACLs)</p></dd><dt><span class="term">UINT32</span></dt><dd><p>5 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>domain RID </p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - domain index out of above reference domains</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872557"></a>LOG_INFO (server, account, client structure)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: logon server name starts with two '\' characters and is upper case.</em></span></p><p><span class="emphasis"><em>Note: account name is the logon client name from the LSA Request Challenge, with a $ on the end of it, in upper case.</em></span></p><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon server unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>account name unicode string</p></dd><dt><span class="term">UINT16</span></dt><dd><p>sec_chan - security channel type</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon client machine unicode string</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2880910"></a>CLNT_SRV (server, client names structure)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: logon server name starts with two '\' characters and is upper case.</em></span></p><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon server unicode string</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon client machine unicode string</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2880987"></a>CREDS (credentials + time stamp)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">char[8]</span></dt><dd><p>credentials</p></dd><dt><span class="term">UTIME</span></dt><dd><p>time stamp</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881028"></a>CLNT_INFO2 (server, client structure, client credentials)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: whenever this structure appears in a request, you must take a copy of the client-calculated credentials received, because they will beused in subsequent credential checks. the presumed intention is to
+ maintain an authenticated request/response trail.</em></span></p><div class="variablelist"><dl><dt><span class="term">CLNT_SRV</span></dt><dd><p>client and server names</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>???? padding, for 4-byte alignment with SMB header.</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to client credentials.</p></dd><dt><span class="term">CREDS</span></dt><dd><p>client-calculated credentials + client time</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881110"></a>CLNT_INFO (server, account, client structure, client credentials)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: whenever this structure appears in a request, you must take a copy of the client-calculated credentials received, because they will be used in subsequent credential checks. the presumed intention is to maintain an authenticated request/response trail.</em></span></p><div class="variablelist"><dl><dt><span class="term">LOG_INFO</span></dt><dd><p>logon account info</p></dd><dt><span class="term">CREDS</span></dt><dd><p>client-calculated credentials + client time</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881163"></a>ID_INFO_1 (id info structure, auth level 1)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>ptr_id_info_1</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>domain name unicode header</p></dd><dt><span class="term">UINT32</span></dt><dd><p>param control</p></dd><dt><span class="term">UINT64</span></dt><dd><p>logon ID</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>user name unicode header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>workgroup name unicode header</p></dd><dt><span class="term">char[16]</span></dt><dd><p>arc4 LM OWF Password</p></dd><dt><span class="term">char[16]</span></dt><dd><p>arc4 NT OWF Password</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>domain name unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>user name unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>workstation name unicode string</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881333"></a>SAM_INFO (sam logon/logoff id info structure)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: presumably, the return credentials is supposedly for the server to verify that the credential chain hasn't been compromised.</em></span></p><div class="variablelist"><dl><dt><span class="term">CLNT_INFO2</span></dt><dd><p>client identification/authentication info</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to return credentials.</p></dd><dt><span class="term">CRED</span></dt><dd><p>return credentials - ignored.</p></dd><dt><span class="term">UINT16</span></dt><dd><p>logon level</p></dd><dt><span class="term">UINT16</span></dt><dd><p>switch value</p></dd></dl></div><pre class="programlisting">
switch (switch_value)
case 1:
{
ID_INFO_1 id_info_1;
}
-</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874620"></a>GID (group id info)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>group id</p></dd><dt><span class="term">UINT32</span></dt><dd><p>user attributes (only used by NT 3.1 and 3.51)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874658"></a>DOM_REF (domain reference info)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num referenced domains?</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain name buffer pointer.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>32 - max number of entries</p></dd><dt><span class="term">UINT32</span></dt><dd><p>4 - num referenced domains?</p></dd><dt><span class="term">UNIHDR2</span></dt><dd><p>domain name unicode string header</p></dd><dt><span class="term">UNIHDR2[num_ref_doms-1]</span></dt><dd><p>referenced domain unicode string headers</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>domain name unicode string</p></dd><dt><span class="term">DOM_SID[num_ref_doms]</span></dt><dd><p>referenced domain SIDs</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874802"></a>DOM_INFO (domain info, levels 3 and 5 are the same))</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT8[]</span></dt><dd><p>??? padding to get 4-byte alignment with start of SMB header</p></dd><dt><span class="term">UINT16</span></dt><dd><p>domain name string length * 2</p></dd><dt><span class="term">UINT16</span></dt><dd><p>domain name string length * 2</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain name string buffer pointer</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain SID string buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>domain name (unicode string)</p></dd><dt><span class="term">DOM_SID</span></dt><dd><p>domain SID</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874915"></a>USER_INFO (user logon info)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: it would be nice to know what the 16 byte user session key is for.</em></span></p><div class="variablelist"><dl><dt><span class="term">NTTIME</span></dt><dd><p>logon time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>logoff time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>kickoff time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>password last set time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>password can change time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>password must change time</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>username unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>user's full name unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>logon script unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>profile path unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>home directory unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>home directory drive unicode string header</p></dd><dt><span class="term">UINT16</span></dt><dd><p>logon count</p></dd><dt><span class="term">UINT16</span></dt><dd><p>bad password count</p></dd><dt><span class="term">UINT32</span></dt><dd><p>User ID</p></dd><dt><span class="term">UINT32</span></dt><dd><p>Group ID</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num groups</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer to groups.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>user flags</p></dd><dt><span class="term">char[16]</span></dt><dd><p>user session key</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>logon server unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>logon domain unicode string header</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented logon domain id pointer</p></dd><dt><span class="term">char[40]</span></dt><dd><p>40 undocumented padding bytes. future expansion?</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - num_other_sids?</p></dd><dt><span class="term">VOID*</span></dt><dd><p>NULL - undocumented pointer to other domain SIDs.</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>username unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>user's full name unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon script unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>profile path unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>home directory unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>home directory drive unicode string</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num groups</p></dd><dt><span class="term">GID[num_groups]</span></dt><dd><p>group info</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon server unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon domain unicode string</p></dd><dt><span class="term">DOM_SID</span></dt><dd><p>domain SID</p></dd><dt><span class="term">DOM_SID[num_sids]</span></dt><dd><p>other domain SIDs?</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2875478"></a>SH_INFO_1_PTR (pointers to level 1 share info strings)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: see cifsrap2.txt section5, page 10.</em></span></p><table class="simplelist" border="0" summary="Simple list"><tr><td>0 for shi1_type indicates a Disk.</td></tr><tr><td>1 for shi1_type indicates a Print Queue.</td></tr><tr><td>2 for shi1_type indicates a Device.</td></tr><tr><td>3 for shi1_type indicates an IPC pipe.</td></tr><tr><td>0x8000 0000 (top bit set in shi1_type) indicates a hidden share.</td></tr></table><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>shi1_netname - pointer to net name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>shi1_type - type of share. 0 - undocumented.</p></dd><dt><span class="term">VOID*</span></dt><dd><p>shi1_remark - pointer to comment.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2875573"></a>SH_INFO_1_STR (level 1 share info strings)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UNISTR2</span></dt><dd><p>shi1_netname - unicode string of net name</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>shi1_remark - unicode string of comment.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2875615"></a>SHARE_INFO_1_CTR</h4></div></div><div></div></div><p>share container with 0 entries:</p><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>0 - EntriesRead</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - Buffer</p></dd></dl></div><p>share container with &gt; 0 entries:</p><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>EntriesRead</p></dd><dt><span class="term">UINT32</span></dt><dd><p>non-zero - Buffer</p></dd><dt><span class="term">UINT32</span></dt><dd><p>EntriesRead</p></dd><dt><span class="term">SH_INFO_1_PTR[EntriesRead]</span></dt><dd><p>share entry pointers</p></dd><dt><span class="term">SH_INFO_1_STR[EntriesRead]</span></dt><dd><p>share entry strings</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to get unicode string 4-byte aligned with start of the SMB header.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>EntriesRead</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - padding</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2875784"></a>SERVER_INFO_101</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: see cifs6.txt section 6.4 - the fields described therein will be of assistance here. for example, the type listed below is the same as fServerType, which is described in 6.4.1. </em></span></p><div class="variablelist"><dl><dt><span class="term">SV_TYPE_WORKSTATION</span></dt><dd><p>0x00000001 All workstations</p></dd><dt><span class="term">SV_TYPE_SERVER</span></dt><dd><p>0x00000002 All servers</p></dd><dt><span class="term">SV_TYPE_SQLSERVER</span></dt><dd><p>0x00000004 Any server running with SQL server</p></dd><dt><span class="term">SV_TYPE_DOMAIN_CTRL</span></dt><dd><p>0x00000008 Primary domain controller</p></dd><dt><span class="term">SV_TYPE_DOMAIN_BAKCTRL</span></dt><dd><p>0x00000010 Backup domain controller</p></dd><dt><span class="term">SV_TYPE_TIME_SOURCE</span></dt><dd><p>0x00000020 Server running the timesource service</p></dd><dt><span class="term">SV_TYPE_AFP</span></dt><dd><p>0x00000040 Apple File Protocol servers</p></dd><dt><span class="term">SV_TYPE_NOVELL</span></dt><dd><p>0x00000080 Novell servers</p></dd><dt><span class="term">SV_TYPE_DOMAIN_MEMBER</span></dt><dd><p>0x00000100 Domain Member</p></dd><dt><span class="term">SV_TYPE_PRINTQ_SERVER</span></dt><dd><p>0x00000200 Server sharing print queue</p></dd><dt><span class="term">SV_TYPE_DIALIN_SERVER</span></dt><dd><p>0x00000400 Server running dialin service.</p></dd><dt><span class="term">SV_TYPE_XENIX_SERVER</span></dt><dd><p>0x00000800 Xenix server</p></dd><dt><span class="term">SV_TYPE_NT</span></dt><dd><p>0x00001000 NT server</p></dd><dt><span class="term">SV_TYPE_WFW</span></dt><dd><p>0x00002000 Server running Windows for </p></dd><dt><span class="term">SV_TYPE_SERVER_NT</span></dt><dd><p>0x00008000 Windows NT non DC server</p></dd><dt><span class="term">SV_TYPE_POTENTIAL_BROWSER</span></dt><dd><p>0x00010000 Server that can run the browser service</p></dd><dt><span class="term">SV_TYPE_BACKUP_BROWSER</span></dt><dd><p>0x00020000 Backup browser server</p></dd><dt><span class="term">SV_TYPE_MASTER_BROWSER</span></dt><dd><p>0x00040000 Master browser server</p></dd><dt><span class="term">SV_TYPE_DOMAIN_MASTER</span></dt><dd><p>0x00080000 Domain Master Browser server</p></dd><dt><span class="term">SV_TYPE_LOCAL_LIST_ONLY</span></dt><dd><p>0x40000000 Enumerate only entries marked &quot;local&quot;</p></dd><dt><span class="term">SV_TYPE_DOMAIN_ENUM</span></dt><dd><p>0x80000000 Enumerate Domains. The pszServer and pszDomain parameters must be NULL.</p></dd></dl></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>500 - platform_id</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>5 - major version</p></dd><dt><span class="term">UINT32</span></dt><dd><p>4 - minor version</p></dd><dt><span class="term">UINT32</span></dt><dd><p>type (SV_TYPE_... bit field)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to comment</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>sv101_name - unicode string of server name</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>sv_101_comment - unicode string of server comment.</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to get unicode string 4-byte aligned with start of the SMB header.</p></dd></dl></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2876250"></a>MSRPC over Transact Named Pipe</h2></div></div><div></div></div><p>For details on the SMB Transact Named Pipe, see cifs6.txt</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2876262"></a>MSRPC Pipes</h3></div></div><div></div></div><p>
+</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881436"></a>GID (group id info)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>group id</p></dd><dt><span class="term">UINT32</span></dt><dd><p>user attributes (only used by NT 3.1 and 3.51)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881475"></a>DOM_REF (domain reference info)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num referenced domains?</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain name buffer pointer.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>32 - max number of entries</p></dd><dt><span class="term">UINT32</span></dt><dd><p>4 - num referenced domains?</p></dd><dt><span class="term">UNIHDR2</span></dt><dd><p>domain name unicode string header</p></dd><dt><span class="term">UNIHDR2[num_ref_doms-1]</span></dt><dd><p>referenced domain unicode string headers</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>domain name unicode string</p></dd><dt><span class="term">DOM_SID[num_ref_doms]</span></dt><dd><p>referenced domain SIDs</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881618"></a>DOM_INFO (domain info, levels 3 and 5 are the same))</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT8[]</span></dt><dd><p>??? padding to get 4-byte alignment with start of SMB header</p></dd><dt><span class="term">UINT16</span></dt><dd><p>domain name string length * 2</p></dd><dt><span class="term">UINT16</span></dt><dd><p>domain name string length * 2</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain name string buffer pointer</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain SID string buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>domain name (unicode string)</p></dd><dt><span class="term">DOM_SID</span></dt><dd><p>domain SID</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881731"></a>USER_INFO (user logon info)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: it would be nice to know what the 16 byte user session key is for.</em></span></p><div class="variablelist"><dl><dt><span class="term">NTTIME</span></dt><dd><p>logon time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>logoff time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>kickoff time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>password last set time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>password can change time</p></dd><dt><span class="term">NTTIME</span></dt><dd><p>password must change time</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>username unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>user's full name unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>logon script unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>profile path unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>home directory unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>home directory drive unicode string header</p></dd><dt><span class="term">UINT16</span></dt><dd><p>logon count</p></dd><dt><span class="term">UINT16</span></dt><dd><p>bad password count</p></dd><dt><span class="term">UINT32</span></dt><dd><p>User ID</p></dd><dt><span class="term">UINT32</span></dt><dd><p>Group ID</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num groups</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer to groups.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>user flags</p></dd><dt><span class="term">char[16]</span></dt><dd><p>user session key</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>logon server unicode string header</p></dd><dt><span class="term">UNIHDR</span></dt><dd><p>logon domain unicode string header</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented logon domain id pointer</p></dd><dt><span class="term">char[40]</span></dt><dd><p>40 undocumented padding bytes. future expansion?</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - num_other_sids?</p></dd><dt><span class="term">VOID*</span></dt><dd><p>NULL - undocumented pointer to other domain SIDs.</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>username unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>user's full name unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon script unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>profile path unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>home directory unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>home directory drive unicode string</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num groups</p></dd><dt><span class="term">GID[num_groups]</span></dt><dd><p>group info</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon server unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon domain unicode string</p></dd><dt><span class="term">DOM_SID</span></dt><dd><p>domain SID</p></dd><dt><span class="term">DOM_SID[num_sids]</span></dt><dd><p>other domain SIDs?</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2882295"></a>SH_INFO_1_PTR (pointers to level 1 share info strings)</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: see cifsrap2.txt section5, page 10.</em></span></p><table class="simplelist" border="0" summary="Simple list"><tr><td>0 for shi1_type indicates a Disk.</td></tr><tr><td>1 for shi1_type indicates a Print Queue.</td></tr><tr><td>2 for shi1_type indicates a Device.</td></tr><tr><td>3 for shi1_type indicates an IPC pipe.</td></tr><tr><td>0x8000 0000 (top bit set in shi1_type) indicates a hidden share.</td></tr></table><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>shi1_netname - pointer to net name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>shi1_type - type of share. 0 - undocumented.</p></dd><dt><span class="term">VOID*</span></dt><dd><p>shi1_remark - pointer to comment.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2882389"></a>SH_INFO_1_STR (level 1 share info strings)</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UNISTR2</span></dt><dd><p>shi1_netname - unicode string of net name</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>shi1_remark - unicode string of comment.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2882432"></a>SHARE_INFO_1_CTR</h4></div></div><div></div></div><p>share container with 0 entries:</p><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>0 - EntriesRead</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - Buffer</p></dd></dl></div><p>share container with &gt; 0 entries:</p><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>EntriesRead</p></dd><dt><span class="term">UINT32</span></dt><dd><p>non-zero - Buffer</p></dd><dt><span class="term">UINT32</span></dt><dd><p>EntriesRead</p></dd><dt><span class="term">SH_INFO_1_PTR[EntriesRead]</span></dt><dd><p>share entry pointers</p></dd><dt><span class="term">SH_INFO_1_STR[EntriesRead]</span></dt><dd><p>share entry strings</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to get unicode string 4-byte aligned with start of the SMB header.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>EntriesRead</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - padding</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2882600"></a>SERVER_INFO_101</h4></div></div><div></div></div><p><span class="emphasis"><em>Note: see cifs6.txt section 6.4 - the fields described therein will be of assistance here. for example, the type listed below is the same as fServerType, which is described in 6.4.1. </em></span></p><div class="variablelist"><dl><dt><span class="term">SV_TYPE_WORKSTATION</span></dt><dd><p>0x00000001 All workstations</p></dd><dt><span class="term">SV_TYPE_SERVER</span></dt><dd><p>0x00000002 All servers</p></dd><dt><span class="term">SV_TYPE_SQLSERVER</span></dt><dd><p>0x00000004 Any server running with SQL server</p></dd><dt><span class="term">SV_TYPE_DOMAIN_CTRL</span></dt><dd><p>0x00000008 Primary domain controller</p></dd><dt><span class="term">SV_TYPE_DOMAIN_BAKCTRL</span></dt><dd><p>0x00000010 Backup domain controller</p></dd><dt><span class="term">SV_TYPE_TIME_SOURCE</span></dt><dd><p>0x00000020 Server running the timesource service</p></dd><dt><span class="term">SV_TYPE_AFP</span></dt><dd><p>0x00000040 Apple File Protocol servers</p></dd><dt><span class="term">SV_TYPE_NOVELL</span></dt><dd><p>0x00000080 Novell servers</p></dd><dt><span class="term">SV_TYPE_DOMAIN_MEMBER</span></dt><dd><p>0x00000100 Domain Member</p></dd><dt><span class="term">SV_TYPE_PRINTQ_SERVER</span></dt><dd><p>0x00000200 Server sharing print queue</p></dd><dt><span class="term">SV_TYPE_DIALIN_SERVER</span></dt><dd><p>0x00000400 Server running dialin service.</p></dd><dt><span class="term">SV_TYPE_XENIX_SERVER</span></dt><dd><p>0x00000800 Xenix server</p></dd><dt><span class="term">SV_TYPE_NT</span></dt><dd><p>0x00001000 NT server</p></dd><dt><span class="term">SV_TYPE_WFW</span></dt><dd><p>0x00002000 Server running Windows for </p></dd><dt><span class="term">SV_TYPE_SERVER_NT</span></dt><dd><p>0x00008000 Windows NT non DC server</p></dd><dt><span class="term">SV_TYPE_POTENTIAL_BROWSER</span></dt><dd><p>0x00010000 Server that can run the browser service</p></dd><dt><span class="term">SV_TYPE_BACKUP_BROWSER</span></dt><dd><p>0x00020000 Backup browser server</p></dd><dt><span class="term">SV_TYPE_MASTER_BROWSER</span></dt><dd><p>0x00040000 Master browser server</p></dd><dt><span class="term">SV_TYPE_DOMAIN_MASTER</span></dt><dd><p>0x00080000 Domain Master Browser server</p></dd><dt><span class="term">SV_TYPE_LOCAL_LIST_ONLY</span></dt><dd><p>0x40000000 Enumerate only entries marked &quot;local&quot;</p></dd><dt><span class="term">SV_TYPE_DOMAIN_ENUM</span></dt><dd><p>0x80000000 Enumerate Domains. The pszServer and pszDomain parameters must be NULL.</p></dd></dl></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>500 - platform_id</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>5 - major version</p></dd><dt><span class="term">UINT32</span></dt><dd><p>4 - minor version</p></dd><dt><span class="term">UINT32</span></dt><dd><p>type (SV_TYPE_... bit field)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to comment</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>sv101_name - unicode string of server name</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>sv_101_comment - unicode string of server comment.</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to get unicode string 4-byte aligned with start of the SMB header.</p></dd></dl></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2883067"></a>MSRPC over Transact Named Pipe</h2></div></div><div></div></div><p>For details on the SMB Transact Named Pipe, see cifs6.txt</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2883079"></a>MSRPC Pipes</h3></div></div><div></div></div><p>
The MSRPC is conducted over an SMB Transact Pipe with a name of
<tt class="filename">\PIPE\</tt>. You must first obtain a 16 bit file handle, by
sending a SMBopenX with the pipe name <tt class="filename">\PIPE\srvsvc</tt> for
@@ -1271,11 +1271,11 @@ listed below:</p><pre class="programlisting">
initial SMBopenX request: RPC API command 0x26 params:
&quot;\\PIPE\\lsarpc&quot; 0x65 0x63; 0x72 0x70; 0x44 0x65;
&quot;\\PIPE\\srvsvc&quot; 0x73 0x76; 0x4E 0x00; 0x5C 0x43;
-</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2876365"></a>Header</h3></div></div><div></div></div><p>[section to be rewritten, following receipt of work by Duncan Stansfield]</p><p>Interesting note: if you set packed data representation to 0x0100 0000
-then all 4-byte and 2-byte word ordering is turned around!</p><p>The start of each of the NTLSA and NETLOGON named pipes begins with:</p><div class="segmentedlist"><p><b>offset: </b>00</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>5 - RPC major version</p><p><b>offset: </b>01</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>0 - RPC minor version</p><p><b>offset: </b>02</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>2 - RPC response packet</p><p><b>offset: </b>03</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>3 - (FirstFrag bit-wise or with LastFrag)</p><p><b>offset: </b>04</p><p><b>Variable type: </b>UINT32</p><p><b>Variable data: </b>0x1000 0000 - packed data representation</p><p><b>offset: </b>08</p><p><b>Variable type: </b>UINT16</p><p><b>Variable data: </b>fragment length - data size (bytes) inc header and tail.</p><p><b>offset: </b>0A</p><p><b>Variable type: </b>UINT16</p><p><b>Variable data: </b>0 - authentication length </p><p><b>offset: </b>0C</p><p><b>Variable type: </b>UINT32</p><p><b>Variable data: </b>call identifier. matches 12th UINT32 of incoming RPC data.</p><p><b>offset: </b>10</p><p><b>Variable type: </b>UINT32</p><p><b>Variable data: </b>allocation hint - data size (bytes) minus header and tail.</p><p><b>offset: </b>14</p><p><b>Variable type: </b>UINT16</p><p><b>Variable data: </b>0 - presentation context identifier</p><p><b>offset: </b>16</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>0 - cancel count</p><p><b>offset: </b>17</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>in replies: 0 - reserved; in requests: opnum - see #defines.</p><p><b>offset: </b>18</p><p><b>Variable type: </b>......</p><p><b>Variable data: </b>start of data (goes on for allocation_hint bytes)</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2876554"></a>RPC_Packet for request, response, bind and bind acknowledgement</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT8 versionmaj</span></dt><dd><p>reply same as request (0x05)</p></dd><dt><span class="term">UINT8 versionmin</span></dt><dd><p>reply same as request (0x00)</p></dd><dt><span class="term">UINT8 type</span></dt><dd><p>one of the MSRPC_Type enums</p></dd><dt><span class="term">UINT8 flags</span></dt><dd><p>reply same as request (0x00 for Bind, 0x03 for Request)</p></dd><dt><span class="term">UINT32 representation</span></dt><dd><p>reply same as request (0x00000010)</p></dd><dt><span class="term">UINT16 fraglength</span></dt><dd><p>the length of the data section of the SMB trans packet</p></dd><dt><span class="term">UINT16 authlength</span></dt><dd><p></p></dd><dt><span class="term">UINT32 callid</span></dt><dd><p>call identifier. (e.g. 0x00149594)</p></dd><dt><span class="term">* stub USE TvPacket</span></dt><dd><p>the remainder of the packet depending on the &quot;type&quot;</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2876688"></a>Interface identification</h4></div></div><div></div></div><p>the interfaces are numbered. as yet I haven't seen more than one interface used on the same pipe name srvsvc</p><pre class="programlisting">
+</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2883181"></a>Header</h3></div></div><div></div></div><p>[section to be rewritten, following receipt of work by Duncan Stansfield]</p><p>Interesting note: if you set packed data representation to 0x0100 0000
+then all 4-byte and 2-byte word ordering is turned around!</p><p>The start of each of the NTLSA and NETLOGON named pipes begins with:</p><div class="segmentedlist"><p><b>offset: </b>00</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>5 - RPC major version</p><p><b>offset: </b>01</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>0 - RPC minor version</p><p><b>offset: </b>02</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>2 - RPC response packet</p><p><b>offset: </b>03</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>3 - (FirstFrag bit-wise or with LastFrag)</p><p><b>offset: </b>04</p><p><b>Variable type: </b>UINT32</p><p><b>Variable data: </b>0x1000 0000 - packed data representation</p><p><b>offset: </b>08</p><p><b>Variable type: </b>UINT16</p><p><b>Variable data: </b>fragment length - data size (bytes) inc header and tail.</p><p><b>offset: </b>0A</p><p><b>Variable type: </b>UINT16</p><p><b>Variable data: </b>0 - authentication length </p><p><b>offset: </b>0C</p><p><b>Variable type: </b>UINT32</p><p><b>Variable data: </b>call identifier. matches 12th UINT32 of incoming RPC data.</p><p><b>offset: </b>10</p><p><b>Variable type: </b>UINT32</p><p><b>Variable data: </b>allocation hint - data size (bytes) minus header and tail.</p><p><b>offset: </b>14</p><p><b>Variable type: </b>UINT16</p><p><b>Variable data: </b>0 - presentation context identifier</p><p><b>offset: </b>16</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>0 - cancel count</p><p><b>offset: </b>17</p><p><b>Variable type: </b>UINT8</p><p><b>Variable data: </b>in replies: 0 - reserved; in requests: opnum - see #defines.</p><p><b>offset: </b>18</p><p><b>Variable type: </b>......</p><p><b>Variable data: </b>start of data (goes on for allocation_hint bytes)</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2883371"></a>RPC_Packet for request, response, bind and bind acknowledgement</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT8 versionmaj</span></dt><dd><p>reply same as request (0x05)</p></dd><dt><span class="term">UINT8 versionmin</span></dt><dd><p>reply same as request (0x00)</p></dd><dt><span class="term">UINT8 type</span></dt><dd><p>one of the MSRPC_Type enums</p></dd><dt><span class="term">UINT8 flags</span></dt><dd><p>reply same as request (0x00 for Bind, 0x03 for Request)</p></dd><dt><span class="term">UINT32 representation</span></dt><dd><p>reply same as request (0x00000010)</p></dd><dt><span class="term">UINT16 fraglength</span></dt><dd><p>the length of the data section of the SMB trans packet</p></dd><dt><span class="term">UINT16 authlength</span></dt><dd><p></p></dd><dt><span class="term">UINT32 callid</span></dt><dd><p>call identifier. (e.g. 0x00149594)</p></dd><dt><span class="term">* stub USE TvPacket</span></dt><dd><p>the remainder of the packet depending on the &quot;type&quot;</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2883504"></a>Interface identification</h4></div></div><div></div></div><p>the interfaces are numbered. as yet I haven't seen more than one interface used on the same pipe name srvsvc</p><pre class="programlisting">
abstract (0x4B324FC8, 0x01D31670, 0x475A7812, 0x88E16EBF, 0x00000003)
transfer (0x8A885D04, 0x11C91CEB, 0x0008E89F, 0x6048102B, 0x00000002)
-</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2876714"></a>RPC_Iface RW</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT8 byte[16]</span></dt><dd><p>16 bytes of number</p></dd><dt><span class="term">UINT32 version</span></dt><dd><p>the interface number</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2876753"></a>RPC_ReqBind RW</h4></div></div><div></div></div><p>the remainder of the packet after the header if &quot;type&quot; was Bind in the response header, &quot;type&quot; should be BindAck</p><div class="variablelist"><dl><dt><span class="term">UINT16 maxtsize</span></dt><dd><p>maximum transmission fragment size (0x1630)</p></dd><dt><span class="term">UINT16 maxrsize</span></dt><dd><p>max receive fragment size (0x1630)</p></dd><dt><span class="term">UINT32 assocgid</span></dt><dd><p>associated group id (0x0)</p></dd><dt><span class="term">UINT32 numelements</span></dt><dd><p>the number of elements (0x1)</p></dd><dt><span class="term">UINT16 contextid</span></dt><dd><p>presentation context identifier (0x0)</p></dd><dt><span class="term">UINT8 numsyntaxes</span></dt><dd><p>the number of syntaxes (has always been 1?)(0x1)</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>4-byte alignment padding, against SMB header</p></dd><dt><span class="term">* abstractint USE RPC_Iface</span></dt><dd><p>num and vers. of interface client is using</p></dd><dt><span class="term">* transferint USE RPC_Iface</span></dt><dd><p>num and vers. of interface to use for replies</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2876893"></a>RPC_Address RW</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16 length</span></dt><dd><p>length of the string including null terminator</p></dd><dt><span class="term">* port USE string</span></dt><dd><p>the string above in single byte, null terminated form</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2876933"></a>RPC_ResBind RW</h4></div></div><div></div></div><p>the response to place after the header in the reply packet</p><div class="variablelist"><dl><dt><span class="term">UINT16 maxtsize</span></dt><dd><p>same as request</p></dd><dt><span class="term">UINT16 maxrsize</span></dt><dd><p>same as request</p></dd><dt><span class="term">UINT32 assocgid</span></dt><dd><p>zero</p></dd><dt><span class="term">* secondaddr USE RPC_Address</span></dt><dd><p>the address string, as described earlier</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>4-byte alignment padding, against SMB header</p></dd><dt><span class="term">UINT8 numresults</span></dt><dd><p>the number of results (0x01)</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>4-byte alignment padding, against SMB header</p></dd><dt><span class="term">UINT16 result</span></dt><dd><p>result (0x00 = accept)</p></dd><dt><span class="term">UINT16 reason</span></dt><dd><p>reason (0x00 = no reason specified)</p></dd><dt><span class="term">* transfersyntax USE RPC_Iface</span></dt><dd><p>the transfer syntax from the request</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877084"></a>RPC_ReqNorm RW</h4></div></div><div></div></div><p>the remainder of the packet after the header for every other other request</p><div class="variablelist"><dl><dt><span class="term">UINT32 allochint</span></dt><dd><p>the size of the stub data in bytes</p></dd><dt><span class="term">UINT16 prescontext</span></dt><dd><p>presentation context identifier (0x0)</p></dd><dt><span class="term">UINT16 opnum</span></dt><dd><p>operation number (0x15)</p></dd><dt><span class="term">* stub USE TvPacket</span></dt><dd><p>a packet dependent on the pipe name (probably the interface) and the op number)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877156"></a>RPC_ResNorm RW</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32 allochint</span></dt><dd><p># size of the stub data in bytes</p></dd><dt><span class="term">UINT16 prescontext</span></dt><dd><p># presentation context identifier (same as request)</p></dd><dt><span class="term">UINT8 cancelcount</span></dt><dd><p># cancel count? (0x0)</p></dd><dt><span class="term">UINT8 reserved</span></dt><dd><p># 0 - one byte padding</p></dd><dt><span class="term">* stub USE TvPacket</span></dt><dd><p># the remainder of the reply</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2877236"></a>Tail</h3></div></div><div></div></div><p>The end of each of the NTLSA and NETLOGON named pipes ends with:</p><div class="variablelist"><dl><dt><span class="term">......</span></dt><dd><p>end of data</p></dd><dt><span class="term">UINT32</span></dt><dd><p>return code</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2877281"></a>RPC Bind / Bind Ack</h3></div></div><div></div></div><p>
+</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2883530"></a>RPC_Iface RW</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT8 byte[16]</span></dt><dd><p>16 bytes of number</p></dd><dt><span class="term">UINT32 version</span></dt><dd><p>the interface number</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2883569"></a>RPC_ReqBind RW</h4></div></div><div></div></div><p>the remainder of the packet after the header if &quot;type&quot; was Bind in the response header, &quot;type&quot; should be BindAck</p><div class="variablelist"><dl><dt><span class="term">UINT16 maxtsize</span></dt><dd><p>maximum transmission fragment size (0x1630)</p></dd><dt><span class="term">UINT16 maxrsize</span></dt><dd><p>max receive fragment size (0x1630)</p></dd><dt><span class="term">UINT32 assocgid</span></dt><dd><p>associated group id (0x0)</p></dd><dt><span class="term">UINT32 numelements</span></dt><dd><p>the number of elements (0x1)</p></dd><dt><span class="term">UINT16 contextid</span></dt><dd><p>presentation context identifier (0x0)</p></dd><dt><span class="term">UINT8 numsyntaxes</span></dt><dd><p>the number of syntaxes (has always been 1?)(0x1)</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>4-byte alignment padding, against SMB header</p></dd><dt><span class="term">* abstractint USE RPC_Iface</span></dt><dd><p>num and vers. of interface client is using</p></dd><dt><span class="term">* transferint USE RPC_Iface</span></dt><dd><p>num and vers. of interface to use for replies</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2883710"></a>RPC_Address RW</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16 length</span></dt><dd><p>length of the string including null terminator</p></dd><dt><span class="term">* port USE string</span></dt><dd><p>the string above in single byte, null terminated form</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2883750"></a>RPC_ResBind RW</h4></div></div><div></div></div><p>the response to place after the header in the reply packet</p><div class="variablelist"><dl><dt><span class="term">UINT16 maxtsize</span></dt><dd><p>same as request</p></dd><dt><span class="term">UINT16 maxrsize</span></dt><dd><p>same as request</p></dd><dt><span class="term">UINT32 assocgid</span></dt><dd><p>zero</p></dd><dt><span class="term">* secondaddr USE RPC_Address</span></dt><dd><p>the address string, as described earlier</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>4-byte alignment padding, against SMB header</p></dd><dt><span class="term">UINT8 numresults</span></dt><dd><p>the number of results (0x01)</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>4-byte alignment padding, against SMB header</p></dd><dt><span class="term">UINT16 result</span></dt><dd><p>result (0x00 = accept)</p></dd><dt><span class="term">UINT16 reason</span></dt><dd><p>reason (0x00 = no reason specified)</p></dd><dt><span class="term">* transfersyntax USE RPC_Iface</span></dt><dd><p>the transfer syntax from the request</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2883900"></a>RPC_ReqNorm RW</h4></div></div><div></div></div><p>the remainder of the packet after the header for every other other request</p><div class="variablelist"><dl><dt><span class="term">UINT32 allochint</span></dt><dd><p>the size of the stub data in bytes</p></dd><dt><span class="term">UINT16 prescontext</span></dt><dd><p>presentation context identifier (0x0)</p></dd><dt><span class="term">UINT16 opnum</span></dt><dd><p>operation number (0x15)</p></dd><dt><span class="term">* stub USE TvPacket</span></dt><dd><p>a packet dependent on the pipe name (probably the interface) and the op number)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2883972"></a>RPC_ResNorm RW</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32 allochint</span></dt><dd><p># size of the stub data in bytes</p></dd><dt><span class="term">UINT16 prescontext</span></dt><dd><p># presentation context identifier (same as request)</p></dd><dt><span class="term">UINT8 cancelcount</span></dt><dd><p># cancel count? (0x0)</p></dd><dt><span class="term">UINT8 reserved</span></dt><dd><p># 0 - one byte padding</p></dd><dt><span class="term">* stub USE TvPacket</span></dt><dd><p># the remainder of the reply</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884052"></a>Tail</h3></div></div><div></div></div><p>The end of each of the NTLSA and NETLOGON named pipes ends with:</p><div class="variablelist"><dl><dt><span class="term">......</span></dt><dd><p>end of data</p></dd><dt><span class="term">UINT32</span></dt><dd><p>return code</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884098"></a>RPC Bind / Bind Ack</h3></div></div><div></div></div><p>
RPC Binds are the process of associating an RPC pipe (e.g \PIPE\lsarpc)
with a &quot;transfer syntax&quot; (see RPC_Iface structure). The purpose for doing
this is unknown.
@@ -1283,7 +1283,7 @@ this is unknown.
returned by the SMBopenX Transact response.</em></span></p><p><span class="emphasis"><em>Note: The RPC_ResBind members maxtsize, maxrsize and assocgid are the same in the response as the same members in the RPC_ReqBind. The
RPC_ResBind member transfersyntax is the same in the response as
the</em></span></p><p><span class="emphasis"><em>Note: The RPC_ResBind response member secondaddr contains the name of what is presumed to be the service behind the RPC pipe. The
- mapping identified so far is:</em></span></p><div class="variablelist"><dl><dt><span class="term">initial SMBopenX request:</span></dt><dd><p>RPC_ResBind response:</p></dd><dt><span class="term">&quot;\\PIPE\\srvsvc&quot;</span></dt><dd><p>&quot;\\PIPE\\ntsvcs&quot;</p></dd><dt><span class="term">&quot;\\PIPE\\samr&quot;</span></dt><dd><p>&quot;\\PIPE\\lsass&quot;</p></dd><dt><span class="term">&quot;\\PIPE\\lsarpc&quot;</span></dt><dd><p>&quot;\\PIPE\\lsass&quot;</p></dd><dt><span class="term">&quot;\\PIPE\\wkssvc&quot;</span></dt><dd><p>&quot;\\PIPE\\wksvcs&quot;</p></dd><dt><span class="term">&quot;\\PIPE\\NETLOGON&quot;</span></dt><dd><p>&quot;\\PIPE\\NETLOGON&quot;</p></dd></dl></div><p><span class="emphasis"><em>Note: The RPC_Packet fraglength member in both the Bind Request and Bind Acknowledgment must contain the length of the entire RPC data, including the RPC_Packet header.</em></span></p><p>Request:</p><table class="simplelist" border="0" summary="Simple list"><tr><td>RPC_Packet</td></tr><tr><td>RPC_ReqBind</td></tr></table><p>Response:</p><table class="simplelist" border="0" summary="Simple list"><tr><td>RPC_Packet</td></tr><tr><td>RPC_ResBind</td></tr></table></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2877461"></a>NTLSA Transact Named Pipe</h3></div></div><div></div></div><p>The sequence of actions taken on this pipe are:</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Establish a connection to the IPC$ share (SMBtconX). use encrypted passwords.</td></tr><tr><td>Open an RPC Pipe with the name &quot;\\PIPE\\lsarpc&quot;. Store the file handle.</td></tr><tr><td>Using the file handle, send a Set Named Pipe Handle state to 0x4300.</td></tr><tr><td>Send an LSA Open Policy request. Store the Policy Handle.</td></tr><tr><td>Using the Policy Handle, send LSA Query Info Policy requests, etc.</td></tr><tr><td>Using the Policy Handle, send an LSA Close.</td></tr><tr><td>Close the IPC$ share.</td></tr></table><p>Defines for this pipe, identifying the query are:</p><div class="variablelist"><dl><dt><span class="term">LSA Open Policy:</span></dt><dd><p>0x2c</p></dd><dt><span class="term">LSA Query Info Policy:</span></dt><dd><p>0x07</p></dd><dt><span class="term">LSA Enumerate Trusted Domains:</span></dt><dd><p>0x0d</p></dd><dt><span class="term">LSA Open Secret:</span></dt><dd><p>0xff</p></dd><dt><span class="term">LSA Lookup SIDs:</span></dt><dd><p>0xfe</p></dd><dt><span class="term">LSA Lookup Names:</span></dt><dd><p>0xfd</p></dd><dt><span class="term">LSA Close:</span></dt><dd><p>0x00</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2877626"></a>LSA Open Policy</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: The policy handle can be anything you like.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877640"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>server name - unicode string starting with two '\'s</p></dd><dt><span class="term">OBJ_ATTR</span></dt><dd><p>object attributes</p></dd><dt><span class="term">UINT32</span></dt><dd><p>1 - desired access</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877710"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>LSA policy handle</p></dd><dt><span class="term">return</span></dt><dd><p>0 - indicates success</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2877752"></a>LSA Query Info Policy</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: The info class in response must be the same as that in the request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877766"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>LSA policy handle</p></dd><dt><span class="term">UINT16</span></dt><dd><p>info class (also a policy handle?)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877805"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UINT16</span></dt><dd><p>info class (same as info class in request).</p></dd></dl></div><pre class="programlisting">
+ mapping identified so far is:</em></span></p><div class="variablelist"><dl><dt><span class="term">initial SMBopenX request:</span></dt><dd><p>RPC_ResBind response:</p></dd><dt><span class="term">&quot;\\PIPE\\srvsvc&quot;</span></dt><dd><p>&quot;\\PIPE\\ntsvcs&quot;</p></dd><dt><span class="term">&quot;\\PIPE\\samr&quot;</span></dt><dd><p>&quot;\\PIPE\\lsass&quot;</p></dd><dt><span class="term">&quot;\\PIPE\\lsarpc&quot;</span></dt><dd><p>&quot;\\PIPE\\lsass&quot;</p></dd><dt><span class="term">&quot;\\PIPE\\wkssvc&quot;</span></dt><dd><p>&quot;\\PIPE\\wksvcs&quot;</p></dd><dt><span class="term">&quot;\\PIPE\\NETLOGON&quot;</span></dt><dd><p>&quot;\\PIPE\\NETLOGON&quot;</p></dd></dl></div><p><span class="emphasis"><em>Note: The RPC_Packet fraglength member in both the Bind Request and Bind Acknowledgment must contain the length of the entire RPC data, including the RPC_Packet header.</em></span></p><p>Request:</p><table class="simplelist" border="0" summary="Simple list"><tr><td>RPC_Packet</td></tr><tr><td>RPC_ReqBind</td></tr></table><p>Response:</p><table class="simplelist" border="0" summary="Simple list"><tr><td>RPC_Packet</td></tr><tr><td>RPC_ResBind</td></tr></table></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884278"></a>NTLSA Transact Named Pipe</h3></div></div><div></div></div><p>The sequence of actions taken on this pipe are:</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Establish a connection to the IPC$ share (SMBtconX). use encrypted passwords.</td></tr><tr><td>Open an RPC Pipe with the name &quot;\\PIPE\\lsarpc&quot;. Store the file handle.</td></tr><tr><td>Using the file handle, send a Set Named Pipe Handle state to 0x4300.</td></tr><tr><td>Send an LSA Open Policy request. Store the Policy Handle.</td></tr><tr><td>Using the Policy Handle, send LSA Query Info Policy requests, etc.</td></tr><tr><td>Using the Policy Handle, send an LSA Close.</td></tr><tr><td>Close the IPC$ share.</td></tr></table><p>Defines for this pipe, identifying the query are:</p><div class="variablelist"><dl><dt><span class="term">LSA Open Policy:</span></dt><dd><p>0x2c</p></dd><dt><span class="term">LSA Query Info Policy:</span></dt><dd><p>0x07</p></dd><dt><span class="term">LSA Enumerate Trusted Domains:</span></dt><dd><p>0x0d</p></dd><dt><span class="term">LSA Open Secret:</span></dt><dd><p>0xff</p></dd><dt><span class="term">LSA Lookup SIDs:</span></dt><dd><p>0xfe</p></dd><dt><span class="term">LSA Lookup Names:</span></dt><dd><p>0xfd</p></dd><dt><span class="term">LSA Close:</span></dt><dd><p>0x00</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884443"></a>LSA Open Policy</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: The policy handle can be anything you like.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884456"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>server name - unicode string starting with two '\'s</p></dd><dt><span class="term">OBJ_ATTR</span></dt><dd><p>object attributes</p></dd><dt><span class="term">UINT32</span></dt><dd><p>1 - desired access</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884526"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>LSA policy handle</p></dd><dt><span class="term">return</span></dt><dd><p>0 - indicates success</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884568"></a>LSA Query Info Policy</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: The info class in response must be the same as that in the request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884582"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>LSA policy handle</p></dd><dt><span class="term">UINT16</span></dt><dd><p>info class (also a policy handle?)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884621"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UINT16</span></dt><dd><p>info class (same as info class in request).</p></dd></dl></div><pre class="programlisting">
switch (info class)
case 3:
case 5:
@@ -1292,11 +1292,11 @@ DOM_INFO domain info, levels 3 and 5 (are the same).
}
return 0 - indicates success
-</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2877858"></a>LSA Enumerate Trusted Domains</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877866"></a>Request</h4></div></div><div></div></div><p>no extra data</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877878"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>0 - enumeration context</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - entries read</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - trust information</p></dd><dt><span class="term">return</span></dt><dd><p>0x8000 001a - &quot;no trusted domains&quot; success code</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2877950"></a>LSA Open Secret</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877957"></a>Request</h4></div></div><div></div></div><p>no extra data</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2877969"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd></dl></div><p>return 0x0C00 0034 - &quot;no such secret&quot; success code</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2878060"></a>LSA Close</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878067"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>policy handle to be closed</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878094"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>0s - closed policy handle (all zeros)</p></dd></dl></div><p>return 0 - indicates success</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2878126"></a>LSA Lookup SIDS</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: num_entries in response must be same as num_entries in request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878139"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>LSA policy handle</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain SID buffer pointer</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain name buffer pointer</p></dd><dt><span class="term">VOID*[num_entries] undocumented domain SID pointers to be looked up.
-</span></dt><dd><p>DOM_SID[num_entries] domain SIDs to be looked up.</p></dd><dt><span class="term">char[16]</span></dt><dd><p>completely undocumented 16 bytes.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878239"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">DOM_REF</span></dt><dd><p>domain reference response</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd><dt><span class="term">DOM_SID2[num_entries]</span></dt><dd><p>domain SIDs (from Request, listed above).</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd></dl></div><p>return 0 - indicates success</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2878335"></a>LSA Lookup Names</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: num_entries in response must be same as num_entries in request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878349"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>LSA policy handle</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain SID buffer pointer</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain name buffer pointer</p></dd><dt><span class="term">NAME[num_entries]</span></dt><dd><p>names to be looked up.</p></dd><dt><span class="term">char[]</span></dt><dd><p>undocumented bytes - falsely translated SID structure?</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878463"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">DOM_REF</span></dt><dd><p>domain reference response</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd><dt><span class="term">DOM_RID[num_entries]</span></dt><dd><p>domain SIDs (from Request, listed above).</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd></dl></div><p>return 0 - indicates success</p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2878561"></a>NETLOGON rpc Transact Named Pipe</h2></div></div><div></div></div><p>The sequence of actions taken on this pipe are:</p><table class="simplelist" border="0" summary="Simple list"><tr><td>tablish a connection to the IPC$ share (SMBtconX). use encrypted passwords.</td></tr><tr><td>en an RPC Pipe with the name &quot;\\PIPE\\NETLOGON&quot;. Store the file handle.</td></tr><tr><td>ing the file handle, send a Set Named Pipe Handle state to 0x4300.</td></tr><tr><td>eate Client Challenge. Send LSA Request Challenge. Store Server Challenge.</td></tr><tr><td>lculate Session Key. Send an LSA Auth 2 Challenge. Store Auth2 Challenge.</td></tr><tr><td>lc/Verify Client Creds. Send LSA Srv PW Set. Calc/Verify Server Creds.</td></tr><tr><td>lc/Verify Client Creds. Send LSA SAM Logon . Calc/Verify Server Creds.</td></tr><tr><td>lc/Verify Client Creds. Send LSA SAM Logoff. Calc/Verify Server Creds.</td></tr><tr><td>ose the IPC$ share.</td></tr></table><p>Defines for this pipe, identifying the query are</p><div class="variablelist"><dl><dt><span class="term">LSA Request Challenge:</span></dt><dd><p>0x04</p></dd><dt><span class="term">LSA Server Password Set:</span></dt><dd><p>0x06</p></dd><dt><span class="term">LSA SAM Logon:</span></dt><dd><p>0x02</p></dd><dt><span class="term">LSA SAM Logoff:</span></dt><dd><p>0x03</p></dd><dt><span class="term">LSA Auth 2:</span></dt><dd><p>0x0f</p></dd><dt><span class="term">LSA Logon Control:</span></dt><dd><p>0x0e</p></dd></dl></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2878722"></a>LSA Request Challenge</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: logon server name starts with two '\' characters and is upper case.</em></span></p><p><span class="emphasis"><em>Note: logon client is the machine, not the user.</em></span></p><p><span class="emphasis"><em>Note: the initial LanManager password hash, against which the challenge is issued, is the machine name itself (lower case). there will becalls issued (LSA Server Password Set) which will change this, later. refusing these calls allows you to always deal with the same password (i.e the LM# of the machine name in lower case).</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878754"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon server unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon client unicode string</p></dd><dt><span class="term">char[8]</span></dt><dd><p>client challenge</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878824"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">char[8]</span></dt><dd><p>server challenge</p></dd></dl></div><p>return 0 - indicates success</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2878856"></a>LSA Authenticate 2</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: in between request and response, calculate the client credentials, and check them against the client-calculated credentials (this process uses the previously received client credentials).</em></span></p><p><span class="emphasis"><em>Note: neg_flags in the response is the same as that in the request.</em></span></p><p><span class="emphasis"><em>Note: you must take a copy of the client-calculated credentials received here, because they will be used in subsequent authentication packets.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878887"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">LOG_INFO</span></dt><dd><p>client identification info</p></dd><dt><span class="term">char[8]</span></dt><dd><p>client-calculated credentials</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to 4-byte align with start of SMB header.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>neg_flags - negotiated flags (usual value is 0x0000 01ff)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2878956"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">char[8]</span></dt><dd><p>server credentials.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>neg_flags - same as neg_flags in request.</p></dd></dl></div><p>return 0 - indicates success. failure value unknown.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2879004"></a>LSA Server Password Set</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: the new password is suspected to be a DES encryption using the old password to generate the key.</em></span></p><p><span class="emphasis"><em>Note: in between request and response, calculate the client credentials, and check them against the client-calculated credentials (this process uses the previously received client credentials).</em></span></p><p><span class="emphasis"><em>Note: the server credentials are constructed from the client-calculated credentials and the client time + 1 second.</em></span></p><p><span class="emphasis"><em>Note: you must take a copy of the client-calculated credentials received here, because they will be used in subsequent authentication packets.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879043"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">CLNT_INFO</span></dt><dd><p>client identification/authentication info</p></dd><dt><span class="term">char[]</span></dt><dd><p>new password - undocumented.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879085"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">CREDS</span></dt><dd><p>server credentials. server time stamp appears to be ignored.</p></dd></dl></div><p>return 0 - indicates success; 0xC000 006a indicates failure</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2879119"></a>LSA SAM Logon</h3></div></div><div></div></div><p><span class="emphasis"><em>
+</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884674"></a>LSA Enumerate Trusted Domains</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884682"></a>Request</h4></div></div><div></div></div><p>no extra data</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884694"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>0 - enumeration context</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - entries read</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - trust information</p></dd><dt><span class="term">return</span></dt><dd><p>0x8000 001a - &quot;no trusted domains&quot; success code</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884766"></a>LSA Open Secret</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884773"></a>Request</h4></div></div><div></div></div><p>no extra data</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884786"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd><dt><span class="term">UINT32</span></dt><dd><p>0 - undocumented</p></dd></dl></div><p>return 0x0C00 0034 - &quot;no such secret&quot; success code</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884876"></a>LSA Close</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884882"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>policy handle to be closed</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884909"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>0s - closed policy handle (all zeros)</p></dd></dl></div><p>return 0 - indicates success</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884941"></a>LSA Lookup SIDS</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: num_entries in response must be same as num_entries in request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884955"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>LSA policy handle</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain SID buffer pointer</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain name buffer pointer</p></dd><dt><span class="term">VOID*[num_entries] undocumented domain SID pointers to be looked up.
+</span></dt><dd><p>DOM_SID[num_entries] domain SIDs to be looked up.</p></dd><dt><span class="term">char[16]</span></dt><dd><p>completely undocumented 16 bytes.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885054"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">DOM_REF</span></dt><dd><p>domain reference response</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd><dt><span class="term">DOM_SID2[num_entries]</span></dt><dd><p>domain SIDs (from Request, listed above).</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd></dl></div><p>return 0 - indicates success</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2885151"></a>LSA Lookup Names</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: num_entries in response must be same as num_entries in request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885165"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">POL_HND</span></dt><dd><p>LSA policy handle</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain SID buffer pointer</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented domain name buffer pointer</p></dd><dt><span class="term">NAME[num_entries]</span></dt><dd><p>names to be looked up.</p></dd><dt><span class="term">char[]</span></dt><dd><p>undocumented bytes - falsely translated SID structure?</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885278"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">DOM_REF</span></dt><dd><p>domain reference response</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd><dt><span class="term">DOM_RID[num_entries]</span></dt><dd><p>domain SIDs (from Request, listed above).</p></dd><dt><span class="term">UINT32</span></dt><dd><p>num_entries (listed above)</p></dd></dl></div><p>return 0 - indicates success</p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2885377"></a>NETLOGON rpc Transact Named Pipe</h2></div></div><div></div></div><p>The sequence of actions taken on this pipe are:</p><table class="simplelist" border="0" summary="Simple list"><tr><td>tablish a connection to the IPC$ share (SMBtconX). use encrypted passwords.</td></tr><tr><td>en an RPC Pipe with the name &quot;\\PIPE\\NETLOGON&quot;. Store the file handle.</td></tr><tr><td>ing the file handle, send a Set Named Pipe Handle state to 0x4300.</td></tr><tr><td>eate Client Challenge. Send LSA Request Challenge. Store Server Challenge.</td></tr><tr><td>lculate Session Key. Send an LSA Auth 2 Challenge. Store Auth2 Challenge.</td></tr><tr><td>lc/Verify Client Creds. Send LSA Srv PW Set. Calc/Verify Server Creds.</td></tr><tr><td>lc/Verify Client Creds. Send LSA SAM Logon . Calc/Verify Server Creds.</td></tr><tr><td>lc/Verify Client Creds. Send LSA SAM Logoff. Calc/Verify Server Creds.</td></tr><tr><td>ose the IPC$ share.</td></tr></table><p>Defines for this pipe, identifying the query are</p><div class="variablelist"><dl><dt><span class="term">LSA Request Challenge:</span></dt><dd><p>0x04</p></dd><dt><span class="term">LSA Server Password Set:</span></dt><dd><p>0x06</p></dd><dt><span class="term">LSA SAM Logon:</span></dt><dd><p>0x02</p></dd><dt><span class="term">LSA SAM Logoff:</span></dt><dd><p>0x03</p></dd><dt><span class="term">LSA Auth 2:</span></dt><dd><p>0x0f</p></dd><dt><span class="term">LSA Logon Control:</span></dt><dd><p>0x0e</p></dd></dl></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2885537"></a>LSA Request Challenge</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: logon server name starts with two '\' characters and is upper case.</em></span></p><p><span class="emphasis"><em>Note: logon client is the machine, not the user.</em></span></p><p><span class="emphasis"><em>Note: the initial LanManager password hash, against which the challenge is issued, is the machine name itself (lower case). there will becalls issued (LSA Server Password Set) which will change this, later. refusing these calls allows you to always deal with the same password (i.e the LM# of the machine name in lower case).</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885569"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon server unicode string</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>logon client unicode string</p></dd><dt><span class="term">char[8]</span></dt><dd><p>client challenge</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885639"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">char[8]</span></dt><dd><p>server challenge</p></dd></dl></div><p>return 0 - indicates success</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2885672"></a>LSA Authenticate 2</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: in between request and response, calculate the client credentials, and check them against the client-calculated credentials (this process uses the previously received client credentials).</em></span></p><p><span class="emphasis"><em>Note: neg_flags in the response is the same as that in the request.</em></span></p><p><span class="emphasis"><em>Note: you must take a copy of the client-calculated credentials received here, because they will be used in subsequent authentication packets.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885703"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">LOG_INFO</span></dt><dd><p>client identification info</p></dd><dt><span class="term">char[8]</span></dt><dd><p>client-calculated credentials</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to 4-byte align with start of SMB header.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>neg_flags - negotiated flags (usual value is 0x0000 01ff)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885771"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">char[8]</span></dt><dd><p>server credentials.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>neg_flags - same as neg_flags in request.</p></dd></dl></div><p>return 0 - indicates success. failure value unknown.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2885819"></a>LSA Server Password Set</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: the new password is suspected to be a DES encryption using the old password to generate the key.</em></span></p><p><span class="emphasis"><em>Note: in between request and response, calculate the client credentials, and check them against the client-calculated credentials (this process uses the previously received client credentials).</em></span></p><p><span class="emphasis"><em>Note: the server credentials are constructed from the client-calculated credentials and the client time + 1 second.</em></span></p><p><span class="emphasis"><em>Note: you must take a copy of the client-calculated credentials received here, because they will be used in subsequent authentication packets.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885858"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">CLNT_INFO</span></dt><dd><p>client identification/authentication info</p></dd><dt><span class="term">char[]</span></dt><dd><p>new password - undocumented.</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885900"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">CREDS</span></dt><dd><p>server credentials. server time stamp appears to be ignored.</p></dd></dl></div><p>return 0 - indicates success; 0xC000 006a indicates failure</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2885934"></a>LSA SAM Logon</h3></div></div><div></div></div><p><span class="emphasis"><em>
Note: valid_user is True iff the username and password hash are valid for
the requested domain.
-</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879133"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">SAM_INFO</span></dt><dd><p>sam_id structure</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879161"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">CREDS</span></dt><dd><p>server credentials. server time stamp appears to be ignored.</p></dd></dl></div><pre class="programlisting">
+</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885949"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">SAM_INFO</span></dt><dd><p>sam_id structure</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2885975"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">CREDS</span></dt><dd><p>server credentials. server time stamp appears to be ignored.</p></dd></dl></div><pre class="programlisting">
if (valid_user)
{
UINT16 3 - switch value indicating USER_INFO structure.
@@ -1316,16 +1316,16 @@ else
return 0xC000 0064 - NT_STATUS_NO_SUCH_USER.
}
-</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2879232"></a>LSA SAM Logoff</h3></div></div><div></div></div><p><span class="emphasis"><em>
+</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2886037"></a>LSA SAM Logoff</h3></div></div><div></div></div><p><span class="emphasis"><em>
Note: presumably, the SAM_INFO structure is validated, and a (currently
undocumented) error code returned if the Logoff is invalid.
-</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879247"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">SAM_INFO</span></dt><dd><p>sam_id structure</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879274"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">CREDS</span></dt><dd><p>server credentials. server time stamp appears to be ignored.</p></dd></dl></div><p>return 0 - indicates success. undocumented failure indication.</p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2879324"></a>\\MAILSLOT\NET\NTLOGON</h2></div></div><div></div></div><p><span class="emphasis"><em>
+</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2886052"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">SAM_INFO</span></dt><dd><p>sam_id structure</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2886079"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>undocumented buffer pointer</p></dd><dt><span class="term">CREDS</span></dt><dd><p>server credentials. server time stamp appears to be ignored.</p></dd></dl></div><p>return 0 - indicates success. undocumented failure indication.</p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2886129"></a>\\MAILSLOT\NET\NTLOGON</h2></div></div><div></div></div><p><span class="emphasis"><em>
Note: mailslots will contain a response mailslot, to which the response
should be sent. the target NetBIOS name is REQUEST_NAME&lt;20&gt;, where
REQUEST_NAME is the name of the machine that sent the request.
-</em></span></p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2879336"></a>Query for PDC</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: NTversion, LMNTtoken, LM20token in response are the same as those given in the request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879356"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>0x0007 - Query for PDC</p></dd><dt><span class="term">STR</span></dt><dd><p>machine name</p></dd><dt><span class="term">STR</span></dt><dd><p>response mailslot</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to 2-byte align with start of mailslot.</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>machine name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>NTversion</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LMNTtoken</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LM20token</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879483"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>0x000A - Respose to Query for PDC</p></dd><dt><span class="term">STR</span></dt><dd><p>machine name (in uppercase)</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to 2-byte align with start of mailslot.</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>machine name</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>domain name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>NTversion (same as received in request)</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LMNTtoken (same as received in request)</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LM20token (same as received in request)</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2879604"></a>SAM Logon</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: machine name in response is preceded by two '\' characters.</em></span></p><p><span class="emphasis"><em>Note: NTversion, LMNTtoken, LM20token in response are the same as those given in the request.</em></span></p><p><span class="emphasis"><em>Note: user name in the response is presumably the same as that in the request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879632"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>0x0012 - SAM Logon</p></dd><dt><span class="term">UINT16</span></dt><dd><p>request count</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>machine name</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>user name</p></dd><dt><span class="term">STR</span></dt><dd><p>response mailslot</p></dd><dt><span class="term">UINT32</span></dt><dd><p>alloweable account</p></dd><dt><span class="term">UINT32</span></dt><dd><p>domain SID size</p></dd><dt><span class="term">char[sid_size]</span></dt><dd><p>domain SID, of sid_size bytes.</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>???? padding to 4? 2? -byte align with start of mailslot.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>NTversion</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LMNTtoken</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LM20token</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879815"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>0x0013 - Response to SAM Logon</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>machine name</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>user name - workstation trust account</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>domain name </p></dd><dt><span class="term">UINT32</span></dt><dd><p>NTversion</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LMNTtoken</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LM20token</p></dd></dl></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2879929"></a>SRVSVC Transact Named Pipe</h2></div></div><div></div></div><p>Defines for this pipe, identifying the query are:</p><div class="variablelist"><dl><dt><span class="term">Net Share Enum</span></dt><dd><p>0x0f</p></dd><dt><span class="term">Net Server Get Info</span></dt><dd><p>0x15</p></dd></dl></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2879974"></a>Net Share Enum</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: share level and switch value in the response are presumably the same as those in the request.</em></span></p><p><span class="emphasis"><em>Note: cifsrap2.txt (section 5) may be of limited assistance here.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2879995"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>pointer (to server name?)</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>server name</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to get unicode string 4-byte aligned with the start of the SMB header.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>share level</p></dd><dt><span class="term">UINT32</span></dt><dd><p>switch value</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to SHARE_INFO_1_CTR</p></dd><dt><span class="term">SHARE_INFO_1_CTR</span></dt><dd><p>share info with 0 entries</p></dd><dt><span class="term">UINT32</span></dt><dd><p>preferred maximum length (0xffff ffff)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2880120"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>share level</p></dd><dt><span class="term">UINT32</span></dt><dd><p>switch value</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to SHARE_INFO_1_CTR</p></dd><dt><span class="term">SHARE_INFO_1_CTR</span></dt><dd><p>share info (only added if share info ptr is non-zero)</p></dd></dl></div><p>return 0 - indicates success</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2880194"></a>Net Server Get Info</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: level is the same value as in the request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2880207"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UNISTR2</span></dt><dd><p>server name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>switch level</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2880248"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>switch level</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to SERVER_INFO_101</p></dd><dt><span class="term">SERVER_INFO_101</span></dt><dd><p>server info (only added if server info ptr is non-zero)</p></dd></dl></div><p>return 0 - indicates success</p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2880310"></a>Cryptographic side of NT Domain Authentication</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2880318"></a>Definitions</h3></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">Add(A1,A2)</span></dt><dd><p>Intel byte ordered addition of corresponding 4 byte words in arrays A1 and A2</p></dd><dt><span class="term">E(K,D)</span></dt><dd><p>DES ECB encryption of 8 byte data D using 7 byte key K</p></dd><dt><span class="term">lmowf()</span></dt><dd><p>Lan man hash</p></dd><dt><span class="term">ntowf()</span></dt><dd><p>NT hash</p></dd><dt><span class="term">PW</span></dt><dd><p>md4(machine_password) == md4(lsadump $machine.acc) ==
+</em></span></p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2886146"></a>Query for PDC</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: NTversion, LMNTtoken, LM20token in response are the same as those given in the request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2886160"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>0x0007 - Query for PDC</p></dd><dt><span class="term">STR</span></dt><dd><p>machine name</p></dd><dt><span class="term">STR</span></dt><dd><p>response mailslot</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to 2-byte align with start of mailslot.</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>machine name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>NTversion</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LMNTtoken</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LM20token</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2886286"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>0x000A - Respose to Query for PDC</p></dd><dt><span class="term">STR</span></dt><dd><p>machine name (in uppercase)</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to 2-byte align with start of mailslot.</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>machine name</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>domain name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>NTversion (same as received in request)</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LMNTtoken (same as received in request)</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LM20token (same as received in request)</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2886407"></a>SAM Logon</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: machine name in response is preceded by two '\' characters.</em></span></p><p><span class="emphasis"><em>Note: NTversion, LMNTtoken, LM20token in response are the same as those given in the request.</em></span></p><p><span class="emphasis"><em>Note: user name in the response is presumably the same as that in the request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2886435"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>0x0012 - SAM Logon</p></dd><dt><span class="term">UINT16</span></dt><dd><p>request count</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>machine name</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>user name</p></dd><dt><span class="term">STR</span></dt><dd><p>response mailslot</p></dd><dt><span class="term">UINT32</span></dt><dd><p>alloweable account</p></dd><dt><span class="term">UINT32</span></dt><dd><p>domain SID size</p></dd><dt><span class="term">char[sid_size]</span></dt><dd><p>domain SID, of sid_size bytes.</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>???? padding to 4? 2? -byte align with start of mailslot.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>NTversion</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LMNTtoken</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LM20token</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2886618"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT16</span></dt><dd><p>0x0013 - Response to SAM Logon</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>machine name</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>user name - workstation trust account</p></dd><dt><span class="term">UNISTR</span></dt><dd><p>domain name </p></dd><dt><span class="term">UINT32</span></dt><dd><p>NTversion</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LMNTtoken</p></dd><dt><span class="term">UINT16</span></dt><dd><p>LM20token</p></dd></dl></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2886733"></a>SRVSVC Transact Named Pipe</h2></div></div><div></div></div><p>Defines for this pipe, identifying the query are:</p><div class="variablelist"><dl><dt><span class="term">Net Share Enum</span></dt><dd><p>0x0f</p></dd><dt><span class="term">Net Server Get Info</span></dt><dd><p>0x15</p></dd></dl></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2886778"></a>Net Share Enum</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: share level and switch value in the response are presumably the same as those in the request.</em></span></p><p><span class="emphasis"><em>Note: cifsrap2.txt (section 5) may be of limited assistance here.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2886799"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">VOID*</span></dt><dd><p>pointer (to server name?)</p></dd><dt><span class="term">UNISTR2</span></dt><dd><p>server name</p></dd><dt><span class="term">UINT8[]</span></dt><dd><p>padding to get unicode string 4-byte aligned with the start of the SMB header.</p></dd><dt><span class="term">UINT32</span></dt><dd><p>share level</p></dd><dt><span class="term">UINT32</span></dt><dd><p>switch value</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to SHARE_INFO_1_CTR</p></dd><dt><span class="term">SHARE_INFO_1_CTR</span></dt><dd><p>share info with 0 entries</p></dd><dt><span class="term">UINT32</span></dt><dd><p>preferred maximum length (0xffff ffff)</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2886924"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>share level</p></dd><dt><span class="term">UINT32</span></dt><dd><p>switch value</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to SHARE_INFO_1_CTR</p></dd><dt><span class="term">SHARE_INFO_1_CTR</span></dt><dd><p>share info (only added if share info ptr is non-zero)</p></dd></dl></div><p>return 0 - indicates success</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2886997"></a>Net Server Get Info</h3></div></div><div></div></div><p><span class="emphasis"><em>Note: level is the same value as in the request.</em></span></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2887011"></a>Request</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UNISTR2</span></dt><dd><p>server name</p></dd><dt><span class="term">UINT32</span></dt><dd><p>switch level</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2887051"></a>Response</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">UINT32</span></dt><dd><p>switch level</p></dd><dt><span class="term">VOID*</span></dt><dd><p>pointer to SERVER_INFO_101</p></dd><dt><span class="term">SERVER_INFO_101</span></dt><dd><p>server info (only added if server info ptr is non-zero)</p></dd></dl></div><p>return 0 - indicates success</p></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2887114"></a>Cryptographic side of NT Domain Authentication</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2887121"></a>Definitions</h3></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">Add(A1,A2)</span></dt><dd><p>Intel byte ordered addition of corresponding 4 byte words in arrays A1 and A2</p></dd><dt><span class="term">E(K,D)</span></dt><dd><p>DES ECB encryption of 8 byte data D using 7 byte key K</p></dd><dt><span class="term">lmowf()</span></dt><dd><p>Lan man hash</p></dd><dt><span class="term">ntowf()</span></dt><dd><p>NT hash</p></dd><dt><span class="term">PW</span></dt><dd><p>md4(machine_password) == md4(lsadump $machine.acc) ==
pwdump(machine$) (initially) == md4(lmowf(unicode(machine)))
-</p></dd><dt><span class="term">ARC4(K,Lk,D,Ld)</span></dt><dd><p>ARC4 encryption of data D of length Ld with key K of length Lk</p></dd><dt><span class="term">v[m..n(,l)]</span></dt><dd><p>subset of v from bytes m to n, optionally padded with zeroes to length l</p></dd><dt><span class="term">Cred(K,D)</span></dt><dd><p>E(K[7..7,7],E(K[0..6],D)) computes a credential</p></dd><dt><span class="term">Time()</span></dt><dd><p>4 byte current time</p></dd><dt><span class="term">Cc,Cs</span></dt><dd><p>8 byte client and server challenges Rc,Rs: 8 byte client and server credentials</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2880480"></a>Protocol</h3></div></div><div></div></div><pre class="programlisting">
+</p></dd><dt><span class="term">ARC4(K,Lk,D,Ld)</span></dt><dd><p>ARC4 encryption of data D of length Ld with key K of length Lk</p></dd><dt><span class="term">v[m..n(,l)]</span></dt><dd><p>subset of v from bytes m to n, optionally padded with zeroes to length l</p></dd><dt><span class="term">Cred(K,D)</span></dt><dd><p>E(K[7..7,7],E(K[0..6],D)) computes a credential</p></dd><dt><span class="term">Time()</span></dt><dd><p>4 byte current time</p></dd><dt><span class="term">Cc,Cs</span></dt><dd><p>8 byte client and server challenges Rc,Rs: 8 byte client and server credentials</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2887283"></a>Protocol</h3></div></div><div></div></div><pre class="programlisting">
C-&gt;S ReqChal,Cc
S-&gt;C Cs
</pre><pre class="programlisting">
@@ -1361,7 +1361,7 @@ S: Ts = Time()
S-&gt;C Cred(Ks,Cred(Ks,Rc+Tc+1)),userinfo(logon script,UID,SIDs,etc)
C: assert(Rs == Cred(Ks,Cred(Rc+Tc+1))
C: Rc = Cred(Ks,Rc+Tc+1)
-</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2880577"></a>Comments</h3></div></div><div></div></div><p>
+</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2887363"></a>Comments</h3></div></div><div></div></div><p>
On first joining the domain the session key could be computed by
anyone listening in on the network as the machine password has a well
known value. Until the machine is rebooted it will use this session
@@ -1382,30 +1382,30 @@ returned by the server.
The password OWFs should NOT be sent over the network reversibly
encrypted. They should be sent using ARC4(Ks,md4(owf)) with the server
computing the same function using the owf values in the SAM.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2880626"></a>SIDs and RIDs</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2887413"></a>SIDs and RIDs</h2></div></div><div></div></div><p>
SIDs and RIDs are well documented elsewhere.
</p><p>
A SID is an NT Security ID (see DOM_SID structure). They are of the form:
</p><table class="simplelist" border="0" summary="Simple list"><tr><td>revision-NN-SubAuth1-SubAuth2-SubAuth3... </td></tr><tr><td>revision-0xNNNNNNNNNNNN-SubAuth1-SubAuth2-SubAuth3...</td></tr></table><p>
currently, the SID revision is 1.
The Sub-Authorities are known as Relative IDs (RIDs).
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2880666"></a>Well-known SIDs</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2880673"></a>Universal well-known SIDs</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">Null SID</span></dt><dd><p>S-1-0-0</p></dd><dt><span class="term">World</span></dt><dd><p>S-1-1-0</p></dd><dt><span class="term">Local</span></dt><dd><p>S-1-2-0</p></dd><dt><span class="term">Creator Owner ID</span></dt><dd><p>S-1-3-0</p></dd><dt><span class="term">Creator Group ID</span></dt><dd><p>S-1-3-1</p></dd><dt><span class="term">Creator Owner Server ID</span></dt><dd><p>S-1-3-2</p></dd><dt><span class="term">Creator Group Server ID</span></dt><dd><p>S-1-3-3</p></dd><dt><span class="term">(Non-unique IDs)</span></dt><dd><p>S-1-4</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2880800"></a>NT well-known SIDs</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">NT Authority</span></dt><dd><p>S-1-5</p></dd><dt><span class="term">Dialup</span></dt><dd><p>S-1-5-1</p></dd><dt><span class="term">Network</span></dt><dd><p>S-1-5-2</p></dd><dt><span class="term">Batch</span></dt><dd><p>S-1-5-3</p></dd><dt><span class="term">Interactive</span></dt><dd><p>S-1-5-4</p></dd><dt><span class="term">Service</span></dt><dd><p>S-1-5-6</p></dd><dt><span class="term">AnonymousLogon(aka null logon session)</span></dt><dd><p>S-1-5-7</p></dd><dt><span class="term">Proxy</span></dt><dd><p>S-1-5-8</p></dd><dt><span class="term">ServerLogon(aka domain controller account)</span></dt><dd><p>S-1-5-8</p></dd><dt><span class="term">(Logon IDs)</span></dt><dd><p>S-1-5-5-X-Y</p></dd><dt><span class="term">(NT non-unique IDs)</span></dt><dd><p>S-1-5-0x15-...</p></dd><dt><span class="term">(Built-in domain)</span></dt><dd><p>s-1-5-0x20</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2880981"></a>Well-known RIDS</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2887453"></a>Well-known SIDs</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2887460"></a>Universal well-known SIDs</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">Null SID</span></dt><dd><p>S-1-0-0</p></dd><dt><span class="term">World</span></dt><dd><p>S-1-1-0</p></dd><dt><span class="term">Local</span></dt><dd><p>S-1-2-0</p></dd><dt><span class="term">Creator Owner ID</span></dt><dd><p>S-1-3-0</p></dd><dt><span class="term">Creator Group ID</span></dt><dd><p>S-1-3-1</p></dd><dt><span class="term">Creator Owner Server ID</span></dt><dd><p>S-1-3-2</p></dd><dt><span class="term">Creator Group Server ID</span></dt><dd><p>S-1-3-3</p></dd><dt><span class="term">(Non-unique IDs)</span></dt><dd><p>S-1-4</p></dd></dl></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2887586"></a>NT well-known SIDs</h4></div></div><div></div></div><div class="variablelist"><dl><dt><span class="term">NT Authority</span></dt><dd><p>S-1-5</p></dd><dt><span class="term">Dialup</span></dt><dd><p>S-1-5-1</p></dd><dt><span class="term">Network</span></dt><dd><p>S-1-5-2</p></dd><dt><span class="term">Batch</span></dt><dd><p>S-1-5-3</p></dd><dt><span class="term">Interactive</span></dt><dd><p>S-1-5-4</p></dd><dt><span class="term">Service</span></dt><dd><p>S-1-5-6</p></dd><dt><span class="term">AnonymousLogon(aka null logon session)</span></dt><dd><p>S-1-5-7</p></dd><dt><span class="term">Proxy</span></dt><dd><p>S-1-5-8</p></dd><dt><span class="term">ServerLogon(aka domain controller account)</span></dt><dd><p>S-1-5-8</p></dd><dt><span class="term">(Logon IDs)</span></dt><dd><p>S-1-5-5-X-Y</p></dd><dt><span class="term">(NT non-unique IDs)</span></dt><dd><p>S-1-5-0x15-...</p></dd><dt><span class="term">(Built-in domain)</span></dt><dd><p>s-1-5-0x20</p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2887767"></a>Well-known RIDS</h3></div></div><div></div></div><p>
A RID is a sub-authority value, as part of either a SID, or in the case
of Group RIDs, part of the DOM_GID structure, in the USER_INFO_1
structure, in the LSA SAM Logon response.
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2880995"></a>Well-known RID users</h4></div></div><div></div></div><div class="segmentedlist"><p><b>Groupname: </b>DOMAIN_USER_RID_ADMIN</p><p><b>????: </b>0x0000</p><p><b>RID: </b>01F4</p><p><b>Groupname: </b>DOMAIN_USER_RID_GUEST</p><p><b>????: </b>0x0000</p><p><b>RID: </b>01F5</p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881044"></a>Well-known RID groups</h4></div></div><div></div></div><div class="segmentedlist"><p><b>Groupname: </b> DOMAIN_GROUP_RID_ADMINS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0200</p><p><b>Groupname: </b> DOMAIN_GROUP_RID_USERS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0201</p><p><b>Groupname: </b> DOMAIN_GROUP_RID_GUESTS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0202</p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2881103"></a>Well-known RID aliases</h4></div></div><div></div></div><div class="segmentedlist"><p><b>Groupname: </b> DOMAIN_ALIAS_RID_ADMINS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0220</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_USERS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0221</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_GUESTS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0222</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_POWER_USERS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0223</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_ACCOUNT_OPS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0224</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_SYSTEM_OPS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0225</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_PRINT_OPS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0226</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_BACKUP_OPS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0227</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_REPLICATOR</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0228</p></div></div></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="printing"></a>Chapter 10. Samba Printing Internals</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Gerald</span> <span class="surname">Carter</span></h3></div></div><div><p class="pubdate">October 2002</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2889663">Abstract</a></dt><dt><a href="#id2889679">
+</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2887782"></a>Well-known RID users</h4></div></div><div></div></div><div class="segmentedlist"><p><b>Groupname: </b>DOMAIN_USER_RID_ADMIN</p><p><b>????: </b>0x0000</p><p><b>RID: </b>01F4</p><p><b>Groupname: </b>DOMAIN_USER_RID_GUEST</p><p><b>????: </b>0x0000</p><p><b>RID: </b>01F5</p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2887830"></a>Well-known RID groups</h4></div></div><div></div></div><div class="segmentedlist"><p><b>Groupname: </b> DOMAIN_GROUP_RID_ADMINS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0200</p><p><b>Groupname: </b> DOMAIN_GROUP_RID_USERS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0201</p><p><b>Groupname: </b> DOMAIN_GROUP_RID_GUESTS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0202</p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2887889"></a>Well-known RID aliases</h4></div></div><div></div></div><div class="segmentedlist"><p><b>Groupname: </b> DOMAIN_ALIAS_RID_ADMINS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0220</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_USERS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0221</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_GUESTS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0222</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_POWER_USERS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0223</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_ACCOUNT_OPS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0224</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_SYSTEM_OPS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0225</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_PRINT_OPS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0226</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_BACKUP_OPS</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0227</p><p><b>Groupname: </b> DOMAIN_ALIAS_RID_REPLICATOR</p><p><b>????: </b>0x0000</p><p><b>RID: </b>0228</p></div></div></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="printing"></a>Chapter 10. Samba Printing Internals</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Gerald</span> <span class="surname">Carter</span></h3></div></div><div><p class="pubdate">October 2002</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2889311">Abstract</a></dt><dt><a href="#id2889327">
Printing Interface to Various Back ends
-</a></dt><dt><a href="#id2889934">
+</a></dt><dt><a href="#id2889419">
Print Queue TDB's
-</a></dt><dt><a href="#id2890143">
+</a></dt><dt><a href="#id2888211">
ChangeID and Client Caching of Printer Information
-</a></dt><dt><a href="#id2890156">
+</a></dt><dt><a href="#id2888224">
Windows NT/2K Printer Change Notify
-</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2889663"></a>Abstract</h2></div></div><div></div></div><p>
+</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2889311"></a>Abstract</h2></div></div><div></div></div><p>
The purpose of this document is to provide some insight into
Samba's printing functionality and also to describe the semantics
of certain features of Windows client printing.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2889679"></a>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2889327"></a>
Printing Interface to Various Back ends
</h2></div></div><div></div></div><p>
Samba uses a table of function pointers to seven functions. The
@@ -1416,7 +1416,7 @@ Currently there are only two printing back end implementations
defined.
</p><div class="itemizedlist"><ul type="disc"><li><p>a generic set of functions for working with standard UNIX
printing subsystems</p></li><li><p>a set of CUPS specific functions (this is only enabled if
- the CUPS libraries were located at compile time).</p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2889934"></a>
+ the CUPS libraries were located at compile time).</p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2889419"></a>
Print Queue TDB's
</h2></div></div><div></div></div><p>
Samba provides periodic caching of the output from the &quot;lpq command&quot;
@@ -1505,11 +1505,11 @@ and the job has the printer's device mode associated with it by default.
Only non-default Device Mode are stored with print jobs in the print
queue TDB. Otherwise, the Device Mode is obtained from the printer
object when the client issues a GetJob(level == 2) request.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890143"></a>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2888211"></a>
ChangeID and Client Caching of Printer Information
</h2></div></div><div></div></div><p>
[To be filled in later]
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890156"></a>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2888224"></a>
Windows NT/2K Printer Change Notify
</h2></div></div><div></div></div><p>
When working with Windows NT+ clients, it is possible for a
@@ -1607,7 +1607,7 @@ handle for notification. Samba currently uses the snum of
the printer for this which can break if the list of services
has been modified since the notification handle was registered.</p></li><li><p>The size is either (a) the string length in UNICODE for strings,
(b) the size in bytes of the security descriptor, or (c) 0 for
-data values.</p></li></ul></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="wins"></a>Chapter 11. Samba WINS Internals</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Gerald</span> <span class="surname">Carter</span></h3></div></div><div><p class="pubdate">October 2002</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2889624">WINS Failover</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2889624"></a>WINS Failover</h2></div></div><div></div></div><p>
+data values.</p></li></ul></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="wins"></a>Chapter 11. Samba WINS Internals</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Gerald</span> <span class="surname">Carter</span></h3></div></div><div><p class="pubdate">October 2002</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2888880">WINS Failover</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2888880"></a>WINS Failover</h2></div></div><div></div></div><p>
The current Samba codebase possesses the capability to use groups of WINS
servers that share a common namespace for NetBIOS name registration and
resolution. The formal parameter syntax is
@@ -1649,7 +1649,7 @@ If a timeout occurs when querying a specific WINS server, that server is marked
prevent further timeouts and the next server in the WINS group is contacted. Once marked as
dead, Samba will not attempt to contact that server for name registration/resolution queries
for a period of 10 minutes.
-</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="sam"></a>Chapter 12. The Upcoming SAM System</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Andrew</span> <span class="surname">Bartlett</span></h3></div></div><div><p class="pubdate">1 October 2002</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2889427">Security in the 'new SAM'</a></dt><dt><a href="#id2890951">Standalone from UNIX</a></dt><dt><a href="#id2890985">Handles and Races in the new SAM</a></dt><dt><a href="#id2891054">Layers</a></dt><dd><dl><dt><a href="#id2891061">Application</a></dt><dt><a href="#id2891077">SAM Interface</a></dt><dt><a href="#id2891105">SAM Modules</a></dt></dl></dd><dt><a href="#id2891126">SAM Modules</a></dt><dd><dl><dt><a href="#id2891134">Special Module: sam_passdb</a></dt><dt><a href="#id2891152">sam_ads</a></dt></dl></dd><dt><a href="#id2891191">Memory Management</a></dt><dt><a href="#id2891281">Testing</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2889427"></a>Security in the 'new SAM'</h2></div></div><div></div></div><p>One of the biggest problems with passdb is it's implementation of
+</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="sam"></a>Chapter 12. The Upcoming SAM System</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Andrew</span> <span class="surname">Bartlett</span></h3></div></div><div><p class="pubdate">1 October 2002</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2888557">Security in the 'new SAM'</a></dt><dt><a href="#id2888685">Standalone from UNIX</a></dt><dt><a href="#id2888711">Handles and Races in the new SAM</a></dt><dt><a href="#id2888780">Layers</a></dt><dd><dl><dt><a href="#id2888787">Application</a></dt><dt><a href="#id2888803">SAM Interface</a></dt><dt><a href="#id2888829">SAM Modules</a></dt></dl></dd><dt><a href="#id2888851">SAM Modules</a></dt><dd><dl><dt><a href="#id2888858">Special Module: sam_passdb</a></dt><dt><a href="#id2890101">sam_ads</a></dt></dl></dd><dt><a href="#id2890131">Memory Management</a></dt><dt><a href="#id2890217">Testing</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2888557"></a>Security in the 'new SAM'</h2></div></div><div></div></div><p>One of the biggest problems with passdb is it's implementation of
'security'. Access control is on a 'are you root at the moment' basis,
and it has no concept of NT ACLs. Things like ldapsam had to add
'magic' 'are you root' checks.</p><p>We took this very seriously when we started work, and the new structure
@@ -1709,7 +1709,7 @@ actual data store (like the LDAP server).
</p><p>
Finally, we have generic get_sec_desc() and set_sec_desc() routines to
allow external ACL manipulation. These do lookups based on SID.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890951"></a>Standalone from UNIX</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2888685"></a>Standalone from UNIX</h2></div></div><div></div></div><p>
One of the primary tenants of the 'new SAM' is that it would not attempt
to deal with 'what unix id for that'. This would be left to the 'SMS'
(Sid Mapping System') or SID farm, and probably administered via
@@ -1719,7 +1719,7 @@ Accounts not preexisting in unix would be served up via winbind.
</p><p>
This is an *optional* part, and my preferred end-game. We have a fare
way to go before things like winbind up to it however.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890985"></a>Handles and Races in the new SAM</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2888711"></a>Handles and Races in the new SAM</h2></div></div><div></div></div><p>
One of the things that the 'new SAM' work has tried to face is both
compatibility with existing code, and a closer alignment to the SAMR
interface. I consider SAMR to be a 'primary customer' to the this work,
@@ -1744,11 +1744,11 @@ have *really* changed.
'conflicting' updates: Currently we don't deal with this (in passdb
or the new sam stuff), but the design is sufficiently flexible to 'deny'
a second update. I don't foresee locking records however.
-</p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891054"></a>Layers</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2891061"></a>Application</h3></div></div><div></div></div><p>
+</p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2888780"></a>Layers</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2888787"></a>Application</h3></div></div><div></div></div><p>
This is where smbd, samtest and whatever end-user replacement we have
for pdbedit sits. They use only the SAM interface, and do not get
'special knowledge' of what is below them.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2891077"></a>SAM Interface</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2888803"></a>SAM Interface</h3></div></div><div></div></div><p>
This level 'owns' the various handle structures, the get/set routines on
those structures and provides the public interface. The application
layer may initialize a 'context' to be passed to all interface routines,
@@ -1759,7 +1759,7 @@ abstraction to the modules below, and arrange for their initial loading.
</p><p>
We could possibly add ACL checking at this layer, to avoid discrepancies
in implementation modules.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2891105"></a>SAM Modules</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2888829"></a>SAM Modules</h3></div></div><div></div></div><p>
These do not communicate with the application directly, only by setting
values in the handles, and receiving requests from the interface. These
modules are responsible for translating values from the handle's
@@ -1767,13 +1767,13 @@ modules are responsible for translating values from the handle's
to 'know' things like it's own domain SID, domain name, and any other
state attached to the SAM. Simpler modules may call back to some helper
routine.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891126"></a>SAM Modules</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2891134"></a>Special Module: sam_passdb</h3></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2888851"></a>SAM Modules</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2888858"></a>Special Module: sam_passdb</h3></div></div><div></div></div><p>
In order for there to be a smooth transition, kai is writing a module
that reads existing passdb backends, and translates them into SAM
replies. (Also pulling data from the account policy DB etc). We also
intend to write a module that does the reverse - gives the SAM a passdb
interface.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2891152"></a>sam_ads</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2890101"></a>sam_ads</h3></div></div><div></div></div><p>
This is the first of the SAM modules to be committed to the tree -
mainly because I needed to coordinate work with metze (who authored most
of it). This module aims to use Samba's libads code to provide an
@@ -1785,7 +1785,7 @@ the construction of an Samba AD DC.
</p><p>
We also intend to construct a Samba 2.2/3.0 compatible ldap module,
again using libads code.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891191"></a>Memory Management</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890131"></a>Memory Management</h2></div></div><div></div></div><p>
The 'new SAM' development effort also concerned itself with getting a
sane implementation of memory management. It was decided that we would
be (as much as possible) talloc based, using an 'internal talloc
@@ -1814,7 +1814,7 @@ NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID
NTSTATUS sam_enum_accounts(const SAM_CONTEXT *context, const
NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 acct_ctrl,
int32 *account_count, SAM_ACCOUNT_ENUM **accounts)
-</pre></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891281"></a>Testing</h2></div></div><div></div></div><p>
+</pre></div><div xmlns:ns3="" class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890217"></a>Testing</h2></div></div><div></div></div><p>
Testing is vital in any piece of software, and Samba is certainly no
exception. In designing this new subsystem, we have taken care to ensure
it is easily tested, independent of outside protocols.
@@ -1831,25 +1831,25 @@ already proved vital in testing. I expect SAM module authors will find
it particularly valuable.
</p><p>Example useage:</p><p><tt class="prompt">$</tt> <b class="command">bin/samtest</b></p><pre class="programlisting">
&gt; context ads:ldap://192.168.1.96
-</pre><p>
+</pre><ns3:p>
(this loads a new context, using the new ADS module. The parameter is
the 'location' of the ldap server)
-</p><pre class="programlisting">
+</ns3:p><pre class="programlisting">
&gt; lookup_name DOMAIN abartlet
-</pre><p>
+</pre><ns3:p>
(returns a sid).
-</p><p>
+</ns3:p><p>
Because the 'new SAM' is NT ACL based, there will be a command to
specify an arbitrary NT ACL, but for now it uses 'system' by default.
</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="pwencrypt"></a>Chapter 13. LanMan and NT Password Encryption</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Jeremy</span> <span class="surname">Allison</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><br>
<tt class="email">&lt;<a href="mailto:samba@samba.org">samba@samba.org</a>&gt;</tt><br>
- </p></div></div></div></div><div><p class="pubdate">19 Apr 1999</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2891920">Introduction</a></dt><dt><a href="#id2891945">How does it work?</a></dt><dt><a href="#id2890832">The smbpasswd file</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891920"></a>Introduction</h2></div></div><div></div></div><p>With the development of LanManager and Windows NT
+ </p></div></div></div></div><div><p class="pubdate">19 Apr 1999</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2890947">Introduction</a></dt><dt><a href="#id2890972">How does it work?</a></dt><dt><a href="#id2891066">The smbpasswd file</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890947"></a>Introduction</h2></div></div><div></div></div><p>With the development of LanManager and Windows NT
compatible password encryption for Samba, it is now able
to validate user connections in exactly the same way as
a LanManager or Windows NT server.</p><p>This document describes how the SMB password encryption
algorithm works and what issues there are in choosing whether
you want to use it. You should read it carefully, especially
- the part about security and the &quot;PROS and CONS&quot; section.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891945"></a>How does it work?</h2></div></div><div></div></div><p>LanManager encryption is somewhat similar to UNIX
+ the part about security and the &quot;PROS and CONS&quot; section.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890972"></a>How does it work?</h2></div></div><div></div></div><p>LanManager encryption is somewhat similar to UNIX
password encryption. The server uses a file containing a
hashed value of a user's password. This is created by taking
the user's plaintext password, capitalising it, and either
@@ -1886,7 +1886,7 @@ specify an arbitrary NT ACL, but for now it uses 'system' by default.
know the correct password and is denied access.</p><p>Note that the Samba server never knows or stores the cleartext
of the user's password - just the 16 byte hashed values derived from
it. Also note that the cleartext password or 16 byte hashed values
- are never transmitted over the network - thus increasing security.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890832"></a>The smbpasswd file</h2></div></div><div></div></div><a name="SMBPASSWDFILEFORMAT"></a><p>In order for Samba to participate in the above protocol
+ are never transmitted over the network - thus increasing security.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891066"></a>The smbpasswd file</h2></div></div><div></div></div><a name="SMBPASSWDFILEFORMAT"></a><p>In order for Samba to participate in the above protocol
it must be able to look up the 16 byte hashed values given a user name.
Unfortunately, as the UNIX password value is also a one way hash
function (ie. it is impossible to retrieve the cleartext of the user's
@@ -1943,10 +1943,10 @@ bob:100:NO PASSWORDXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:
to enable this on your server.</p><p><span class="emphasis"><em>Note : </em></span>This file should be protected very
carefully. Anyone with access to this file can (with enough knowledge of
the protocols) gain access to your SMB server. The file is thus more
- sensitive than a normal unix <tt class="filename">/etc/passwd</tt> file.</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="modules"></a>Chapter 14. Modules</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="surname">Vernooij</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate"> 19 March 2003 </p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2891872">Advantages</a></dt><dt><a href="#id2892773">Loading modules</a></dt><dd><dl><dt><a href="#id2892806">Static modules</a></dt><dt><a href="#id2893746">Shared modules</a></dt></dl></dd><dt><a href="#id2893775">Writing modules</a></dt><dd><dl><dt><a href="#id2893837">Static/Shared selection in configure.in</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891872"></a>Advantages</h2></div></div><div></div></div><p>
+ sensitive than a normal unix <tt class="filename">/etc/passwd</tt> file.</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="modules"></a>Chapter 14. Modules</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="surname">Vernooij</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate"> 19 March 2003 </p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2892850">Advantages</a></dt><dt><a href="#id2892895">Loading modules</a></dt><dd><dl><dt><a href="#id2892925">Static modules</a></dt><dt><a href="#id2892965">Shared modules</a></dt></dl></dd><dt><a href="#id2892994">Writing modules</a></dt><dd><dl><dt><a href="#id2893054">Static/Shared selection in configure.in</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2892850"></a>Advantages</h2></div></div><div></div></div><p>
The new modules system has the following advantages:
</p><table class="simplelist" border="0" summary="Simple list"><tr><td>Transparent loading of static and shared modules (no need
-for a subsystem to know about modules)</td></tr><tr><td>Simple selection between shared and static modules at configure time</td></tr><tr><td>&quot;preload modules&quot; option for increasing performance for stable modules</td></tr><tr><td>No nasty #define stuff anymore</td></tr><tr><td>All backends are available as plugin now (including pdb_ldap and pdb_tdb)</td></tr></table></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2892773"></a>Loading modules</h2></div></div><div></div></div><p>
+for a subsystem to know about modules)</td></tr><tr><td>Simple selection between shared and static modules at configure time</td></tr><tr><td>&quot;preload modules&quot; option for increasing performance for stable modules</td></tr><tr><td>No nasty #define stuff anymore</td></tr><tr><td>All backends are available as plugin now (including pdb_ldap and pdb_tdb)</td></tr></table></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2892895"></a>Loading modules</h2></div></div><div></div></div><p>
Some subsystems in samba use different backends. These backends can be
either statically linked in to samba or available as a plugin. A subsystem
should have a function that allows a module to register itself. For example,
@@ -1956,7 +1956,7 @@ NTSTATUS smb_register_passdb(int version, const char *name, pdb_init_function in
</pre><p>
This function will be called by the initialisation function of the module to
register itself.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2892806"></a>Static modules</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2892925"></a>Static modules</h3></div></div><div></div></div><p>
The modules system compiles a list of initialisation functions for the
static modules of each subsystem. This is a define. For example,
it is here currently (from <tt class="filename">include/config.h</tt>):
@@ -1966,7 +1966,7 @@ it is here currently (from <tt class="filename">include/config.h</tt>):
</pre><p>
These functions should be called before the subsystem is used. That
should be done when the subsystem is initialised or first used.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893746"></a>Shared modules</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2892965"></a>Shared modules</h3></div></div><div></div></div><p>
If a subsystem needs a certain backend, it should check if it has
already been registered. If the backend hasn't been registered already,
the subsystem should call smb_probe_module(char *subsystem, char *backend).
@@ -1976,7 +1976,7 @@ is a slash, smb_probe_module() tries to load the module from the
absolute path specified in 'backend'.
</p><p>After smb_probe_module() has been executed, the subsystem
should check again if the module has been registered.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2893775"></a>Writing modules</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2892994"></a>Writing modules</h2></div></div><div></div></div><p>
Each module has an initialisation function. For modules that are
included with samba this name is '<i class="replaceable"><tt>subsystem</tt></i>_<i class="replaceable"><tt>backend</tt></i>_init'. For external modules (that will never be built-in, but only available as a module) this name is always 'init_module'. (In the case of modules included with samba, the configure system will add a #define subsystem_backend_init() init_module()).
The prototype for these functions is:
@@ -1991,7 +1991,7 @@ smb_register_passdb(PASSDB_INTERFACE_VERSION, &quot;ldapsam&quot;, pdb_init_ldap
smb_register_passdb(PASSDB_INTERFACE_VERSION, &quot;ldapsam_nua&quot;, pdb_init_ldapsam_nua);
return NT_STATUS_OK;
}
-</pre><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893837"></a>Static/Shared selection in configure.in</h3></div></div><div></div></div><p>
+</pre><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893054"></a>Static/Shared selection in configure.in</h3></div></div><div></div></div><p>
Some macros in configure.in generate the various defines and substs that
are necessary for the system to work correct. All modules that should
be built by default have to be added to the variable 'default_modules'.
@@ -2010,13 +2010,13 @@ be replaced with the names of the plugins to build.
</p><p>You must make sure all .c files that contain defines that can
be changed by ./configure are rebuilded in the 'modules_clean' make target.
Practically, this means all c files that contain <b class="command">static_init_subsystem;</b> calls need to be rebuilded.
-</p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="rpc-plugin"></a>Chapter 15. RPC Pluggable Modules</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Anthony</span> <span class="surname">Liguori</span></h3><div class="affiliation"><span class="orgname">IBM<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:aliguor@us.ibm.com">aliguor@us.ibm.com</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="surname">Vernooij</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">January 2003</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2892540">About</a></dt><dt><a href="#id2892559">General Overview</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2892540"></a>About</h2></div></div><div></div></div><p>
+</p></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="rpc-plugin"></a>Chapter 15. RPC Pluggable Modules</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Anthony</span> <span class="surname">Liguori</span></h3><div class="affiliation"><span class="orgname">IBM<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:aliguor@us.ibm.com">aliguor@us.ibm.com</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="surname">Vernooij</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">January 2003</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2893212">About</a></dt><dt><a href="#id2893231">General Overview</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2893212"></a>About</h2></div></div><div></div></div><p>
This document describes how to make use the new RPC Pluggable Modules features
of Samba 3.0. This architecture was added to increase the maintainability of
Samba allowing RPC Pipes to be worked on separately from the main CVS branch.
The RPM architecture will also allow third-party vendors to add functionality
to Samba through plug-ins.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2892559"></a>General Overview</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2893231"></a>General Overview</h2></div></div><div></div></div><p>
When an RPC call is sent to smbd, smbd tries to load a shared library by the
name <tt class="filename">librpc_&lt;pipename&gt;.so</tt> to handle the call if
it doesn't know how to handle the call internally. For instance, LSA calls
@@ -2033,7 +2033,7 @@ NTSTATUS rpc_pipe_register_commands(int version, const char *clnt, const char *s
argument.</p></dd><dt><span class="term">clnt</span></dt><dd><p>the Client name of the named pipe</p></dd><dt><span class="term">srv</span></dt><dd><p>the Server name of the named pipe</p></dd><dt><span class="term">cmds</span></dt><dd><p>a list of api_structs that map RPC ordinal numbers to function calls</p></dd><dt><span class="term">size</span></dt><dd><p>the number of api_structs contained in cmds</p></dd></dl></div><p>
See rpc_server/srv_reg.c and rpc_server/srv_reg_nt.c for a small example of
how to use this library.
-</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="vfs"></a>Chapter 16. VFS Modules</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Alexander</span> <span class="surname">Bokovoy</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:ab@samba.org">ab@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Metzmacher</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:metze@metzemix.de">metze@metzemix.de</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate"> 27 May 2003 </p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2894852">The Samba (Posix) VFS layer</a></dt><dd><dl><dt><a href="#id2894859">The general interface</a></dt><dt><a href="#id2894974">Possible VFS operation layers</a></dt></dl></dd><dt><a href="#id2895046">The Interaction between the Samba VFS subsystem and the modules</a></dt><dd><dl><dt><a href="#id2895054">Initialization and registration</a></dt><dt><a href="#id2895246">How the Modules handle per connection data</a></dt></dl></dd><dt><a href="#id2895490">Upgrading to the New VFS Interface</a></dt><dd><dl><dt><a href="#id2895497">Upgrading from 2.2.* and 3.0aplha modules</a></dt></dl></dd><dt><a href="#id2896037">Some Notes</a></dt><dd><dl><dt><a href="#id2896044">Implement TRANSPARENT functions</a></dt><dt><a href="#id2896069">Implement OPAQUE functions</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2894852"></a>The Samba (Posix) VFS layer</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894859"></a>The general interface</h3></div></div><div></div></div><p>
+</p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="vfs"></a>Chapter 16. VFS Modules</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Alexander</span> <span class="surname">Bokovoy</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:ab@samba.org">ab@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Metzmacher</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:metze@metzemix.de">metze@metzemix.de</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate"> 27 May 2003 </p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2895474">The Samba (Posix) VFS layer</a></dt><dd><dl><dt><a href="#id2895481">The general interface</a></dt><dt><a href="#id2895581">Possible VFS operation layers</a></dt></dl></dd><dt><a href="#id2895645">The Interaction between the Samba VFS subsystem and the modules</a></dt><dd><dl><dt><a href="#id2895653">Initialization and registration</a></dt><dt><a href="#id2891713">How the Modules handle per connection data</a></dt></dl></dd><dt><a href="#id2891932">Upgrading to the New VFS Interface</a></dt><dd><dl><dt><a href="#id2893534">Upgrading from 2.2.* and 3.0aplha modules</a></dt></dl></dd><dt><a href="#id2893946">Some Notes</a></dt><dd><dl><dt><a href="#id2893953">Implement TRANSPARENT functions</a></dt><dt><a href="#id2893976">Implement OPAQUE functions</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2895474"></a>The Samba (Posix) VFS layer</h2></div></div><div></div></div><div xmlns:ns4="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2895481"></a>The general interface</h3></div></div><div></div></div><p>
Each VFS operation has a vfs_op_type, a function pointer and a handle pointer in the
struct vfs_ops and tree macros to make it easier to call the operations.
(Take a look at <tt class="filename">include/vfs.h</tt> and <tt class="filename">include/vfs_macros.h</tt>.)
@@ -2056,7 +2056,7 @@ typedef enum _vfs_op_type {
SMB_VFS_OP_LAST
} vfs_op_type;
-</pre><p>This struct contains the function and handle pointers for all operations.</p><pre class="programlisting">
+</pre><ns4:p>This struct contains the function and handle pointers for all operations.</ns4:p><pre class="programlisting">
struct vfs_ops {
struct vfs_fn_pointers {
...
@@ -2098,10 +2098,10 @@ struct vfs_ops {
...
} handles;
};
-</pre><p>
+</pre><ns4:p>
This macros SHOULD be used to call any vfs operation.
DO NOT ACCESS conn-&gt;vfs.ops.* directly !!!
-</p><pre class="programlisting">
+</ns4:p><pre class="programlisting">
...
/* File operations */
@@ -2129,7 +2129,7 @@ DO NOT ACCESS conn-&gt;vfs.ops.* directly !!!
(tofd), (fsp), (fromfd), (header), (offset), (count)))
...
-</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894974"></a>Possible VFS operation layers</h3></div></div><div></div></div><p>
+</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2895581"></a>Possible VFS operation layers</h3></div></div><div></div></div><p>
These values are used by the VFS subsystem when building the conn-&gt;vfs
and conn-&gt;vfs_opaque structs for a connection with multiple VFS modules.
Internally, Samba differentiates only opaque and transparent layers at this process.
@@ -2158,19 +2158,19 @@ typedef enum _vfs_op_layer {
SMB_VFS_LAYER_SCANNER /* - Checks data and possibly initiates additional */
/* file activity like logging to files _inside_ samba VFS */
} vfs_op_layer;
-</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2895046"></a>The Interaction between the Samba VFS subsystem and the modules</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2895054"></a>Initialization and registration</h3></div></div><div></div></div><p>
+</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2895645"></a>The Interaction between the Samba VFS subsystem and the modules</h2></div></div><div></div></div><div xmlns:ns5="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2895653"></a>Initialization and registration</h3></div></div><div></div></div><ns5:p>
As each Samba module a VFS module should have a
-</p><pre class="programlisting">NTSTATUS vfs_example_init(void);</pre><p> function if it's staticly linked to samba or
-</p><pre class="programlisting">NTSTATUS init_module(void);</pre><p> function if it's a shared module.
-</p><p>
+</ns5:p><pre class="programlisting">NTSTATUS vfs_example_init(void);</pre><ns5:p> function if it's staticly linked to samba or
+</ns5:p><pre class="programlisting">NTSTATUS init_module(void);</pre><ns5:p> function if it's a shared module.
+</ns5:p><p>
This should be the only non static function inside the module.
Global variables should also be static!
-</p><p>
+</p><ns5:p>
The module should register its functions via the
-</p><pre class="programlisting">
+</ns5:p><pre class="programlisting">
NTSTATUS smb_register_vfs(int version, const char *name, vfs_op_tuple *vfs_op_tuples);
-</pre><p> function.
-</p><div class="variablelist"><dl><dt><span class="term">version</span></dt><dd><p>should be filled with SMB_VFS_INTERFACE_VERSION</p></dd><dt><span class="term">name</span></dt><dd><p>this is the name witch can be listed in the
+</pre><ns5:p> function.
+</ns5:p><div class="variablelist"><dl><dt><span class="term">version</span></dt><dd><p>should be filled with SMB_VFS_INTERFACE_VERSION</p></dd><dt><span class="term">name</span></dt><dd><p>this is the name witch can be listed in the
<b class="command">vfs objects</b> parameter to use this module.</p></dd><dt><span class="term">vfs_op_tuples</span></dt><dd><p>
this is an array of vfs_op_tuple's.
(vfs_op_tuples is descripted in details below.)
@@ -2198,7 +2198,7 @@ NTSTATUS init_module(void)
{
return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, &quot;example&quot;, example_op_tuples);
}
-</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2895246"></a>How the Modules handle per connection data</h3></div></div><div></div></div><p>Each VFS function has as first parameter a pointer to the modules vfs_handle_struct.
+</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2891713"></a>How the Modules handle per connection data</h3></div></div><div></div></div><p>Each VFS function has as first parameter a pointer to the modules vfs_handle_struct.
</p><pre class="programlisting">
typedef struct vfs_handle_struct {
struct vfs_handle_struct *next, *prev;
@@ -2209,7 +2209,7 @@ typedef struct vfs_handle_struct {
void (*free_data)(void **data);
} vfs_handle_struct;
</pre><div class="variablelist"><dl><dt><span class="term">param</span></dt><dd><p>this is the module parameter specified in the <b class="command">vfs objects</b> parameter.</p><p>e.g. for 'vfs objects = example:test' param would be &quot;test&quot;.</p></dd><dt><span class="term">vfs_next</span></dt><dd><p>This vfs_ops struct contains the information for calling the next module operations.
-Use the vfs_next_* macros to call a next module operations and
+Use the SMB_VFS_NEXT_* macros to call a next module operations and
don't access handle-&gt;vfs_next.ops.* directly!</p></dd><dt><span class="term">conn</span></dt><dd><p>This is a pointer back to the connection_struct to witch the handle belongs.</p></dd><dt><span class="term">data</span></dt><dd><p>This is a pointer for holding module private data.
You can alloc data with connection life time on the handle-&gt;conn-&gt;mem_ctx TALLOC_CTX.
But you can also manage the memory allocation yourself.</p></dd><dt><span class="term">free_data</span></dt><dd><p>This is a function pointer to a function that free's the module private data.
@@ -2299,7 +2299,7 @@ you can set this function pointer to NULL.</p></dd></dl></div><p>Some useful MAC
(handle)-&gt;vfs_next.handles.sendfile,\
(tofd), (fsp), (fromfd), (header), (offset), (count)))
...
-</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2895490"></a>Upgrading to the New VFS Interface</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2895497"></a>Upgrading from 2.2.* and 3.0aplha modules</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p>
+</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891932"></a>Upgrading to the New VFS Interface</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893534"></a>Upgrading from 2.2.* and 3.0aplha modules</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p>
Add &quot;vfs_handle_struct *handle, &quot; as first parameter to all vfs operation functions.
e.g. example_connect(connection_struct *conn, const char *service, const char *user);
-&gt; example_connect(vfs_handle_struct *handle, connection_struct *conn, const char *service, const char *user);
@@ -2308,19 +2308,19 @@ Replace &quot;default_vfs_ops.&quot; with &quot;smb_vfs_next_&quot;.
e.g. default_vfs_ops.connect(conn, service, user);
-&gt; smb_vfs_next_connect(conn, service, user);
</p></li><li><p>
-Uppercase all &quot;vfs_next_*&quot; functions.
+Uppercase all &quot;smb_vfs_next_*&quot; functions.
e.g. smb_vfs_next_connect(conn, service, user);
-&gt; SMB_VFS_NEXT_CONNECT(conn, service, user);
</p></li><li><p>
-Add &quot;handle, &quot; as first parameter to all VFS_NEXT_*() calls.
+Add &quot;handle, &quot; as first parameter to all SMB_VFS_NEXT_*() calls.
e.g. SMB_VFS_NEXT_CONNECT(conn, service, user);
-&gt; SMB_VFS_NEXT_CONNECT(handle, conn, service, user);
-</p></li><li><p>
+</p></li><li xmlns:ns6=""><ns6:p>
(Only for 2.2.* modules)
Convert the old struct vfs_ops example_ops to
a vfs_op_tuple example_op_tuples[] array.
e.g.
-</p><pre class="programlisting">
+</ns6:p><pre class="programlisting">
struct vfs_ops example_ops = {
/* Disk operations */
example_connect, /* connect */
@@ -2390,9 +2390,9 @@ struct vfs_ops example_ops = {
NULL, /* sys_acl_free_acl */
NULL /* sys_acl_free_qualifier */
};
-</pre><p>
+</pre><ns6:p>
-&gt;
-</p><pre class="programlisting">
+</ns6:p><pre class="programlisting">
static vfs_op_tuple example_op_tuples[] = {
{SMB_VFS_OP(example_connect), SMB_VFS_OP_CONNECT, SMB_VFS_LAYER_TRANSPARENT},
{SMB_VFS_OP(example_disconnect), SMB_VFS_OP_DISCONNECT, SMB_VFS_LAYER_TRANSPARENT},
@@ -2403,42 +2403,42 @@ static vfs_op_tuple example_op_tuples[] = {
{SMB_VFS_OP(NULL), SMB_VFS_OP_NOOP, SMB_VFS_LAYER_NOOP}
};
-</pre><p>
-</p></li><li><p>
+</pre><ns6:p>
+</ns6:p></li><li><p>
Move the example_op_tuples[] array to the end of the file.
-</p></li><li><p>
+</p></li><li xmlns:ns7=""><ns7:p>
Add the init_module() function at the end of the file.
e.g.
-</p><pre class="programlisting">
+</ns7:p><pre class="programlisting">
NTSTATUS init_module(void)
{
return smb_register_vfs(SMB_VFS_INTERFACE_VERSION,&quot;example&quot;,example_op_tuples);
}
-</pre><p>
-</p></li><li><p>
+</pre><ns7:p>
+</ns7:p></li><li xmlns:ns8=""><ns8:p>
Check if your vfs_init() function does more then just prepare the vfs_ops structs or
remember the struct smb_vfs_handle_struct.
-</p><table class="simplelist" border="0" summary="Simple list"><tr><td>If NOT you can remove the vfs_init() function.</td></tr><tr><td>If YES decide if you want to move the code to the example_connect() operation or to the init_module(). And then remove vfs_init().
- e.g. a debug class registration should go into init_module() and the allocation of private data should go to example_connect().</td></tr></table><p>
-</p></li><li><p>
+</ns8:p><table class="simplelist" border="0" summary="Simple list"><tr><td>If NOT you can remove the vfs_init() function.</td></tr><tr><td>If YES decide if you want to move the code to the example_connect() operation or to the init_module(). And then remove vfs_init().
+ e.g. a debug class registration should go into init_module() and the allocation of private data should go to example_connect().</td></tr></table><ns8:p>
+</ns8:p></li><li xmlns:ns9=""><ns9:p>
(Only for 3.0alpha* modules)
Check if your vfs_done() function contains needed code.
-</p><table class="simplelist" border="0" summary="Simple list"><tr><td>If NOT you can remove the vfs_done() function.</td></tr><tr><td>If YES decide if you can move the code to the example_disconnect() operation. Otherwise register a SMB_EXIT_EVENT with smb_register_exit_event(); (Described in the <a href="#modules" title="Chapter 14. Modules">modules section</a>) And then remove vfs_done(). e.g. the freeing of private data should go to example_disconnect().
-</td></tr></table><p>
-</p></li><li><p>
+</ns9:p><table class="simplelist" border="0" summary="Simple list"><tr><td>If NOT you can remove the vfs_done() function.</td></tr><tr><td>If YES decide if you can move the code to the example_disconnect() operation. Otherwise register a SMB_EXIT_EVENT with smb_register_exit_event(); (Described in the <a href="#modules" title="Chapter 14. Modules">modules section</a>) And then remove vfs_done(). e.g. the freeing of private data should go to example_disconnect().
+</td></tr></table><ns9:p>
+</ns9:p></li><li xmlns:ns10=""><ns10:p>
Check if you have any global variables left.
Decide if it wouldn't be better to have this data on a connection basis.
-</p><table class="simplelist" border="0" summary="Simple list"><tr><td>If NOT leave them as they are. (e.g. this could be the variable for the private debug class.)</td></tr><tr><td>If YES pack all this data into a struct. You can use handle-&gt;data to point to such a struct on a per connection basis.</td></tr></table><p>
+</ns10:p><table class="simplelist" border="0" summary="Simple list"><tr><td>If NOT leave them as they are. (e.g. this could be the variable for the private debug class.)</td></tr><tr><td>If YES pack all this data into a struct. You can use handle-&gt;data to point to such a struct on a per connection basis.</td></tr></table><ns10:p>
e.g. if you have such a struct:
-</p><pre class="programlisting">
+</ns10:p><pre class="programlisting">
struct example_privates {
char *some_string;
int db_connection;
};
-</pre><p>
+</pre><ns10:p>
first way of doing it:
-</p><pre class="programlisting">
+</ns10:p><pre class="programlisting">
static int example_connect(vfs_handle_struct *handle,
connection_struct *conn, const char *service,
const char* user)
@@ -2485,9 +2485,9 @@ static int example_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
return SMB_VFS_NEXT_CLOSE(handle, fsp, fd);
}
-</pre><p>
+</pre><ns10:p>
second way of doing it:
-</p><pre class="programlisting">
+</ns10:p><pre class="programlisting">
static void free_example_privates(void **datap)
{
struct example_privates *data = (struct example_privates *)*datap;
@@ -2543,10 +2543,10 @@ static int example_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
/* do something here...*/
DEBUG(0,(&quot;some_string: %s\n&quot;,data-&gt;some_string));
- return VFS_NEXT_CLOSE(handle, fsp, fd);
+ return SMB_VFS_NEXT_CLOSE(handle, fsp, fd);
}
-</pre><p>
-</p></li><li><p>
+</pre><ns10:p>
+</ns10:p></li><li><p>
To make it easy to build 3rd party modules it would be usefull to provide
configure.in, (configure), install.sh and Makefile.in with the module.
(Take a look at the example in <tt class="filename">examples/VFS</tt>.)
@@ -2559,21 +2559,21 @@ give you more warnings.
The idea is that you can extend this
<tt class="filename">configure.in</tt> and <tt class="filename">Makefile.in</tt> scripts
for your module.
-</p></li><li><p>
+</p></li><li xmlns:ns11=""><ns11:p>
Compiling &amp; Testing...
-</p><table class="simplelist" border="0" summary="Simple list"><tr><td><b class="userinput"><tt>./configure <tt class="option">--enable-developer</tt></tt></b> ...</td></tr><tr><td><b class="userinput"><tt>make</tt></b></td></tr><tr><td>Try to fix all compiler warnings</td></tr><tr><td><b class="userinput"><tt>make</tt></b></td></tr><tr><td>Testing, Testing, Testing ...</td></tr></table><p>
-</p></li></ol></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2896037"></a>Some Notes</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896044"></a>Implement TRANSPARENT functions</h3></div></div><div></div></div><p>
+</ns11:p><table class="simplelist" border="0" summary="Simple list"><tr><td><b class="userinput"><tt>./configure <tt class="option">--enable-developer</tt></tt></b> ...</td></tr><tr><td><b class="userinput"><tt>make</tt></b></td></tr><tr><td>Try to fix all compiler warnings</td></tr><tr><td><b class="userinput"><tt>make</tt></b></td></tr><tr><td>Testing, Testing, Testing ...</td></tr></table><ns11:p>
+</ns11:p></li></ol></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2893946"></a>Some Notes</h2></div></div><div></div></div><div xmlns:ns12="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893953"></a>Implement TRANSPARENT functions</h3></div></div><div></div></div><ns12:p>
Avoid writing functions like this:
-</p><pre class="programlisting">
+</ns12:p><pre class="programlisting">
static int example_close(vfs_handle_struct *handle, files_struct *fsp, int fd)
{
return SMB_VFS_NEXT_CLOSE(handle, fsp, fd);
}
-</pre><p>
+</pre><ns12:p>
Overload only the functions you really need to!
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896069"></a>Implement OPAQUE functions</h3></div></div><div></div></div><p>
+</ns12:p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893976"></a>Implement OPAQUE functions</h3></div></div><div></div></div><p>
If you want to just implement a better version of a
default samba opaque function
(e.g. like a disk_free() function for a special filesystem)
@@ -2593,12 +2593,12 @@ static int example_rename(vfs_handle_struct *handle, connection_struct *conn,
errno = ENOSYS;
return -1;
}
-</pre></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="Packaging"></a>Chapter 17. Notes to packagers</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="surname">Vernooij</span></h3></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2894645">Versioning</a></dt><dt><a href="#id2894678">Modules</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2894645"></a>Versioning</h2></div></div><div></div></div><p>Please, please update the version number in
+</pre></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="Packaging"></a>Chapter 17. Notes to packagers</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="surname">Vernooij</span></h3></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#id2894041">Versioning</a></dt><dt><a href="#id2894070">Modules</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2894041"></a>Versioning</h2></div></div><div></div></div><p>Please, please update the version number in
<tt class="filename">source/include/version.h</tt> to include the versioning of your package. This makes it easier to distinguish standard samba builds
from custom-build samba builds (distributions often patch packages). For
example, a good version would be: </p><pre class="programlisting">
Version 2.999+3.0.alpha21-5 for Debian
-</pre></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2894678"></a>Modules</h2></div></div><div></div></div><p>Samba now has support for building parts of samba as plugins. This
+</pre></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2894070"></a>Modules</h2></div></div><div></div></div><p>Samba now has support for building parts of samba as plugins. This
makes it possible to, for example, put ldap or mysql support in a seperate
package, thus making it possible to have a normal samba package not
depending on ldap or mysql. To build as much parts of samba
@@ -2621,8 +2621,8 @@ as a plugin, run: </p><pre class="programlisting">
e.g. files generated by <b class="userinput"><tt>diff -u</tt></b>.
</p><p>If you are modifying a copy of samba you retrieved from CVS,
you can easily generate a diff file of these changes by running
- <b class="userinput"><tt>cvs diff -u</tt></b>.</p></dd><dt><span class="term">Points of attention when modifying samba source code</span></dt><dd><p>
- </p><table class="simplelist" border="0" summary="Simple list"><tr><td>Don't simply copy code from other places and modify it until it
+ <b class="userinput"><tt>cvs diff -u</tt></b>.</p></dd><dt><span class="term">Points of attention when modifying samba source code</span></dt><dd xmlns:ns13=""><ns13:p>
+ </ns13:p><table class="simplelist" border="0" summary="Simple list"><tr><td>Don't simply copy code from other places and modify it until it
works. Code needs to be clean and logical. Duplicate
code is to be avoided.</td></tr><tr><td>Test your patch. It might take a while before one of us looks
at your patch so it will take longer before your patch when your patch
@@ -2630,8 +2630,8 @@ as a plugin, run: </p><pre class="programlisting">
it harder to read, understand and test the patch. You might
also risk not getting a good patch committed because you mixed it
with one that had issues. </td></tr><tr><td>Make sure your patch complies to the samba coding style as
- suggested in the coding-suggestions chapter. </td></tr></table><p>
- </p></dd><dt><span class="term">Sending in bugfixes</span></dt><dd><p>Bugfixes to bugs in samba should be submitted to samba's
+ suggested in the coding-suggestions chapter. </td></tr></table><ns13:p>
+ </ns13:p></dd><dt><span class="term">Sending in bugfixes</span></dt><dd><p>Bugfixes to bugs in samba should be submitted to samba's
<a href="https://bugzilla.samba.org/" target="_top">bugzilla system</a>,
along with a description of the bug.
</p></dd><dt><span class="term">Sending in feature patches</span></dt><dd><p>Send feature patches along with a description of what the
diff --git a/docs/htmldocs/bugreport.html b/docs/htmldocs/bugreport.html
index 01b88729edc..a3222040f1c 100644
--- a/docs/htmldocs/bugreport.html
+++ b/docs/htmldocs/bugreport.html
@@ -1,4 +1,5 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 35. Reporting Bugs</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="troubleshooting.html" title="Part V. Troubleshooting"><link rel="previous" href="problems.html" title="Chapter 34. Analysing and solving samba problems"><link rel="next" href="Appendixes.html" title="Part VI. Appendixes"></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 35. Reporting Bugs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problems.html">Prev</a> </td><th width="60%" align="center">Part V. Troubleshooting</th><td width="20%" align="right"> <a accesskey="n" href="Appendixes.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="bugreport"></a>Chapter 35. Reporting Bugs</h2></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="surname">Someone; Tridge or Karl Auer perhaps?</span></h3></div></div><div><p class="pubdate"> 27 June 1997 </p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="bugreport.html#id3011690">Introduction</a></dt><dt><a href="bugreport.html#id3011912">General info</a></dt><dt><a href="bugreport.html#id3011949">Debug levels</a></dt><dt><a href="bugreport.html#id3012091">Internal errors</a></dt><dt><a href="bugreport.html#id3012199">Attaching to a running process</a></dt><dt><a href="bugreport.html#id3012246">Patches</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3011690"></a>Introduction</h2></div></div><div></div></div><p>Please report bugs using
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 35. Reporting Bugs</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="troubleshooting.html" title="Part V. Troubleshooting"><link rel="previous" href="problems.html" title="Chapter 34. Analysing and solving samba problems"><link rel="next" href="Appendixes.html" title="Part VI. Appendixes"></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 35. Reporting Bugs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problems.html">Prev</a> </td><th width="60%" align="center">Part V. Troubleshooting</th><td width="20%" align="right"> <a accesskey="n" href="Appendixes.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="bugreport"></a>Chapter 35. Reporting Bugs</h2></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="surname">Someone; Tridge or Karl Auer perhaps?</span></h3></div></div><div><p class="pubdate"> 27 June 1997 </p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="bugreport.html#id3009871">Introduction</a></dt><dt><a href="bugreport.html#id3009931">General info</a></dt><dt><a href="bugreport.html#id3009966">Debug levels</a></dt><dt><a href="bugreport.html#id3008063">Internal errors</a></dt><dt><a href="bugreport.html#id3008171">Attaching to a running process</a></dt><dt><a href="bugreport.html#id3007672">Patches</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3009871"></a>Introduction</h2></div></div><div></div></div><p>Please report bugs using
<a href="https://bugzilla.samba.org/" target="_top">bugzilla</a>.</p><p>
Please take the time to read this file before you submit a bug
report. Also, please see if it has changed between releases, as we
@@ -20,7 +21,7 @@ that list that may be able to help you.
You may also like to look though the recent mailing list archives,
which are conveniently accessible on the Samba web pages
at <a href="http://samba.org/samba/" target="_top">http://samba.org/samba/</a>.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3011912"></a>General info</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3009931"></a>General info</h2></div></div><div></div></div><p>
Before submitting a bug report check your config for silly
errors. Look in your log files for obvious messages that tell you that
you've misconfigured something and run testparm to test your config
@@ -32,7 +33,7 @@ This is very important.
If you include part of a log file with your bug report then be sure to
annotate it with exactly what you were doing on the client at the
time, and exactly what the results were.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3011949"></a>Debug levels</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3009966"></a>Debug levels</h2></div></div><div></div></div><p>
If the bug has anything to do with Samba behaving incorrectly as a
server (like refusing to open a file) then the log files will probably
be very useful. Depending on the problem a log level of between 3 and
@@ -67,7 +68,7 @@ debugging operations you may not need a setting higher than
<tt class="constant">3</tt>. Nearly
all bugs can be tracked at a setting of <tt class="constant">10</tt>, but be
prepared for a VERY large volume of log data.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3012091"></a>Internal errors</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3008063"></a>Internal errors</h2></div></div><div></div></div><p>
If you get a <span class="errorname">INTERNAL ERROR</span> message in your log files
it means that Samba got an unexpected signal while running. It is probably a
segmentation fault and almost certainly means a bug in Samba (unless
@@ -100,7 +101,7 @@ disassemble the routine that called it) and try to work out exactly
where the problem is by looking at the surrounding code. Even if you
don't know assembly then incuding this info in the bug report can be
useful.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3012199"></a>Attaching to a running process</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3008171"></a>Attaching to a running process</h2></div></div><div></div></div><p>
Unfortunately some unixes (in particular some recent linux kernels)
refuse to dump a core file if the task has changed uid (which smbd
does often). To debug with this sort of system you could try to attach
@@ -110,7 +111,7 @@ to the running process using
Then use <b class="command">c</b> to continue and try to cause the core dump
using the client. The debugger should catch the fault and tell you
where it occurred.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3012246"></a>Patches</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3007672"></a>Patches</h2></div></div><div></div></div><p>
The best sort of bug report is one that includes a fix! If you send us
patches please use <b class="userinput"><tt>diff -u</tt></b> format if your version of
diff supports it, otherwise use <b class="userinput"><tt>diff -c4</tt></b>. Make sure
diff --git a/docs/htmldocs/diagnosis.html b/docs/htmldocs/diagnosis.html
index af242b6006d..97e7dead1b9 100644
--- a/docs/htmldocs/diagnosis.html
+++ b/docs/htmldocs/diagnosis.html
@@ -1,4 +1,5 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 33. The samba checklist</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="troubleshooting.html" title="Part V. Troubleshooting"><link rel="previous" href="troubleshooting.html" title="Part V. Troubleshooting"><link rel="next" href="problems.html" title="Chapter 34. Analysing and solving samba problems"></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 33. The samba checklist</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="troubleshooting.html">Prev</a> </td><th width="60%" align="center">Part V. Troubleshooting</th><td width="20%" align="right"> <a accesskey="n" href="problems.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="diagnosis"></a>Chapter 33. The samba checklist</h2></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><tt class="email">&lt;<a href="mailto:tridge@samba.org">tridge@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">Wed Jan 15</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="diagnosis.html#id3005492">Introduction</a></dt><dt><a href="diagnosis.html#id3007352">Assumptions</a></dt><dt><a href="diagnosis.html#id3007529">The tests</a></dt><dt><a href="diagnosis.html#id3008704">Still having troubles?</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3005492"></a>Introduction</h2></div></div><div></div></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 33. The samba checklist</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="troubleshooting.html" title="Part V. Troubleshooting"><link rel="previous" href="troubleshooting.html" title="Part V. Troubleshooting"><link rel="next" href="problems.html" title="Chapter 34. Analysing and solving samba problems"></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 33. The samba checklist</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="troubleshooting.html">Prev</a> </td><th width="60%" align="center">Part V. Troubleshooting</th><td width="20%" align="right"> <a accesskey="n" href="problems.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="diagnosis"></a>Chapter 33. The samba checklist</h2></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><tt class="email">&lt;<a href="mailto:tridge@samba.org">tridge@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">Wed Jan 15</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="diagnosis.html#id3003201">Introduction</a></dt><dt><a href="diagnosis.html#id3003235">Assumptions</a></dt><dt><a href="diagnosis.html#id3003407">The tests</a></dt><dt><a href="diagnosis.html#id3006959">Still having troubles?</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3003201"></a>Introduction</h2></div></div><div></div></div><p>
This file contains a list of tests you can perform to validate your
Samba server. It also tells you what the likely cause of the problem
is if it fails any one of these steps. If it passes all these tests
@@ -13,7 +14,7 @@ to solve a problem.
If you send one of the samba mailing lists an email saying &quot;it doesn't work&quot;
and you have not followed this test procedure then you should not be surprised
if your email is ignored.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3007352"></a>Assumptions</h2></div></div><div></div></div><p>
+</p></div><div xmlns:ns98="" class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3003235"></a>Assumptions</h2></div></div><div></div></div><p>
In all of the tests it is assumed you have a Samba server called
BIGSERVER and a PC called ACLIENT both in workgroup TESTGROUP.
</p><p>
@@ -30,8 +31,8 @@ following to <tt class="filename">smb.conf</tt>:
path = /tmp
read only = yes
-</pre><p>
-</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+</pre><ns98:p>
+</ns98:p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
These tests assume version 3.0 or later of the samba suite.
Some commands shown did not exist in earlier versions.
</p></div><p>
@@ -54,7 +55,7 @@ depending on how or if you specified logging in your <tt class="filename">smb.co
</p><p>
If you make changes to your <tt class="filename">smb.conf</tt> file while going through these test,
don't forget to restart <span class="application">smbd</span> and <span class="application">nmbd</span>.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3007529"></a>The tests</h2></div></div><div></div></div><div class="procedure"><p class="title"><b>Procedure 33.1. Diagnosing your samba server</b></p><ol type="1"><li><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3003407"></a>The tests</h2></div></div><div></div></div><div class="procedure"><p class="title"><b>Procedure 33.1. Diagnosing your samba server</b></p><ol type="1"><li><p>
In the directory in which you store your <tt class="filename">smb.conf</tt> file, run the command
<b class="userinput"><tt>testparm smb.conf</tt></b>. If it reports any errors then your <tt class="filename">smb.conf</tt>
configuration file is faulty.
@@ -297,6 +298,6 @@ capability and is in user level security mode. In this case either set
<i class="parameter"><tt>password server = Windows_NT_Machine</tt></i> in your
<tt class="filename">smb.conf</tt> file, or make sure <i class="parameter"><tt>encrypted passwords</tt></i> is
set to &quot;yes&quot;.
-</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3008704"></a>Still having troubles?</h2></div></div><div></div></div><p>Read the chapter on
+</p></li></ol></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3006959"></a>Still having troubles?</h2></div></div><div></div></div><p>Read the chapter on
<a href="problems.html" title="Chapter 34. Analysing and solving samba problems">Analysing and Solving Problems</a>.
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="troubleshooting.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="troubleshooting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="problems.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part V. Troubleshooting </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 34. Analysing and solving samba problems</td></tr></table></div></body></html>
diff --git a/docs/htmldocs/groupmapping.html b/docs/htmldocs/groupmapping.html
index 8508edf2a5c..a78b9f43174 100644
--- a/docs/htmldocs/groupmapping.html
+++ b/docs/htmldocs/groupmapping.html
@@ -1,4 +1,5 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 12. Mapping MS Windows and Unix Groups</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="passdb.html" title="Chapter 11. Account Information Databases"><link rel="next" href="AccessControls.html" title="Chapter 13. File, Directory and Share Access Controls"></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 12. Mapping MS Windows and Unix Groups</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="passdb.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="AccessControls.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="groupmapping"></a>Chapter 12. Mapping MS Windows and Unix Groups</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Jean François</span> <span class="surname">Micouleau</span></h3></div></div><div><div class="author"><h3 class="author"><span class="firstname">Gerald</span> <span class="othername">(Jerry)</span> <span class="surname">Carter</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jerry@samba.org">jerry@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="groupmapping.html#id2921059">Features and Benefits</a></dt><dt><a href="groupmapping.html#id2921161">Discussion</a></dt><dd><dl><dt><a href="groupmapping.html#id2921352">Example Configuration</a></dt></dl></dd><dt><a href="groupmapping.html#id2921416">Configuration Scripts</a></dt><dd><dl><dt><a href="groupmapping.html#id2921430">Sample smb.conf add group script</a></dt><dt><a href="groupmapping.html#id2921498">Script to configure Group Mapping</a></dt></dl></dd><dt><a href="groupmapping.html#id2921590">Common Errors</a></dt><dd><dl><dt><a href="groupmapping.html#id2921606">Adding Groups Fails</a></dt><dt><a href="groupmapping.html#id2921666">Adding MS Windows Groups to MS Windows Groups Fails</a></dt></dl></dd></dl></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 12. Mapping MS Windows and Unix Groups</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="passdb.html" title="Chapter 11. Account Information Databases"><link rel="next" href="AccessControls.html" title="Chapter 13. File, Directory and Share Access Controls"></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 12. Mapping MS Windows and Unix Groups</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="passdb.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="AccessControls.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="groupmapping"></a>Chapter 12. Mapping MS Windows and Unix Groups</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Jean François</span> <span class="surname">Micouleau</span></h3></div></div><div><div class="author"><h3 class="author"><span class="firstname">Gerald</span> <span class="othername">(Jerry)</span> <span class="surname">Carter</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jerry@samba.org">jerry@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="groupmapping.html#id2916109">Features and Benefits</a></dt><dt><a href="groupmapping.html#id2916209">Discussion</a></dt><dd><dl><dt><a href="groupmapping.html#id2916398">Example Configuration</a></dt></dl></dd><dt><a href="groupmapping.html#id2916463">Configuration Scripts</a></dt><dd><dl><dt><a href="groupmapping.html#id2916477">Sample smb.conf add group script</a></dt><dt><a href="groupmapping.html#id2916544">Script to configure Group Mapping</a></dt></dl></dd><dt><a href="groupmapping.html#id2916618">Common Errors</a></dt><dd><dl><dt><a href="groupmapping.html#id2916633">Adding Groups Fails</a></dt><dt><a href="groupmapping.html#id2916694">Adding MS Windows Groups to MS Windows Groups Fails</a></dt></dl></dd></dl></div><p>
Starting with Samba-3, new group mapping functionality is available to create associations
between Windows group SIDs and UNIX groups. The <i class="parameter"><tt>groupmap</tt></i> subcommand
included with the <span class="application">net</span> tool can be used to manage these associations.
@@ -8,7 +9,7 @@
be specified in <tt class="filename">smb.conf</tt>. This parameter was used to give the listed users membership
in the <tt class="constant">Domain Admins</tt> Windows group which gave local admin rights on their workstations
(in default configurations).
- </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2921059"></a>Features and Benefits</h2></div></div><div></div></div><p>
+ </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2916109"></a>Features and Benefits</h2></div></div><div></div></div><p>
Samba allows the administrator to create MS Windows NT4 / 200x group accounts and to
arbitrarily associate them with Unix/Linux group accounts.
</p><p>
@@ -31,7 +32,7 @@
Another work-around is to manually create a Unix/Linux group, then manually create the
MS Windows NT4 / 200x group on the Samba server and then use the <b class="command">net groupmap</b>
tool to connect the two to each other.
- </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2921161"></a>Discussion</h2></div></div><div></div></div><p>
+ </p></div><div xmlns:ns26="" class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2916209"></a>Discussion</h2></div></div><div></div></div><p>
When installing <span class="application">MS Windows NT4 / 200x</span> on a computer, the installation
program creates default users and groups. Notably the <tt class="constant">Administrators</tt> group,
and gives to that group privileges necessary privilidges to perform essential system tasks.
@@ -50,19 +51,19 @@
The following steps describe how to make samba PDC users members of the 'Domain Admins' group?
</p><div class="orderedlist"><ol type="1"><li><p>
create a unix group (usually in <tt class="filename">/etc/group</tt>), let's call it domadm
- </p></li><li><p>add to this group the users that must be Administrators. For example
+ </p></li><li xmlns:ns24=""><p>add to this group the users that must be Administrators. For example
if you want joe,john and mary, your entry in <tt class="filename">/etc/group</tt> will
look like:
</p><pre class="programlisting">
domadm:x:502:joe,john,mary
- </pre><p>
- </p></li><li><p>
+ </pre><ns24:p>
+ </ns24:p></li><li xmlns:ns25=""><p>
Map this domadm group to the &quot;Domain Admins&quot; group by running the command:
- </p><p>
- </p><pre class="screen">
+ </p><ns25:p>
+ </ns25:p><pre class="screen">
<tt class="prompt">root# </tt><b class="userinput"><tt>net groupmap add ntgroup=&quot;Domain Admins&quot; unixgroup=domadm</tt></b>
- </pre><p>
- </p><p>
+ </pre><ns25:p>
+ </ns25:p><p>
The quotes around &quot;Domain Admins&quot; are necessary due to the space in the group name.
Also make sure to leave no whitespace surrounding the equal character (=).
</p></li></ol></div><p>
@@ -72,36 +73,36 @@
making any UNIX group a Windows domain group. For example, if you wanted to include a
UNIX group (e.g. acct) in a ACL on a local file or printer on a domain member machine,
you would flag that group as a domain group by running the following on the Samba PDC:
- </p><p>
- </p><pre class="screen">
+ </p><ns26:p>
+ </ns26:p><pre class="screen">
<tt class="prompt">root# </tt><b class="userinput"><tt>net groupmap add rid=1000 ntgroup=&quot;Accounting&quot; unixgroup=acct</tt></b>
- </pre><p>
- </p><p>
+ </pre><ns26:p>
+ </ns26:p><p>
Be aware that the RID parmeter is a unsigned 32 bit integer that should
normally start at 1000. However, this rid must not overlap with any RID assigned
to a user. Verifying this is done differently depending on on the passdb backend
you are using. Future versions of the tools may perform the verification automatically,
but for now the burden is on you.
- </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2921352"></a>Example Configuration</h3></div></div><div></div></div><p>
+ </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2916398"></a>Example Configuration</h3></div></div><div></div></div><p>
You can list the various groups in the mapping database by executing
<b class="command">net groupmap list</b>. Here is an example:
- </p><p>
- </p><pre class="screen">
+ </p><ns26:p>
+ </ns26:p><pre class="screen">
<tt class="prompt">root# </tt> <b class="userinput"><tt>net groupmap list</tt></b>
System Administrators (S-1-5-21-2547222302-1596225915-2414751004-1002) -&gt; sysadmin
Domain Admins (S-1-5-21-2547222302-1596225915-2414751004-512) -&gt; domadmin
Domain Users (S-1-5-21-2547222302-1596225915-2414751004-513) -&gt; domuser
Domain Guests (S-1-5-21-2547222302-1596225915-2414751004-514) -&gt; domguest
- </pre><p>
- </p><p>
+ </pre><ns26:p>
+ </ns26:p><p>
For complete details on <b class="command">net groupmap</b>, refer to the net(8) man page.
- </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2921416"></a>Configuration Scripts</h2></div></div><div></div></div><p>
+ </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2916463"></a>Configuration Scripts</h2></div></div><div></div></div><p>
Everyone needs tools. Some of us like to create our own, others prefer to use canned tools
(ie: prepared by someone else for general use).
- </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2921430"></a>Sample <tt class="filename">smb.conf</tt> add group script</h3></div></div><div></div></div><p>
+ </p><div xmlns:ns27="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2916477"></a>Sample <tt class="filename">smb.conf</tt> add group script</h3></div></div><div></div></div><p>
A script to great complying group names for use by the samba group interfaces:
- </p><p>
-</p><div class="example"><a name="id2921453"></a><p class="title"><b>Example 12.1. smbgrpadd.sh</b></p><pre class="programlisting">
+ </p><ns27:p>
+</ns27:p><div class="example"><a name="id2916499"></a><p class="title"><b>Example 12.1. smbgrpadd.sh</b></p><pre class="programlisting">
#!/bin/bash
@@ -116,17 +117,17 @@ cat /etc/group | sed s/smbtmpgrp00/$1/g &gt; /etc/group
# Now return the GID as would normally happen.
echo $thegid
exit 0
-</pre></div><p>
-</p><p>
+</pre></div><ns27:p>
+</ns27:p><ns27:p>
The <tt class="filename">smb.conf</tt> entry for the above script would look like:
- </p><pre class="programlisting">
+ </ns27:p><pre class="programlisting">
add group script = /path_to_tool/smbgrpadd.sh %g
- </pre><p>
- </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2921498"></a>Script to configure Group Mapping</h3></div></div><div></div></div><p>
+ </pre><ns27:p>
+ </ns27:p></div><div xmlns:ns28="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2916544"></a>Script to configure Group Mapping</h3></div></div><div></div></div><p>
In our example we have created a Unix/Linux group called <i class="parameter"><tt>ntadmin</tt></i>.
Our script will create the additional groups <i class="parameter"><tt>Engineers, Marketoids, Gnomes</tt></i>:
- </p><p>
-</p><pre class="programlisting">
+ </p><ns28:p>
+</ns28:p><pre class="programlisting">
#!/bin/bash
net groupmap modify ntgroup=&quot;Domain Admins&quot; unixgroup=ntadmin
@@ -149,16 +150,16 @@ net groupmap modify ntgroup=&quot;Power Users&quot; unixgroup=sys
#net groupmap add ntgroup=&quot;Engineers&quot; unixgroup=Engineers type=d
#net groupmap add ntgroup=&quot;Marketoids&quot; unixgroup=Marketoids type=d
#net groupmap add ntgroup=&quot;Gnomes&quot; unixgroup=Gnomes type=d
-</pre><p>
-</p><p>
+</pre><ns28:p>
+</ns28:p><p>
Of course it is expected that the admininstrator will modify this to suit local needs.
For information regarding the use of the <b class="command">net groupmap</b> tool please
refer to the man page.
- </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2921590"></a>Common Errors</h2></div></div><div></div></div><p>
+ </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2916618"></a>Common Errors</h2></div></div><div></div></div><p>
At this time there are many little surprises for the unwary administrator. In a real sense
it is imperative that every step of automated control scripts must be carefully tested
manually before putting them into active service.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2921606"></a>Adding Groups Fails</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2916633"></a>Adding Groups Fails</h3></div></div><div></div></div><p>
This is a common problem when the <b class="command">groupadd</b> is called directly
by the samba interface script for the <i class="parameter"><tt>add group script</tt></i> in
the <tt class="filename">smb.conf</tt> file.
@@ -172,6 +173,6 @@ manually before putting them into active service.
third option is to manually create a Unix/Linux group account that can substitute
for the MS Windows group name, then use the procedure listed above to map that group
to the MS Windows group.
- </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2921666"></a>Adding MS Windows Groups to MS Windows Groups Fails</h3></div></div><div></div></div><p>
+ </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2916694"></a>Adding MS Windows Groups to MS Windows Groups Fails</h3></div></div><div></div></div><p>
Samba-3 does NOT support nested groups from the MS Windows control environment.
</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="passdb.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="optional.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="AccessControls.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 11. Account Information Databases </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 13. File, Directory and Share Access Controls</td></tr></table></div></body></html>
diff --git a/docs/htmldocs/install.html b/docs/htmldocs/install.html
index 973b6083a8a..8d15d9bca4e 100644
--- a/docs/htmldocs/install.html
+++ b/docs/htmldocs/install.html
@@ -1,6 +1,7 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. How to Install and Test SAMBA</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="introduction.html" title="Part I. General Installation"><link rel="previous" href="IntroSMB.html" title="Chapter 1. Introduction to Samba"><link rel="next" href="FastStart.html" title="Chapter 3. FastStart for the Impatient"></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 2. How to Install and Test SAMBA</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="IntroSMB.html">Prev</a> </td><th width="60%" align="center">Part I. General Installation</th><td width="20%" align="right"> <a accesskey="n" href="FastStart.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install"></a>Chapter 2. How to Install and Test SAMBA</h2></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><tt class="email">&lt;<a href="mailto:tridge@samba.org">tridge@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Karl</span> <span class="surname">Auer</span></h3></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="install.html#id2886809">Obtaining and installing samba</a></dt><dt><a href="install.html#id2886850">Configuring samba (smb.conf)</a></dt><dd><dl><dt><a href="install.html#id2886887">Example Configuration</a></dt><dt><a href="install.html#id2887037">SWAT</a></dt></dl></dd><dt><a href="install.html#id2887081">Try listing the shares available on your
- server</a></dt><dt><a href="install.html#id2887132">Try connecting with the unix client</a></dt><dt><a href="install.html#id2887232">Try connecting from a DOS, WfWg, Win9x, WinNT,
- Win2k, OS/2, etc... client</a></dt><dt><a href="install.html#id2887296">What If Things Don't Work?</a></dt><dt><a href="install.html#id2887329">Common Errors</a></dt><dd><dl><dt><a href="install.html#id2887342">Why are so many smbd processes eating memory?</a></dt><dt><a href="install.html#id2887558">I'm getting &quot;open_oplock_ipc: Failed to get local UDP socket for address 100007f. Error was Cannot assign requested&quot; in the logs</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2886809"></a>Obtaining and installing samba</h2></div></div><div></div></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. How to Install and Test SAMBA</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="introduction.html" title="Part I. General Installation"><link rel="previous" href="IntroSMB.html" title="Chapter 1. Introduction to Samba"><link rel="next" href="FastStart.html" title="Chapter 3. FastStart for the Impatient"></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 2. How to Install and Test SAMBA</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="IntroSMB.html">Prev</a> </td><th width="60%" align="center">Part I. General Installation</th><td width="20%" align="right"> <a accesskey="n" href="FastStart.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install"></a>Chapter 2. How to Install and Test SAMBA</h2></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><tt class="email">&lt;<a href="mailto:tridge@samba.org">tridge@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Karl</span> <span class="surname">Auer</span></h3></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="install.html#id2885029">Obtaining and installing samba</a></dt><dt><a href="install.html#id2885071">Configuring samba (smb.conf)</a></dt><dd><dl><dt><a href="install.html#id2884644">Example Configuration</a></dt><dt><a href="install.html#id2884788">SWAT</a></dt></dl></dd><dt><a href="install.html#id2884832">Try listing the shares available on your
+ server</a></dt><dt><a href="install.html#id2884338">Try connecting with the unix client</a></dt><dt><a href="install.html#id2884440">Try connecting from a DOS, WfWg, Win9x, WinNT,
+ Win2k, OS/2, etc... client</a></dt><dt><a href="install.html#id2884501">What If Things Don't Work?</a></dt><dt><a href="install.html#id2884530">Common Errors</a></dt><dd><dl><dt><a href="install.html#id2884543">Why are so many smbd processes eating memory?</a></dt><dt><a href="install.html#id2885918">I'm getting &quot;open_oplock_ipc: Failed to get local UDP socket for address 100007f. Error was Cannot assign requested&quot; in the logs</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2885029"></a>Obtaining and installing samba</h2></div></div><div></div></div><p>
Binary packages of samba are included in almost any Linux or
Unix distribution. There are also some packages available at
<a href="http://samba.org/" target="_top">the samba homepage</a>.
@@ -8,29 +9,29 @@
<a href="compiling.html" title="Chapter 36. How to compile SAMBA">appropriate appendix chapter</a>.</p><p>If you have already installed samba, or if your operating system
was pre-installed with samba, then you may not need to bother with this
chapter. On the other hand, you may want to read this chapter anyhow
- for information about updating samba.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2886850"></a>Configuring samba (smb.conf)</h2></div></div><div></div></div><p>
+ for information about updating samba.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2885071"></a>Configuring samba (smb.conf)</h2></div></div><div></div></div><p>
Samba's configuration is stored in the <tt class="filename">smb.conf</tt> file,
that usually resides in <tt class="filename">/etc/samba/smb.conf</tt>
or <tt class="filename">/usr/local/samba/lib/smb.conf</tt>. You can either
edit this file yourself or do it using one of the many graphical
tools that are available, such as the web-based interface swat, that
is included with samba.
- </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2886887"></a>Example Configuration</h3></div></div><div></div></div><p>
+ </p><div xmlns:ns2="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884644"></a>Example Configuration</h3></div></div><div></div></div><p>
There are sample configuration files in the examples subdirectory in the
distribution. I suggest you read them carefully so you can see how the options
go together in practice. See the man page for all the options.
</p><p>
The simplest useful configuration file would be something like this:
- </p><p>
- </p><pre class="programlisting">
+ </p><ns2:p>
+ </ns2:p><pre class="programlisting">
[global]
workgroup = MYGROUP
[homes]
guest ok = no
read only = no
- </pre><p>
- </p><p>
+ </pre><ns2:p>
+ </ns2:p><p>
This will allow connections by anyone with an account on the server, using either
their login name or &quot;<i class="parameter"><tt>homes</tt></i>&quot; as the service name.
(Note that the workgroup that Samba must also be set.)
@@ -42,7 +43,7 @@
For more information about security settings for the
<i class="parameter"><tt>[homes]</tt></i> share please refer to the chapter
<a href="securing-samba.html" title="Chapter 15. Securing Samba">Securing Samba</a>.
- </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2886982"></a>Test your config file with <b class="command">testparm</b></h4></div></div><div></div></div><p>
+ </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884735"></a>Test your config file with <b class="command">testparm</b></h4></div></div><div></div></div><p>
It's important that you test the validity of your <tt class="filename">smb.conf</tt>
file using the <span class="application">testparm</span> program. If testparm runs OK
then it will list the loaded services. If not it will give an error message.
@@ -50,7 +51,7 @@
Make sure it runs OK and that the services look reasonable before proceeding.
</p><p>
Always run testparm again when you change <tt class="filename">smb.conf</tt>!
- </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2887037"></a>SWAT</h3></div></div><div></div></div><p>
+ </p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884788"></a>SWAT</h3></div></div><div></div></div><p>
SWAT is a web-based interface that helps you configure samba.
SWAT might not be available in the samba package on your platform,
but in a separate package. Please read the swat manpage
@@ -66,7 +67,7 @@
machine but connecting from a remote machine leaves your
connection open to password sniffing as passwords will be sent
in the clear over the wire.
- </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2887081"></a>Try listing the shares available on your
+ </p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2884832"></a>Try listing the shares available on your
server</h2></div></div><div></div></div><p><tt class="prompt">$ </tt><b class="userinput"><tt>smbclient -L
<i class="replaceable"><tt>yourhostname</tt></i></tt></b></p><p>You should get back a list of shares available on
your server. If you don't then something is incorrectly setup.
@@ -76,7 +77,7 @@
See the <b class="command">smbclient</b> man page for details. (you
can force it to list the shares without a password by
adding the option -U% to the command line. This will not work
- with non-Samba servers)</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2887132"></a>Try connecting with the unix client</h2></div></div><div></div></div><p><tt class="prompt">$ </tt><b class="userinput"><tt>smbclient <i class="replaceable"><tt>
+ with non-Samba servers)</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2884338"></a>Try connecting with the unix client</h2></div></div><div></div></div><p><tt class="prompt">$ </tt><b class="userinput"><tt>smbclient <i class="replaceable"><tt>
//yourhostname/aservice</tt></i></tt></b></p><p>Typically the <i class="replaceable"><tt>yourhostname</tt></i>
would be the name of the host where you installed <span class="application">smbd</span>.
The <i class="replaceable"><tt>aservice</tt></i> is
@@ -85,18 +86,18 @@
section
in <tt class="filename">smb.conf</tt>.</p><p>For example if your unix host is <i class="replaceable"><tt>bambi</tt></i>
and your login name is <i class="replaceable"><tt>fred</tt></i> you would type:</p><p><tt class="prompt">$ </tt><b class="userinput"><tt>smbclient //<i class="replaceable"><tt>bambi</tt></i>/<i class="replaceable"><tt>fred</tt></i>
- </tt></b></p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2887232"></a>Try connecting from a DOS, WfWg, Win9x, WinNT,
+ </tt></b></p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2884440"></a>Try connecting from a DOS, WfWg, Win9x, WinNT,
Win2k, OS/2, etc... client</h2></div></div><div></div></div><p>Try mounting disks. eg:</p><p><tt class="prompt">C:\WINDOWS\&gt; </tt><b class="userinput"><tt>net use d: \\servername\service
</tt></b></p><p>Try printing. eg:</p><p><tt class="prompt">C:\WINDOWS\&gt; </tt><b class="userinput"><tt>net use lpt1:
\\servername\spoolservice</tt></b></p><p><tt class="prompt">C:\WINDOWS\&gt; </tt><b class="userinput"><tt>print filename
- </tt></b></p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2887296"></a>What If Things Don't Work?</h2></div></div><div></div></div><p>Then you might read the file chapter
+ </tt></b></p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2884501"></a>What If Things Don't Work?</h2></div></div><div></div></div><p>Then you might read the file chapter
<a href="diagnosis.html" title="Chapter 33. The samba checklist">Diagnosis</a> and the
FAQ. If you are still stuck then try to follow
the <a href="problems.html" title="Chapter 34. Analysing and solving samba problems">Analysing and Solving Problems chapter</a>
Samba has been successfully installed at thousands of sites worldwide,
- so maybe someone else has hit your problem and has overcome it. </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2887329"></a>Common Errors</h2></div></div><div></div></div><p>
+ so maybe someone else has hit your problem and has overcome it. </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2884530"></a>Common Errors</h2></div></div><div></div></div><p>
The following questions and issues get raised on the samba mailing list over and over again.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2887342"></a>Why are so many smbd processes eating memory?</h3></div></div><div></div></div><p>
+</p><div xmlns:ns3="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2884543"></a>Why are so many smbd processes eating memory?</h3></div></div><div></div></div><p>
&#8220;<span class="quote">
Site that is running Samba on an AIX box. They are sharing out about 2 terabytes using samba.
Samba was installed using smitty and the binaries. We seem to be experiencing a memory problem
@@ -108,8 +109,8 @@ processes of smbd running:
Is samba suppose to start this many different smbd processes? Or does it run as one smbd process? Also
is it normal for it to be taking up this much memory?
</span>&#8221;
-</p><p>
-</p><pre class="screen">
+</p><ns3:p>
+</ns3:p><pre class="screen">
Inuse * 4096 = amount of memory being used by this process
Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd
@@ -136,8 +137,8 @@ Inuse * 4096 = amount of memory being used by this process
19110 smbd 8404 1906 181 4862 N N
Total memory used: 841,592,832 bytes
-</pre><p>
-</p><p>
+</pre><ns3:p>
+</ns3:p><p>
Samba consists on three core programs:
<span class="application">nmbd</span>, <span class="application">smbd</span>, <span class="application">winbindd</span>. <span class="application">nmbd</span> is the name server message daemon,
<span class="application">smbd</span> is the server message daemon, <span class="application">winbindd</span> is the daemon that
@@ -152,4 +153,4 @@ connection made. That is why you are seeing so many of them, one (1) per client
</p><p>
<span class="application">winbindd</span> will run as one or two daemons, depending on whether or not it is being
run in &quot;split mode&quot; (in which case there will be two instances).
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2887558"></a>I'm getting &quot;open_oplock_ipc: Failed to get local UDP socket for address 100007f. Error was Cannot assign requested&quot; in the logs</h3></div></div><div></div></div><p>Your loopback device isn't working correctly. Make sure it's running. </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="IntroSMB.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="introduction.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="FastStart.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1. Introduction to Samba </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. FastStart for the Impatient</td></tr></table></div></body></html>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2885918"></a>I'm getting &quot;open_oplock_ipc: Failed to get local UDP socket for address 100007f. Error was Cannot assign requested&quot; in the logs</h3></div></div><div></div></div><p>Your loopback device isn't working correctly. Make sure it's running. </p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="IntroSMB.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="introduction.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="FastStart.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1. Introduction to Samba </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. FastStart for the Impatient</td></tr></table></div></body></html>
diff --git a/docs/htmldocs/integrate-ms-networks.html b/docs/htmldocs/integrate-ms-networks.html
index f3038ce5a4c..0bd4d4f53ab 100644
--- a/docs/htmldocs/integrate-ms-networks.html
+++ b/docs/htmldocs/integrate-ms-networks.html
@@ -1,4 +1,5 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 26. Integrating MS Windows networks with Samba</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="pam.html" title="Chapter 25. PAM based Distributed Authentication"><link rel="next" href="unicode.html" title="Chapter 27. Unicode/Charsets"></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 26. Integrating MS Windows networks with Samba</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pam.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="unicode.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="integrate-ms-networks"></a>Chapter 26. Integrating MS Windows networks with Samba</h2></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate"> (Jan 01 2001) </p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="integrate-ms-networks.html#id2999128">Features and Benefits</a></dt><dt><a href="integrate-ms-networks.html#id2999152">Background Information</a></dt><dt><a href="integrate-ms-networks.html#id2999197">Name Resolution in a pure Unix/Linux world</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2999254">/etc/hosts</a></dt><dt><a href="integrate-ms-networks.html#id2999378">/etc/resolv.conf</a></dt><dt><a href="integrate-ms-networks.html#id2999422">/etc/host.conf</a></dt><dt><a href="integrate-ms-networks.html#id2999464">/etc/nsswitch.conf</a></dt></dl></dd><dt><a href="integrate-ms-networks.html#id2999552">Name resolution as used within MS Windows networking</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2999700">The NetBIOS Name Cache</a></dt><dt><a href="integrate-ms-networks.html#id2999745">The LMHOSTS file</a></dt><dt><a href="integrate-ms-networks.html#id2999989">HOSTS file</a></dt><dt><a href="integrate-ms-networks.html#id3000021">DNS Lookup</a></dt><dt><a href="integrate-ms-networks.html#id3000046">WINS Lookup</a></dt></dl></dd><dt><a href="integrate-ms-networks.html#id3000117">Common Errors</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id3000133">My Boomerang Won't Come Back</a></dt><dt><a href="integrate-ms-networks.html#id3000164">Very Slow Network Connections</a></dt><dt><a href="integrate-ms-networks.html#id3000216">Samba server name change problem</a></dt></dl></dd></dl></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 26. Integrating MS Windows networks with Samba</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="pam.html" title="Chapter 25. PAM based Distributed Authentication"><link rel="next" href="unicode.html" title="Chapter 27. Unicode/Charsets"></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 26. Integrating MS Windows networks with Samba</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pam.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="unicode.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="integrate-ms-networks"></a>Chapter 26. Integrating MS Windows networks with Samba</h2></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate"> (Jan 01 2001) </p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="integrate-ms-networks.html#id2997481">Features and Benefits</a></dt><dt><a href="integrate-ms-networks.html#id2997505">Background Information</a></dt><dt><a href="integrate-ms-networks.html#id2997550">Name Resolution in a pure Unix/Linux world</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2997602">/etc/hosts</a></dt><dt><a href="integrate-ms-networks.html#id2997726">/etc/resolv.conf</a></dt><dt><a href="integrate-ms-networks.html#id2995876">/etc/host.conf</a></dt><dt><a href="integrate-ms-networks.html#id2995919">/etc/nsswitch.conf</a></dt></dl></dd><dt><a href="integrate-ms-networks.html#id2996007">Name resolution as used within MS Windows networking</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2996132">The NetBIOS Name Cache</a></dt><dt><a href="integrate-ms-networks.html#id2996176">The LMHOSTS file</a></dt><dt><a href="integrate-ms-networks.html#id2996290">HOSTS file</a></dt><dt><a href="integrate-ms-networks.html#id2996322">DNS Lookup</a></dt><dt><a href="integrate-ms-networks.html#id2996347">WINS Lookup</a></dt></dl></dd><dt><a href="integrate-ms-networks.html#id2996418">Common Errors</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2996434">My Boomerang Won't Come Back</a></dt><dt><a href="integrate-ms-networks.html#id2996465">Very Slow Network Connections</a></dt><dt><a href="integrate-ms-networks.html#id2996517">Samba server name change problem</a></dt></dl></dd></dl></div><p>
This section deals with NetBIOS over TCP/IP name to IP address resolution. If
your MS Windows clients are NOT configured to use NetBIOS over TCP/IP then this
section does not apply to your installation. If your installation involves use of
@@ -9,7 +10,7 @@ NetBIOS over TCP/IP then this section may help you to resolve networking problem
to NOT run NetBEUI at all. Note also that there is NO such thing as
NetBEUI over TCP/IP - the existence of such a protocol is a complete
and utter mis-apprehension.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2999128"></a>Features and Benefits</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2997481"></a>Features and Benefits</h2></div></div><div></div></div><p>
Many MS Windows network administrators have never been exposed to basic TCP/IP
networking as it is implemented in a Unix/Linux operating system. Likewise, many Unix and
Linux adminsitrators have not been exposed to the intricacies of MS Windows TCP/IP based
@@ -17,7 +18,7 @@ networking (and may have no desire to be either).
</p><p>
This chapter gives a short introduction to the basics of how a name can be resolved to
it's IP address for each operating system environment.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2999152"></a>Background Information</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2997505"></a>Background Information</h2></div></div><div></div></div><p>
Since the introduction of MS Windows 2000 it is possible to run MS Windows networking
without the use of NetBIOS over TCP/IP. NetBIOS over TCP/IP uses UDP port 137 for NetBIOS
name resolution and uses TCP port 139 for NetBIOS session services. When NetBIOS over
@@ -33,9 +34,9 @@ disable NetBIOS over TCP/IP today use MS Active Directory Service (ADS). ADS req
Dynamic DNS with Service Resource Records (SRV RR) and with Incremental Zone Transfers (IXFR).
Use of DHCP with ADS is recommended as a further means of maintaining central control
over client workstation network configuration.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2999197"></a>Name Resolution in a pure Unix/Linux world</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2997550"></a>Name Resolution in a pure Unix/Linux world</h2></div></div><div></div></div><p>
The key configuration files covered in this section are:
-</p><div class="itemizedlist"><ul type="disc"><li><p><tt class="filename">/etc/hosts</tt></p></li><li><p><tt class="filename">/etc/resolv.conf</tt></p></li><li><p><tt class="filename">/etc/host.conf</tt></p></li><li><p><tt class="filename">/etc/nsswitch.conf</tt></p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2999254"></a><tt class="filename">/etc/hosts</tt></h3></div></div><div></div></div><p>
+</p><div class="itemizedlist"><ul type="disc"><li><p><tt class="filename">/etc/hosts</tt></p></li><li><p><tt class="filename">/etc/resolv.conf</tt></p></li><li><p><tt class="filename">/etc/host.conf</tt></p></li><li><p><tt class="filename">/etc/nsswitch.conf</tt></p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2997602"></a><tt class="filename">/etc/hosts</tt></h3></div></div><div></div></div><p>
Contains a static list of IP Addresses and names.
eg:
</p><pre class="screen">
@@ -92,7 +93,7 @@ primary names by which they are known within the local machine.
This file helps to prime the pump so that a basic level of name
resolution can exist before any other method of name resolution
becomes available.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2999378"></a><tt class="filename">/etc/resolv.conf</tt></h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2997726"></a><tt class="filename">/etc/resolv.conf</tt></h3></div></div><div></div></div><p>
This file tells the name resolution libraries:
</p><div class="itemizedlist"><ul type="disc"><li><p>The name of the domain to which the machine
belongs
@@ -102,7 +103,7 @@ This file tells the name resolution libraries:
</p></li><li><p>The name or IP address of available Domain
Name Servers that may be asked to perform name to address
translation lookups
- </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2999422"></a><tt class="filename">/etc/host.conf</tt></h3></div></div><div></div></div><p>
+ </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2995876"></a><tt class="filename">/etc/host.conf</tt></h3></div></div><div></div></div><p>
<tt class="filename">/etc/host.conf</tt> is the primary means by
which the setting in /etc/resolv.conf may be affected. It is a
critical configuration file. This file controls the order by
@@ -113,7 +114,7 @@ which name resolution may procede. The typical structure is:
</pre><p>
then both addresses should be returned. Please refer to the
man page for host.conf for further details.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2999464"></a><tt class="filename">/etc/nsswitch.conf</tt></h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2995919"></a><tt class="filename">/etc/nsswitch.conf</tt></h3></div></div><div></div></div><p>
This file controls the actual name resolution targets. The
file typically has resolver object specifications as follows:
</p><pre class="screen">
@@ -157,7 +158,7 @@ the <tt class="filename">/etc/nsswitch.conf</tt> file. At this point it
will be possible to ping any MS Windows machine by it's NetBIOS
machine name, so long as that machine is within the workgroup to
which both the samba machine and the MS Windows machine belong.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2999552"></a>Name resolution as used within MS Windows networking</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2996007"></a>Name resolution as used within MS Windows networking</h2></div></div><div></div></div><p>
MS Windows networking is predicated about the name each machine
is given. This name is known variously (and inconsistently) as
the &quot;computer name&quot;, &quot;machine name&quot;, &quot;networking name&quot;, &quot;netbios name&quot;,
@@ -228,7 +229,7 @@ NBT or NetBT, the NetBIOS over TCP/IP.
MS Windows machines use a complex array of name resolution mechanisms.
Since we are primarily concerned with TCP/IP this demonstration is
limited to this area.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2999700"></a>The NetBIOS Name Cache</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996132"></a>The NetBIOS Name Cache</h3></div></div><div></div></div><p>
All MS Windows machines employ an in memory buffer in which is
stored the NetBIOS names and IP addresses for all external
machines that that machine has communicated with over the
@@ -246,7 +247,7 @@ frustrating for users - but it is a characteristic of the protocol.
The MS Windows utility that allows examination of the NetBIOS
name cache is called &quot;nbtstat&quot;. The Samba equivalent of this
is called <b class="command">nmblookup</b>.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2999745"></a>The LMHOSTS file</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996176"></a>The LMHOSTS file</h3></div></div><div></div></div><p>
This file is usually located in MS Windows NT 4.0 or
2000 in <tt class="filename">C:\WINNT\SYSTEM32\DRIVERS\ETC</tt> and contains
the IP Address and the machine name in matched pairs. The
@@ -331,14 +332,14 @@ It typically looks like:
# so keeping the number of comments to a minimum will improve performance.
# Therefore it is not advisable to simply add lmhosts file entries onto the
# end of this file.
-</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2999989"></a>HOSTS file</h3></div></div><div></div></div><p>
+</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996290"></a>HOSTS file</h3></div></div><div></div></div><p>
This file is usually located in MS Windows NT 4.0 or 2000 in
<tt class="filename">C:\WINNT\SYSTEM32\DRIVERS\ETC</tt> and contains
the IP Address and the IP hostname in matched pairs. It can be
used by the name resolution infrastructure in MS Windows, depending
on how the TCP/IP environment is configured. This file is in
every way the equivalent of the Unix/Linux <tt class="filename">/etc/hosts</tt> file.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3000021"></a>DNS Lookup</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996322"></a>DNS Lookup</h3></div></div><div></div></div><p>
This capability is configured in the TCP/IP setup area in the network
configuration facility. If enabled an elaborate name resolution sequence
is followed the precise nature of which is dependant on what the NetBIOS
@@ -349,7 +350,7 @@ cache. If that fails then DNS, HOSTS and LMHOSTS are checked. If set to
Node Type 8, then a NetBIOS Unicast (over UDP Unicast) is sent to the
WINS Server to obtain a lookup before DNS, HOSTS, LMHOSTS, or broadcast
lookup is used.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3000046"></a>WINS Lookup</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996347"></a>WINS Lookup</h3></div></div><div></div></div><p>
A WINS (Windows Internet Name Server) service is the equivaent of the
rfc1001/1002 specified NBNS (NetBIOS Name Server). A WINS server stores
the names and IP addresses that are registered by a Windows client
@@ -368,11 +369,11 @@ needed in the <tt class="filename">smb.conf</tt> file:
</pre><p>
where <i class="replaceable"><tt>xxx.xxx.xxx.xxx</tt></i> is the IP address
of the WINS server.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3000117"></a>Common Errors</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2996418"></a>Common Errors</h2></div></div><div></div></div><p>
TCP/IP network configuration problems find every network administrator sooner or later.
The cause can be anything from keybaord mishaps, forgetfulness, simple mistakes, and
carelessness. Of course, noone is every deliberately careless!
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3000133"></a>My Boomerang Won't Come Back</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996434"></a>My Boomerang Won't Come Back</h3></div></div><div></div></div><p>
Well, the real complaint said, &quot;I can ping my samba server from Windows, but I can
not ping my Windows machine from the samba server.&quot;
</p><p>
@@ -382,9 +383,9 @@ carelessness. Of course, noone is every deliberately careless!
</p><p>
Due to inconsistent netmasks, the Windows machine was on network 192.168.1.0/24, while
the Samba server was on network 192.168.1.128/25 - logically a different network.
- </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3000164"></a>Very Slow Network Connections</h3></div></div><div></div></div><p>
+ </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996465"></a>Very Slow Network Connections</h3></div></div><div></div></div><p>
A common causes of slow network response includes:
- </p><div class="itemizedlist"><ul type="disc"><li><p>Client is configured to use DNS and DNS server is down</p></li><li><p>Client is configured to use remote DNS server, but remote connection is down</p></li><li><p>Client is configured to use a WINS server, but there is no WINS server</p></li><li><p>Client is NOT configured to use a WINS server, but there is a WINS server</p></li><li><p>Firewall is filtering our DNS or WINS traffic</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id3000216"></a>Samba server name change problem</h3></div></div><div></div></div><p>
+ </p><div class="itemizedlist"><ul type="disc"><li><p>Client is configured to use DNS and DNS server is down</p></li><li><p>Client is configured to use remote DNS server, but remote connection is down</p></li><li><p>Client is configured to use a WINS server, but there is no WINS server</p></li><li><p>Client is NOT configured to use a WINS server, but there is a WINS server</p></li><li><p>Firewall is filtering our DNS or WINS traffic</p></li></ul></div></div><div xmlns:ns93="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996517"></a>Samba server name change problem</h3></div></div><div></div></div><p>
The name of the samba server was changed, samba was restarted, samba server can not be
pinged by new name from MS Windows NT4 Workstation, but it does still respond to ping using
the old name. Why?
@@ -393,8 +394,8 @@ carelessness. Of course, noone is every deliberately careless!
</p><div class="itemizedlist"><ul type="disc"><li><p>WINS is NOT in use, only broadcast based name resolution is used</p></li><li><p>The samba server was renamed and restarted within the last 10-15 minutes</p></li><li><p>The old samba server name is still in the NetBIOS name cache on the MS Windows NT4 Workstation</p></li></ul></div><p>
To find what names are present in the NetBIOS name cache on the MS Windows NT4 machine,
open a cmd shell, then:
- </p><p>
- </p><pre class="screen">
+ </p><ns93:p>
+ </ns93:p><pre class="screen">
C:\temp\&gt;nbtstat -n
NetBIOS Local Name Table
@@ -418,8 +419,8 @@ carelessness. Of course, noone is every deliberately careless!
FRODO &lt;20&gt; UNIQUE 192.168.1.1 240
C:\Temp\&gt;
- </pre><p>
- </p><p>
+ </pre><ns93:p>
+ </ns93:p><p>
In the above example, FRODO is the Samba server and SLACK is the MS Windows NT4 Workstation.
The first listing shows the contents of the Local Name Table (ie: Identity information on
the MS Windows workstation), the second shows the NetBIOS name in the NetBIOS name cache.
diff --git a/docs/htmldocs/introduction.html b/docs/htmldocs/introduction.html
index b4e1765f2db..6312d2a4a0c 100644
--- a/docs/htmldocs/introduction.html
+++ b/docs/htmldocs/introduction.html
@@ -1,5 +1,6 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part I. General Installation</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="index.html" title="SAMBA Project Documentation"><link rel="previous" href="index.html" title="SAMBA Project Documentation"><link rel="next" href="IntroSMB.html" title="Chapter 1. Introduction to Samba"></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">Part I. General Installation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="IntroSMB.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="introduction"></a>General Installation</h1></div></div><div></div></div><div class="partintro" lang="en"><div><div><div><h1 class="title"><a name="id2884272"></a>Preparing Samba for Configuration</h1></div></div><div></div></div><p>This section of the Samba-HOWTO-Collection contains general info on how to install samba
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part I. General Installation</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="index.html" title="SAMBA Project Documentation"><link rel="previous" href="index.html" title="SAMBA Project Documentation"><link rel="next" href="IntroSMB.html" title="Chapter 1. Introduction to Samba"></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">Part I. General Installation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="IntroSMB.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="introduction"></a>General Installation</h1></div></div><div></div></div><div class="partintro" lang="en"><div><div><div><h1 class="title"><a name="id2883915"></a>Preparing Samba for Configuration</h1></div></div><div></div></div><p>This section of the Samba-HOWTO-Collection contains general info on how to install samba
and how to configure the parts of samba you will most likely need.
-PLEASE read this.</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1. <a href="IntroSMB.html">Introduction to Samba</a></dt><dd><dl><dt><a href="IntroSMB.html#id2885554">Background</a></dt><dt><a href="IntroSMB.html#id2885765">Terminology</a></dt><dt><a href="IntroSMB.html#id2885920">Related Projects</a></dt><dt><a href="IntroSMB.html#id2885988">SMB Methodology</a></dt><dt><a href="IntroSMB.html#id2886076">Epilogue</a></dt><dt><a href="IntroSMB.html#id2886150">Miscellaneous</a></dt></dl></dd><dt>2. <a href="install.html">How to Install and Test SAMBA</a></dt><dd><dl><dt><a href="install.html#id2886809">Obtaining and installing samba</a></dt><dt><a href="install.html#id2886850">Configuring samba (smb.conf)</a></dt><dd><dl><dt><a href="install.html#id2886887">Example Configuration</a></dt><dt><a href="install.html#id2887037">SWAT</a></dt></dl></dd><dt><a href="install.html#id2887081">Try listing the shares available on your
- server</a></dt><dt><a href="install.html#id2887132">Try connecting with the unix client</a></dt><dt><a href="install.html#id2887232">Try connecting from a DOS, WfWg, Win9x, WinNT,
- Win2k, OS/2, etc... client</a></dt><dt><a href="install.html#id2887296">What If Things Don't Work?</a></dt><dt><a href="install.html#id2887329">Common Errors</a></dt><dd><dl><dt><a href="install.html#id2887342">Why are so many smbd processes eating memory?</a></dt><dt><a href="install.html#id2887558">I'm getting &quot;open_oplock_ipc: Failed to get local UDP socket for address 100007f. Error was Cannot assign requested&quot; in the logs</a></dt></dl></dd></dl></dd><dt>3. <a href="FastStart.html">FastStart for the Impatient</a></dt><dd><dl><dt><a href="FastStart.html#id2886685">Note</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="IntroSMB.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">SAMBA Project Documentation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Introduction to Samba</td></tr></table></div></body></html>
+PLEASE read this.</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>1. <a href="IntroSMB.html">Introduction to Samba</a></dt><dd><dl><dt><a href="IntroSMB.html#id2885255">Background</a></dt><dt><a href="IntroSMB.html#id2885309">Terminology</a></dt><dt><a href="IntroSMB.html#id2884034">Related Projects</a></dt><dt><a href="IntroSMB.html#id2884102">SMB Methodology</a></dt><dt><a href="IntroSMB.html#id2884189">Epilogue</a></dt><dt><a href="IntroSMB.html#id2884263">Miscellaneous</a></dt></dl></dd><dt>2. <a href="install.html">How to Install and Test SAMBA</a></dt><dd><dl><dt><a href="install.html#id2885029">Obtaining and installing samba</a></dt><dt><a href="install.html#id2885071">Configuring samba (smb.conf)</a></dt><dd><dl><dt><a href="install.html#id2884644">Example Configuration</a></dt><dt><a href="install.html#id2884788">SWAT</a></dt></dl></dd><dt><a href="install.html#id2884832">Try listing the shares available on your
+ server</a></dt><dt><a href="install.html#id2884338">Try connecting with the unix client</a></dt><dt><a href="install.html#id2884440">Try connecting from a DOS, WfWg, Win9x, WinNT,
+ Win2k, OS/2, etc... client</a></dt><dt><a href="install.html#id2884501">What If Things Don't Work?</a></dt><dt><a href="install.html#id2884530">Common Errors</a></dt><dd><dl><dt><a href="install.html#id2884543">Why are so many smbd processes eating memory?</a></dt><dt><a href="install.html#id2885918">I'm getting &quot;open_oplock_ipc: Failed to get local UDP socket for address 100007f. Error was Cannot assign requested&quot; in the logs</a></dt></dl></dd></dl></dd><dt>3. <a href="FastStart.html">FastStart for the Impatient</a></dt><dd><dl><dt><a href="FastStart.html#id2886367">Note</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="IntroSMB.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">SAMBA Project Documentation </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Introduction to Samba</td></tr></table></div></body></html>
diff --git a/docs/htmldocs/msdfs.html b/docs/htmldocs/msdfs.html
index f8f2a3ea525..af8f5e912fd 100644
--- a/docs/htmldocs/msdfs.html
+++ b/docs/htmldocs/msdfs.html
@@ -1,6 +1,7 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 17. Hosting a Microsoft Distributed File System tree on Samba</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="InterdomainTrusts.html" title="Chapter 16. Interdomain Trust Relationships"><link rel="next" href="printing.html" title="Chapter 18. Classical Printing Support"></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 17. Hosting a Microsoft Distributed File System tree on Samba</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="InterdomainTrusts.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="printing.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="msdfs"></a>Chapter 17. Hosting a Microsoft Distributed File System tree on Samba</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Shirish</span> <span class="surname">Kalele</span></h3><div class="affiliation"><span class="orgname">Samba Team &amp; Veritas Software<br></span><div class="address"><p><br>
<tt class="email">&lt;<a href="mailto:samba@samba.org">samba@samba.org</a>&gt;</tt><br>
- </p></div></div></div></div><div><p class="pubdate">12 Jul 2000</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="msdfs.html#id2932887">Features and Benefits</a></dt><dt><a href="msdfs.html#id2934539">Common Errors</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2932887"></a>Features and Benefits</h2></div></div><div></div></div><p>
+ </p></div></div></div></div><div><p class="pubdate">12 Jul 2000</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="msdfs.html#id2928926">Features and Benefits</a></dt><dt><a href="msdfs.html#id2930336">Common Errors</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2928926"></a>Features and Benefits</h2></div></div><div></div></div><p>
The Distributed File System (or DFS) provides a means of separating the logical
view of files and directories that users see from the actual physical locations
of these resources on the network. It allows for higher availability, smoother
@@ -52,7 +53,7 @@
network shares you want, and start Samba.</p><p>Users on DFS-aware clients can now browse the DFS tree
on the Samba server at \\samba\dfs. Accessing
links linka or linkb (which appear as directories to the client)
- takes users directly to the appropriate shares on the network.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2934539"></a>Common Errors</h2></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Windows clients need to be rebooted
+ takes users directly to the appropriate shares on the network.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2930336"></a>Common Errors</h2></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Windows clients need to be rebooted
if a previously mounted non-dfs share is made a dfs
root or vice versa. A better way is to introduce a
new share and make it the dfs root.</p></li><li><p>Currently there's a restriction that msdfs
diff --git a/docs/htmldocs/optional.html b/docs/htmldocs/optional.html
index 22761de9c92..04e4a56d8a3 100644
--- a/docs/htmldocs/optional.html
+++ b/docs/htmldocs/optional.html
@@ -1,26 +1,27 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part III. Advanced Configuration</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="index.html" title="SAMBA Project Documentation"><link rel="previous" href="ClientConfig.html" title="Chapter 9. MS Windows Network Configuration Guide"><link rel="next" href="NetworkBrowsing.html" title="Chapter 10. Samba / MS Windows Network Browsing Guide"></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">Part III. Advanced Configuration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ClientConfig.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="NetworkBrowsing.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="optional"></a>Advanced Configuration</h1></div></div><div></div></div><div class="partintro" lang="en"><div><div><div><h1 class="title"><a name="id2901497"></a>Valuable Nuts and Bolts Information</h1></div></div><div></div></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part III. Advanced Configuration</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="index.html" title="SAMBA Project Documentation"><link rel="previous" href="ClientConfig.html" title="Chapter 9. MS Windows Network Configuration Guide"><link rel="next" href="NetworkBrowsing.html" title="Chapter 10. Samba / MS Windows Network Browsing Guide"></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">Part III. Advanced Configuration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ClientConfig.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="NetworkBrowsing.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="optional"></a>Advanced Configuration</h1></div></div><div></div></div><div class="partintro" lang="en"><div><div><div><h1 class="title"><a name="id2901143"></a>Valuable Nuts and Bolts Information</h1></div></div><div></div></div><p>
Samba has several features that you might want or might not want to use. The chapters in this part each cover specific Samba features.
-</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>10. <a href="NetworkBrowsing.html">Samba / MS Windows Network Browsing Guide</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2903318">Features and Benefits</a></dt><dt><a href="NetworkBrowsing.html#id2903397">What is Browsing?</a></dt><dt><a href="NetworkBrowsing.html#id2903501">Discussion</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2903517">NetBIOS over TCP/IP</a></dt><dt><a href="NetworkBrowsing.html#id2903680">TCP/IP - without NetBIOS</a></dt><dt><a href="NetworkBrowsing.html#id2903811">DNS and Active Directory</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2903948">How Browsing Functions</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2904073">Setting up WORKGROUP Browsing</a></dt><dt><a href="NetworkBrowsing.html#id2904295">Setting up DOMAIN Browsing</a></dt><dt><a href="NetworkBrowsing.html#browse-force-master">Forcing samba to be the master</a></dt><dt><a href="NetworkBrowsing.html#id2904565">Making samba the domain master</a></dt><dt><a href="NetworkBrowsing.html#id2904720">Note about broadcast addresses</a></dt><dt><a href="NetworkBrowsing.html#id2904738">Multiple interfaces</a></dt><dt><a href="NetworkBrowsing.html#id2904767">Use of the Remote Announce parameter</a></dt><dt><a href="NetworkBrowsing.html#id2904872">Use of the Remote Browse Sync parameter</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2904933">WINS - The Windows Internetworking Name Server</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2905084">Setting up a WINS server</a></dt><dt><a href="NetworkBrowsing.html#id2905282">WINS Replication</a></dt><dt><a href="NetworkBrowsing.html#id2905308">Static WINS Entries</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2905338">Helpful Hints</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2905352">Windows Networking Protocols</a></dt><dt><a href="NetworkBrowsing.html#id2905425">Name Resolution Order</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2905546">Technical Overview of browsing</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2905593">Browsing support in samba</a></dt><dt><a href="NetworkBrowsing.html#id2905700">Problem resolution</a></dt><dt><a href="NetworkBrowsing.html#id2905779">Browsing across subnets</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2906423">Common Errors</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2906439">How can one flush the Samba NetBIOS name cache without restarting samba?</a></dt><dt><a href="NetworkBrowsing.html#id2906467">My client reports &quot;This server is not configured to list shared resources&quot;</a></dt></dl></dd></dl></dd><dt>11. <a href="passdb.html">Account Information Databases</a></dt><dd><dl><dt><a href="passdb.html#id2909924">Features and Benefits</a></dt><dt><a href="passdb.html#id2910250">Technical Information</a></dt><dd><dl><dt><a href="passdb.html#id2910313">Important Notes About Security</a></dt><dt><a href="passdb.html#id2910568">Mapping User Identifiers between MS Windows and Unix</a></dt></dl></dd><dt><a href="passdb.html#id2910622">Account Management Tools</a></dt><dd><dl><dt><a href="passdb.html#id2910654">The smbpasswd Command</a></dt><dt><a href="passdb.html#id2910920">The pdbedit Command</a></dt></dl></dd><dt><a href="passdb.html#id2911072">Password Backends</a></dt><dd><dl><dt><a href="passdb.html#id2911108">Plain Text</a></dt><dt><a href="passdb.html#id2911147">smbpasswd - Encrypted Password Database</a></dt><dt><a href="passdb.html#id2911255">tdbsam</a></dt><dt><a href="passdb.html#id2911282">ldapsam</a></dt><dt><a href="passdb.html#id2912800">MySQL</a></dt><dt><a href="passdb.html#XMLpassdb">XML</a></dt></dl></dd><dt><a href="passdb.html#id2913602">Common Errors</a></dt><dd><dl><dt><a href="passdb.html#id2913610">Users can not logon - Users not in Samba SAM</a></dt><dt><a href="passdb.html#id2913625">Users are being added to the wrong backend database</a></dt><dt><a href="passdb.html#id2913685">auth methods does not work</a></dt></dl></dd></dl></dd><dt>12. <a href="groupmapping.html">Mapping MS Windows and Unix Groups</a></dt><dd><dl><dt><a href="groupmapping.html#id2921059">Features and Benefits</a></dt><dt><a href="groupmapping.html#id2921161">Discussion</a></dt><dd><dl><dt><a href="groupmapping.html#id2921352">Example Configuration</a></dt></dl></dd><dt><a href="groupmapping.html#id2921416">Configuration Scripts</a></dt><dd><dl><dt><a href="groupmapping.html#id2921430">Sample smb.conf add group script</a></dt><dt><a href="groupmapping.html#id2921498">Script to configure Group Mapping</a></dt></dl></dd><dt><a href="groupmapping.html#id2921590">Common Errors</a></dt><dd><dl><dt><a href="groupmapping.html#id2921606">Adding Groups Fails</a></dt><dt><a href="groupmapping.html#id2921666">Adding MS Windows Groups to MS Windows Groups Fails</a></dt></dl></dd></dl></dd><dt>13. <a href="AccessControls.html">File, Directory and Share Access Controls</a></dt><dd><dl><dt><a href="AccessControls.html#id2919880">Features and Benefits</a></dt><dt><a href="AccessControls.html#id2919917">File System Access Controls</a></dt><dd><dl><dt><a href="AccessControls.html#id2919936">MS Windows NTFS Comparison with Unix File Systems</a></dt><dt><a href="AccessControls.html#id2920193">Managing Directories</a></dt><dt><a href="AccessControls.html#id2920288">File and Directory Access Control</a></dt></dl></dd><dt><a href="AccessControls.html#id2920503">Share Definition Access Controls</a></dt><dd><dl><dt><a href="AccessControls.html#id2921683">User and Group Based Controls</a></dt><dt><a href="AccessControls.html#id2921954">File and Directory Permissions Based Controls</a></dt><dt><a href="AccessControls.html#id2922199">Miscellaneous Controls</a></dt></dl></dd><dt><a href="AccessControls.html#id2922415">Access Controls on Shares</a></dt><dd><dl><dt><a href="AccessControls.html#id2922487">Share Permissions Management</a></dt></dl></dd><dt><a href="AccessControls.html#id2922786">MS Windows Access Control Lists and Unix Interoperability</a></dt><dd><dl><dt><a href="AccessControls.html#id2922794">Managing UNIX permissions Using NT Security Dialogs</a></dt><dt><a href="AccessControls.html#id2922832">Viewing File Security on a Samba Share</a></dt><dt><a href="AccessControls.html#id2922911">Viewing file ownership</a></dt><dt><a href="AccessControls.html#id2923033">Viewing File or Directory Permissions</a></dt><dt><a href="AccessControls.html#id2923261">Modifying file or directory permissions</a></dt><dt><a href="AccessControls.html#id2923413">Interaction with the standard Samba create mask
- parameters</a></dt><dt><a href="AccessControls.html#id2923742">Interaction with the standard Samba file attribute
- mapping</a></dt></dl></dd><dt><a href="AccessControls.html#id2923818">Common Errors</a></dt><dd><dl><dt><a href="AccessControls.html#id2923832">Users can not write to a public share</a></dt><dt><a href="AccessControls.html#id2924212">I have set force user and samba still makes root the owner of all the files
- I touch!</a></dt></dl></dd></dl></dd><dt>14. <a href="locking.html">File and Record Locking</a></dt><dd><dl><dt><a href="locking.html#id2927824">Features and Benefits</a></dt><dt><a href="locking.html#id2927880">Discussion</a></dt><dd><dl><dt><a href="locking.html#id2928010">Opportunistic Locking Overview</a></dt></dl></dd><dt><a href="locking.html#id2928657">Samba Opportunistic Locking Control</a></dt><dd><dl><dt><a href="locking.html#id2928766">Example Configuration</a></dt></dl></dd><dt><a href="locking.html#id2929027">MS Windows Opportunistic Locking and Caching Controls</a></dt><dd><dl><dt><a href="locking.html#id2929257">Workstation Service Entries</a></dt><dt><a href="locking.html#id2929284">Server Service Entries</a></dt></dl></dd><dt><a href="locking.html#id2929364">Persistent Data Corruption</a></dt><dt><a href="locking.html#id2929393">Common Errors</a></dt><dd><dl><dt><a href="locking.html#id2929468">locking.tdb error messages</a></dt></dl></dd><dt><a href="locking.html#id2929498">Additional Reading</a></dt></dl></dd><dt>15. <a href="securing-samba.html">Securing Samba</a></dt><dd><dl><dt><a href="securing-samba.html#id2931551">Introduction</a></dt><dt><a href="securing-samba.html#id2931584">Features and Benefits</a></dt><dt><a href="securing-samba.html#id2931658">Technical Discussion of Protective Measures and Issues</a></dt><dd><dl><dt><a href="securing-samba.html#id2931678">Using host based protection</a></dt><dt><a href="securing-samba.html#id2931748">User based protection</a></dt><dt><a href="securing-samba.html#id2931799">Using interface protection</a></dt><dt><a href="securing-samba.html#id2931852">Using a firewall</a></dt><dt><a href="securing-samba.html#id2931908">Using a IPC$ share deny</a></dt><dt><a href="securing-samba.html#id2931970">NTLMv2 Security</a></dt></dl></dd><dt><a href="securing-samba.html#id2932010">Upgrading Samba</a></dt><dt><a href="securing-samba.html#id2932035">Common Errors</a></dt><dd><dl><dt><a href="securing-samba.html#id2932053">Smbclient works on localhost, but the network is dead</a></dt><dt><a href="securing-samba.html#id2932078">Why can users access home directories of other users?</a></dt></dl></dd></dl></dd><dt>16. <a href="InterdomainTrusts.html">Interdomain Trust Relationships</a></dt><dd><dl><dt><a href="InterdomainTrusts.html#id2932984">Features and Benefits</a></dt><dt><a href="InterdomainTrusts.html#id2933012">Trust Relationship Background</a></dt><dt><a href="InterdomainTrusts.html#id2933096">Native MS Windows NT4 Trusts Configuration</a></dt><dd><dl><dt><a href="InterdomainTrusts.html#id2933109">NT4 as the Trusting Domain (ie. creating the trusted account)</a></dt><dt><a href="InterdomainTrusts.html#id2933194">NT4 as the Trusted Domain (ie. creating trusted account's password)</a></dt></dl></dd><dt><a href="InterdomainTrusts.html#id2933230">Configuring Samba NT-style Domain Trusts</a></dt><dd><dl><dt><a href="InterdomainTrusts.html#id2933258">Samba-3 as the Trusting Domain</a></dt><dt><a href="InterdomainTrusts.html#id2933398">Samba-3 as the Trusted Domain</a></dt></dl></dd><dt><a href="InterdomainTrusts.html#id2933530">Common Errors</a></dt><dd><dl><dt><a href="InterdomainTrusts.html#id2933545">Tell me about Trust Relationships using Samba</a></dt></dl></dd></dl></dd><dt>17. <a href="msdfs.html">Hosting a Microsoft Distributed File System tree on Samba</a></dt><dd><dl><dt><a href="msdfs.html#id2932887">Features and Benefits</a></dt><dt><a href="msdfs.html#id2934539">Common Errors</a></dt></dl></dd><dt>18. <a href="printing.html">Classical Printing Support</a></dt><dd><dl><dt><a href="printing.html#id2934100">Features and Benefits</a></dt><dt><a href="printing.html#id2934168">Technical Introduction</a></dt><dd><dl><dt><a href="printing.html#id2934206">What happens if you send a Job from a Client</a></dt><dt><a href="printing.html#id2934276">Printing Related Configuration Parameters</a></dt><dt><a href="printing.html#id2934356">Parameters Recommended for Use</a></dt><dt><a href="printing.html#id2935524">Parameters for Backwards Compatibility</a></dt><dt><a href="printing.html#id2935632">Parameters no longer in use</a></dt></dl></dd><dt><a href="printing.html#id2935725">A simple Configuration to Print with Samba-3</a></dt><dd><dl><dt><a href="printing.html#id2935795">Verification of &quot;Settings in Use&quot; with testparm</a></dt><dt><a href="printing.html#id2935884">A little Experiment to warn you</a></dt></dl></dd><dt><a href="printing.html#id2936190">Extended Sample Configuration to Print with Samba-3</a></dt><dt><a href="printing.html#id2936293">Detailed Explanation of the Example's Settings</a></dt><dd><dl><dt><a href="printing.html#id2936306">The [global] Section</a></dt><dt><a href="printing.html#id2936689">The [printers] Section</a></dt><dt><a href="printing.html#id2937018">Any [my_printer_name] Section</a></dt><dt><a href="printing.html#id2937239">Print Commands</a></dt><dt><a href="printing.html#id2937289">Default Print Commands for various Unix Print Subsystems</a></dt><dt><a href="printing.html#id2937815">Setting up your own Print Commands</a></dt></dl></dd><dt><a href="printing.html#id2938094">Innovations in Samba Printing since 2.2</a></dt><dd><dl><dt><a href="printing.html#id2938259">Client Drivers on Samba Server for Point'n'Print</a></dt><dt><a href="printing.html#id2938411">The [printer$] Section is removed from Samba-3</a></dt><dt><a href="printing.html#id2938524">Creating the [print$] Share</a></dt><dt><a href="printing.html#id2938595">Parameters in the [print$] Section</a></dt><dt><a href="printing.html#id2938826">Subdirectory Structure in [print$]</a></dt></dl></dd><dt><a href="printing.html#id2938986">Installing Drivers into [print$]</a></dt><dd><dl><dt><a href="printing.html#id2939081">Setting Drivers for existing Printers with a Client GUI</a></dt><dt><a href="printing.html#id2939264">Setting Drivers for existing Printers with
-rpcclient</a></dt></dl></dd><dt><a href="printing.html#id2940985">&quot;The Proof of the Pudding lies in the Eating&quot; (Client Driver Insta
-Procedure)</a></dt><dd><dl><dt><a href="printing.html#id2941006">The first Client Driver Installation</a></dt><dt><a href="printing.html#id2941204">IMPORTANT! Setting Device Modes on new Printers</a></dt><dt><a href="printing.html#id2941493">Further Client Driver Install Procedures</a></dt><dt><a href="printing.html#id2941588">Always make first Client Connection as root or &quot;printer admin&quot;</a></dt></dl></dd><dt><a href="printing.html#id2941730">Other Gotchas</a></dt><dd><dl><dt><a href="printing.html#id2941763">Setting Default Print Options for the Client Drivers</a></dt><dt><a href="printing.html#id2942200">Supporting large Numbers of Printers</a></dt><dt><a href="printing.html#id2942503">Adding new Printers with the Windows NT APW</a></dt><dt><a href="printing.html#id2942746">Weird Error Message Cannot connect under a
-different Name</a></dt><dt><a href="printing.html#id2942844">Be careful when assembling Driver Files</a></dt><dt><a href="printing.html#id2943191">Samba and Printer Ports</a></dt><dt><a href="printing.html#id2943261">Avoiding the most common Misconfigurations of the Client Driver</a></dt></dl></dd><dt><a href="printing.html#id2943283">The Imprints Toolset</a></dt><dd><dl><dt><a href="printing.html#id2943329">What is Imprints?</a></dt><dt><a href="printing.html#id2943370">Creating Printer Driver Packages</a></dt><dt><a href="printing.html#id2943389">The Imprints Server</a></dt><dt><a href="printing.html#id2943413">The Installation Client</a></dt></dl></dd><dt><a href="printing.html#id2943566">Add Network Printers at Logon without User Interaction</a></dt><dt><a href="printing.html#id2943895">The addprinter command</a></dt><dt><a href="printing.html#id2943940">Migration of &quot;Classical&quot; printing to Samba-3</a></dt><dt><a href="printing.html#id2944110">Publishing Printer Information in Active Directory or LDAP</a></dt><dt><a href="printing.html#id2944124">Common Errors and Problems</a></dt><dd><dl><dt><a href="printing.html#id2944137">I give my root password but I don't get access</a></dt><dt><a href="printing.html#id2944170">My printjobs get spooled into the spooling directory, but then get lost</a></dt></dl></dd></dl></dd><dt>19. <a href="CUPS-printing.html">CUPS Printing Support in Samba 3.0</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2953147">Introduction</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2953154">Features and Benefits</a></dt><dt><a href="CUPS-printing.html#id2953364">Overview</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2953418">Basic Configuration of CUPS support</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2953497">Linking of smbd with libcups.so</a></dt><dt><a href="CUPS-printing.html#id2953643">Simple smb.conf Settings for CUPS</a></dt><dt><a href="CUPS-printing.html#id2953725">More complex smb.conf Settings for
-CUPS</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2953842">Advanced Configuration</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2953863">Central spooling vs. &quot;Peer-to-Peer&quot; printing</a></dt><dt><a href="CUPS-printing.html#id2953890">CUPS/Samba as a &quot;spooling-only&quot; Print Server; &quot;raw&quot; printing
-with Vendor Drivers on Windows Clients</a></dt><dt><a href="CUPS-printing.html#id2953927">Driver Installation Methods on Windows Clients</a></dt><dt><a href="CUPS-printing.html#id2953985">Explicitly enable &quot;raw&quot; printing for
-application/octet-stream!</a></dt><dt><a href="CUPS-printing.html#id2954145">Three familiar Methods for driver upload plus a new one</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2954239">Using CUPS/Samba in an advanced Way -- intelligent printing
-with PostScript Driver Download</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2954314">GDI on Windows -- PostScript on Unix</a></dt><dt><a href="CUPS-printing.html#id2954359">Windows Drivers, GDI and EMF</a></dt><dt><a href="CUPS-printing.html#id2954459">Unix Printfile Conversion and GUI Basics</a></dt><dt><a href="CUPS-printing.html#id2954529">PostScript and Ghostscript</a></dt><dt><a href="CUPS-printing.html#id2954627">Ghostscript -- the Software RIP for non-PostScript Printers</a></dt><dt><a href="CUPS-printing.html#id2954723">PostScript Printer Description (PPD) Specification</a></dt><dt><a href="CUPS-printing.html#id2954792">CUPS can use all Windows-formatted Vendor PPDs</a></dt><dt><a href="CUPS-printing.html#id2954881">CUPS also uses PPDs for non-PostScript Printers</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2954904">The CUPS Filtering Architecture</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2955044">MIME types and CUPS Filters</a></dt><dt><a href="CUPS-printing.html#id2955231">MIME type Conversion Rules</a></dt><dt><a href="CUPS-printing.html#id2955348">Filter Requirements</a></dt><dt><a href="CUPS-printing.html#id2955518">Prefilters</a></dt><dt><a href="CUPS-printing.html#id2955604">pstops</a></dt><dt><a href="CUPS-printing.html#id2955706">pstoraster</a></dt><dt><a href="CUPS-printing.html#id2955862">imagetops and imagetoraster</a></dt><dt><a href="CUPS-printing.html#id2955918">rasterto [printerspecific]</a></dt><dt><a href="CUPS-printing.html#id2956002">CUPS Backends</a></dt><dt><a href="CUPS-printing.html#id2956341">cupsomatic/Foomatic -- how do they fit into the Picture?</a></dt><dt><a href="CUPS-printing.html#id2956453">The Complete Picture</a></dt><dt><a href="CUPS-printing.html#id2956469">mime.convs</a></dt><dt><a href="CUPS-printing.html#id2956522">&quot;Raw&quot; printing</a></dt><dt><a href="CUPS-printing.html#id2956576">&quot;application/octet-stream&quot; printing</a></dt><dt><a href="CUPS-printing.html#id2956798">PostScript Printer Descriptions (PPDs) for non-PS Printers</a></dt><dt><a href="CUPS-printing.html#id2957026">Difference between cupsomatic/foomatic-rip and
-native CUPS printing</a></dt><dt><a href="CUPS-printing.html#id2957182">Examples for filtering Chains</a></dt><dt><a href="CUPS-printing.html#id2957413">Sources of CUPS drivers / PPDs</a></dt><dt><a href="CUPS-printing.html#id2957541">Printing with Interface Scripts</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2957617">Network printing (purely Windows)</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2957632">From Windows Clients to an NT Print Server</a></dt><dt><a href="CUPS-printing.html#id2957672">Driver Execution on the Client</a></dt><dt><a href="CUPS-printing.html#id2957732">Driver Execution on the Server</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2957793">Network Printing (Windows clients -- UNIX/Samba Print
-Servers)</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2957814">From Windows Clients to a CUPS/Samba Print Server</a></dt><dt><a href="CUPS-printing.html#id2957980">Samba receiving Jobfiles and passing them to CUPS</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2958056">Network PostScript RIP: CUPS Filters on Server -- clients use
-PostScript Driver with CUPS-PPDs</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2958111">PPDs for non-PS Printers on UNIX</a></dt><dt><a href="CUPS-printing.html#id2958152">PPDs for non-PS Printers on Windows</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2958218">Windows Terminal Servers (WTS) as CUPS Clients</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2958235">Printer Drivers running in &quot;Kernel Mode&quot; cause many
-Problems</a></dt><dt><a href="CUPS-printing.html#id2958269">Workarounds impose Heavy Limitations</a></dt><dt><a href="CUPS-printing.html#id2958291">CUPS: a &quot;Magical Stone&quot;?</a></dt><dt><a href="CUPS-printing.html#id2958317">PostScript Drivers with no major problems -- even in Kernel
-Mode</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2958351"> Setting up CUPS for driver Download</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2958370">cupsaddsmb: the unknown Utility</a></dt><dt><a href="CUPS-printing.html#id2958462">Prepare your smb.conf for
-cupsaddsmb</a></dt><dt><a href="CUPS-printing.html#id2958508">CUPS Package of &quot;PostScript Driver for WinNT/2k/XP&quot;</a></dt><dt><a href="CUPS-printing.html#id2958706">Recognize the different Driver Files</a></dt><dt><a href="CUPS-printing.html#id2958764">Acquiring the Adobe Driver Files</a></dt><dt><a href="CUPS-printing.html#id2958797">ESP Print Pro Package of &quot;PostScript Driver for
-WinNT/2k/XP&quot;</a></dt><dt><a href="CUPS-printing.html#id2958846">Caveats to be considered</a></dt><dt><a href="CUPS-printing.html#id2959068">What are the Benefits of using the &quot;CUPS PostScript Driver for
-Windows NT/2k/XP&quot; as compared to the Adobe Driver?</a></dt><dt><a href="CUPS-printing.html#id2959250">Run &quot;cupsaddsmb&quot; (quiet Mode)</a></dt><dt><a href="CUPS-printing.html#id2959351">Run &quot;cupsaddsmb&quot; with verbose Output</a></dt><dt><a href="CUPS-printing.html#id2959577">Understanding cupsaddsmb</a></dt><dt><a href="CUPS-printing.html#id2959672">How to recognize if cupsaddsm completed successfully</a></dt><dt><a href="CUPS-printing.html#id2959759">cupsaddsmb with a Samba PDC</a></dt><dt><a href="CUPS-printing.html#id2959794">cupsaddsmb Flowchart</a></dt><dt><a href="CUPS-printing.html#id2959847">Installing the PostScript Driver on a Client</a></dt><dt><a href="CUPS-printing.html#id2959960">Avoiding critical PostScript Driver Settings on the
-Client</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2960094">Installing PostScript Driver Files manually (using
-rpcclient)</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2960209">A Check of the rpcclient man Page</a></dt><dt><a href="CUPS-printing.html#id2960322">Understanding the rpcclient man Page</a></dt><dt><a href="CUPS-printing.html#id2960412">Producing an Example by querying a Windows Box</a></dt><dt><a href="CUPS-printing.html#id2960518">What is required for adddriver and setdriver to succeed</a></dt><dt><a href="CUPS-printing.html#id2960680">Manual Commandline Driver Installation in 15 little Steps</a></dt><dt><a href="CUPS-printing.html#id2961331">Troubleshooting revisited</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2961433">The printing *.tdb Files</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2961536">Trivial DataBase Files</a></dt><dt><a href="CUPS-printing.html#id2961606">Binary Format</a></dt><dt><a href="CUPS-printing.html#id2961668">Losing *.tdb Files</a></dt><dt><a href="CUPS-printing.html#id2961726">Using tdbbackup</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2961794">CUPS Print Drivers from Linuxprinting.org</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2961901">foomatic-rip and Foomatic explained</a></dt><dt><a href="CUPS-printing.html#id2962572">foomatic-rip and Foomatic-PPD Download and Installation</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2963032">Page Accounting with CUPS</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2963064">Setting up Quotas</a></dt><dt><a href="CUPS-printing.html#id2963096">Correct and incorrect Accounting</a></dt><dt><a href="CUPS-printing.html#id2963137">Adobe and CUPS PostScript Drivers for Windows Clients</a></dt><dt><a href="CUPS-printing.html#id2963208">The page_log File Syntax</a></dt><dt><a href="CUPS-printing.html#id2963309">Possible Shortcomings</a></dt><dt><a href="CUPS-printing.html#id2963381">Future Developments</a></dt><dt><a href="CUPS-printing.html#id2963429">Other Accounting Tools</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2963444">Additional Material</a></dt><dt><a href="CUPS-printing.html#id2963637">Auto-Deletion or Preservation of CUPS Spool Files</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2963683">CUPS Configuration Settings explained</a></dt><dt><a href="CUPS-printing.html#id2963766">Pre-conditions</a></dt><dt><a href="CUPS-printing.html#id2963827">Manual Configuration</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2963844">When not to use Samba to print to
-CUPS</a></dt><dt><a href="CUPS-printing.html#id2963861">In Case of Trouble.....</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2963897">Where to find Documentation</a></dt><dt><a href="CUPS-printing.html#id2963910">How to ask for Help</a></dt><dt><a href="CUPS-printing.html#id2963922">Where to find Help</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2963936">Appendix</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2963943">Printing from CUPS to Windows attached
-Printers</a></dt><dt><a href="CUPS-printing.html#id2964172">More CUPS filtering Chains</a></dt><dt><a href="CUPS-printing.html#id2964478">Trouble Shooting Guidelines to fix typical Samba printing
-Problems</a></dt><dt><a href="CUPS-printing.html#id2965597">An Overview of the CUPS Printing Processes</a></dt></dl></dd></dl></dd><dt>20. <a href="VFS.html">Stackable VFS modules</a></dt><dd><dl><dt><a href="VFS.html#id2977722">Features and Benefits</a></dt><dt><a href="VFS.html#id2977740">Discussion</a></dt><dt><a href="VFS.html#id2977794">Included modules</a></dt><dd><dl><dt><a href="VFS.html#id2977801">audit</a></dt><dt><a href="VFS.html#id2977840">extd_audit</a></dt><dt><a href="VFS.html#id2977964">fake_perms</a></dt><dt><a href="VFS.html#id2977983">recycle</a></dt><dt><a href="VFS.html#id2978121">netatalk</a></dt></dl></dd><dt><a href="VFS.html#id2978166">VFS modules available elsewhere</a></dt><dd><dl><dt><a href="VFS.html#id2978188">DatabaseFS</a></dt><dt><a href="VFS.html#id2978243">vscan</a></dt></dl></dd><dt><a href="VFS.html#id2978273">Common Errors</a></dt></dl></dd><dt>21. <a href="winbind.html">Integrated Logon Support using Winbind</a></dt><dd><dl><dt><a href="winbind.html#id2979118">Features and Benefits</a></dt><dt><a href="winbind.html#id2979146">Introduction</a></dt><dt><a href="winbind.html#id2979218">What Winbind Provides</a></dt><dd><dl><dt><a href="winbind.html#id2979278">Target Uses</a></dt></dl></dd><dt><a href="winbind.html#id2979309">How Winbind Works</a></dt><dd><dl><dt><a href="winbind.html#id2979337">Microsoft Remote Procedure Calls</a></dt><dt><a href="winbind.html#id2979371">Microsoft Active Directory Services</a></dt><dt><a href="winbind.html#id2979394">Name Service Switch</a></dt><dt><a href="winbind.html#id2979530">Pluggable Authentication Modules</a></dt><dt><a href="winbind.html#id2979602">User and Group ID Allocation</a></dt><dt><a href="winbind.html#id2979637">Result Caching</a></dt></dl></dd><dt><a href="winbind.html#id2979664">Installation and Configuration</a></dt><dd><dl><dt><a href="winbind.html#id2979692">Introduction</a></dt><dt><a href="winbind.html#id2979768">Requirements</a></dt><dt><a href="winbind.html#id2979861">Testing Things Out</a></dt></dl></dd><dt><a href="winbind.html#id2981479">Conclusion</a></dt><dt><a href="winbind.html#id2981498">Common Errors</a></dt></dl></dd><dt>22. <a href="AdvancedNetworkManagement.html">Advanced Network Manangement</a></dt><dd><dl><dt><a href="AdvancedNetworkManagement.html#id2983992">Features and Benefits</a></dt><dt><a href="AdvancedNetworkManagement.html#id2984181">Remote Server Administration</a></dt><dt><a href="AdvancedNetworkManagement.html#id2984280">Remote Desktop Management</a></dt><dd><dl><dt><a href="AdvancedNetworkManagement.html#id2984297">Remote Management from NoMachines.Com</a></dt></dl></dd><dt><a href="AdvancedNetworkManagement.html#id2984509">Network Logon Script Magic</a></dt><dd><dl><dt><a href="AdvancedNetworkManagement.html#id2984705">Adding printers without user intervention</a></dt></dl></dd><dt><a href="AdvancedNetworkManagement.html#id2984738">Common Errors</a></dt></dl></dd><dt>23. <a href="PolicyMgmt.html">System and Account Policies</a></dt><dd><dl><dt><a href="PolicyMgmt.html#id2983801">Features and Benefits</a></dt><dt><a href="PolicyMgmt.html#id2983856">Creating and Managing System Policies</a></dt><dd><dl><dt><a href="PolicyMgmt.html#id2985639">Windows 9x/Me Policies</a></dt><dt><a href="PolicyMgmt.html#id2985734">Windows NT4 Style Policy Files</a></dt><dt><a href="PolicyMgmt.html#id2985867">MS Windows 200x / XP Professional Policies</a></dt></dl></dd><dt><a href="PolicyMgmt.html#id2986119">Managing Account/User Policies</a></dt><dd><dl><dt><a href="PolicyMgmt.html#id2986220">Samba Editreg Toolset</a></dt><dt><a href="PolicyMgmt.html#id2986240">Windows NT4/200x</a></dt><dt><a href="PolicyMgmt.html#id2986261">Samba PDC</a></dt></dl></dd><dt><a href="PolicyMgmt.html#id2986305">System Startup and Logon Processing Overview</a></dt><dt><a href="PolicyMgmt.html#id2986452">Common Errors</a></dt><dd><dl><dt><a href="PolicyMgmt.html#id2986466">Policy Does Not Work</a></dt></dl></dd></dl></dd><dt>24. <a href="ProfileMgmt.html">Desktop Profile Management</a></dt><dd><dl><dt><a href="ProfileMgmt.html#id2987673">Features and Benefits</a></dt><dt><a href="ProfileMgmt.html#id2987707">Roaming Profiles</a></dt><dd><dl><dt><a href="ProfileMgmt.html#id2987748">Samba Configuration for Profile Handling</a></dt><dt><a href="ProfileMgmt.html#id2988153">Windows Client Profile Configuration Information</a></dt><dt><a href="ProfileMgmt.html#id2989324">Sharing Profiles between W9x/Me and NT4/200x/XP workstations</a></dt><dt><a href="ProfileMgmt.html#id2989389">Profile Migration from Windows NT4/200x Server to Samba</a></dt></dl></dd><dt><a href="ProfileMgmt.html#id2989654">Mandatory profiles</a></dt><dt><a href="ProfileMgmt.html#id2989712">Creating/Managing Group Profiles</a></dt><dt><a href="ProfileMgmt.html#id2989758">Default Profile for Windows Users</a></dt><dd><dl><dt><a href="ProfileMgmt.html#id2989778">MS Windows 9x/Me</a></dt><dt><a href="ProfileMgmt.html#id2989926">MS Windows NT4 Workstation</a></dt><dt><a href="ProfileMgmt.html#id2990480">MS Windows 200x/XP</a></dt></dl></dd><dt><a href="ProfileMgmt.html#id2990984">Common Errors</a></dt><dd><dl><dt><a href="ProfileMgmt.html#id2990997">How does one set up roaming profiles for just one (or a few) user/s or group/s?</a></dt><dt><a href="ProfileMgmt.html#id2991060">Can NOT use Roaming Profiles</a></dt><dt><a href="ProfileMgmt.html#id2991282">Changing the default profile</a></dt></dl></dd></dl></dd><dt>25. <a href="pam.html">PAM based Distributed Authentication</a></dt><dd><dl><dt><a href="pam.html#id2995226">Features and Benefits</a></dt><dt><a href="pam.html#id2995494">Technical Discussion</a></dt><dd><dl><dt><a href="pam.html#id2995512">PAM Configuration Syntax</a></dt><dt><a href="pam.html#id2996183">Example System Configurations</a></dt><dt><a href="pam.html#id2996484">smb.conf PAM Configuration</a></dt><dt><a href="pam.html#id2996541">Remote CIFS Authentication using winbindd.so</a></dt><dt><a href="pam.html#id2996625">Password Synchronization using pam_smbpass.so</a></dt></dl></dd><dt><a href="pam.html#id2996992">Common Errors</a></dt><dd><dl><dt><a href="pam.html#id2997005">pam_winbind problem</a></dt></dl></dd></dl></dd><dt>26. <a href="integrate-ms-networks.html">Integrating MS Windows networks with Samba</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2999128">Features and Benefits</a></dt><dt><a href="integrate-ms-networks.html#id2999152">Background Information</a></dt><dt><a href="integrate-ms-networks.html#id2999197">Name Resolution in a pure Unix/Linux world</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2999254">/etc/hosts</a></dt><dt><a href="integrate-ms-networks.html#id2999378">/etc/resolv.conf</a></dt><dt><a href="integrate-ms-networks.html#id2999422">/etc/host.conf</a></dt><dt><a href="integrate-ms-networks.html#id2999464">/etc/nsswitch.conf</a></dt></dl></dd><dt><a href="integrate-ms-networks.html#id2999552">Name resolution as used within MS Windows networking</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2999700">The NetBIOS Name Cache</a></dt><dt><a href="integrate-ms-networks.html#id2999745">The LMHOSTS file</a></dt><dt><a href="integrate-ms-networks.html#id2999989">HOSTS file</a></dt><dt><a href="integrate-ms-networks.html#id3000021">DNS Lookup</a></dt><dt><a href="integrate-ms-networks.html#id3000046">WINS Lookup</a></dt></dl></dd><dt><a href="integrate-ms-networks.html#id3000117">Common Errors</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id3000133">My Boomerang Won't Come Back</a></dt><dt><a href="integrate-ms-networks.html#id3000164">Very Slow Network Connections</a></dt><dt><a href="integrate-ms-networks.html#id3000216">Samba server name change problem</a></dt></dl></dd></dl></dd><dt>27. <a href="unicode.html">Unicode/Charsets</a></dt><dd><dl><dt><a href="unicode.html#id3001334">Features and Benefits</a></dt><dt><a href="unicode.html#id3001536">What are charsets and unicode?</a></dt><dt><a href="unicode.html#id3001606">Samba and charsets</a></dt><dt><a href="unicode.html#id3001706">Conversion from old names</a></dt><dt><a href="unicode.html#id3001751">Japanese charsets</a></dt></dl></dd><dt>28. <a href="Backup.html">Samba Backup Techniques</a></dt><dd><dl><dt><a href="Backup.html#id3000954">Note</a></dt><dt><a href="Backup.html#id3000979">Features and Benefits</a></dt></dl></dd><dt>29. <a href="SambaHA.html">High Availability Options</a></dt><dd><dl><dt><a href="SambaHA.html#id3002521">Note</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ClientConfig.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="NetworkBrowsing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. MS Windows Network Configuration Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 10. Samba / MS Windows Network Browsing Guide</td></tr></table></div></body></html>
+</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>10. <a href="NetworkBrowsing.html">Samba / MS Windows Network Browsing Guide</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2901232">Features and Benefits</a></dt><dt><a href="NetworkBrowsing.html#id2901310">What is Browsing?</a></dt><dt><a href="NetworkBrowsing.html#id2901493">Discussion</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2901509">NetBIOS over TCP/IP</a></dt><dt><a href="NetworkBrowsing.html#id2900816">TCP/IP - without NetBIOS</a></dt><dt><a href="NetworkBrowsing.html#id2900944">DNS and Active Directory</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2901080">How Browsing Functions</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2902385">Setting up WORKGROUP Browsing</a></dt><dt><a href="NetworkBrowsing.html#id2902592">Setting up DOMAIN Browsing</a></dt><dt><a href="NetworkBrowsing.html#browse-force-master">Forcing samba to be the master</a></dt><dt><a href="NetworkBrowsing.html#id2902857">Making samba the domain master</a></dt><dt><a href="NetworkBrowsing.html#id2906252">Note about broadcast addresses</a></dt><dt><a href="NetworkBrowsing.html#id2906270">Multiple interfaces</a></dt><dt><a href="NetworkBrowsing.html#id2906299">Use of the Remote Announce parameter</a></dt><dt><a href="NetworkBrowsing.html#id2906403">Use of the Remote Browse Sync parameter</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2906464">WINS - The Windows Internetworking Name Server</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2906615">Setting up a WINS server</a></dt><dt><a href="NetworkBrowsing.html#id2906810">WINS Replication</a></dt><dt><a href="NetworkBrowsing.html#id2906835">Static WINS Entries</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2906866">Helpful Hints</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2906879">Windows Networking Protocols</a></dt><dt><a href="NetworkBrowsing.html#id2906946">Name Resolution Order</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2907067">Technical Overview of browsing</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2907113">Browsing support in samba</a></dt><dt><a href="NetworkBrowsing.html#id2907220">Problem resolution</a></dt><dt><a href="NetworkBrowsing.html#id2907300">Browsing across subnets</a></dt></dl></dd><dt><a href="NetworkBrowsing.html#id2907917">Common Errors</a></dt><dd><dl><dt><a href="NetworkBrowsing.html#id2907932">How can one flush the Samba NetBIOS name cache without restarting samba?</a></dt><dt><a href="NetworkBrowsing.html#id2907960">My client reports &quot;This server is not configured to list shared resources&quot;</a></dt></dl></dd></dl></dd><dt>11. <a href="passdb.html">Account Information Databases</a></dt><dd><dl><dt><a href="passdb.html#id2908055">Features and Benefits</a></dt><dt><a href="passdb.html#id2908379">Technical Information</a></dt><dd><dl><dt><a href="passdb.html#id2908443">Important Notes About Security</a></dt><dt><a href="passdb.html#id2908686">Mapping User Identifiers between MS Windows and Unix</a></dt></dl></dd><dt><a href="passdb.html#id2908741">Account Management Tools</a></dt><dd><dl><dt><a href="passdb.html#id2908773">The smbpasswd Command</a></dt><dt><a href="passdb.html#id2909038">The pdbedit Command</a></dt></dl></dd><dt><a href="passdb.html#id2909172">Password Backends</a></dt><dd><dl><dt><a href="passdb.html#id2913386">Plain Text</a></dt><dt><a href="passdb.html#id2913426">smbpasswd - Encrypted Password Database</a></dt><dt><a href="passdb.html#id2913533">tdbsam</a></dt><dt><a href="passdb.html#id2913560">ldapsam</a></dt><dt><a href="passdb.html#id2915051">MySQL</a></dt><dt><a href="passdb.html#XMLpassdb">XML</a></dt></dl></dd><dt><a href="passdb.html#id2915854">Common Errors</a></dt><dd><dl><dt><a href="passdb.html#id2915861">Users can not logon - Users not in Samba SAM</a></dt><dt><a href="passdb.html#id2915876">Users are being added to the wrong backend database</a></dt><dt><a href="passdb.html#id2915936">auth methods does not work</a></dt></dl></dd></dl></dd><dt>12. <a href="groupmapping.html">Mapping MS Windows and Unix Groups</a></dt><dd><dl><dt><a href="groupmapping.html#id2916109">Features and Benefits</a></dt><dt><a href="groupmapping.html#id2916209">Discussion</a></dt><dd><dl><dt><a href="groupmapping.html#id2916398">Example Configuration</a></dt></dl></dd><dt><a href="groupmapping.html#id2916463">Configuration Scripts</a></dt><dd><dl><dt><a href="groupmapping.html#id2916477">Sample smb.conf add group script</a></dt><dt><a href="groupmapping.html#id2916544">Script to configure Group Mapping</a></dt></dl></dd><dt><a href="groupmapping.html#id2916618">Common Errors</a></dt><dd><dl><dt><a href="groupmapping.html#id2916633">Adding Groups Fails</a></dt><dt><a href="groupmapping.html#id2916694">Adding MS Windows Groups to MS Windows Groups Fails</a></dt></dl></dd></dl></dd><dt>13. <a href="AccessControls.html">File, Directory and Share Access Controls</a></dt><dd><dl><dt><a href="AccessControls.html#id2919879">Features and Benefits</a></dt><dt><a href="AccessControls.html#id2920005">File System Access Controls</a></dt><dd><dl><dt><a href="AccessControls.html#id2920023">MS Windows NTFS Comparison with Unix File Systems</a></dt><dt><a href="AccessControls.html#id2916939">Managing Directories</a></dt><dt><a href="AccessControls.html#id2917034">File and Directory Access Control</a></dt></dl></dd><dt><a href="AccessControls.html#id2917441">Share Definition Access Controls</a></dt><dd><dl><dt><a href="AccessControls.html#id2917469">User and Group Based Controls</a></dt><dt><a href="AccessControls.html#id2917741">File and Directory Permissions Based Controls</a></dt><dt><a href="AccessControls.html#id2917987">Miscellaneous Controls</a></dt></dl></dd><dt><a href="AccessControls.html#id2922570">Access Controls on Shares</a></dt><dd><dl><dt><a href="AccessControls.html#id2922641">Share Permissions Management</a></dt></dl></dd><dt><a href="AccessControls.html#id2922940">MS Windows Access Control Lists and Unix Interoperability</a></dt><dd><dl><dt><a href="AccessControls.html#id2922948">Managing UNIX permissions Using NT Security Dialogs</a></dt><dt><a href="AccessControls.html#id2922986">Viewing File Security on a Samba Share</a></dt><dt><a href="AccessControls.html#id2923065">Viewing file ownership</a></dt><dt><a href="AccessControls.html#id2923187">Viewing File or Directory Permissions</a></dt><dt><a href="AccessControls.html#id2923415">Modifying file or directory permissions</a></dt><dt><a href="AccessControls.html#id2923567">Interaction with the standard Samba create mask
+ parameters</a></dt><dt><a href="AccessControls.html#id2923897">Interaction with the standard Samba file attribute
+ mapping</a></dt></dl></dd><dt><a href="AccessControls.html#id2923972">Common Errors</a></dt><dd><dl><dt><a href="AccessControls.html#id2923986">Users can not write to a public share</a></dt><dt><a href="AccessControls.html#id2924365">I have set force user and samba still makes root the owner of all the files
+ I touch!</a></dt></dl></dd></dl></dd><dt>14. <a href="locking.html">File and Record Locking</a></dt><dd><dl><dt><a href="locking.html#id2926486">Features and Benefits</a></dt><dt><a href="locking.html#id2926542">Discussion</a></dt><dd><dl><dt><a href="locking.html#id2926672">Opportunistic Locking Overview</a></dt></dl></dd><dt><a href="locking.html#id2925047">Samba Opportunistic Locking Control</a></dt><dd><dl><dt><a href="locking.html#id2925156">Example Configuration</a></dt></dl></dd><dt><a href="locking.html#id2925415">MS Windows Opportunistic Locking and Caching Controls</a></dt><dd><dl><dt><a href="locking.html#id2927852">Workstation Service Entries</a></dt><dt><a href="locking.html#id2927879">Server Service Entries</a></dt></dl></dd><dt><a href="locking.html#id2927959">Persistent Data Corruption</a></dt><dt><a href="locking.html#id2927989">Common Errors</a></dt><dd><dl><dt><a href="locking.html#id2928063">locking.tdb error messages</a></dt></dl></dd><dt><a href="locking.html#id2928093">Additional Reading</a></dt></dl></dd><dt>15. <a href="securing-samba.html">Securing Samba</a></dt><dd><dl><dt><a href="securing-samba.html#id2929518">Introduction</a></dt><dt><a href="securing-samba.html#id2929550">Features and Benefits</a></dt><dt><a href="securing-samba.html#id2928211">Technical Discussion of Protective Measures and Issues</a></dt><dd><dl><dt><a href="securing-samba.html#id2928229">Using host based protection</a></dt><dt><a href="securing-samba.html#id2928297">User based protection</a></dt><dt><a href="securing-samba.html#id2928349">Using interface protection</a></dt><dt><a href="securing-samba.html#id2928399">Using a firewall</a></dt><dt><a href="securing-samba.html#id2928455">Using a IPC$ share deny</a></dt><dt><a href="securing-samba.html#id2928521">NTLMv2 Security</a></dt></dl></dd><dt><a href="securing-samba.html#id2928559">Upgrading Samba</a></dt><dt><a href="securing-samba.html#id2928583">Common Errors</a></dt><dd><dl><dt><a href="securing-samba.html#id2928602">Smbclient works on localhost, but the network is dead</a></dt><dt><a href="securing-samba.html#id2928626">Why can users access home directories of other users?</a></dt></dl></dd></dl></dd><dt>16. <a href="InterdomainTrusts.html">Interdomain Trust Relationships</a></dt><dd><dl><dt><a href="InterdomainTrusts.html#id2929145">Features and Benefits</a></dt><dt><a href="InterdomainTrusts.html#id2929173">Trust Relationship Background</a></dt><dt><a href="InterdomainTrusts.html#id2929256">Native MS Windows NT4 Trusts Configuration</a></dt><dd><dl><dt><a href="InterdomainTrusts.html#id2929268">NT4 as the Trusting Domain (ie. creating the trusted account)</a></dt><dt><a href="InterdomainTrusts.html#id2931243">NT4 as the Trusted Domain (ie. creating trusted account's password)</a></dt></dl></dd><dt><a href="InterdomainTrusts.html#id2931281">Configuring Samba NT-style Domain Trusts</a></dt><dd><dl><dt><a href="InterdomainTrusts.html#id2931308">Samba-3 as the Trusting Domain</a></dt><dt><a href="InterdomainTrusts.html#id2931434">Samba-3 as the Trusted Domain</a></dt></dl></dd><dt><a href="InterdomainTrusts.html#id2928812">Common Errors</a></dt><dd><dl><dt><a href="InterdomainTrusts.html#id2928827">Tell me about Trust Relationships using Samba</a></dt></dl></dd></dl></dd><dt>17. <a href="msdfs.html">Hosting a Microsoft Distributed File System tree on Samba</a></dt><dd><dl><dt><a href="msdfs.html#id2928926">Features and Benefits</a></dt><dt><a href="msdfs.html#id2930336">Common Errors</a></dt></dl></dd><dt>18. <a href="printing.html">Classical Printing Support</a></dt><dd><dl><dt><a href="printing.html#id2931857">Features and Benefits</a></dt><dt><a href="printing.html#id2931921">Technical Introduction</a></dt><dd><dl><dt><a href="printing.html#id2931958">What happens if you send a Job from a Client</a></dt><dt><a href="printing.html#id2932028">Printing Related Configuration Parameters</a></dt><dt><a href="printing.html#id2935137">Parameters Recommended for Use</a></dt><dt><a href="printing.html#id2930497">Parameters for Backwards Compatibility</a></dt><dt><a href="printing.html#id2930606">Parameters no longer in use</a></dt></dl></dd><dt><a href="printing.html#id2930699">A simple Configuration to Print with Samba-3</a></dt><dd><dl><dt><a href="printing.html#id2932704">Verification of &quot;Settings in Use&quot; with testparm</a></dt><dt><a href="printing.html#id2932787">A little Experiment to warn you</a></dt></dl></dd><dt><a href="printing.html#id2933095">Extended Sample Configuration to Print with Samba-3</a></dt><dt><a href="printing.html#id2933186">Detailed Explanation of the Example's Settings</a></dt><dd><dl><dt><a href="printing.html#id2933200">The [global] Section</a></dt><dt><a href="printing.html#id2942661">The [printers] Section</a></dt><dt><a href="printing.html#id2942990">Any [my_printer_name] Section</a></dt><dt><a href="printing.html#id2943210">Print Commands</a></dt><dt><a href="printing.html#id2943262">Default Print Commands for various Unix Print Subsystems</a></dt><dt><a href="printing.html#id2943787">Setting up your own Print Commands</a></dt></dl></dd><dt><a href="printing.html#id2944064">Innovations in Samba Printing since 2.2</a></dt><dd><dl><dt><a href="printing.html#id2944219">Client Drivers on Samba Server for Point'n'Print</a></dt><dt><a href="printing.html#id2944370">The [printer$] Section is removed from Samba-3</a></dt><dt><a href="printing.html#id2944483">Creating the [print$] Share</a></dt><dt><a href="printing.html#id2944553">Parameters in the [print$] Section</a></dt><dt><a href="printing.html#id2944774">Subdirectory Structure in [print$]</a></dt></dl></dd><dt><a href="printing.html#id2944935">Installing Drivers into [print$]</a></dt><dd><dl><dt><a href="printing.html#id2945029">Setting Drivers for existing Printers with a Client GUI</a></dt><dt><a href="printing.html#id2945213">Setting Drivers for existing Printers with
+rpcclient</a></dt></dl></dd><dt><a href="printing.html#id2946811">&quot;The Proof of the Pudding lies in the Eating&quot; (Client Driver Insta
+Procedure)</a></dt><dd><dl><dt><a href="printing.html#id2946832">The first Client Driver Installation</a></dt><dt><a href="printing.html#id2947030">IMPORTANT! Setting Device Modes on new Printers</a></dt><dt><a href="printing.html#id2947319">Further Client Driver Install Procedures</a></dt><dt><a href="printing.html#id2947414">Always make first Client Connection as root or &quot;printer admin&quot;</a></dt></dl></dd><dt><a href="printing.html#id2947556">Other Gotchas</a></dt><dd><dl><dt><a href="printing.html#id2947589">Setting Default Print Options for the Client Drivers</a></dt><dt><a href="printing.html#id2948023">Supporting large Numbers of Printers</a></dt><dt><a href="printing.html#id2948326">Adding new Printers with the Windows NT APW</a></dt><dt><a href="printing.html#id2948569">Weird Error Message Cannot connect under a
+different Name</a></dt><dt><a href="printing.html#id2948667">Be careful when assembling Driver Files</a></dt><dt><a href="printing.html#id2948938">Samba and Printer Ports</a></dt><dt><a href="printing.html#id2949009">Avoiding the most common Misconfigurations of the Client Driver</a></dt></dl></dd><dt><a href="printing.html#id2949031">The Imprints Toolset</a></dt><dd><dl><dt><a href="printing.html#id2949076">What is Imprints?</a></dt><dt><a href="printing.html#id2949118">Creating Printer Driver Packages</a></dt><dt><a href="printing.html#id2949137">The Imprints Server</a></dt><dt><a href="printing.html#id2949161">The Installation Client</a></dt></dl></dd><dt><a href="printing.html#id2949313">Add Network Printers at Logon without User Interaction</a></dt><dt><a href="printing.html#id2949643">The addprinter command</a></dt><dt><a href="printing.html#id2949688">Migration of &quot;Classical&quot; printing to Samba-3</a></dt><dt><a href="printing.html#id2949856">Publishing Printer Information in Active Directory or LDAP</a></dt><dt><a href="printing.html#id2949870">Common Errors and Problems</a></dt><dd><dl><dt><a href="printing.html#id2949884">I give my root password but I don't get access</a></dt><dt><a href="printing.html#id2949917">My printjobs get spooled into the spooling directory, but then get lost</a></dt></dl></dd></dl></dd><dt>19. <a href="CUPS-printing.html">CUPS Printing Support in Samba 3.0</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2956942">Introduction</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2956949">Features and Benefits</a></dt><dt><a href="CUPS-printing.html#id2956998">Overview</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2957049">Basic Configuration of CUPS support</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2957129">Linking of smbd with libcups.so</a></dt><dt><a href="CUPS-printing.html#id2950037">Simple smb.conf Settings for CUPS</a></dt><dt><a href="CUPS-printing.html#id2950100">More complex smb.conf Settings for
+CUPS</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2950199">Advanced Configuration</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2950220">Central spooling vs. &quot;Peer-to-Peer&quot; printing</a></dt><dt><a href="CUPS-printing.html#id2950247">CUPS/Samba as a &quot;spooling-only&quot; Print Server; &quot;raw&quot; printing
+with Vendor Drivers on Windows Clients</a></dt><dt><a href="CUPS-printing.html#id2950283">Driver Installation Methods on Windows Clients</a></dt><dt><a href="CUPS-printing.html#id2950342">Explicitly enable &quot;raw&quot; printing for
+application/octet-stream!</a></dt><dt><a href="CUPS-printing.html#id2950503">Three familiar Methods for driver upload plus a new one</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2950596">Using CUPS/Samba in an advanced Way -- intelligent printing
+with PostScript Driver Download</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2950671">GDI on Windows -- PostScript on Unix</a></dt><dt><a href="CUPS-printing.html#id2950716">Windows Drivers, GDI and EMF</a></dt><dt><a href="CUPS-printing.html#id2950814">Unix Printfile Conversion and GUI Basics</a></dt><dt><a href="CUPS-printing.html#id2950886">PostScript and Ghostscript</a></dt><dt><a href="CUPS-printing.html#id2950982">Ghostscript -- the Software RIP for non-PostScript Printers</a></dt><dt><a href="CUPS-printing.html#id2951078">PostScript Printer Description (PPD) Specification</a></dt><dt><a href="CUPS-printing.html#id2963900">CUPS can use all Windows-formatted Vendor PPDs</a></dt><dt><a href="CUPS-printing.html#id2963990">CUPS also uses PPDs for non-PostScript Printers</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2964013">The CUPS Filtering Architecture</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2964151">MIME types and CUPS Filters</a></dt><dt><a href="CUPS-printing.html#id2964338">MIME type Conversion Rules</a></dt><dt><a href="CUPS-printing.html#id2964455">Filter Requirements</a></dt><dt><a href="CUPS-printing.html#id2964624">Prefilters</a></dt><dt><a href="CUPS-printing.html#id2964708">pstops</a></dt><dt><a href="CUPS-printing.html#id2964812">pstoraster</a></dt><dt><a href="CUPS-printing.html#id2964968">imagetops and imagetoraster</a></dt><dt><a href="CUPS-printing.html#id2965023">rasterto [printerspecific]</a></dt><dt><a href="CUPS-printing.html#id2965107">CUPS Backends</a></dt><dt><a href="CUPS-printing.html#id2965422">cupsomatic/Foomatic -- how do they fit into the Picture?</a></dt><dt><a href="CUPS-printing.html#id2965524">The Complete Picture</a></dt><dt><a href="CUPS-printing.html#id2965540">mime.convs</a></dt><dt><a href="CUPS-printing.html#id2965593">&quot;Raw&quot; printing</a></dt><dt><a href="CUPS-printing.html#id2965647">&quot;application/octet-stream&quot; printing</a></dt><dt><a href="CUPS-printing.html#id2965862">PostScript Printer Descriptions (PPDs) for non-PS Printers</a></dt><dt><a href="CUPS-printing.html#id2966090">Difference between cupsomatic/foomatic-rip and
+native CUPS printing</a></dt><dt><a href="CUPS-printing.html#id2966247">Examples for filtering Chains</a></dt><dt><a href="CUPS-printing.html#id2966476">Sources of CUPS drivers / PPDs</a></dt><dt><a href="CUPS-printing.html#id2966601">Printing with Interface Scripts</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2966663">Network printing (purely Windows)</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2966679">From Windows Clients to an NT Print Server</a></dt><dt><a href="CUPS-printing.html#id2966718">Driver Execution on the Client</a></dt><dt><a href="CUPS-printing.html#id2966777">Driver Execution on the Server</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2966840">Network Printing (Windows clients -- UNIX/Samba Print
+Servers)</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2966861">From Windows Clients to a CUPS/Samba Print Server</a></dt><dt><a href="CUPS-printing.html#id2967021">Samba receiving Jobfiles and passing them to CUPS</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2967099">Network PostScript RIP: CUPS Filters on Server -- clients use
+PostScript Driver with CUPS-PPDs</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2967154">PPDs for non-PS Printers on UNIX</a></dt><dt><a href="CUPS-printing.html#id2967194">PPDs for non-PS Printers on Windows</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2967260">Windows Terminal Servers (WTS) as CUPS Clients</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2967277">Printer Drivers running in &quot;Kernel Mode&quot; cause many
+Problems</a></dt><dt><a href="CUPS-printing.html#id2967312">Workarounds impose Heavy Limitations</a></dt><dt><a href="CUPS-printing.html#id2967333">CUPS: a &quot;Magical Stone&quot;?</a></dt><dt><a href="CUPS-printing.html#id2967360">PostScript Drivers with no major problems -- even in Kernel
+Mode</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2967394"> Setting up CUPS for driver Download</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2967412">cupsaddsmb: the unknown Utility</a></dt><dt><a href="CUPS-printing.html#id2967504">Prepare your smb.conf for
+cupsaddsmb</a></dt><dt><a href="CUPS-printing.html#id2967550">CUPS Package of &quot;PostScript Driver for WinNT/2k/XP&quot;</a></dt><dt><a href="CUPS-printing.html#id2967748">Recognize the different Driver Files</a></dt><dt><a href="CUPS-printing.html#id2967806">Acquiring the Adobe Driver Files</a></dt><dt><a href="CUPS-printing.html#id2967838">ESP Print Pro Package of &quot;PostScript Driver for
+WinNT/2k/XP&quot;</a></dt><dt><a href="CUPS-printing.html#id2967888">Caveats to be considered</a></dt><dt><a href="CUPS-printing.html#id2968110">What are the Benefits of using the &quot;CUPS PostScript Driver for
+Windows NT/2k/XP&quot; as compared to the Adobe Driver?</a></dt><dt><a href="CUPS-printing.html#id2968291">Run &quot;cupsaddsmb&quot; (quiet Mode)</a></dt><dt><a href="CUPS-printing.html#id2968392">Run &quot;cupsaddsmb&quot; with verbose Output</a></dt><dt><a href="CUPS-printing.html#id2968534">Understanding cupsaddsmb</a></dt><dt><a href="CUPS-printing.html#id2968628">How to recognize if cupsaddsm completed successfully</a></dt><dt><a href="CUPS-printing.html#id2968716">cupsaddsmb with a Samba PDC</a></dt><dt><a href="CUPS-printing.html#id2968750">cupsaddsmb Flowchart</a></dt><dt><a href="CUPS-printing.html#id2968801">Installing the PostScript Driver on a Client</a></dt><dt><a href="CUPS-printing.html#id2968916">Avoiding critical PostScript Driver Settings on the
+Client</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2969051">Installing PostScript Driver Files manually (using
+rpcclient)</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2969166">A Check of the rpcclient man Page</a></dt><dt><a href="CUPS-printing.html#id2969278">Understanding the rpcclient man Page</a></dt><dt><a href="CUPS-printing.html#id2969357">Producing an Example by querying a Windows Box</a></dt><dt><a href="CUPS-printing.html#id2969447">What is required for adddriver and setdriver to succeed</a></dt><dt><a href="CUPS-printing.html#id2969609">Manual Commandline Driver Installation in 15 little Steps</a></dt><dt><a href="CUPS-printing.html#id2970229">Troubleshooting revisited</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2970331">The printing *.tdb Files</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2970434">Trivial DataBase Files</a></dt><dt><a href="CUPS-printing.html#id2970504">Binary Format</a></dt><dt><a href="CUPS-printing.html#id2970566">Losing *.tdb Files</a></dt><dt><a href="CUPS-printing.html#id2970624">Using tdbbackup</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2970686">CUPS Print Drivers from Linuxprinting.org</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2970793">foomatic-rip and Foomatic explained</a></dt><dt><a href="CUPS-printing.html#id2971421">foomatic-rip and Foomatic-PPD Download and Installation</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2971878">Page Accounting with CUPS</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2971910">Setting up Quotas</a></dt><dt><a href="CUPS-printing.html#id2971941">Correct and incorrect Accounting</a></dt><dt><a href="CUPS-printing.html#id2971982">Adobe and CUPS PostScript Drivers for Windows Clients</a></dt><dt><a href="CUPS-printing.html#id2972054">The page_log File Syntax</a></dt><dt><a href="CUPS-printing.html#id2972155">Possible Shortcomings</a></dt><dt><a href="CUPS-printing.html#id2972226">Future Developments</a></dt><dt><a href="CUPS-printing.html#id2972275">Other Accounting Tools</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2972290">Additional Material</a></dt><dt><a href="CUPS-printing.html#id2972483">Auto-Deletion or Preservation of CUPS Spool Files</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2972529">CUPS Configuration Settings explained</a></dt><dt><a href="CUPS-printing.html#id2972611">Pre-conditions</a></dt><dt><a href="CUPS-printing.html#id2972672">Manual Configuration</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2972690">When not to use Samba to print to
+CUPS</a></dt><dt><a href="CUPS-printing.html#id2972707">In Case of Trouble.....</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2972742">Where to find Documentation</a></dt><dt><a href="CUPS-printing.html#id2972755">How to ask for Help</a></dt><dt><a href="CUPS-printing.html#id2972768">Where to find Help</a></dt></dl></dd><dt><a href="CUPS-printing.html#id2972782">Appendix</a></dt><dd><dl><dt><a href="CUPS-printing.html#id2972789">Printing from CUPS to Windows attached
+Printers</a></dt><dt><a href="CUPS-printing.html#id2972982">More CUPS filtering Chains</a></dt><dt><a href="CUPS-printing.html#id2973237">Trouble Shooting Guidelines to fix typical Samba printing
+Problems</a></dt><dt><a href="CUPS-printing.html#id2974343">An Overview of the CUPS Printing Processes</a></dt></dl></dd></dl></dd><dt>20. <a href="VFS.html">Stackable VFS modules</a></dt><dd><dl><dt><a href="VFS.html#id2975746">Features and Benefits</a></dt><dt><a href="VFS.html#id2975763">Discussion</a></dt><dt><a href="VFS.html#id2975814">Included modules</a></dt><dd><dl><dt><a href="VFS.html#id2974410">audit</a></dt><dt><a href="VFS.html#id2974449">extd_audit</a></dt><dt><a href="VFS.html#id2974571">fake_perms</a></dt><dt><a href="VFS.html#id2974591">recycle</a></dt><dt><a href="VFS.html#id2974730">netatalk</a></dt></dl></dd><dt><a href="VFS.html#id2974775">VFS modules available elsewhere</a></dt><dd><dl><dt><a href="VFS.html#id2974797">DatabaseFS</a></dt><dt><a href="VFS.html#id2974851">vscan</a></dt></dl></dd><dt><a href="VFS.html#id2974880">Common Errors</a></dt></dl></dd><dt>21. <a href="winbind.html">Integrated Logon Support using Winbind</a></dt><dd><dl><dt><a href="winbind.html#id2975375">Features and Benefits</a></dt><dt><a href="winbind.html#id2975403">Introduction</a></dt><dt><a href="winbind.html#id2977384">What Winbind Provides</a></dt><dd><dl><dt><a href="winbind.html#id2977444">Target Uses</a></dt></dl></dd><dt><a href="winbind.html#id2977475">How Winbind Works</a></dt><dd><dl><dt><a href="winbind.html#id2977502">Microsoft Remote Procedure Calls</a></dt><dt><a href="winbind.html#id2977536">Microsoft Active Directory Services</a></dt><dt><a href="winbind.html#id2977558">Name Service Switch</a></dt><dt><a href="winbind.html#id2974921">Pluggable Authentication Modules</a></dt><dt><a href="winbind.html#id2974992">User and Group ID Allocation</a></dt><dt><a href="winbind.html#id2975027">Result Caching</a></dt></dl></dd><dt><a href="winbind.html#id2975055">Installation and Configuration</a></dt><dd><dl><dt><a href="winbind.html#id2975083">Introduction</a></dt><dt><a href="winbind.html#id2975158">Requirements</a></dt><dt><a href="winbind.html#id2976434">Testing Things Out</a></dt></dl></dd><dt><a href="winbind.html#id2980783">Conclusion</a></dt><dt><a href="winbind.html#id2980802">Common Errors</a></dt></dl></dd><dt>22. <a href="AdvancedNetworkManagement.html">Advanced Network Manangement</a></dt><dd><dl><dt><a href="AdvancedNetworkManagement.html#id2982176">Features and Benefits</a></dt><dt><a href="AdvancedNetworkManagement.html#id2982207">Remote Server Administration</a></dt><dt><a href="AdvancedNetworkManagement.html#id2980888">Remote Desktop Management</a></dt><dd><dl><dt><a href="AdvancedNetworkManagement.html#id2980905">Remote Management from NoMachines.Com</a></dt></dl></dd><dt><a href="AdvancedNetworkManagement.html#id2981105">Network Logon Script Magic</a></dt><dd><dl><dt><a href="AdvancedNetworkManagement.html#id2981300">Adding printers without user intervention</a></dt></dl></dd><dt><a href="AdvancedNetworkManagement.html#id2981333">Common Errors</a></dt></dl></dd><dt>23. <a href="PolicyMgmt.html">System and Account Policies</a></dt><dd><dl><dt><a href="PolicyMgmt.html#id2981730">Features and Benefits</a></dt><dt><a href="PolicyMgmt.html#id2981782">Creating and Managing System Policies</a></dt><dd><dl><dt><a href="PolicyMgmt.html#id2981893">Windows 9x/Me Policies</a></dt><dt><a href="PolicyMgmt.html#id2981442">Windows NT4 Style Policy Files</a></dt><dt><a href="PolicyMgmt.html#id2981575">MS Windows 200x / XP Professional Policies</a></dt></dl></dd><dt><a href="PolicyMgmt.html#id2983019">Managing Account/User Policies</a></dt><dd><dl><dt><a href="PolicyMgmt.html#id2983120">Samba Editreg Toolset</a></dt><dt><a href="PolicyMgmt.html#id2983140">Windows NT4/200x</a></dt><dt><a href="PolicyMgmt.html#id2983161">Samba PDC</a></dt></dl></dd><dt><a href="PolicyMgmt.html#id2983205">System Startup and Logon Processing Overview</a></dt><dt><a href="PolicyMgmt.html#id2983352">Common Errors</a></dt><dd><dl><dt><a href="PolicyMgmt.html#id2983366">Policy Does Not Work</a></dt></dl></dd></dl></dd><dt>24. <a href="ProfileMgmt.html">Desktop Profile Management</a></dt><dd><dl><dt><a href="ProfileMgmt.html#id2983469">Features and Benefits</a></dt><dt><a href="ProfileMgmt.html#id2983502">Roaming Profiles</a></dt><dd><dl><dt><a href="ProfileMgmt.html#id2983543">Samba Configuration for Profile Handling</a></dt><dt><a href="ProfileMgmt.html#id2988905">Windows Client Profile Configuration Information</a></dt><dt><a href="ProfileMgmt.html#id2989842">Sharing Profiles between W9x/Me and NT4/200x/XP workstations</a></dt><dt><a href="ProfileMgmt.html#id2989906">Profile Migration from Windows NT4/200x Server to Samba</a></dt></dl></dd><dt><a href="ProfileMgmt.html#id2990166">Mandatory profiles</a></dt><dt><a href="ProfileMgmt.html#id2990224">Creating/Managing Group Profiles</a></dt><dt><a href="ProfileMgmt.html#id2990270">Default Profile for Windows Users</a></dt><dd><dl><dt><a href="ProfileMgmt.html#id2990290">MS Windows 9x/Me</a></dt><dt><a href="ProfileMgmt.html#id2990438">MS Windows NT4 Workstation</a></dt><dt><a href="ProfileMgmt.html#id2990991">MS Windows 200x/XP</a></dt></dl></dd><dt><a href="ProfileMgmt.html#id2991496">Common Errors</a></dt><dd><dl><dt><a href="ProfileMgmt.html#id2991508">How does one set up roaming profiles for just one (or a few) user/s or group/s?</a></dt><dt><a href="ProfileMgmt.html#id2991571">Can NOT use Roaming Profiles</a></dt><dt><a href="ProfileMgmt.html#id2991790">Changing the default profile</a></dt></dl></dd></dl></dd><dt>25. <a href="pam.html">PAM based Distributed Authentication</a></dt><dd><dl><dt><a href="pam.html#id2993246">Features and Benefits</a></dt><dt><a href="pam.html#id2992101">Technical Discussion</a></dt><dd><dl><dt><a href="pam.html#id2992118">PAM Configuration Syntax</a></dt><dt><a href="pam.html#id2992783">Example System Configurations</a></dt><dt><a href="pam.html#id2995216">smb.conf PAM Configuration</a></dt><dt><a href="pam.html#id2995273">Remote CIFS Authentication using winbindd.so</a></dt><dt><a href="pam.html#id2995357">Password Synchronization using pam_smbpass.so</a></dt></dl></dd><dt><a href="pam.html#id2995723">Common Errors</a></dt><dd><dl><dt><a href="pam.html#id2995737">pam_winbind problem</a></dt></dl></dd></dl></dd><dt>26. <a href="integrate-ms-networks.html">Integrating MS Windows networks with Samba</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2997481">Features and Benefits</a></dt><dt><a href="integrate-ms-networks.html#id2997505">Background Information</a></dt><dt><a href="integrate-ms-networks.html#id2997550">Name Resolution in a pure Unix/Linux world</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2997602">/etc/hosts</a></dt><dt><a href="integrate-ms-networks.html#id2997726">/etc/resolv.conf</a></dt><dt><a href="integrate-ms-networks.html#id2995876">/etc/host.conf</a></dt><dt><a href="integrate-ms-networks.html#id2995919">/etc/nsswitch.conf</a></dt></dl></dd><dt><a href="integrate-ms-networks.html#id2996007">Name resolution as used within MS Windows networking</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2996132">The NetBIOS Name Cache</a></dt><dt><a href="integrate-ms-networks.html#id2996176">The LMHOSTS file</a></dt><dt><a href="integrate-ms-networks.html#id2996290">HOSTS file</a></dt><dt><a href="integrate-ms-networks.html#id2996322">DNS Lookup</a></dt><dt><a href="integrate-ms-networks.html#id2996347">WINS Lookup</a></dt></dl></dd><dt><a href="integrate-ms-networks.html#id2996418">Common Errors</a></dt><dd><dl><dt><a href="integrate-ms-networks.html#id2996434">My Boomerang Won't Come Back</a></dt><dt><a href="integrate-ms-networks.html#id2996465">Very Slow Network Connections</a></dt><dt><a href="integrate-ms-networks.html#id2996517">Samba server name change problem</a></dt></dl></dd></dl></dd><dt>27. <a href="unicode.html">Unicode/Charsets</a></dt><dd><dl><dt><a href="unicode.html#id2996672">Features and Benefits</a></dt><dt><a href="unicode.html#id2996714">What are charsets and unicode?</a></dt><dt><a href="unicode.html#id2996782">Samba and charsets</a></dt><dt><a href="unicode.html#id2996883">Conversion from old names</a></dt><dt><a href="unicode.html#id2996928">Japanese charsets</a></dt></dl></dd><dt>28. <a href="Backup.html">Samba Backup Techniques</a></dt><dd><dl><dt><a href="Backup.html#id2999523">Note</a></dt><dt><a href="Backup.html#id2999544">Features and Benefits</a></dt></dl></dd><dt>29. <a href="SambaHA.html">High Availability Options</a></dt><dd><dl><dt><a href="SambaHA.html#id2999354">Note</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ClientConfig.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="NetworkBrowsing.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. MS Windows Network Configuration Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 10. Samba / MS Windows Network Browsing Guide</td></tr></table></div></body></html>
diff --git a/docs/htmldocs/pam.html b/docs/htmldocs/pam.html
index 6fa57277204..721afde96d8 100644
--- a/docs/htmldocs/pam.html
+++ b/docs/htmldocs/pam.html
@@ -1,4 +1,5 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 25. PAM based Distributed Authentication</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="ProfileMgmt.html" title="Chapter 24. Desktop Profile Management"><link rel="next" href="integrate-ms-networks.html" title="Chapter 26. Integrating MS Windows networks with Samba"></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 25. PAM based Distributed Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ProfileMgmt.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="integrate-ms-networks.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="pam"></a>Chapter 25. PAM based Distributed Authentication</h2></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Stephen</span> <span class="surname">Langasek</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:vorlon@netexpress.net">vorlon@netexpress.net</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">May 31, 2003</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="pam.html#id2995226">Features and Benefits</a></dt><dt><a href="pam.html#id2995494">Technical Discussion</a></dt><dd><dl><dt><a href="pam.html#id2995512">PAM Configuration Syntax</a></dt><dt><a href="pam.html#id2996183">Example System Configurations</a></dt><dt><a href="pam.html#id2996484">smb.conf PAM Configuration</a></dt><dt><a href="pam.html#id2996541">Remote CIFS Authentication using winbindd.so</a></dt><dt><a href="pam.html#id2996625">Password Synchronization using pam_smbpass.so</a></dt></dl></dd><dt><a href="pam.html#id2996992">Common Errors</a></dt><dd><dl><dt><a href="pam.html#id2997005">pam_winbind problem</a></dt></dl></dd></dl></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 25. PAM based Distributed Authentication</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="ProfileMgmt.html" title="Chapter 24. Desktop Profile Management"><link rel="next" href="integrate-ms-networks.html" title="Chapter 26. Integrating MS Windows networks with Samba"></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 25. PAM based Distributed Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ProfileMgmt.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="integrate-ms-networks.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="pam"></a>Chapter 25. PAM based Distributed Authentication</h2></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Stephen</span> <span class="surname">Langasek</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:vorlon@netexpress.net">vorlon@netexpress.net</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">May 31, 2003</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="pam.html#id2993246">Features and Benefits</a></dt><dt><a href="pam.html#id2992101">Technical Discussion</a></dt><dd><dl><dt><a href="pam.html#id2992118">PAM Configuration Syntax</a></dt><dt><a href="pam.html#id2992783">Example System Configurations</a></dt><dt><a href="pam.html#id2995216">smb.conf PAM Configuration</a></dt><dt><a href="pam.html#id2995273">Remote CIFS Authentication using winbindd.so</a></dt><dt><a href="pam.html#id2995357">Password Synchronization using pam_smbpass.so</a></dt></dl></dd><dt><a href="pam.html#id2995723">Common Errors</a></dt><dd><dl><dt><a href="pam.html#id2995737">pam_winbind problem</a></dt></dl></dd></dl></div><p>
This chapter you should help you to deploy winbind based authentication on any PAM enabled
Unix/Linux system. Winbind can be used to enable user level application access authentication
from any MS Windows NT Domain, MS Windows 200x Active Directory based domain, or any Samba
@@ -9,7 +10,7 @@ In addition to knowing how to configure winbind into PAM, you will learn generic
possibilities and in particular how to deploy tools like pam_smbpass.so to your adavantage.
</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
The use of Winbind require more than PAM configuration alone. Please refer to <a href="winbind.html" title="Chapter 21. Integrated Logon Support using Winbind">the Winbind chapter</a>.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2995226"></a>Features and Benefits</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2993246"></a>Features and Benefits</h2></div></div><div></div></div><p>
A number of Unix systems (eg: Sun Solaris), as well as the xxxxBSD family and Linux,
now utilize the Pluggable Authentication Modules (PAM) facility to provide all authentication,
authorization and resource control services. Prior to the introduction of PAM, a decision
@@ -67,12 +68,12 @@ of distributed samba domain controllers that can provide wide are network bandwi
efficient authentication services for PAM capable systems. In effect, this allows the
deployment of centrally managed and maintained distributed authentication from a single
user account database.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2995494"></a>Technical Discussion</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2992101"></a>Technical Discussion</h2></div></div><div></div></div><p>
PAM is designed to provide the system administrator with a great deal of flexibility in
configuration of the privilege granting applications of their system. The local
configuration of system security controlled by PAM is contained in one of two places:
either the single system file, /etc/pam.conf; or the /etc/pam.d/ directory.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2995512"></a>PAM Configuration Syntax</h3></div></div><div></div></div><p>
+</p><div xmlns:ns89="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2992118"></a>PAM Configuration Syntax</h3></div></div><div></div></div><p>
In this section we discuss the correct syntax of and generic options respected by entries to these files.
PAM specific tokens in the configuration file are case insensitive. The module paths, however, are case
sensitive since they indicate a file's name and reflect the case dependence of typical file-systems.
@@ -86,22 +87,22 @@ If the PAM authentication module (loadable link library file) is located in the
default location then it is not necessary to specify the path. In the case of
Linux, the default location is <tt class="filename">/lib/security</tt>. If the module
is located outside the default then the path must be specified as:
-</p><p>
-</p><pre class="screen">
+</p><ns89:p>
+</ns89:p><pre class="screen">
auth required /other_path/pam_strange_module.so
-</pre><p>
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2995568"></a>Anatomy of <tt class="filename">/etc/pam.d</tt> Entries</h4></div></div><div></div></div><p>
+</pre><ns89:p>
+</ns89:p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2992174"></a>Anatomy of <tt class="filename">/etc/pam.d</tt> Entries</h4></div></div><div></div></div><p>
The remaining information in this subsection was taken from the documentation of the Linux-PAM
project. For more information on PAM, see
<a href="http://ftp.kernel.org/pub/linux/libs/pam/" target="_top">
http://ftp.kernel.org/pub/linux/libs/pam</a> The Official Linux-PAM home page.
</p><p>
A general configuration line of the /etc/pam.conf file has the following form:
-</p><p>
-</p><pre class="screen">
+</p><ns89:p>
+</ns89:p><pre class="screen">
service-name module-type control-flag module-path args
-</pre><p>
-</p><p>
+</pre><ns89:p>
+</ns89:p><p>
Below, we explain the meaning of each of these tokens. The second (and more recently adopted)
way of configuring Linux-PAM is via the contents of the <tt class="filename">/etc/pam.d/</tt> directory.
Once we have explained the meaning of the above tokens, we will describe this method.
@@ -218,8 +219,8 @@ Once we have explained the meaning of the above tokens, we will describe this me
</p></li></ul></div><p>
Each of the four keywords: required; requisite; sufficient; and optional, have an equivalent expression in
terms of the [...] syntax. They are as follows:
- </p><p>
- </p><div class="itemizedlist"><ul type="disc"><li><p>
+ </p><ns89:p>
+ </ns89:p><div class="itemizedlist"><ul type="disc"><li><p>
required is equivalent to [success=ok new_authtok_reqd=ok ignore=ignore default=bad]
</p></li><li><p>
requisite is equivalent to [success=ok new_authtok_reqd=ok ignore=ignore default=die]
@@ -227,8 +228,8 @@ Once we have explained the meaning of the above tokens, we will describe this me
sufficient is equivalent to [success=done new_authtok_reqd=done default=ignore]
</p></li><li><p>
optional is equivalent to [success=ok new_authtok_reqd=ok default=ignore]
- </p></li></ul></div><p>
- </p><p>
+ </p></li></ul></div><ns89:p>
+ </ns89:p><p>
Just to get a feel for the power of this new syntax, here is a taste of what you can do with it. With Linux-PAM-0.63,
the notion of client plug-in agents was introduced. This is something that makes it possible for PAM to support
machine-machine authentication using the transport protocol inherent to the client/server application. With the
@@ -260,13 +261,13 @@ squid auth required pam_mysql.so user=passwd_query passwd=mada \
Any line in (one of) the configuration file(s), that is not formatted correctly, will generally tend (erring on the
side of caution) to make the authentication process fail. A corresponding error is written to the system log files
with a call to syslog(3).
- </p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996183"></a>Example System Configurations</h3></div></div><div></div></div><p>
+ </p></dd></dl></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2992783"></a>Example System Configurations</h3></div></div><div></div></div><p>
The following is an example <tt class="filename">/etc/pam.d/login</tt> configuration file.
This example had all options been uncommented is probably not usable
as it stacks many conditions before allowing successful completion
of the login process. Essentially all conditions can be disabled
by commenting them out except the calls to <tt class="filename">pam_pwdb.so</tt>.
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2996213"></a>PAM: original login config</h4></div></div><div></div></div><pre class="screen">
+</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2992814"></a>PAM: original login config</h4></div></div><div></div></div><pre class="screen">
#%PAM-1.0
# The PAM configuration file for the `login' service
#
@@ -281,10 +282,10 @@ session required pam_pwdb.so
# session optional pam_lastlog.so
# password required pam_cracklib.so retry=3
password required pam_pwdb.so shadow md5
-</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2996239"></a>PAM: login using pam_smbpass</h4></div></div><div></div></div><p>
+</pre></div><div xmlns:ns90="" class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2992841"></a>PAM: login using pam_smbpass</h4></div></div><div></div></div><p>
PAM allows use of replacable modules. Those available on a sample system include:
-</p><p><tt class="prompt">$</tt><b class="userinput"><tt>/bin/ls /lib/security</tt></b>
-</p><pre class="screen">
+</p><ns90:p><tt class="prompt">$</tt><b class="userinput"><tt>/bin/ls /lib/security</tt></b>
+</ns90:p><pre class="screen">
pam_access.so pam_ftp.so pam_limits.so
pam_ncp_auth.so pam_rhosts_auth.so pam_stress.so
pam_cracklib.so pam_group.so pam_listfile.so
@@ -360,7 +361,7 @@ authentication to be configured in a single central file. The
on the basis that it allows for easier administration. As with all issues in
life though, every decision makes trade-offs, so you may want examine the
PAM documentation for further helpful information.
-</p></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996484"></a>smb.conf PAM Configuration</h3></div></div><div></div></div><p>
+</p></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2995216"></a>smb.conf PAM Configuration</h3></div></div><div></div></div><p>
There is an option in smb.conf called <a href="smb.conf.5.html#OBEYPAMRESTRICTIONS" target="_top">obey pam restrictions</a>.
The following is from the on-line help for this option in SWAT;
</p><p>
@@ -375,7 +376,7 @@ ignores PAM for authentication in the case of
The reason is that PAM modules cannot support the challenge/response
authentication mechanism needed in the presence of SMB
password encryption.
-</p><p>Default: <i class="parameter"><tt>obey pam restrictions = no</tt></i></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996541"></a>Remote CIFS Authentication using winbindd.so</h3></div></div><div></div></div><p>
+</p><p>Default: <i class="parameter"><tt>obey pam restrictions = no</tt></i></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2995273"></a>Remote CIFS Authentication using winbindd.so</h3></div></div><div></div></div><p>
All operating systems depend on the provision of users credentials accecptable to the platform.
Unix requires the provision of a user identifier (UID) as well as a group identifier (GID).
These are both simple integer type numbers that are obtained from a password backend such
@@ -401,7 +402,7 @@ Microsoft Active Directory Service (ADS) in so far as reduction of wide area net
The rid to unix id database is the only location where the user and group mappings are
stored by winbindd. If this file is deleted or corrupted, there is no way for winbindd
to determine which user and group ids correspond to Windows NT user and group rids.
-</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2996625"></a>Password Synchronization using pam_smbpass.so</h3></div></div><div></div></div><p>
+</p></div></div><div xmlns:ns91="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2995357"></a>Password Synchronization using pam_smbpass.so</h3></div></div><div></div></div><p>
pam_smbpass is a PAM module which can be used on conforming systems to
keep the smbpasswd (Samba password) database in sync with the unix
password file. PAM (Pluggable Authentication Modules) is an API supported
@@ -412,21 +413,21 @@ This module authenticates a local smbpasswd user database. If you require
support for authenticating against a remote SMB server, or if you're
concerned about the presence of suid root binaries on your system, it is
recommended that you use pam_winbind instead.
-</p><p>
+</p><ns91:p>
Options recognized by this module are as follows:
-</p><div class="table"><a name="id2996658"></a><p class="title"><b>Table 25.1. Options recognized by pam_smbpass</b></p><table summary="Options recognized by pam_smbpass" border="1"><colgroup><col><col></colgroup><tbody><tr><td align="left">debug</td><td align="left">log more debugging info</td></tr><tr><td align="left">audit</td><td align="left">like debug, but also logs unknown usernames</td></tr><tr><td align="left">use_first_pass</td><td align="left">don't prompt the user for passwords; take them from PAM_ items instead</td></tr><tr><td align="left">try_first_pass</td><td align="left">try to get the password from a previous PAM module, fall back to prompting the user</td></tr><tr><td align="left">use_authtok</td><td align="left">like try_first_pass, but *fail* if the new PAM_AUTHTOK has not been previously set. (intended for stacking password modules only)</td></tr><tr><td align="left">not_set_pass</td><td align="left">don't make passwords used by this module available to other modules.</td></tr><tr><td align="left">nodelay</td><td align="left">don't insert ~1 second delays on authentication failure.</td></tr><tr><td align="left">nullok</td><td align="left">null passwords are allowed.</td></tr><tr><td align="left">nonull</td><td align="left">null passwords are not allowed. Used to override the Samba configuration.</td></tr><tr><td align="left">migrate</td><td align="left">only meaningful in an &quot;auth&quot; context; used to update smbpasswd file with a password used for successful authentication.</td></tr><tr><td align="left">smbconf=<i class="replaceable"><tt>file</tt></i></td><td align="left">specify an alternate path to the <tt class="filename">smb.conf</tt> file.</td></tr></tbody></table></div><p>
-</p><p>
+</ns91:p><div class="table"><a name="id2995388"></a><p class="title"><b>Table 25.1. Options recognized by pam_smbpass</b></p><table summary="Options recognized by pam_smbpass" border="1"><colgroup><col><col></colgroup><tbody><tr><td align="left">debug</td><td align="left">log more debugging info</td></tr><tr><td align="left">audit</td><td align="left">like debug, but also logs unknown usernames</td></tr><tr><td align="left">use_first_pass</td><td align="left">don't prompt the user for passwords; take them from PAM_ items instead</td></tr><tr><td align="left">try_first_pass</td><td align="left">try to get the password from a previous PAM module, fall back to prompting the user</td></tr><tr><td align="left">use_authtok</td><td align="left">like try_first_pass, but *fail* if the new PAM_AUTHTOK has not been previously set. (intended for stacking password modules only)</td></tr><tr><td align="left">not_set_pass</td><td align="left">don't make passwords used by this module available to other modules.</td></tr><tr><td align="left">nodelay</td><td align="left">don't insert ~1 second delays on authentication failure.</td></tr><tr><td align="left">nullok</td><td align="left">null passwords are allowed.</td></tr><tr><td align="left">nonull</td><td align="left">null passwords are not allowed. Used to override the Samba configuration.</td></tr><tr><td align="left">migrate</td><td align="left">only meaningful in an &quot;auth&quot; context; used to update smbpasswd file with a password used for successful authentication.</td></tr><tr><td align="left">smbconf=<i class="replaceable"><tt>file</tt></i></td><td align="left">specify an alternate path to the <tt class="filename">smb.conf</tt> file.</td></tr></tbody></table></div><ns91:p>
+</ns91:p><ns91:p>
Thanks go to the following people:
-</p><table class="simplelist" border="0" summary="Simple list"><tr><td><a href="mailto:morgan@transmeta.com" target="_top">Andrew Morgan</a>, for providing the Linux-PAM
+</ns91:p><table class="simplelist" border="0" summary="Simple list"><tr><td><a href="mailto:morgan@transmeta.com" target="_top">Andrew Morgan</a>, for providing the Linux-PAM
framework, without which none of this would have happened</td></tr><tr><td><a href="gafton@redhat.com" target="_top">Christian Gafton</a> and Andrew Morgan again, for the
pam_pwdb module upon which pam_smbpass was originally based</td></tr><tr><td><a href="lkcl@switchboard.net" target="_top">Luke Leighton</a> for being receptive to the idea,
and for the occasional good-natured complaint about the project's status
- that keep me working on it :)</td></tr></table><p>.
-</p><p>
+ that keep me working on it :)</td></tr></table><ns91:p>.
+</ns91:p><p>
The following are examples of the use of pam_smbpass.so in the format of Linux
<tt class="filename">/etc/pam.d/</tt> files structure. Those wishing to implement this
tool on other platforms will need to adapt this appropriately.
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2996858"></a>Password Synchronisation Configuration</h4></div></div><div></div></div><p>
+</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2995589"></a>Password Synchronisation Configuration</h4></div></div><div></div></div><p>
A sample PAM configuration that shows the use of pam_smbpass to make
sure private/smbpasswd is kept in sync when /etc/passwd (/etc/shadow)
is changed. Useful when an expired password might be changed by an
@@ -442,7 +443,7 @@ password requisite pam_cracklib.so retry=3
password requisite pam_unix.so shadow md5 use_authtok try_first_pass
password required pam_smbpass.so nullok use_authtok try_first_pass
session required pam_unix.so
-</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2996891"></a>Password Migration Configuration</h4></div></div><div></div></div><p>
+</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2995621"></a>Password Migration Configuration</h4></div></div><div></div></div><p>
A sample PAM configuration that shows the use of pam_smbpass to migrate
from plaintext to encrypted passwords for Samba. Unlike other methods,
this can be used for users who have never connected to Samba shares:
@@ -461,7 +462,7 @@ password requisite pam_cracklib.so retry=3
password requisite pam_unix.so shadow md5 use_authtok try_first_pass
password optional pam_smbpass.so nullok use_authtok try_first_pass
session required pam_unix.so
-</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2996926"></a>Mature Password Configuration</h4></div></div><div></div></div><p>
+</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2995657"></a>Mature Password Configuration</h4></div></div><div></div></div><p>
A sample PAM configuration for a 'mature' smbpasswd installation.
private/smbpasswd is fully populated, and we consider it an error if
the smbpasswd doesn't exist or doesn't match the Unix password.
@@ -476,7 +477,7 @@ password requisite pam_cracklib.so retry=3
password requisite pam_unix.so shadow md5 use_authtok try_first_pass
password required pam_smbpass.so use_authtok use_first_pass
session required pam_unix.so
-</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2996958"></a>Kerberos Password Integration Configuration</h4></div></div><div></div></div><p>
+</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2995689"></a>Kerberos Password Integration Configuration</h4></div></div><div></div></div><p>
A sample PAM configuration that shows pam_smbpass used together with
pam_krb5. This could be useful on a Samba PDC that is also a member of
a Kerberos realm.
@@ -492,13 +493,13 @@ password requisite pam_cracklib.so retry=3
password optional pam_smbpass.so nullok use_authtok try_first_pass
password required pam_krb5.so use_authtok try_first_pass
session required pam_krb5.so
-</pre></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2996992"></a>Common Errors</h2></div></div><div></div></div><p>
+</pre></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2995723"></a>Common Errors</h2></div></div><div></div></div><p>
PAM can be a very fickle and sensitive to configuration glitches. Here we look at a few cases from
the Samba mailing list.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2997005"></a>pam_winbind problem</h3></div></div><div></div></div><p>
+</p><div xmlns:ns92="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2995737"></a>pam_winbind problem</h3></div></div><div></div></div><p>
I have the following PAM configuration:
- </p><p>
-</p><pre class="screen">
+ </p><ns92:p>
+</ns92:p><pre class="screen">
auth required /lib/security/pam_securetty.so
auth sufficient /lib/security/pam_winbind.so
auth sufficient /lib/security/pam_unix.so use_first_pass nullok
@@ -507,8 +508,8 @@ auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_winbind.so
password required /lib/security/pam_stack.so service=system-auth
-</pre><p>
-</p><p>
+</pre><ns92:p>
+</ns92:p><p>
When I open a new console with [ctrl][alt][F1], then I cant log in with my user &quot;pitie&quot;.
I've tried with user &quot;scienceu+pitie&quot; also.
</p><p>
diff --git a/docs/htmldocs/printing.html b/docs/htmldocs/printing.html
index 62856e7ecf8..eeb7c32036a 100644
--- a/docs/htmldocs/printing.html
+++ b/docs/htmldocs/printing.html
@@ -1,7 +1,8 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 18. Classical Printing Support</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="msdfs.html" title="Chapter 17. Hosting a Microsoft Distributed File System tree on Samba"><link rel="next" href="CUPS-printing.html" title="Chapter 19. CUPS Printing Support in Samba 3.0"></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 18. Classical Printing Support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="msdfs.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="CUPS-printing.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="printing"></a>Chapter 18. Classical Printing Support</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Kurt</span> <span class="surname">Pfeifle</span></h3><div class="affiliation"><span class="orgname"> Danka Deutschland GmbH <br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:kpfeifle@danka.de">kpfeifle@danka.de</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">May 32, 2003</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="printing.html#id2934100">Features and Benefits</a></dt><dt><a href="printing.html#id2934168">Technical Introduction</a></dt><dd><dl><dt><a href="printing.html#id2934206">What happens if you send a Job from a Client</a></dt><dt><a href="printing.html#id2934276">Printing Related Configuration Parameters</a></dt><dt><a href="printing.html#id2934356">Parameters Recommended for Use</a></dt><dt><a href="printing.html#id2935524">Parameters for Backwards Compatibility</a></dt><dt><a href="printing.html#id2935632">Parameters no longer in use</a></dt></dl></dd><dt><a href="printing.html#id2935725">A simple Configuration to Print with Samba-3</a></dt><dd><dl><dt><a href="printing.html#id2935795">Verification of &quot;Settings in Use&quot; with testparm</a></dt><dt><a href="printing.html#id2935884">A little Experiment to warn you</a></dt></dl></dd><dt><a href="printing.html#id2936190">Extended Sample Configuration to Print with Samba-3</a></dt><dt><a href="printing.html#id2936293">Detailed Explanation of the Example's Settings</a></dt><dd><dl><dt><a href="printing.html#id2936306">The [global] Section</a></dt><dt><a href="printing.html#id2936689">The [printers] Section</a></dt><dt><a href="printing.html#id2937018">Any [my_printer_name] Section</a></dt><dt><a href="printing.html#id2937239">Print Commands</a></dt><dt><a href="printing.html#id2937289">Default Print Commands for various Unix Print Subsystems</a></dt><dt><a href="printing.html#id2937815">Setting up your own Print Commands</a></dt></dl></dd><dt><a href="printing.html#id2938094">Innovations in Samba Printing since 2.2</a></dt><dd><dl><dt><a href="printing.html#id2938259">Client Drivers on Samba Server for Point'n'Print</a></dt><dt><a href="printing.html#id2938411">The [printer$] Section is removed from Samba-3</a></dt><dt><a href="printing.html#id2938524">Creating the [print$] Share</a></dt><dt><a href="printing.html#id2938595">Parameters in the [print$] Section</a></dt><dt><a href="printing.html#id2938826">Subdirectory Structure in [print$]</a></dt></dl></dd><dt><a href="printing.html#id2938986">Installing Drivers into [print$]</a></dt><dd><dl><dt><a href="printing.html#id2939081">Setting Drivers for existing Printers with a Client GUI</a></dt><dt><a href="printing.html#id2939264">Setting Drivers for existing Printers with
-rpcclient</a></dt></dl></dd><dt><a href="printing.html#id2940985">&quot;The Proof of the Pudding lies in the Eating&quot; (Client Driver Insta
-Procedure)</a></dt><dd><dl><dt><a href="printing.html#id2941006">The first Client Driver Installation</a></dt><dt><a href="printing.html#id2941204">IMPORTANT! Setting Device Modes on new Printers</a></dt><dt><a href="printing.html#id2941493">Further Client Driver Install Procedures</a></dt><dt><a href="printing.html#id2941588">Always make first Client Connection as root or &quot;printer admin&quot;</a></dt></dl></dd><dt><a href="printing.html#id2941730">Other Gotchas</a></dt><dd><dl><dt><a href="printing.html#id2941763">Setting Default Print Options for the Client Drivers</a></dt><dt><a href="printing.html#id2942200">Supporting large Numbers of Printers</a></dt><dt><a href="printing.html#id2942503">Adding new Printers with the Windows NT APW</a></dt><dt><a href="printing.html#id2942746">Weird Error Message Cannot connect under a
-different Name</a></dt><dt><a href="printing.html#id2942844">Be careful when assembling Driver Files</a></dt><dt><a href="printing.html#id2943191">Samba and Printer Ports</a></dt><dt><a href="printing.html#id2943261">Avoiding the most common Misconfigurations of the Client Driver</a></dt></dl></dd><dt><a href="printing.html#id2943283">The Imprints Toolset</a></dt><dd><dl><dt><a href="printing.html#id2943329">What is Imprints?</a></dt><dt><a href="printing.html#id2943370">Creating Printer Driver Packages</a></dt><dt><a href="printing.html#id2943389">The Imprints Server</a></dt><dt><a href="printing.html#id2943413">The Installation Client</a></dt></dl></dd><dt><a href="printing.html#id2943566">Add Network Printers at Logon without User Interaction</a></dt><dt><a href="printing.html#id2943895">The addprinter command</a></dt><dt><a href="printing.html#id2943940">Migration of &quot;Classical&quot; printing to Samba-3</a></dt><dt><a href="printing.html#id2944110">Publishing Printer Information in Active Directory or LDAP</a></dt><dt><a href="printing.html#id2944124">Common Errors and Problems</a></dt><dd><dl><dt><a href="printing.html#id2944137">I give my root password but I don't get access</a></dt><dt><a href="printing.html#id2944170">My printjobs get spooled into the spooling directory, but then get lost</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2934100"></a>Features and Benefits</h2></div></div><div></div></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 18. Classical Printing Support</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="msdfs.html" title="Chapter 17. Hosting a Microsoft Distributed File System tree on Samba"><link rel="next" href="CUPS-printing.html" title="Chapter 19. CUPS Printing Support in Samba 3.0"></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 18. Classical Printing Support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="msdfs.html">Prev</a> </td><th width="60%" align="center">Part III. Advanced Configuration</th><td width="20%" align="right"> <a accesskey="n" href="CUPS-printing.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="printing"></a>Chapter 18. Classical Printing Support</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Kurt</span> <span class="surname">Pfeifle</span></h3><div class="affiliation"><span class="orgname"> Danka Deutschland GmbH <br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:kpfeifle@danka.de">kpfeifle@danka.de</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Gerald</span> <span class="othername">(Jerry)</span> <span class="surname">Carter</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jerry@samba.org">jerry@samba.org</a>&gt;</tt></p></div></div></div></div><div><p class="pubdate">May 32, 2003</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="printing.html#id2931857">Features and Benefits</a></dt><dt><a href="printing.html#id2931921">Technical Introduction</a></dt><dd><dl><dt><a href="printing.html#id2931958">What happens if you send a Job from a Client</a></dt><dt><a href="printing.html#id2932028">Printing Related Configuration Parameters</a></dt><dt><a href="printing.html#id2935137">Parameters Recommended for Use</a></dt><dt><a href="printing.html#id2930497">Parameters for Backwards Compatibility</a></dt><dt><a href="printing.html#id2930606">Parameters no longer in use</a></dt></dl></dd><dt><a href="printing.html#id2930699">A simple Configuration to Print with Samba-3</a></dt><dd><dl><dt><a href="printing.html#id2932704">Verification of &quot;Settings in Use&quot; with testparm</a></dt><dt><a href="printing.html#id2932787">A little Experiment to warn you</a></dt></dl></dd><dt><a href="printing.html#id2933095">Extended Sample Configuration to Print with Samba-3</a></dt><dt><a href="printing.html#id2933186">Detailed Explanation of the Example's Settings</a></dt><dd><dl><dt><a href="printing.html#id2933200">The [global] Section</a></dt><dt><a href="printing.html#id2942661">The [printers] Section</a></dt><dt><a href="printing.html#id2942990">Any [my_printer_name] Section</a></dt><dt><a href="printing.html#id2943210">Print Commands</a></dt><dt><a href="printing.html#id2943262">Default Print Commands for various Unix Print Subsystems</a></dt><dt><a href="printing.html#id2943787">Setting up your own Print Commands</a></dt></dl></dd><dt><a href="printing.html#id2944064">Innovations in Samba Printing since 2.2</a></dt><dd><dl><dt><a href="printing.html#id2944219">Client Drivers on Samba Server for Point'n'Print</a></dt><dt><a href="printing.html#id2944370">The [printer$] Section is removed from Samba-3</a></dt><dt><a href="printing.html#id2944483">Creating the [print$] Share</a></dt><dt><a href="printing.html#id2944553">Parameters in the [print$] Section</a></dt><dt><a href="printing.html#id2944774">Subdirectory Structure in [print$]</a></dt></dl></dd><dt><a href="printing.html#id2944935">Installing Drivers into [print$]</a></dt><dd><dl><dt><a href="printing.html#id2945029">Setting Drivers for existing Printers with a Client GUI</a></dt><dt><a href="printing.html#id2945213">Setting Drivers for existing Printers with
+rpcclient</a></dt></dl></dd><dt><a href="printing.html#id2946811">&quot;The Proof of the Pudding lies in the Eating&quot; (Client Driver Insta
+Procedure)</a></dt><dd><dl><dt><a href="printing.html#id2946832">The first Client Driver Installation</a></dt><dt><a href="printing.html#id2947030">IMPORTANT! Setting Device Modes on new Printers</a></dt><dt><a href="printing.html#id2947319">Further Client Driver Install Procedures</a></dt><dt><a href="printing.html#id2947414">Always make first Client Connection as root or &quot;printer admin&quot;</a></dt></dl></dd><dt><a href="printing.html#id2947556">Other Gotchas</a></dt><dd><dl><dt><a href="printing.html#id2947589">Setting Default Print Options for the Client Drivers</a></dt><dt><a href="printing.html#id2948023">Supporting large Numbers of Printers</a></dt><dt><a href="printing.html#id2948326">Adding new Printers with the Windows NT APW</a></dt><dt><a href="printing.html#id2948569">Weird Error Message Cannot connect under a
+different Name</a></dt><dt><a href="printing.html#id2948667">Be careful when assembling Driver Files</a></dt><dt><a href="printing.html#id2948938">Samba and Printer Ports</a></dt><dt><a href="printing.html#id2949009">Avoiding the most common Misconfigurations of the Client Driver</a></dt></dl></dd><dt><a href="printing.html#id2949031">The Imprints Toolset</a></dt><dd><dl><dt><a href="printing.html#id2949076">What is Imprints?</a></dt><dt><a href="printing.html#id2949118">Creating Printer Driver Packages</a></dt><dt><a href="printing.html#id2949137">The Imprints Server</a></dt><dt><a href="printing.html#id2949161">The Installation Client</a></dt></dl></dd><dt><a href="printing.html#id2949313">Add Network Printers at Logon without User Interaction</a></dt><dt><a href="printing.html#id2949643">The addprinter command</a></dt><dt><a href="printing.html#id2949688">Migration of &quot;Classical&quot; printing to Samba-3</a></dt><dt><a href="printing.html#id2949856">Publishing Printer Information in Active Directory or LDAP</a></dt><dt><a href="printing.html#id2949870">Common Errors and Problems</a></dt><dd><dl><dt><a href="printing.html#id2949884">I give my root password but I don't get access</a></dt><dt><a href="printing.html#id2949917">My printjobs get spooled into the spooling directory, but then get lost</a></dt></dl></dd></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2931857"></a>Features and Benefits</h2></div></div><div></div></div><p>
Printing is often a mission-critical service for the users. Samba can
provide this service reliably and seamlessly for a client network
consisting of Windows workstations.
@@ -37,7 +38,7 @@ Professional clients. Where this document describes the responses to
commands given, bear in mind that Windows 2000 clients are very
similar, but may differ in details. Windows NT is somewhat different
again.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2934168"></a>Technical Introduction</h2></div></div><div></div></div><p>
+</p></div></div><div xmlns:ns44="" class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2931921"></a>Technical Introduction</h2></div></div><div></div></div><ns44:p>
Samba's printing support always relies on the installed print
subsystem of the Unix OS it runs on. Samba is a &quot;middleman&quot;. It takes
printfiles from Windows (or other SMB) clients and passes them to the
@@ -52,10 +53,10 @@ the next chapter covers in great detail the more modern
<span class="emphasis"><em>Common UNIX Printing System</em></span>
(CUPS).
-</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>CUPS users, be warned: don't just jump on to the next
+</ns44:p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>CUPS users, be warned: don't just jump on to the next
chapter. You might miss important information contained only
-here!</p></div><p>
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2934206"></a>What happens if you send a Job from a Client</h3></div></div><div></div></div><p>
+here!</p></div><ns44:p>
+</ns44:p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2931958"></a>What happens if you send a Job from a Client</h3></div></div><div></div></div><p>
To successfully print a job from a Windows client via a Samba
print server to a UNIX printer, there are 6 (potentially 7)
stages:
@@ -63,7 +64,7 @@ stages:
into Samba's spooling area</p></li><li><p>Windows closes the connection again</p></li><li><p>Samba invokes the print command to hand the file over
to the UNIX print subsystem's spooling area</p></li><li><p>The Unix print subsystem processes the print
job</p></li><li><p>The printfile may need to be explicitely deleted
-from the Samba spooling area.</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2934276"></a>Printing Related Configuration Parameters</h3></div></div><div></div></div><p>
+from the Samba spooling area.</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2932028"></a>Printing Related Configuration Parameters</h3></div></div><div></div></div><p>
There are a number of configuration parameters in
controlling Samba's printing
behaviour. Please also refer to the man page for smb.conf to
@@ -77,20 +78,20 @@ behaviour of all individual or service level shares (provided those
don't have a different setting defined for the same parameter, thus
overriding the global default).</p></dd><dt><span class="term">Global Parameters</span></dt><dd><p>These <span class="emphasis"><em>may not</em></span> go into individual
shares. If they go in by error, the &quot;testparm&quot; utility can discover
-this (if you run it) and tell you so.</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2934356"></a>Parameters Recommended for Use</h3></div></div><div></div></div><p>The following <tt class="filename">smb.conf</tt> parameters directly
+this (if you run it) and tell you so.</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2935137"></a>Parameters Recommended for Use</h3></div></div><div></div></div><p>The following <tt class="filename">smb.conf</tt> parameters directly
related to printing are used in Samba-3. See also the
<tt class="filename">smb.conf</tt> man page for detailed explanations:
-</p><p><b>List of printing related parameters in Samba-3. </b>
-</p><div class="itemizedlist"><p class="title"><b>Global level parameters:</b></p><ul type="disc"><li><p><i class="parameter"><tt>addprinter command (G)</tt></i></p></li><li><p><i class="parameter"><tt>deleteprinter command (G)</tt></i></p></li><li><p><i class="parameter"><tt>disable spoolss (G)</tt></i></p></li><li><p><i class="parameter"><tt>enumports command (G)</tt></i></p></li><li><p><i class="parameter"><tt>load printers (G)</tt></i></p></li><li><p><i class="parameter"><tt>lpq cache time (G)</tt></i></p></li><li><p><i class="parameter"><tt>os2 driver map (G)</tt></i></p></li><li><p><i class="parameter"><tt>printcap name (G), printcap (G)</tt></i></p></li><li><p><i class="parameter"><tt>show add printer wizard (G)</tt></i></p></li><li><p><i class="parameter"><tt>total print jobs (G)</tt></i></p></li><li><p><i class="parameter"><tt>use client driver (G)</tt></i></p></li></ul></div><p>
+</p><ns44:p><b>List of printing related parameters in Samba-3. </b>
+</ns44:p><div class="itemizedlist"><p class="title"><b>Global level parameters:</b></p><ul type="disc"><li><p><i class="parameter"><tt>addprinter command (G)</tt></i></p></li><li><p><i class="parameter"><tt>deleteprinter command (G)</tt></i></p></li><li><p><i class="parameter"><tt>disable spoolss (G)</tt></i></p></li><li><p><i class="parameter"><tt>enumports command (G)</tt></i></p></li><li><p><i class="parameter"><tt>load printers (G)</tt></i></p></li><li><p><i class="parameter"><tt>lpq cache time (G)</tt></i></p></li><li><p><i class="parameter"><tt>os2 driver map (G)</tt></i></p></li><li><p><i class="parameter"><tt>printcap name (G), printcap (G)</tt></i></p></li><li><p><i class="parameter"><tt>show add printer wizard (G)</tt></i></p></li><li><p><i class="parameter"><tt>total print jobs (G)</tt></i></p></li><li><p><i class="parameter"><tt>use client driver (G)</tt></i></p></li></ul></div><ns44:p>
-</p><div class="itemizedlist"><p class="title"><b>Service level parameters:</b></p><ul type="disc"><li><p><i class="parameter"><tt>hosts allow (S)</tt></i></p></li><li><p><i class="parameter"><tt>hosts deny (S)</tt></i></p></li><li><p><i class="parameter"><tt>lppause command (S)</tt></i></p></li><li><p><i class="parameter"><tt>lpq command (S)</tt></i></p></li><li><p><i class="parameter"><tt>lpresume command (S)</tt></i></p></li><li><p><i class="parameter"><tt>lprm command (S)</tt></i></p></li><li><p><i class="parameter"><tt>max print jobs (S)</tt></i></p></li><li><p><i class="parameter"><tt>min print space (S)</tt></i></p></li><li><p><i class="parameter"><tt>print command (S)</tt></i></p></li><li><p><i class="parameter"><tt>printable (S), print ok (S)</tt></i></p></li><li><p><i class="parameter"><tt>printer name (S), printer (S)</tt></i></p></li><li><p><i class="parameter"><tt>printer admin (S)</tt></i></p></li><li><p><i class="parameter"><tt>printing = [cups|bsd|lprng...] (S)</tt></i></p></li><li><p><i class="parameter"><tt>queuepause command (S)</tt></i></p></li><li><p><i class="parameter"><tt>queueresume command (S)</tt></i></p></li><li><p><i class="parameter"><tt>total print jobs (S)</tt></i></p></li></ul></div><p>
-</p><p>
+</ns44:p><div class="itemizedlist"><p class="title"><b>Service level parameters:</b></p><ul type="disc"><li><p><i class="parameter"><tt>hosts allow (S)</tt></i></p></li><li><p><i class="parameter"><tt>hosts deny (S)</tt></i></p></li><li><p><i class="parameter"><tt>lppause command (S)</tt></i></p></li><li><p><i class="parameter"><tt>lpq command (S)</tt></i></p></li><li><p><i class="parameter"><tt>lpresume command (S)</tt></i></p></li><li><p><i class="parameter"><tt>lprm command (S)</tt></i></p></li><li><p><i class="parameter"><tt>max print jobs (S)</tt></i></p></li><li><p><i class="parameter"><tt>min print space (S)</tt></i></p></li><li><p><i class="parameter"><tt>print command (S)</tt></i></p></li><li><p><i class="parameter"><tt>printable (S), print ok (S)</tt></i></p></li><li><p><i class="parameter"><tt>printer name (S), printer (S)</tt></i></p></li><li><p><i class="parameter"><tt>printer admin (S)</tt></i></p></li><li><p><i class="parameter"><tt>printing = [cups|bsd|lprng...] (S)</tt></i></p></li><li><p><i class="parameter"><tt>queuepause command (S)</tt></i></p></li><li><p><i class="parameter"><tt>queueresume command (S)</tt></i></p></li><li><p><i class="parameter"><tt>total print jobs (S)</tt></i></p></li></ul></div><ns44:p>
+</ns44:p><p>
Samba's printing support implements the Microsoft Remote Procedure
Calls (MS-RPC) methods for printing. These are used by Windows NT (and
later) print servers. The old &quot;LanMan&quot; protocol is still supported as
a fallback resort, and for older clients to use. More details will
follow further beneath.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2935524"></a>Parameters for Backwards Compatibility</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2930497"></a>Parameters for Backwards Compatibility</h3></div></div><div></div></div><p>
Two new parameters that were added in Samba 2.2.2, are still present
in Samba-3.0. Both of these options are described in the
<tt class="filename">smb.conf</tt> man page and are disabled by
@@ -100,19 +101,19 @@ provided for better support of Samba 2.0.x backwards capability. It
will disable Samba's support for MS-RPC printing and yield identical
printing behaviour to Samba 2.0.x.</p></dd><dt><span class="term"><i class="parameter"><tt>use client driver (G)</tt></i></span></dt><dd><p> was provided
for using local printer drivers on Windows NT/2000 clients. It does
-not apply to Windows 95/98/ME clients.</p></dd></dl></div><p><b>Parameters &quot;for backward compatibility only&quot;, use with caution. </b>
-</p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>disable spoolss (G)</tt></i></p></li><li><p><i class="parameter"><tt>use client driver (S)</tt></i></p></li></ul></div><p>
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2935632"></a>Parameters no longer in use</h3></div></div><div></div></div><p>
+not apply to Windows 95/98/ME clients.</p></dd></dl></div><ns44:p><b>Parameters &quot;for backward compatibility only&quot;, use with caution. </b>
+</ns44:p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>disable spoolss (G)</tt></i></p></li><li><p><i class="parameter"><tt>use client driver (S)</tt></i></p></li></ul></div><ns44:p>
+</ns44:p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2930606"></a>Parameters no longer in use</h3></div></div><div></div></div><p>
Samba users upgrading from 2.2.x to 3.0 need to be aware that some
previously available settings are no longer supported (as was
announced some time ago). Here is a list of them:
-</p><p><b>&quot;old&quot; parameters, removed in Samba-3. </b>
+</p><ns44:p><b>&quot;old&quot; parameters, removed in Samba-3. </b>
The following <tt class="filename">smb.conf</tt> parameters have been
deprecated already in Samba 2.2 and are now completely removed from
Samba-3. You cannot use them in new 3.0 installations:
-</p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>printer driver file (G)</tt></i></p></li><li><p><i class="parameter"><tt>total print jobs (G)</tt></i></p></li><li><p><i class="parameter"><tt>postscript (S)</tt></i></p></li><li><p><i class="parameter"><tt>printer driver (S)</tt></i></p></li><li><p><i class="parameter"><tt>printer driver location (S)</tt></i></p></li></ul></div><p>
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2935725"></a>A simple Configuration to Print with Samba-3</h2></div></div><div></div></div><p>
+</ns44:p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>printer driver file (G)</tt></i></p></li><li><p><i class="parameter"><tt>total print jobs (G)</tt></i></p></li><li><p><i class="parameter"><tt>postscript (S)</tt></i></p></li><li><p><i class="parameter"><tt>printer driver (S)</tt></i></p></li><li><p><i class="parameter"><tt>printer driver location (S)</tt></i></p></li></ul></div><ns44:p>
+</ns44:p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2930699"></a>A simple Configuration to Print with Samba-3</h2></div></div><div></div></div><p>
Here is a very simple example configuration for print related settings
in the file. If you compare it with your
own system's , you probably find some
@@ -147,7 +148,7 @@ reminder: It even tolerates some spelling errors (like &quot;browsable&quot;
instead of &quot;browseable&quot;). Most spelling is case-insensitive. Also, you
can use &quot;Yes|No&quot; or &quot;True|False&quot; for boolean settings. Lists of names
may be separated by commas, spaces or tabs.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2935795"></a>Verification of &quot;Settings in Use&quot; with <b class="command">testparm</b></h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2932704"></a>Verification of &quot;Settings in Use&quot; with <b class="command">testparm</b></h3></div></div><div></div></div><p>
To see all (or at least most) printing related settings in Samba,
including the implicitly used ones, try the command outlined below
(hit &quot;ENTER&quot; twice!). It greps for all occurrences of &quot;lp&quot;, &quot;print&quot;,
@@ -201,7 +202,7 @@ be important in your future dealings with Samba.</em></span>
</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> testparm in Samba-3.0 behaves differently from 2.2.x: used
without the &quot;-v&quot; switch it only shows you the settings actually
written into ! To see the complete
-configuration used, add the &quot;-v&quot; parameter to testparm.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2935884"></a>A little Experiment to warn you</h3></div></div><div></div></div><p>
+configuration used, add the &quot;-v&quot; parameter to testparm.</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2932787"></a>A little Experiment to warn you</h3></div></div><div></div></div><p>
Should you need to troubleshoot at any stage, please always come back
to this point first and verify if &quot;testparm&quot; shows the parameters you
expect! To give you an example from personal experience as a warning,
@@ -310,7 +311,7 @@ printing =lprng #This defines LPRng as the printing system&quot;
will regard the whole of the string after the &quot;=&quot;
sign as the value you want to define. And this is an invalid value
that will be ignored, and a default value used instead.]
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2936190"></a>Extended Sample Configuration to Print with Samba-3</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2933095"></a>Extended Sample Configuration to Print with Samba-3</h2></div></div><div></div></div><p>
Here we show a more verbose example configuration for print related
settings in an . Below is a discussion
and explanation of the various parameters. We chose to use BSD-style
@@ -368,9 +369,9 @@ default, because these have been compiled in. To see all settings, let
root use the <b class="command">testparm</b>
utility. <b class="command">testparm</b> also gives warnings if you have
mis-configured certain things..
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2936293"></a>Detailed Explanation of the Example's Settings</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2933186"></a>Detailed Explanation of the Example's Settings</h2></div></div><div></div></div><p>
Following is a discussion of the settings from above shown example.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2936306"></a>The [global] Section</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2933200"></a>The [global] Section</h3></div></div><div></div></div><p>
The <i class="parameter"><tt>[global]</tt></i> section is one of 4 special
sections (along with [<i class="parameter"><tt>[homes]</tt></i>,
<i class="parameter"><tt>[printers]</tt></i> and
@@ -444,7 +445,7 @@ It must <span class="emphasis"><em>not</em></span> be enabled on print shares
(with a <tt class="constant">yes</tt> or <tt class="constant">true</tt> setting) which
have valid drivers installed on the Samba server! For more detailed
explanations see the man page of <tt class="filename">smb.conf</tt>.
-</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2936689"></a>The [printers] Section</h3></div></div><div></div></div><p>
+</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2942661"></a>The [printers] Section</h3></div></div><div></div></div><p>
This is the second special section. If a section with this name
appears in the <tt class="filename">smb.conf</tt>, users are able to
connect to any printer specified in the Samba host's printcap file,
@@ -504,7 +505,7 @@ write to the directory (if user privileges allow the connection), but
only via print spooling operations. &quot;Normal&quot; write operations are not
allowed. </p></dd><dt><span class="term"><i class="parameter"><tt>writeable = no</tt></i></span></dt><dd><p>
synonym for <i class="parameter"><tt>read only = yes</tt></i>
-</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2937018"></a>Any [my_printer_name] Section</h3></div></div><div></div></div><p>
+</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2942990"></a>Any [my_printer_name] Section</h3></div></div><div></div></div><p>
If a section appears in the , which is
tagged as <i class="parameter"><tt>printable = yes</tt></i>, Samba presents it as
a printer share to its clients. Note, that Win95/98/ME clients may
@@ -539,7 +540,7 @@ belong to the &quot;allowed subnets&quot;). As you can see, you could name IP
addresses as well as NetBIOS hostnames
here.
</p></dd><dt><span class="term"><i class="parameter"><tt>guest ok = no</tt></i></span></dt><dd><p>this printer is not open for the guest account!
-</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2937239"></a>Print Commands</h3></div></div><div></div></div><p>
+</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2943210"></a>Print Commands</h3></div></div><div></div></div><p>
In each section defining a printer (or in the
<i class="parameter"><tt>[printers]</tt></i> section), a <i class="parameter"><tt>print
command</tt></i> parameter may be defined. It sets a command to
@@ -557,7 +558,7 @@ your own print commands (or even develop print command shell scripts),
make sure you pay attention to the need to remove the files from the
Samba spool directory. Otherwise your hard disk may soon suffer from
shortage of free space.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2937289"></a>Default Print Commands for various Unix Print Subsystems</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2943262"></a>Default Print Commands for various Unix Print Subsystems</h3></div></div><div></div></div><p>
You learned earlier on, that Samba in most cases uses its built-in
settings for many parameters if it can not find an explicitly stated
one in its configuration file. The same is true for the
@@ -597,7 +598,7 @@ check which command takes effect. Then check that this command is
adequate and actually works for your installed print subsystem. It is
always a good idea to explicitly set up your configuration files the
way you want them to work and not rely on any built-in defaults.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2937815"></a>Setting up your own Print Commands</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2943787"></a>Setting up your own Print Commands</h3></div></div><div></div></div><p>
After a print job has finished spooling to a service, the
<i class="parameter"><tt>print command</tt></i> will be used by Samba via a
<span class="emphasis"><em>system()</em></span> call to process the spool file. Usually
@@ -667,7 +668,7 @@ for the <i class="parameter"><tt>print command</tt></i> parameter varies dependi
the <i class="parameter"><tt>printing</tt></i> parameter. Another example is:
</p><pre class="programlisting">
print command = /usr/local/samba/bin/myprintscript %p %s
-</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2938094"></a>Innovations in Samba Printing since 2.2</h2></div></div><div></div></div><p>
+</pre></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2944064"></a>Innovations in Samba Printing since 2.2</h2></div></div><div></div></div><p>
Before version 2.2.0, Samba's print server support for Windows clients
was limited to the level of <span class="emphasis"><em>LanMan</em></span> printing
calls. This is the same protocol level as Windows 9x PCs offer when
@@ -708,7 +709,7 @@ default permissions assigned by Windows NT to a printer gives the
&quot;Print&quot; permissions to the well-known <span class="emphasis"><em>Everyone</em></span>
group. (The older clients of type Win9x can only print to &quot;shared&quot;
printers).
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2938259"></a>Client Drivers on Samba Server for <span class="emphasis"><em>Point'n'Print</em></span></h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944219"></a>Client Drivers on Samba Server for <span class="emphasis"><em>Point'n'Print</em></span></h3></div></div><div></div></div><p>
There is still confusion about what all this means: <span class="emphasis"><em>Is it or
is it not a requirement for printer drivers to be installed on a Samba
host in order to support printing from Windows clients?</em></span> The
@@ -746,7 +747,7 @@ by Samba. The clients use these drivers to generate print files in the
format the printer (or the Unix print system) requires. Print files
received by Samba are handed over to the Unix printing system, which
is responsible for all further processing, if needed.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2938411"></a>The [printer$] Section is removed from Samba-3</h3></div></div><div></div></div><p><b>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944370"></a>The [printer$] Section is removed from Samba-3</h3></div></div><div></div></div><p><b>
<i class="parameter"><tt>[print$]</tt></i> vs. <i class="parameter"><tt>[printer$]</tt></i>
. </b>
Versions of Samba prior to 2.2 made it possible to use a share
@@ -772,7 +773,7 @@ access (in the context of its ACLs) in order to support printer driver
down- and uploads. Don't fear -- this does not mean Windows 9x
clients are thrown aside now. They can use Samba's
<i class="parameter"><tt>[print$]</tt></i> share support just fine.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2938524"></a>Creating the [print$] Share</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944483"></a>Creating the [print$] Share</h3></div></div><div></div></div><p>
In order to support the up- and downloading of printer driver files,
you must first configure a file share named
<i class="parameter"><tt>[print$]</tt></i>. The &quot;public&quot; name of this share is
@@ -806,7 +807,7 @@ with appropriate values for your site):
</pre><p>
Of course, you also need to ensure that the directory named by the
<i class="parameter"><tt>path</tt></i> parameter exists on the Unix file system.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2938595"></a>Parameters in the [print$] Section</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944553"></a>Parameters in the [print$] Section</h3></div></div><div></div></div><p>
<i class="parameter"><tt>[print$]</tt></i> is a special section in
. It contains settings relevant to
potential printer driver download and local installation by clients.
@@ -851,7 +852,7 @@ sure these accounts can copy files to the share. If this is a non-root
account, then the account should also be mentioned in the global
<i class="parameter"><tt>printer admin </tt></i> parameter. See the
man page for more information on
-configuring file shares. </p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2938826"></a>Subdirectory Structure in [print$]</h3></div></div><div></div></div><p>
+configuring file shares. </p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944774"></a>Subdirectory Structure in [print$]</h3></div></div><div></div></div><p>
In order for a Windows NT print server to support the downloading of
driver files by multiple client architectures, you must create several
subdirectories within the <i class="parameter"><tt>[print$]</tt></i> service
@@ -890,7 +891,7 @@ client workstation. Open <span class="guiicon">Network Neighbourhood</span> or
Once you have located the server, navigate to its <span class="guiicon">Printers and
Faxes</span> folder. You should see an initial listing of printers
that matches the printer shares defined on your Samba host.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2938986"></a>Installing Drivers into [print$]</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2944935"></a>Installing Drivers into [print$]</h2></div></div><div></div></div><p>
You have successfully created the <i class="parameter"><tt>[print$]</tt></i>
share in ? And Samba has re-read its
configuration? Good. But you are not yet ready to take off. The
@@ -908,7 +909,7 @@ Properties</em></span> and <span class="emphasis"><em>Add Printer Wizard</em></s
from any Windows NT/2k/XP client workstation.</p></li></ul></div><p>
The latter option is probably the easier one (even if the only
entrance to this realm seems a little bit weird at first).
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2939081"></a>Setting Drivers for existing Printers with a Client GUI</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2945029"></a>Setting Drivers for existing Printers with a Client GUI</h3></div></div><div></div></div><p>
The initial listing of printers in the Samba host's
<span class="guiicon">Printers</span> folder accessed from a client's Explorer
will have no real printer driver assigned to them. By default, in
@@ -954,7 +955,7 @@ Assuming you have connected with an administrative (or root) account
you will also be able to modify other printer properties such as ACLs
and default device settings using this dialog. For the default device
settings, please consider the advice given further below.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2939264"></a>Setting Drivers for existing Printers with
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2945213"></a>Setting Drivers for existing Printers with
<b class="command">rpcclient</b></h3></div></div><div></div></div><p>
The second way to install printer drivers into
<i class="parameter"><tt>[print$]</tt></i> and set them up in a valid way can be
@@ -969,7 +970,7 @@ time with the <b class="command">setdriver</b>
subcommand.</p></li></ol></div><p>
We will provide detailed hints for each of these steps in the next few
paragraphs.
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2939373"></a>Identifying the Driver Files</h4></div></div><div></div></div><p>
+</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2945322"></a>Identifying the Driver Files</h4></div></div><div></div></div><p>
To find out about the driver files, you have two options: you could
investigate the driver CD which comes with your printer. Study the
<tt class="filename">*.inf</tt> file on the CD, if it is contained. This
@@ -1072,7 +1073,7 @@ Windows 2000 changed this. While it still can use the Kernel Mode
drivers (if this is enabled by the Admin), its native mode for printer
drivers is User Mode execution. This requires drivers designed for
this. These type of drivers install into the &quot;3&quot; subdirectory.
-</p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2939701"></a>Collecting the Driver Files from a Windows Host's
+</p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2945650"></a>Collecting the Driver Files from a Windows Host's
[print$] Share</h4></div></div><div></div></div><p>
Now we need to collect all the driver files we identified. in our
previous step. Where do we get them from? Well, why not retrieve them
@@ -1108,7 +1109,7 @@ files for these architectures are in the WIN40/0/ subdir. Once we are
complete, we can run <b class="command">smbclient ... put</b> to store
the collected files on the Samba server's
<i class="parameter"><tt>[print$]</tt></i> share.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2939854"></a>Depositing the Driver Files into [print$]</h4></div></div><div></div></div><p>
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2945802"></a>Depositing the Driver Files into [print$]</h4></div></div><div></div></div><p>
So, now we are going to put the driver files into the
<i class="parameter"><tt>[print$]</tt></i> share. Remember, the UNIX path to this
share has been defined previously in your
@@ -1169,7 +1170,7 @@ re-location will automatically be done by the
don't forget to also put the files for the Win95/98/ME architecture
into the <tt class="filename">WIN40/</tt> subdirectory should you need
them).
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2940090"></a>Check if the Driver Files are there (with smbclient)</h4></div></div><div></div></div><p>
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2946005"></a>Check if the Driver Files are there (with smbclient)</h4></div></div><div></div></div><p>
For now we verify that our files are there. This can be done with
<b class="command">smbclient</b> too (but of course you can log in via SSH
also and do this through a standard UNIX shell access too):
@@ -1222,7 +1223,7 @@ Point'n'Print. The reason is: Samba doesn't know yet that these files
are something special, namely <span class="emphasis"><em>printer driver
files</em></span> and it doesn't know yet to which print queue(s) these
driver files belong.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2940250"></a>Running <b class="command">rpcclient</b> with
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2946121"></a>Running <b class="command">rpcclient</b> with
<b class="command">adddriver</b></h4></div></div><div></div></div><p>
So, next you must tell Samba about the special category of the files
you just uploaded into the <i class="parameter"><tt>[print$]</tt></i> share. This
@@ -1257,7 +1258,7 @@ files successfully, but render the driver unworkable. So take care!
Hints about the syntax of the adddriver command are in the man
page. The CUPS printing chapter of this HOWTO collection provides a
more detailed description, if you should need it.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2940351"></a>Check how Driver Files have been moved after
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2946221"></a>Check how Driver Files have been moved after
<b class="command">adddriver</b> finished</h4></div></div><div></div></div><p>
One indication for Samba's recognition of the files as driver files is
the <tt class="computeroutput">successfully installed</tt> message.
@@ -1305,7 +1306,7 @@ subdirectory. You can check this again with
</pre><p>
Another verification is that the timestamp of the printing TDB files
is now updated (and possibly their filesize has increased).
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2940519"></a>Check if the Driver is recognized by Samba</h4></div></div><div></div></div><p>
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2946345"></a>Check if the Driver is recognized by Samba</h4></div></div><div></div></div><p>
Now the driver should be registered with Samba. We can easily verify
this, and will do so in a moment. However, this driver is
<span class="emphasis"><em>not yet</em></span> associated with a particular
@@ -1349,7 +1350,7 @@ time. Our new driver only shows up for
<span class="application">Windows NT 4.0 or 2000</span>. To
have it present for <span class="application">Windows 95, 98 and ME</span> you'll
have to repeat the whole procedure with the WIN40 architecture and subdirectory.
-</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2940723"></a>A sidenote: you are not bound to specific driver names</h4></div></div><div></div></div><p>
+</p></li></ul></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2946548"></a>A sidenote: you are not bound to specific driver names</h4></div></div><div></div></div><p>
You can name the driver as you like. If you repeat the
<b class="command">adddriver</b> step, with the same files as before, but
with a different driver name, it will work the same:
@@ -1383,7 +1384,7 @@ repeatedly. Each run &quot;consumes&quot; the files you had put into the
respective subdirectories. So you <span class="emphasis"><em>must</em></span> precede an
<b class="command">smbclient ... put</b> command before each
<b class="command">rpcclient ... addriver</b>&quot; command.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2940834"></a>La Grande Finale: Running <b class="command">rpcclient</b> with
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2946660"></a>La Grande Finale: Running <b class="command">rpcclient</b> with
<b class="command">setdriver</b></h4></div></div><div></div></div><p>
Samba still needs to know <span class="emphasis"><em>which</em></span> printer's driver
this is. It needs to create a mapping of the driver to a printer, and
@@ -1413,13 +1414,13 @@ known to
Samba already. A bug in 2.2.x prevented Samba from recognizing freshly
installed printers. You had to restart Samba, or at least send a HUP
signal to all running smbd processes to work around this:
-<b class="userinput"><tt>kill -HUP `pidof smbd`</tt></b>. </p></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2940985"></a>&quot;The Proof of the Pudding lies in the Eating&quot; (Client Driver Insta
+<b class="userinput"><tt>kill -HUP `pidof smbd`</tt></b>. </p></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2946811"></a>&quot;The Proof of the Pudding lies in the Eating&quot; (Client Driver Insta
Procedure)</h2></div></div><div></div></div><p>
A famous philosopher said once: &#8220;<span class="quote">The Proof of the Pudding lies
in the Eating</span>&#8221;. The proof for our setup lies in the printing.
So let's install the printer driver onto the client PCs. This is not
as straightforward as it may seem. Read on.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2941006"></a>The first Client Driver Installation</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2946832"></a>The first Client Driver Installation</h3></div></div><div></div></div><p>
Especially important is the installation onto the first client PC (for
each architectural platform separately). Once this is done correctly,
all further clients are easy to setup and shouldn't need further
@@ -1462,7 +1463,7 @@ Data&quot; set is still incomplete.
</p><p>
You must now make sure that a valid &quot;Device Mode&quot; is set for the
driver. Don't fear -- we will explain now what that means.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2941204"></a>IMPORTANT! Setting Device Modes on new Printers</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2947030"></a>IMPORTANT! Setting Device Modes on new Printers</h3></div></div><div></div></div><p>
In order for a printer to be truly usable by a Windows NT/2K/XP
client, it must possess:
</p><div class="itemizedlist"><ul type="disc"><li><p>a valid <span class="emphasis"><em>Device Mode</em></span> generated by
@@ -1534,7 +1535,7 @@ properties. Others may crash the client's spooler service. So use this
parameter with caution. It is always better to have the client
generate a valid device mode for the printer and store it on the
server for you.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2941493"></a>Further Client Driver Install Procedures</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2947319"></a>Further Client Driver Install Procedures</h3></div></div><div></div></div><p>
Every further driver may be done by any user, along the lines
described above: Browse network, open printers folder on Samba server,
right-click printer and choose <span class="guimenuitem">Connect...</span>. Once
@@ -1554,7 +1555,7 @@ rundll32 shell32.dll,Control_RunDLL MAIN.CPL @2
You can enter the commands either inside a <span class="guilabel">DOS box</span> window
or in the <span class="guimenuitem">Run command...</span> field from the
<span class="guimenu">Start</span> menu.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2941588"></a>Always make first Client Connection as root or &quot;printer admin&quot;</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2947414"></a>Always make first Client Connection as root or &quot;printer admin&quot;</h3></div></div><div></div></div><p>
After you installed the driver on the Samba server (in its
<i class="parameter"><tt>[print$]</tt></i> share, you should always make sure
that your first client installation completes correctly. Make it a habit for
@@ -1586,7 +1587,7 @@ the same way (called <span class="emphasis"><em>Point'n'Print</em></span>) will
have the same defaults set for them. If you miss this step you'll
get a lot of helpdesk calls from your users. But maybe you like to
talk to people.... ;-)
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2941730"></a>Other Gotchas</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2947556"></a>Other Gotchas</h2></div></div><div></div></div><p>
Your driver is installed. It is ready for
<span class="emphasis"><em>Point'n'Print</em></span> installation by the clients
now. You <span class="emphasis"><em>may</em></span> have tried to download and use it
@@ -1596,7 +1597,7 @@ example, suppose you didn't manage to &quot;set the defaults&quot; on the
printer, as advised in the preceeding paragraphs? And your users
complain about various issues (such as &#8220;<span class="quote">We need to set the paper
size for each job from Letter to A4 and it won't store it!</span>&#8221;)
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2941763"></a>Setting Default Print Options for the Client Drivers</h3></div></div><div></div></div><p>
+</p><div xmlns:ns48="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2947589"></a>Setting Default Print Options for the Client Drivers</h3></div></div><div></div></div><p>
The last sentence might be viewed with mixed feelings by some users and
admins. They have struggled for hours and hours and couldn't arrive at
a point were their settings seemed to be saved. It is not their
@@ -1606,7 +1607,7 @@ up when you right-click the printer name and select
looking dialogs, each claiming that they help you to set printer options,
in three different ways. Here is the definite answer to the &quot;Samba
Default Driver Setting FAQ&quot;:
-</p><p><b>&#8220;<span class="quote">I can't set and save default print options
+</p><ns48:p><b>&#8220;<span class="quote">I can't set and save default print options
for all users on Win2K/XP! Why not?</span>&#8221; </b>
How are you doing it? I bet the wrong way.... (it is not very
easy to find out, though). There are 3 different ways to bring you to
@@ -1617,34 +1618,34 @@ dialogs <span class="emphasis"><em>look</em></span> the same. Only one of them
Administrator to do this for all users. Here is how I reproduce it in
on XP Professional:
-</p><div class="orderedlist"><ol type="A"><li><p>The first &quot;wrong&quot; way:
+</ns48:p><div class="orderedlist"><ol type="A"><li xmlns:ns45=""><ns45:p>The first &quot;wrong&quot; way:
-</p><div class="orderedlist"><ol type="1"><li><p>Open the <span class="guiicon">Printers</span>
+</ns45:p><div class="orderedlist"><ol type="1"><li><p>Open the <span class="guiicon">Printers</span>
folder.</p></li><li><p>Right-click on the printer
(<span class="emphasis"><em>remoteprinter on cupshost</em></span>) and
select in context menu <span class="guimenu">Printing
Preferences...</span></p></li><li><p>Look at this dialog closely and remember what it looks
-like.</p></li></ol></div><p>
-</p></li><li><p>The second &quot;wrong&quot; way:
+like.</p></li></ol></div><ns45:p>
+</ns45:p></li><li xmlns:ns46=""><ns46:p>The second &quot;wrong&quot; way:
-</p><div class="orderedlist"><ol type="1"><li><p>Open the <span class="guimenu">Printers</span>
+</ns46:p><div class="orderedlist"><ol type="1"><li><p>Open the <span class="guimenu">Printers</span>
folder.</p></li><li><p>Right-click on the printer (<span class="emphasis"><em>remoteprinter on
cupshost</em></span>) and select in the context menu
<span class="guimenuitem">Properties</span></p></li><li><p>Click on the <span class="guilabel">General</span>
tab</p></li><li><p>Click on the button <span class="guibutton">Printing
Preferences...</span></p></li><li><p>A new dialog opens. Keep this dialog open and go back
-to the parent dialog.</p></li></ol></div><p>
-</p></li><li><p>The third, the &quot;correct&quot; way: (should you do
+to the parent dialog.</p></li></ol></div><ns46:p>
+</ns46:p></li><li xmlns:ns47=""><ns47:p>The third, the &quot;correct&quot; way: (should you do
this from the beginning, just carry out steps 1. and 2. from second
&quot;way&quot; above)
-</p><div class="orderedlist"><ol type="1"><li><p>Click on the <span class="guilabel">Advanced</span>
+</ns47:p><div class="orderedlist"><ol type="1"><li><p>Click on the <span class="guilabel">Advanced</span>
tab. (Hmmm... if everything is &quot;Grayed Out&quot;, then you are not logged
in as a user with enough privileges).</p></li><li><p>Click on the <span class="guibutton">Printing
Defaults...</span> button.</p></li><li><p>On any of the two new tabs, click on the
<span class="guilabel">Advanced...</span> button.</p></li><li><p>A new dialog opens. Compare this one to the other,
-identical looking one from &quot;B.5&quot; or A.3&quot;.</p></li></ol></div><p>
-</p></li></ol></div><p>
+identical looking one from &quot;B.5&quot; or A.3&quot;.</p></li></ol></div><ns47:p>
+</ns47:p></li></ol></div><ns48:p>
Do you see any difference in the two settings dialogs? I don't
either. However, only the last one, which you arrived at with steps
@@ -1671,7 +1672,7 @@ try the same way with Win2k or WinXP. You wouldn't dream
that there is now a different &quot;clicking path&quot; to arrive at an
identically looking, but functionally different dialog to set defaults
for all users!
-</p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>Try (on Win2000 and WinXP) to run this command (as a user
+</ns48:p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>Try (on Win2000 and WinXP) to run this command (as a user
with the right privileges):
</p><p><b class="userinput"><tt>
rundll32 printui.dll,PrintUIEntry /p /t3 /n\\<i class="replaceable"><tt>SAMBA-SERVER</tt></i>\<i class="replaceable"><tt>printersharename</tt></i>
@@ -1685,7 +1686,7 @@ to see the tab with the <span class="guilabel">Printing Preferences...</span>
button (the one which doesn't set system-wide defaults). You can
start the commands from inside a DOS box&quot; or from the <span class="guimenu">Start</span>
-- <span class="guimenuitem">Run...</span> menu.
-</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2942200"></a>Supporting large Numbers of Printers</h3></div></div><div></div></div><p>
+</p></div></div><div xmlns:ns49="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2948023"></a>Supporting large Numbers of Printers</h3></div></div><div></div></div><p>
One issue that has arisen during the recent development phase of Samba
is the need to support driver downloads for 100's of printers. Using
Windows NT APW here is somewhat awkward (to say the least). If you
@@ -1722,9 +1723,9 @@ following is an example of how this could be accomplished:
Driver Name: [myphantasydrivername]
[....]
-</pre><p>
+</pre><ns49:p>
-</p><pre class="screen">
+</ns49:p><pre class="screen">
<tt class="prompt">root# </tt><b class="userinput"><tt>rpcclient <i class="replaceable"><tt>SAMBA-CUPS</tt></i> -U root%<i class="replaceable"><tt>secret</tt></i> -c 'enumprinters'</tt></b>
cmd = enumprinters
flags:[0x800000]
@@ -1732,15 +1733,15 @@ following is an example of how this could be accomplished:
description:[\\SAMBA-CUPS\dm9110,,110ppm HiVolume DANKA Stuttgart]
comment:[110 ppm HiVolume DANKA Stuttgart]
[....]
-</pre><p>
+</pre><ns49:p>
-</p><pre class="screen">
+</ns49:p><pre class="screen">
<tt class="prompt">root# </tt><b class="userinput"><tt>rpcclient <i class="replaceable"><tt>SAMBA-CUPS</tt></i> -U root%<i class="replaceable"><tt>secret</tt></i> -c 'setdriver <i class="replaceable"><tt>dm9110</tt></i> &quot;<i class="replaceable"><tt>Heidelberg Digimaster 9110 (PS)</tt></i>&quot;'</tt></b>
cmd = setdriver dm9110 Heidelberg Digimaster 9110 (PPD)
Successfully set dm9110 to driver Heidelberg Digimaster 9110 (PS).
-</pre><p>
+</pre><ns49:p>
-</p><pre class="screen">
+</ns49:p><pre class="screen">
<tt class="prompt">root# </tt><b class="userinput"><tt>rpcclient <i class="replaceable"><tt>SAMBA-CUPS</tt></i> -U root%<i class="replaceable"><tt>secret</tt></i> -c 'enumprinters'</tt></b>
cmd = enumprinters
flags:[0x800000]
@@ -1748,15 +1749,15 @@ following is an example of how this could be accomplished:
description:[\\SAMBA-CUPS\dm9110,Heidelberg Digimaster 9110 (PS),110ppm HiVolume DANKA Stuttgart]
comment:[110ppm HiVolume DANKA Stuttgart]
[....]
-</pre><p>
+</pre><ns49:p>
-</p><pre class="screen">
+</ns49:p><pre class="screen">
<tt class="prompt">root# </tt><b class="userinput"><tt>rpcclient <i class="replaceable"><tt>SAMBA-CUPS</tt></i> -U root%<i class="replaceable"><tt>secret</tt></i> -c 'setdriver <i class="replaceable"><tt>dm9110</tt></i> <i class="replaceable"><tt>myphantasydrivername</tt></i>'</tt></b>
cmd = setdriver dm9110 myphantasydrivername
Successfully set dm9110 to myphantasydrivername.
-</pre><p>
+</pre><ns49:p>
-</p><pre class="screen">
+</ns49:p><pre class="screen">
<tt class="prompt">root# </tt><b class="userinput"><tt>rpcclient <i class="replaceable"><tt>SAMBA-CUPS</tt></i> -U root%<i class="replaceable"><tt>secret</tt></i> -c 'enumprinters'</tt></b>
cmd = enumprinters
flags:[0x800000]
@@ -1772,7 +1773,7 @@ commas in the &quot;description&quot; field). After the
<b class="command">setdriver</b> command succeeded, all is well. (The
CUPS Printing chapter has more info about the installation of printer
drivers with the help of <b class="command">rpccclient</b>).
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2942503"></a>Adding new Printers with the Windows NT APW</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2948326"></a>Adding new Printers with the Windows NT APW</h3></div></div><div></div></div><p>
By default, Samba exhibits all printer shares defined in
<tt class="filename">smb.conf</tt> in the
<span class="guiicon">Printers...</span> folder. Also located in this folder
@@ -1818,7 +1819,7 @@ user, not necessarily a root account. A <i class="parameter"><tt>map to guest =
user</tt></i> may have connected you unwittingly under the wrong
privilege; you should check it by using the
<b class="command">smbstatus</b> command.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2942746"></a>Weird Error Message <span class="errorname">Cannot connect under a
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2948569"></a>Weird Error Message <span class="errorname">Cannot connect under a
different Name</span></h3></div></div><div></div></div><p>
Once you are connected with the wrong credentials, there is no means
to reverse the situation other than to close all Explorer windows, and
@@ -1848,7 +1849,7 @@ message. You close all Explorer Windows and start it again. You try to
connect - and this times it works! Windows seems to cache connection
info somewhere and doesn't keep it up to date (if you are unlucky you
might need to reboot to get rid of the error message).
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2942844"></a>Be careful when assembling Driver Files</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2948667"></a>Be careful when assembling Driver Files</h3></div></div><div></div></div><p>
You need to be very careful when you take notes about the files and
belonging to a particular driver. Don't confuse the files for driver
version &quot;0&quot; (for Win95/98/ME, going into
@@ -1989,7 +1990,7 @@ In my example were even more differences than shown here. Conclusion:
you must be very careful to select the correct driver files for each
driver version. Don't rely on the names alone. Don't interchange files
belonging to different driver versions.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2943191"></a>Samba and Printer Ports</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2948938"></a>Samba and Printer Ports</h3></div></div><div></div></div><p>
Windows NT/2000 print servers associate a port with each
printer. These normally take the form of <tt class="filename">LPT1:</tt>,
<tt class="filename">COM1:</tt>, <tt class="filename">FILE:</tt>, etc. Samba
@@ -2010,14 +2011,14 @@ another (&#8220;<span class="quote">My users and my Boss should not know that th
working with Samba</span>&#8221;), possesses a
<i class="parameter"><tt>enumports command</tt></i> which can be used to define
an external program that generates a listing of ports on a system.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2943261"></a>Avoiding the most common Misconfigurations of the Client Driver</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2949009"></a>Avoiding the most common Misconfigurations of the Client Driver</h3></div></div><div></div></div><p>
So - printing works, but there are still problems. Most jobs print
well, some don't print at all. Some jobs have problems with fonts,
which don't look good at all. Some jobs print fast, and some are
dead-slow. We can't cover it all; but we want to encourage you to read
the little paragraph about &quot;Avoiding the wrong PostScript Driver
Settings&quot; in the CUPS Printing part of this document.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2943283"></a>The Imprints Toolset</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2949031"></a>The Imprints Toolset</h2></div></div><div></div></div><p>
The Imprints tool set provides a UNIX equivalent of the
Windows NT Add Printer Wizard. For complete information, please
refer to the Imprints web site
@@ -2034,20 +2035,20 @@ coordinate your efforts on the samba-technical mailing list. The
toolset is still in usable form; but only for a series of older
printer models, where there are prepared packages to use. Packages for
more up to date print devices are needed if Imprints should have a
-future.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2943329"></a>What is Imprints?</h3></div></div><div></div></div><p>
+future.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2949076"></a>What is Imprints?</h3></div></div><div></div></div><p>
Imprints is a collection of tools for supporting these goals:
</p><div class="itemizedlist"><ul type="disc"><li><p>Providing a central repository information regarding
Windows NT and 95/98 printer driver packages</p></li><li><p>Providing the tools necessary for creating the
Imprints printer driver packages.</p></li><li><p>Providing an installation client which will obtain
printer drivers from a central internet (or intranet) Imprints Server
repository and install them on remote Samba and Windows NT4 print
-servers.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2943370"></a>Creating Printer Driver Packages</h3></div></div><div></div></div><p>
+servers.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2949118"></a>Creating Printer Driver Packages</h3></div></div><div></div></div><p>
The process of creating printer driver packages is beyond the scope of
this document (refer to Imprints.txt also included with the Samba
distribution for more information). In short, an Imprints driver
package is a gzipped tarball containing the driver files, related INF
files, and a control file needed by the installation client.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2943389"></a>The Imprints Server</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2949137"></a>The Imprints Server</h3></div></div><div></div></div><p>
The Imprints server is really a database server that may be queried
via standard HTTP mechanisms. Each printer entry in the database has
an associated URL for the actual downloading of the package. Each
@@ -2055,7 +2056,7 @@ package is digitally signed via GnuPG which can be used to verify that
package downloaded is actually the one referred in the Imprints
database. It is strongly recommended that this security check
<span class="emphasis"><em>not</em></span> be disabled.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2943413"></a>The Installation Client</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2949161"></a>The Installation Client</h3></div></div><div></div></div><p>
More information regarding the Imprints installation client is
available in the <tt class="filename">Imprints-Client-HOWTO.ps</tt> file
included with the imprints source package.
@@ -2070,10 +2071,10 @@ remote Samba and Windows NT print servers.
</p><p>
The basic installation process is in four steps and perl code is
wrapped around smbclient and rpcclient
-</p><div class="itemizedlist"><ul type="disc"><li><p>
+</p><div class="itemizedlist"><ul type="disc"><li xmlns:ns50=""><ns50:p>
foreach (supported architecture for a given driver)
- </p><div class="orderedlist"><ol type="1"><li><p>rpcclient: Get the appropriate upload directory on the remote server</p></li><li><p>smbclient: Upload the driver files</p></li><li><p>rpcclient: Issues an AddPrinterDriver() MS-RPC</p></li></ol></div><p>
- </p></li><li><p>rpcclient: Issue an AddPrinterEx() MS-RPC to actually create the printer</p></li></ul></div><p>
+ </ns50:p><div class="orderedlist"><ol type="1"><li><p>rpcclient: Get the appropriate upload directory on the remote server</p></li><li><p>smbclient: Upload the driver files</p></li><li><p>rpcclient: Issues an AddPrinterDriver() MS-RPC</p></li></ol></div><ns50:p>
+ </ns50:p></li><li><p>rpcclient: Issue an AddPrinterEx() MS-RPC to actually create the printer</p></li></ul></div><p>
One of the problems encountered when implementing the Imprints tool
set was the name space issues between various supported client
architectures. For example, Windows NT includes a driver named &quot;Apple
@@ -2096,7 +2097,7 @@ if is has not already been installed?
The way of sidestepping this limitation is to require that all
Imprints printer driver packages include both the Intel Windows NT and
95/98 printer drivers and that NT driver is installed first.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2943566"></a>Add Network Printers at Logon without User Interaction</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2949313"></a>Add Network Printers at Logon without User Interaction</h2></div></div><div></div></div><p>
The following MS Knowledge Base article may be of some help if you
need to handle Windows 2000 clients: <span class="emphasis"><em>How to Add Printers
with No User Interaction in Windows 2000.</em></span> ( <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;189105" target="_top">http://support.microsoft.com/default.aspx?scid=kb;en-us;189105</a>
@@ -2171,7 +2172,7 @@ at logon time will not really be noticeable. Printers can be centrally
added, changed, and deleted at will on the server with no user
intervention required on the clients (you just need to keep the logon
scripts up to date).
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2943895"></a>The <b class="command">addprinter</b> command</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2949643"></a>The <b class="command">addprinter</b> command</h2></div></div><div></div></div><p>
The <b class="command">addprinter</b> command can be configured to be a
shell script or program executed by Samba. It is triggered by running
the APW from a client against the Samba print server. The APW asks the
@@ -2183,7 +2184,7 @@ on legacy systems, or execute the <b class="command">lpadmin</b> command
on more modern systems) and create the associated share in
, then the APW will in effect really
create a new printer on Samba and the UNIX print subsystem!
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2943940"></a>Migration of &quot;Classical&quot; printing to Samba-3</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2949688"></a>Migration of &quot;Classical&quot; printing to Samba-3</h2></div></div><div></div></div><p>
The basic &quot;NT-style&quot; printer driver management has not changed
considerably in 3.0 over the 2.2.x releases (apart from many small
improvements). Here migration should be quite easy, especially if you
@@ -2220,12 +2221,12 @@ rpcclient. See the Imprints installation client at:
<a href="http://imprints.sourceforge.net/" target="_top"><span class="emphasis"><em>http://imprints.sourceforge.net/</em></span></a>
</p><p>
for an example. See also the discussion of rpcclient usage in the
-&quot;CUPS Printing&quot; section.</p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2944110"></a>Publishing Printer Information in Active Directory or LDAP</h2></div></div><div></div></div><p>
+&quot;CUPS Printing&quot; section.</p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2949856"></a>Publishing Printer Information in Active Directory or LDAP</h2></div></div><div></div></div><p>
We will publish an update to this section shortly.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2944124"></a>Common Errors and Problems</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2949870"></a>Common Errors and Problems</h2></div></div><div></div></div><p>
Here are a few typical errors and problems people have
encountered. You can avoid them. Read on.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944137"></a>I give my root password but I don't get access</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2949884"></a>I give my root password but I don't get access</h3></div></div><div></div></div><p>
Don't confuse the root password which is valid for the Unix system
(and in most cases stored in the form of a one-way hash in a file
named <tt class="filename">/etc/shadow</tt>) with the password used to
@@ -2233,7 +2234,7 @@ authenticate against Samba!. Samba doesn't know the UNIX password; for
root to access Samba resources via Samba-type access, a Samba account
for root must be created first. This is often done with the
<b class="command">smbpasswd</b> command.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2944170"></a>My printjobs get spooled into the spooling directory, but then get lost</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2949917"></a>My printjobs get spooled into the spooling directory, but then get lost</h3></div></div><div></div></div><p>
Don't use the existing Unix print system spool directory for the Samba
spool directory. It may seem convenient and a saving of space, but it
only leads to problems. The two <span class="emphasis"><em>must</em></span> be separate.
diff --git a/docs/htmldocs/samba-bdc.html b/docs/htmldocs/samba-bdc.html
index 95d1cc4e5fc..76492ebcede 100644
--- a/docs/htmldocs/samba-bdc.html
+++ b/docs/htmldocs/samba-bdc.html
@@ -1,8 +1,9 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 6. Backup Domain Control</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="type.html" title="Part II. Server Configuration Basics"><link rel="previous" href="samba-pdc.html" title="Chapter 5. Domain Control"><link rel="next" href="domain-member.html" title="Chapter 7. Domain Membership"></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 6. Backup Domain Control</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="samba-pdc.html">Prev</a> </td><th width="60%" align="center">Part II. Server Configuration Basics</th><td width="20%" align="right"> <a accesskey="n" href="domain-member.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="samba-bdc"></a>Chapter 6. Backup Domain Control</h2></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Volker</span> <span class="surname">Lendecke</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:Volker.Lendecke@SerNet.DE">Volker.Lendecke@SerNet.DE</a>&gt;</tt></p></div></div></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="samba-bdc.html#id2895956">Features And Benefits</a></dt><dt><a href="samba-bdc.html#id2896128">Essential Background Information</a></dt><dd><dl><dt><a href="samba-bdc.html#id2896156">MS Windows NT4 Style Domain Control</a></dt><dt><a href="samba-bdc.html#id2896368">Active Directory Domain Control</a></dt><dt><a href="samba-bdc.html#id2896390">What qualifies a Domain Controller on the network?</a></dt><dt><a href="samba-bdc.html#id2896416">How does a Workstation find its domain controller?</a></dt></dl></dd><dt><a href="samba-bdc.html#id2896462">Backup Domain Controller Configuration</a></dt><dd><dl><dt><a href="samba-bdc.html#id2896532">Example Configuration</a></dt></dl></dd><dt><a href="samba-bdc.html#id2896591">Common Errors</a></dt><dd><dl><dt><a href="samba-bdc.html#id2896605">Machine Accounts keep expiring, what can I do?</a></dt><dt><a href="samba-bdc.html#id2896630">Can Samba be a Backup Domain Controller to an NT4 PDC?</a></dt><dt><a href="samba-bdc.html#id2896663">How do I replicate the smbpasswd file?</a></dt><dt><a href="samba-bdc.html#id2896692">Can I do this all with LDAP?</a></dt></dl></dd></dl></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 6. Backup Domain Control</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="type.html" title="Part II. Server Configuration Basics"><link rel="previous" href="samba-pdc.html" title="Chapter 5. Domain Control"><link rel="next" href="domain-member.html" title="Chapter 7. Domain Membership"></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 6. Backup Domain Control</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="samba-pdc.html">Prev</a> </td><th width="60%" align="center">Part II. Server Configuration Basics</th><td width="20%" align="right"> <a accesskey="n" href="domain-member.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="samba-bdc"></a>Chapter 6. Backup Domain Control</h2></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Volker</span> <span class="surname">Lendecke</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:Volker.Lendecke@SerNet.DE">Volker.Lendecke@SerNet.DE</a>&gt;</tt></p></div></div></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="samba-bdc.html#id2896177">Features And Benefits</a></dt><dt><a href="samba-bdc.html#id2896342">Essential Background Information</a></dt><dd><dl><dt><a href="samba-bdc.html#id2896370">MS Windows NT4 Style Domain Control</a></dt><dt><a href="samba-bdc.html#id2894331">Active Directory Domain Control</a></dt><dt><a href="samba-bdc.html#id2894352">What qualifies a Domain Controller on the network?</a></dt><dt><a href="samba-bdc.html#id2894375">How does a Workstation find its domain controller?</a></dt></dl></dd><dt><a href="samba-bdc.html#id2894401">Backup Domain Controller Configuration</a></dt><dd><dl><dt><a href="samba-bdc.html#id2894471">Example Configuration</a></dt></dl></dd><dt><a href="samba-bdc.html#id2894521">Common Errors</a></dt><dd><dl><dt><a href="samba-bdc.html#id2894535">Machine Accounts keep expiring, what can I do?</a></dt><dt><a href="samba-bdc.html#id2894560">Can Samba be a Backup Domain Controller to an NT4 PDC?</a></dt><dt><a href="samba-bdc.html#id2894593">How do I replicate the smbpasswd file?</a></dt><dt><a href="samba-bdc.html#id2894621">Can I do this all with LDAP?</a></dt></dl></dd></dl></div><p>
Before you continue reading in this section, please make sure that you are comfortable
with configuring a Samba Domain Controller as described in the
<a href="Samba-PDC-HOWTO.html" target="_top">Domain Control Chapter</a>.
-</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2895956"></a>Features And Benefits</h2></div></div><div></div></div><p>
+</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2896177"></a>Features And Benefits</h2></div></div><div></div></div><p>
This is one of the most difficult chapters to summarise. It matters not what we say here
for someone will still draw conclusions and / or approach the Samba-Team with expectations
that are either not yet capable of being delivered, or that can be achieved for more
@@ -63,7 +64,7 @@ lets consider each possible option and look at the pro's and con's for each theo
Arguments Against: All machine trust accounts and user accounts will be locally
maintained. Domain users will NOT be able to roam from office to office. This is
a broken and flawed solution. Do NOT do this.
- </p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2896128"></a>Essential Background Information</h2></div></div><div></div></div><p>
+ </p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2896342"></a>Essential Background Information</h2></div></div><div></div></div><p>
A Domain Controller is a machine that is able to answer logon requests from network
workstations. Microsoft LanManager and IBM LanServer were two early products that
provided this capability. The technology has become known as the LanMan Netlogon service.
@@ -73,7 +74,7 @@ and with it a new form of the network logon service that has extended functional
This service became known as the NT NetLogon Service. The nature of this service has
changed with the evolution of MS Windows NT and today provides a very complex array of
services that are implemented over a complex spectrum of technologies.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896156"></a>MS Windows NT4 Style Domain Control</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896370"></a>MS Windows NT4 Style Domain Control</h3></div></div><div></div></div><p>
Whenever a user logs into a Windows NT4 / 200x / XP Profresional Workstation,
the workstation connects to a Domain Controller (authentication server) to validate
the username and password that the user entered are valid. If the information entered
@@ -131,7 +132,7 @@ one of the BDCs can be promoted to a PDC. If this happens while the original PDC
line then it is automatically demoted to a BDC. This is an important aspect of Domain
Controller management. The tool that is used to affect a promotion or a demotion is the
Server Manager for Domains.
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2896305"></a>Example PDC Configuration</h4></div></div><div></div></div><p>
+</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2894268"></a>Example PDC Configuration</h4></div></div><div></div></div><p>
Since version 2.2 Samba officially supports domain logons for all current Windows Clients,
including Windows NT4, 2003 and XP Professional. For samba to be enabled as a PDC some
parameters in the <i class="parameter"><tt>[global]</tt></i>-section of the <tt class="filename">smb.conf</tt> have to be set:
@@ -143,20 +144,20 @@ parameters in the <i class="parameter"><tt>[global]</tt></i>-section of the <tt
Several other things like a <i class="parameter"><tt>[homes]</tt></i> and a <i class="parameter"><tt>[netlogon]</tt></i> share also need to be set along with
settings for the profile path, the users home drive, etc.. This will not be covered in this
chapter, for more information please refer to the chapter on Domain Control.
-</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896368"></a>Active Directory Domain Control</h3></div></div><div></div></div><p>
+</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894331"></a>Active Directory Domain Control</h3></div></div><div></div></div><p>
As of the release of MS Windows 2000 and Active Directory, this information is now stored
in a directory that can be replicated and for which partial or full administrative control
can be delegated. Samba-3 is NOT able to be a Domain Controller within an Active Directory
tree, and it can not be an Active Directory server. This means that Samba-3 also can NOT
act as a Backup Domain Contoller to an Active Directory Domain Controller.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896390"></a>What qualifies a Domain Controller on the network?</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894352"></a>What qualifies a Domain Controller on the network?</h3></div></div><div></div></div><p>
Every machine that is a Domain Controller for the domain SAMBA has to register the NetBIOS
group name SAMBA&lt;#1c&gt; with the WINS server and/or by broadcast on the local network.
The PDC also registers the unique NetBIOS name SAMBA&lt;#1b&gt; with the WINS server.
The name type &lt;#1b&gt; name is normally reserved for the Domain Master Browser, a role
that has nothing to do with anything related to authentication, but the Microsoft Domain
implementation requires the domain master browser to be on the same machine as the PDC.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896416"></a>How does a Workstation find its domain controller?</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894375"></a>How does a Workstation find its domain controller?</h3></div></div><div></div></div><p>
An MS Windows NT4 / 200x / XP Professional workstation in the domain SAMBA that wants a
local user to be authenticated has to find the domain controller for SAMBA. It does this
by doing a NetBIOS name query for the group name SAMBA&lt;#1c&gt;. It assumes that each
@@ -164,7 +165,7 @@ of the machines it gets back from the queries is a domain controller and can ans
requests. To not open security holes both the workstation and the selected domain controller
authenticate each other. After that the workstation sends the user's credentials (name and
password) to the local Domain Controller, for valdation.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2896462"></a>Backup Domain Controller Configuration</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2894401"></a>Backup Domain Controller Configuration</h2></div></div><div></div></div><p>
Several things have to be done:
</p><div class="itemizedlist"><ul type="disc"><li><p>
The domain SID has to be the same on the PDC and the BDC. This used to
@@ -193,7 +194,7 @@ Several things have to be done:
BDC. This can be done manually whenever login scripts are changed,
or it can be done automatically together with the smbpasswd
synchronization.
- </p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896532"></a>Example Configuration</h3></div></div><div></div></div><p>
+ </p></li></ul></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894471"></a>Example Configuration</h3></div></div><div></div></div><p>
Finally, the BDC has to be found by the workstations. This can be done by setting:
</p><pre class="programlisting">
workgroup = SAMBA
@@ -206,10 +207,10 @@ problem as the name SAMBA&lt;#1c&gt; is a NetBIOS group name that is meant to
be registered by more than one machine. The parameter 'domain master =
no' forces the BDC not to register SAMBA&lt;#1b&gt; which as a unique NetBIOS
name is reserved for the Primary Domain Controller.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2896591"></a>Common Errors</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2894521"></a>Common Errors</h2></div></div><div></div></div><p>
As this is a rather new area for Samba there are not many examples that we may refer to. Keep
watching for updates to this section.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896605"></a>Machine Accounts keep expiring, what can I do?</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894535"></a>Machine Accounts keep expiring, what can I do?</h3></div></div><div></div></div><p>
This problem will occur when occur when the passdb (SAM) files are copied from a central
server but the local Backup Domain Controllers. Local machine trust account password updates
are not copied back to the central server. The newer machine account password is then over
@@ -217,7 +218,7 @@ written when the SAM is copied from the PDC. The result is that the Domain membe
on start up will find that it's passwords does not match the one now in the database and
since the startup security check will now fail, this machine will not allow logon attempts
to procede and the account expiry error will be reported.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896630"></a>Can Samba be a Backup Domain Controller to an NT4 PDC?</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894560"></a>Can Samba be a Backup Domain Controller to an NT4 PDC?</h3></div></div><div></div></div><p>
With version 2.2, no. The native NT4 SAM replication protocols have not yet been fully
implemented. The Samba Team is working on understanding and implementing the protocols,
but this work has not been finished for version 2.2.
@@ -228,7 +229,7 @@ mechanism has progressed, and some form of NT4 BDC support is expected soon.
Can I get the benefits of a BDC with Samba? Yes. The main reason for implementing a
BDC is availability. If the PDC is a Samba machine, a second Samba machine can be set up to
service logon requests whenever the PDC is down.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896663"></a>How do I replicate the smbpasswd file?</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894593"></a>How do I replicate the smbpasswd file?</h3></div></div><div></div></div><p>
Replication of the smbpasswd file is sensitive. It has to be done whenever changes
to the SAM are made. Every user's password change is done in the smbpasswd file and
has to be replicated to the BDC. So replicating the smbpasswd file very often is necessary.
@@ -238,7 +239,7 @@ sent unencrypted over the wire. The best way to set up smbpasswd replication fro
the PDC to the BDC is to use the utility rsync. rsync can use ssh as a transport.
Ssh itself can be set up to accept *only* rsync transfer without requiring the user
to type a password.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2896692"></a>Can I do this all with LDAP?</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894621"></a>Can I do this all with LDAP?</h3></div></div><div></div></div><p>
The simple answer is YES. Samba's pdb_ldap code supports binding to a replica
LDAP server, and will also follow referrals and rebind to the master if it ever
needs to make a modification to the database. (Normally BDCs are read only, so
diff --git a/docs/htmldocs/samba-pdc.html b/docs/htmldocs/samba-pdc.html
index 65c39d93998..ad9f024ccea 100644
--- a/docs/htmldocs/samba-pdc.html
+++ b/docs/htmldocs/samba-pdc.html
@@ -1,8 +1,9 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 5. Domain Control</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="type.html" title="Part II. Server Configuration Basics"><link rel="previous" href="ServerType.html" title="Chapter 4. Server Types and Security Modes"><link rel="next" href="samba-bdc.html" title="Chapter 6. Backup Domain Control"></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. Domain Control</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ServerType.html">Prev</a> </td><th width="60%" align="center">Part II. Server Configuration Basics</th><td width="20%" align="right"> <a accesskey="n" href="samba-bdc.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="samba-pdc"></a>Chapter 5. Domain Control</h2></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Gerald</span> <span class="othername">(Jerry)</span> <span class="surname">Carter</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jerry@samba.org">jerry@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">David</span> <span class="surname">Bannon</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:dbannon@samba.org">dbannon@samba.org</a>&gt;</tt></p></div></div></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="samba-pdc.html#id2891927">Features and Benefits</a></dt><dt><a href="samba-pdc.html#id2892230">Basics of Domain Control</a></dt><dd><dl><dt><a href="samba-pdc.html#id2892246">Domain Controller Types</a></dt><dt><a href="samba-pdc.html#id2892458">Preparing for Domain Control</a></dt></dl></dd><dt><a href="samba-pdc.html#id2892778">Domain Control - Example Configuration</a></dt><dt><a href="samba-pdc.html#id2893076">Samba ADS Domain Control</a></dt><dt><a href="samba-pdc.html#id2893098">Domain and Network Logon Configuration</a></dt><dd><dl><dt><a href="samba-pdc.html#id2893113">Domain Network Logon Service</a></dt><dt><a href="samba-pdc.html#id2893441">Security Mode and Master Browsers</a></dt></dl></dd><dt><a href="samba-pdc.html#id2893548">Common Problems and Errors</a></dt><dd><dl><dt><a href="samba-pdc.html#id2893555">I cannot include a '$' in a machine name</a></dt><dt><a href="samba-pdc.html#id2893594">I get told &quot;You already have a connection to the Domain....&quot;
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 5. Domain Control</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="type.html" title="Part II. Server Configuration Basics"><link rel="previous" href="ServerType.html" title="Chapter 4. Server Types and Security Modes"><link rel="next" href="samba-bdc.html" title="Chapter 6. Backup Domain Control"></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. Domain Control</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ServerType.html">Prev</a> </td><th width="60%" align="center">Part II. Server Configuration Basics</th><td width="20%" align="right"> <a accesskey="n" href="samba-bdc.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="samba-pdc"></a>Chapter 5. Domain Control</h2></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Gerald</span> <span class="othername">(Jerry)</span> <span class="surname">Carter</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:jerry@samba.org">jerry@samba.org</a>&gt;</tt></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">David</span> <span class="surname">Bannon</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:dbannon@samba.org">dbannon@samba.org</a>&gt;</tt></p></div></div></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="samba-pdc.html#id2892606">Features and Benefits</a></dt><dt><a href="samba-pdc.html#id2890204">Basics of Domain Control</a></dt><dd><dl><dt><a href="samba-pdc.html#id2890219">Domain Controller Types</a></dt><dt><a href="samba-pdc.html#id2890419">Preparing for Domain Control</a></dt></dl></dd><dt><a href="samba-pdc.html#id2890733">Domain Control - Example Configuration</a></dt><dt><a href="samba-pdc.html#id2891029">Samba ADS Domain Control</a></dt><dt><a href="samba-pdc.html#id2891052">Domain and Network Logon Configuration</a></dt><dd><dl><dt><a href="samba-pdc.html#id2891067">Domain Network Logon Service</a></dt><dt><a href="samba-pdc.html#id2893786">Security Mode and Master Browsers</a></dt></dl></dd><dt><a href="samba-pdc.html#id2893891">Common Problems and Errors</a></dt><dd><dl><dt><a href="samba-pdc.html#id2893898">I cannot include a '$' in a machine name</a></dt><dt><a href="samba-pdc.html#id2893936">I get told &quot;You already have a connection to the Domain....&quot;
or &quot;Cannot join domain, the credentials supplied conflict with an
-existing set..&quot; when creating a machine trust account.</a></dt><dt><a href="samba-pdc.html#id2893643">The system can not log you on (C000019B)....</a></dt><dt><a href="samba-pdc.html#id2893714">The machine trust account for this computer either does not
-exist or is not accessible.</a></dt><dt><a href="samba-pdc.html#id2893771">When I attempt to login to a Samba Domain from a NT4/W2K workstation,
-I get a message about my account being disabled.</a></dt><dt><a href="samba-pdc.html#id2893798">Until a few minutes after Samba has started, clients get the error &quot;Domain Controller Unavailable&quot;</a></dt></dl></dd></dl></div><p><b><span class="emphasis"><em>The Essence of Learning:</em></span> </b>
+existing set..&quot; when creating a machine trust account.</a></dt><dt><a href="samba-pdc.html#id2893986">The system can not log you on (C000019B)....</a></dt><dt><a href="samba-pdc.html#id2894057">The machine trust account for this computer either does not
+exist or is not accessible.</a></dt><dt><a href="samba-pdc.html#id2894114">When I attempt to login to a Samba Domain from a NT4/W2K workstation,
+I get a message about my account being disabled.</a></dt><dt><a href="samba-pdc.html#id2894140">Until a few minutes after Samba has started, clients get the error &quot;Domain Controller Unavailable&quot;</a></dt></dl></dd></dl></div><p><b><span class="emphasis"><em>The Essence of Learning:</em></span> </b>
There are many who approach MS Windows networking with incredible misconceptions.
That's OK, because it gives the rest of us plenty of opportunity to be of assistance.
Those who really want help would be well advised to become familiar with information
@@ -32,7 +33,7 @@ burden on an organisation.
Where is the right place to make mistakes? Only out of harm's way! If you are going to
make mistakes, then please do this on a test network, away from users and in such a way as
to not inflict pain on others. Do your learning on a test network.
-</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891927"></a>Features and Benefits</h2></div></div><div></div></div><p>
+</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2892606"></a>Features and Benefits</h2></div></div><div></div></div><p>
<span class="emphasis"><em>What is the key benefit of Microsoft Domain security?</em></span>
</p><p>
In a word, <span class="emphasis"><em>Single Sign On</em></span>, or SSO for short. To many, this is the holy
@@ -130,11 +131,11 @@ per user settings for many parameters, over-riding global settings given in the
Thus, with samba-3 it is possible to have a default system configuration for profiles,
and on a per user basis to over-ride this for those users who should not be subject
to the default configuration.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2892230"></a>Basics of Domain Control</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890204"></a>Basics of Domain Control</h2></div></div><div></div></div><p>
Over the years, public perceptions of what Domain Control really is has taken on an
almost mystical nature. Before we branch into a brief overview of Domain Control,
there are three basic types of domain controllers:
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2892246"></a>Domain Controller Types</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Primary Domain Controller</p></li><li><p>Backup Domain Controller</p></li><li><p>ADS Domain Controller</p></li></ul></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2890219"></a>Domain Controller Types</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Primary Domain Controller</p></li><li><p>Backup Domain Controller</p></li><li><p>ADS Domain Controller</p></li></ul></div><p>
The <span class="emphasis"><em>Primary Domain Controller</em></span> or PDC plays an important role in the MS
Windows NT4 and Windows 200x Domain Control architecture, but not in the manner that so many
expect. There is folk lore that dictates that because of it's role in the MS Windows
@@ -186,7 +187,7 @@ At this time any appearance that Samba-3 is capable of acting as an
This functionality should not be used until the Samba-Team offers formal support for it.
At such a time, the documentation will be revised to duly reflect all configuration and
management requirements.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2892458"></a>Preparing for Domain Control</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2890419"></a>Preparing for Domain Control</h3></div></div><div></div></div><p>
There are two ways that MS Windows machines may interact with each other, with other servers,
and with Domain Controllers: Either as <span class="emphasis"><em>Stand-Alone</em></span> systems, more commonly
called <span class="emphasis"><em>Workgroup</em></span> members, or as full participants in a security system,
@@ -247,7 +248,7 @@ domain/workgroup. Local master browsers in the same domain/workgroup on broadcas
then ask for a complete copy of the browse list for the whole wide area network. Browser clients
will then contact their local master browser, and will receive the domain-wide browse list,
instead of just the list for their broadcast-isolated subnet.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2892778"></a>Domain Control - Example Configuration</h2></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2890733"></a>Domain Control - Example Configuration</h2></div></div><div></div></div><p>
The first step in creating a working Samba PDC is to understand the parameters necessary
in <tt class="filename">smb.conf</tt>. Here we attempt to explain the parameters that are covered in
the <tt class="filename">smb.conf</tt> man page.
@@ -301,20 +302,20 @@ Here is an example <tt class="filename">smb.conf</tt> for acting as a PDC:
<a href="smb.conf.5.html#READONLY" target="_top">read only</a> = no
<a href="smb.conf.5.html#CREATEMASK" target="_top">create mask</a> = 0600
<a href="smb.conf.5.html#DIRECTORYMASK" target="_top">directory mask</a> = 0700
-</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+</pre><div xmlns:ns5="" class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><ns5:p>
The above parameters make for a full set of parameters that may define the server's mode
of operation. The following parameters are the essentials alone:
-</p><pre class="programlisting">
+</ns5:p><pre class="programlisting">
workgroup = NARNIA
domain logons = Yes
domain master = Yes
security = User
-</pre><p>
+</pre><ns5:p>
The additional parameters shown in the longer listing above just makes for a
more complete environment.
-</p></div><p>
+</ns5:p></div><p>
There are a couple of points to emphasize in the above configuration.
</p><div class="itemizedlist"><ul type="disc"><li><p>
Encrypted passwords must be enabled. For more details on how
@@ -327,22 +328,22 @@ There are a couple of points to emphasize in the above configuration.
client to locate the server as a DC. Please refer to the various
Network Browsing documentation included with this distribution for
details.
- </p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2893076"></a>Samba ADS Domain Control</h2></div></div><div></div></div><p>
+ </p></li></ul></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891029"></a>Samba ADS Domain Control</h2></div></div><div></div></div><p>
Samba-3 is not and can not act as an Active Directory Server. It can not truly function as
an Active Directory Primary Domain Controller. The protocols for some of the functionality
the Active Directory Domain Controllers is have been partially implemented on an experimental
only basis. Please do NOT expect Samba-3 to support these protocols - nor should you depend
on any such functionality either now or in the future. The Samba-Team may well remove such
experiemental features or may change their behaviour.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2893098"></a>Domain and Network Logon Configuration</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2891052"></a>Domain and Network Logon Configuration</h2></div></div><div></div></div><p>
The subject of Network or Domain Logons is discussed here because it rightly forms
an integral part of the essential functionality that is provided by a Domain Controller.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893113"></a>Domain Network Logon Service</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2891067"></a>Domain Network Logon Service</h3></div></div><div></div></div><p>
All Domain Controllers must run the netlogon service (<span class="emphasis"><em>domain logons</em></span>
in Samba). One Domain Controller must be configured with <i class="parameter"><tt>domain master = Yes</tt></i>
(the Primary Domain Controller); on ALL Backup Domain Controllers <i class="parameter"><tt>domain master = No</tt></i>
must be set.
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2893146"></a>Example Configuration</h4></div></div><div></div></div><pre class="programlisting">
+</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2891100"></a>Example Configuration</h4></div></div><div></div></div><pre class="programlisting">
[globals]
domain logons = Yes
domain master = (Yes on PDC, No on BDCs)
@@ -352,7 +353,7 @@ must be set.
path = /var/lib/samba/netlogon
guest ok = Yes
browseable = No
-</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2893167"></a>The Special Case of MS Windows XP Home Edition</h4></div></div><div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2891119"></a>The Special Case of MS Windows XP Home Edition</h4></div></div><div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
MS Windows XP Home Edition does not have the ability to join any type of Domain
security facility. Unlike, MS Windows 9x / Me, MS Windows XP Home Edition also completely
lacks the ability to log onto a network.
@@ -364,7 +365,7 @@ MS Windows XP Professional.
</p><p>
Now that this has been said, please do NOT ask the mailing list, or email any of the
Samba-Team members with your questions asking how to make this work. It can't be done.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2893201"></a>The Special Case of Windows 9x / Me</h4></div></div><div></div></div><p>
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2891154"></a>The Special Case of Windows 9x / Me</h4></div></div><div></div></div><p>
A domain and a workgroup are exactly the same thing in terms of network
browsing. The difference is that a distributable authentication
database is associated with a domain, for secure login access to a
@@ -444,7 +445,7 @@ The main difference between a PDC and a Windows 9x logon server configuration is
</p></li></ul></div><p>
A Samba PDC will act as a Windows 9x logon server; after all, it does provide the
network logon services that MS Windows 9x / Me expect to find.
-</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893441"></a>Security Mode and Master Browsers</h3></div></div><div></div></div><p>
+</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893786"></a>Security Mode and Master Browsers</h3></div></div><div></div></div><p>
There are a few comments to make in order to tie up some
loose ends. There has been much debate over the issue of whether
or not it is ok to configure Samba as a Domain Controller in security
@@ -478,7 +479,7 @@ Configuring a Samba box as a DC for a domain that already by definition has a
PDC is asking for trouble. Therefore, you should always configure the Samba DC
to be the DMB for its domain and set <i class="parameter"><tt>security = user</tt></i>.
This is the only officially supported mode of operation.
-</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2893548"></a>Common Problems and Errors</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893555"></a>I cannot include a '$' in a machine name</h3></div></div><div></div></div><p>
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2893891"></a>Common Problems and Errors</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893898"></a>I cannot include a '$' in a machine name</h3></div></div><div></div></div><p>
A 'machine account', (typically) stored in <tt class="filename">/etc/passwd</tt>,
takes the form of the machine name with a '$' appended. FreeBSD (and other BSD
systems?) won't create a user with a '$' in their name.
@@ -486,7 +487,7 @@ systems?) won't create a user with a '$' in their name.
The problem is only in the program used to make the entry. Once made, it works perfectly.
Create a user without the '$'. Then use <b class="command">vipw</b> to edit the entry, adding
the '$'. Or create the whole entry with vipw if you like; make sure you use a unique User ID!
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893594"></a>I get told &quot;You already have a connection to the Domain....&quot;
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893936"></a>I get told &quot;You already have a connection to the Domain....&quot;
or &quot;Cannot join domain, the credentials supplied conflict with an
existing set..&quot; when creating a machine trust account.</h3></div></div><div></div></div><p>
This happens if you try to create a machine trust account from the
@@ -500,7 +501,7 @@ Further, if the machine is already a 'member of a workgroup' that
is the same name as the domain you are joining (bad idea) you will
get this message. Change the workgroup name to something else, it
does not matter what, reboot, and try again.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893643"></a>The system can not log you on (C000019B)....</h3></div></div><div></div></div><p>I joined the domain successfully but after upgrading
+</p></div><div xmlns:ns6="" class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893986"></a>The system can not log you on (C000019B)....</h3></div></div><div></div></div><p>I joined the domain successfully but after upgrading
to a newer version of the Samba code I get the message, <span class="errorname">The system
can not log you on (C000019B), Please try again or consult your
system administrator</span> when attempting to logon.
@@ -511,14 +512,14 @@ the domain name and/or the server name (NetBIOS name) is changed.
The only way to correct the problem is to restore the original domain
SID or remove the domain client from the domain and rejoin. The domain
SID may be reset using either the net or rpcclient utilities.
-</p><p>
+</p><ns6:p>
The reset or change the domain SID you can use the net command as follows:
-</p><pre class="screen">
+</ns6:p><pre class="screen">
<tt class="prompt">root# </tt><b class="userinput"><tt>net getlocalsid 'OLDNAME'</tt></b>
<tt class="prompt">root# </tt><b class="userinput"><tt>net setlocalsid 'SID'</tt></b>
-</pre><p>
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893714"></a>The machine trust account for this computer either does not
+</pre><ns6:p>
+</ns6:p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894057"></a>The machine trust account for this computer either does not
exist or is not accessible.</h3></div></div><div></div></div><p>
When I try to join the domain I get the message <span class="errorname">The machine account
for this computer either does not exist or is not accessible</span>. What's
@@ -541,10 +542,10 @@ Some people have also reported
that inconsistent subnet masks between the Samba server and the NT
client can cause this problem. Make sure that these are consistent
for both client and server.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893771"></a>When I attempt to login to a Samba Domain from a NT4/W2K workstation,
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894114"></a>When I attempt to login to a Samba Domain from a NT4/W2K workstation,
I get a message about my account being disabled.</h3></div></div><div></div></div><p>
Enable the user accounts with <b class="userinput"><tt>smbpasswd -e <i class="replaceable"><tt>username</tt></i>
</tt></b>, this is normally done as an account is created.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2893798"></a>Until a few minutes after Samba has started, clients get the error &quot;Domain Controller Unavailable&quot;</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2894140"></a>Until a few minutes after Samba has started, clients get the error &quot;Domain Controller Unavailable&quot;</h3></div></div><div></div></div><p>
A domain controller has to announce on the network who it is. This usually takes a while.
</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ServerType.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="type.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="samba-bdc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. Server Types and Security Modes </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 6. Backup Domain Control</td></tr></table></div></body></html>
diff --git a/docs/htmldocs/smb.conf.5.html b/docs/htmldocs/smb.conf.5.html
index c154347a865..9c01b5de560 100644
--- a/docs/htmldocs/smb.conf.5.html
+++ b/docs/htmldocs/smb.conf.5.html
@@ -244,8 +244,2884 @@ alias|alias|alias|alias...
connection is made as the username given in the &quot;guest
account =&quot; for the service, irrespective of the
supplied password.</p></li></ol></div></div><div class="refsect1" lang="en"><h2>COMPLETE LIST OF GLOBAL PARAMETERS</h2><p>Here is a list of all global parameters. See the section of
- each parameter for details. Note that some are synonyms.</p><div class="itemizedlist"><ul type="disc"></ul></div></div><div class="refsect1" lang="en"><h2>COMPLETE LIST OF SERVICE PARAMETERS</h2><p>Here is a list of all service parameters. See the section on
- each parameter for details. Note that some are synonyms.</p><div class="itemizedlist"><ul type="disc"></ul></div></div><div class="refsect1" lang="en"><h2>EXPLANATION OF EACH PARAMETER</h2><div class="variablelist"><dl></dl></div></div><div class="refsect1" lang="en"><h2>WARNINGS</h2><p>Although the configuration file permits service names
+ each parameter for details. Note that some are synonyms.</p><div class="itemizedlist"><ul type="disc"><li><p><a href="#ABORTSHUTDOWNSCRIPT"><i class="parameter"><tt>abort shutdown script</tt></i></a></p></li><li><p><a href="#ADDGROUPSCRIPT"><i class="parameter"><tt>add group script</tt></i></a></p></li><li><p><a href="#ADDMACHINESCRIPT"><i class="parameter"><tt>add machine script</tt></i></a></p></li><li><p><a href="#ADDPRINTERCOMMAND"><i class="parameter"><tt>addprinter command</tt></i></a></p></li><li><p><a href="#ADDSHARECOMMAND"><i class="parameter"><tt>add share command</tt></i></a></p></li><li><p><a href="#ADDUSERSCRIPT"><i class="parameter"><tt>add user script</tt></i></a></p></li><li><p><a href="#ADDUSERTOGROUPSCRIPT"><i class="parameter"><tt>add user to group script</tt></i></a></p></li><li><p><a href="#ADSSERVER"><i class="parameter"><tt>ads server</tt></i></a></p></li><li><p><a href="#ALGORITHMICRIDBASE"><i class="parameter"><tt>algorithmic rid base</tt></i></a></p></li><li><p><a href="#ALLOWTRUSTEDDOMAINS"><i class="parameter"><tt>allow trusted domains</tt></i></a></p></li><li><p><a href="#ANNOUNCEAS"><i class="parameter"><tt>announce as</tt></i></a></p></li><li><p><a href="#ANNOUNCEVERSION"><i class="parameter"><tt>announce version</tt></i></a></p></li><li><p><a href="#AUTHMETHODS"><i class="parameter"><tt>auth methods</tt></i></a></p></li><li><p><a href="#AUTOSERVICES"><i class="parameter"><tt>auto services</tt></i></a></p></li><li><p><a href="#BINDINTERFACESONLY"><i class="parameter"><tt>bind interfaces only</tt></i></a></p></li><li><p><a href="#BROWSELIST"><i class="parameter"><tt>browse list</tt></i></a></p></li><li><p><a href="#CHANGENOTIFYTIMEOUT"><i class="parameter"><tt>change notify timeout</tt></i></a></p></li><li><p><a href="#CHANGESHARECOMMAND"><i class="parameter"><tt>change share command</tt></i></a></p></li><li><p><a href="#CONFIGFILE"><i class="parameter"><tt>config file</tt></i></a></p></li><li><p><a href="#DEADTIME"><i class="parameter"><tt>dead time</tt></i></a></p></li><li><p><a href="#DEBUGHIRESTIMESTAMP"><i class="parameter"><tt>debug hires timestamp</tt></i></a></p></li><li><p><a href="#DEBUGLEVEL"><i class="parameter"><tt>debug level</tt></i></a></p></li><li><p><a href="#DEBUGPID"><i class="parameter"><tt>debug pid</tt></i></a></p></li><li><p><a href="#DEBUGTIMESTAMP"><i class="parameter"><tt>debug timestamp</tt></i></a></p></li><li><p><a href="#DEBUGUID"><i class="parameter"><tt>debug uid</tt></i></a></p></li><li><p><a href="#DEFAULT"><i class="parameter"><tt>default</tt></i></a></p></li><li><p><a href="#DEFAULTSERVICE"><i class="parameter"><tt>default service</tt></i></a></p></li><li><p><a href="#DELETEGROUPSCRIPT"><i class="parameter"><tt>delete group script</tt></i></a></p></li><li><p><a href="#DELETEPRINTERCOMMAND"><i class="parameter"><tt>deleteprinter command</tt></i></a></p></li><li><p><a href="#DELETESHARECOMMAND"><i class="parameter"><tt>delete share command</tt></i></a></p></li><li><p><a href="#DELETEUSERFROMGROUPSCRIPT"><i class="parameter"><tt>delete user from group script</tt></i></a></p></li><li><p><a href="#DELETEUSERSCRIPT"><i class="parameter"><tt>delete user script</tt></i></a></p></li><li><p><a href="#DFREECOMMAND"><i class="parameter"><tt>dfree command</tt></i></a></p></li><li><p><a href="#DISABLENETBIOS"><i class="parameter"><tt>disable netbios</tt></i></a></p></li><li><p><a href="#DISABLESPOOLSS"><i class="parameter"><tt>disable spoolss</tt></i></a></p></li><li><p><a href="#DISPLAYCHARSET"><i class="parameter"><tt>display charset</tt></i></a></p></li><li><p><a href="#DNSPROXY"><i class="parameter"><tt>dns proxy</tt></i></a></p></li><li><p><a href="#DOMAINLOGONS"><i class="parameter"><tt>domain logons</tt></i></a></p></li><li><p><a href="#DOMAINMASTER"><i class="parameter"><tt>domain master</tt></i></a></p></li><li><p><a href="#DOSCHARSET"><i class="parameter"><tt>dos charset</tt></i></a></p></li><li><p><a href="#ENCRYPTPASSWORDS"><i class="parameter"><tt>encrypt passwords</tt></i></a></p></li><li><p><a href="#ENHANCEDBROWSING"><i class="parameter"><tt>enhanced browsing</tt></i></a></p></li><li><p><a href="#ENUMPORTSCOMMAND"><i class="parameter"><tt>enumports command</tt></i></a></p></li><li><p><a href="#GETWDCACHE"><i class="parameter"><tt>getwd cache</tt></i></a></p></li><li><p><a href="#GUESTACCOUNT"><i class="parameter"><tt>guest account</tt></i></a></p></li><li><p><a href="#HIDELOCALUSERS"><i class="parameter"><tt>hide local users</tt></i></a></p></li><li><p><a href="#HOMEDIRMAP"><i class="parameter"><tt>homedir map</tt></i></a></p></li><li><p><a href="#HOSTMSDFS"><i class="parameter"><tt>host msdfs</tt></i></a></p></li><li><p><a href="#HOSTNAMELOOKUPS"><i class="parameter"><tt>hostname lookups</tt></i></a></p></li><li><p><a href="#HOSTSEQUIV"><i class="parameter"><tt>hosts equiv</tt></i></a></p></li><li><p><a href="#INCLUDE"><i class="parameter"><tt>include</tt></i></a></p></li><li><p><a href="#INTERFACES"><i class="parameter"><tt>interfaces</tt></i></a></p></li><li><p><a href="#KEEPALIVE"><i class="parameter"><tt>keepalive</tt></i></a></p></li><li><p><a href="#KERNELOPLOCKS"><i class="parameter"><tt>kernel oplocks</tt></i></a></p></li><li><p><a href="#LANMANAUTH"><i class="parameter"><tt>lanman auth</tt></i></a></p></li><li><p><a href="#LARGEREADWRITE"><i class="parameter"><tt>large readwrite</tt></i></a></p></li><li><p><a href="#LDAPADMINDN"><i class="parameter"><tt>ldap admin dn</tt></i></a></p></li><li><p><a href="#LDAPDELETEDN"><i class="parameter"><tt>ldap delete dn</tt></i></a></p></li><li><p><a href="#LDAPFILTER"><i class="parameter"><tt>ldap filter</tt></i></a></p></li><li><p><a href="#LDAPMACHINESUFFIX"><i class="parameter"><tt>ldap machine suffix</tt></i></a></p></li><li><p><a href="#LDAPPASSWDSYNC"><i class="parameter"><tt>ldap passwd sync</tt></i></a></p></li><li><p><a href="#LDAPPORT"><i class="parameter"><tt>ldap port</tt></i></a></p></li><li><p><a href="#LDAPSERVER"><i class="parameter"><tt>ldap server</tt></i></a></p></li><li><p><a href="#LDAPSSL"><i class="parameter"><tt>ldap ssl</tt></i></a></p></li><li><p><a href="#LDAPSUFFIX"><i class="parameter"><tt>ldap suffix</tt></i></a></p></li><li><p><a href="#LDAPTRUSTIDS"><i class="parameter"><tt>ldap trust ids</tt></i></a></p></li><li><p><a href="#LDAPUSERSUFFIX"><i class="parameter"><tt>ldap user suffix</tt></i></a></p></li><li><p><a href="#LMANNOUNCE"><i class="parameter"><tt>lm announce</tt></i></a></p></li><li><p><a href="#LMINTERVAL"><i class="parameter"><tt>lm interval</tt></i></a></p></li><li><p><a href="#LOADPRINTERS"><i class="parameter"><tt>load printers</tt></i></a></p></li><li><p><a href="#LOCALMASTER"><i class="parameter"><tt>local master</tt></i></a></p></li><li><p><a href="#LOCKDIR"><i class="parameter"><tt>lock dir</tt></i></a></p></li><li><p><a href="#LOCKDIRECTORY"><i class="parameter"><tt>lock directory</tt></i></a></p></li><li><p><a href="#LOCKSPINCOUNT"><i class="parameter"><tt>lock spin count</tt></i></a></p></li><li><p><a href="#LOCKSPINTIME"><i class="parameter"><tt>lock spin time</tt></i></a></p></li><li><p><a href="#LOGFILE"><i class="parameter"><tt>log file</tt></i></a></p></li><li><p><a href="#LOGLEVEL"><i class="parameter"><tt>log level</tt></i></a></p></li><li><p><a href="#LOGONDRIVE"><i class="parameter"><tt>logon drive</tt></i></a></p></li><li><p><a href="#LOGONHOME"><i class="parameter"><tt>logon home</tt></i></a></p></li><li><p><a href="#LOGONPATH"><i class="parameter"><tt>logon path</tt></i></a></p></li><li><p><a href="#LOGONSCRIPT"><i class="parameter"><tt>logon script</tt></i></a></p></li><li><p><a href="#LPQCACHETIME"><i class="parameter"><tt>lpq cache time</tt></i></a></p></li><li><p><a href="#MACHINEPASSWORDTIMEOUT"><i class="parameter"><tt>machine password timeout</tt></i></a></p></li><li><p><a href="#MANGLINGSTACK"><i class="parameter"><tt>mangling stack</tt></i></a></p></li><li><p><a href="#MANGLINGPREFIX"><i class="parameter"><tt>mangling prefix</tt></i></a></p></li><li><p><a href="#MANGLINGMETHOD"><i class="parameter"><tt>mangling method</tt></i></a></p></li><li><p><a href="#MAPTOGUEST"><i class="parameter"><tt>map to guest</tt></i></a></p></li><li><p><a href="#MAXDISKSIZE"><i class="parameter"><tt>max disk size</tt></i></a></p></li><li><p><a href="#MAXLOGSIZE"><i class="parameter"><tt>max log size</tt></i></a></p></li><li><p><a href="#MAXMUX"><i class="parameter"><tt>max mux</tt></i></a></p></li><li><p><a href="#MAXOPENFILES"><i class="parameter"><tt>max open files</tt></i></a></p></li><li><p><a href="#MAXPROTOCOL"><i class="parameter"><tt>max protocol</tt></i></a></p></li><li><p><a href="#MAXSMBDPROCESSES"><i class="parameter"><tt>max smbd processes</tt></i></a></p></li><li><p><a href="#MAXTTL"><i class="parameter"><tt>max ttl</tt></i></a></p></li><li><p><a href="#MAXWINSTTL"><i class="parameter"><tt>max wins ttl</tt></i></a></p></li><li><p><a href="#MAXXMIT"><i class="parameter"><tt>max xmit</tt></i></a></p></li><li><p><a href="#MESSAGECOMMAND"><i class="parameter"><tt>message command</tt></i></a></p></li><li><p><a href="#MINPASSWDLENGTH"><i class="parameter"><tt>min passwd length</tt></i></a></p></li><li><p><a href="#MINPASSWORDLENGTH"><i class="parameter"><tt>min password length</tt></i></a></p></li><li><p><a href="#MINPROTOCOL"><i class="parameter"><tt>min protocol</tt></i></a></p></li><li><p><a href="#MINWINSTTL"><i class="parameter"><tt>min wins ttl</tt></i></a></p></li><li><p><a href="#NAMECACHETIMEOUT"><i class="parameter"><tt>name cache timeout</tt></i></a></p></li><li><p><a href="#NAMERESOLVEORDER"><i class="parameter"><tt>name resolve order</tt></i></a></p></li><li><p><a href="#NETBIOSALIASES"><i class="parameter"><tt>netbios aliases</tt></i></a></p></li><li><p><a href="#NETBIOSNAME"><i class="parameter"><tt>netbios name</tt></i></a></p></li><li><p><a href="#NETBIOSSCOPE"><i class="parameter"><tt>netbios scope</tt></i></a></p></li><li><p><a href="#NISHOMEDIR"><i class="parameter"><tt>nis homedir</tt></i></a></p></li><li><p><a href="#NONUNIXACCOUNTRANGE"><i class="parameter"><tt>non unix account range</tt></i></a></p></li><li><p><a href="#NTLMAUTH"><i class="parameter"><tt>ntlm auth</tt></i></a></p></li><li><p><a href="#NTPIPESUPPORT"><i class="parameter"><tt>nt pipe support</tt></i></a></p></li><li><p><a href="#NTSTATUSSUPPORT"><i class="parameter"><tt>nt status support</tt></i></a></p></li><li><p><a href="#NULLPASSWORDS"><i class="parameter"><tt>null passwords</tt></i></a></p></li><li><p><a href="#OBEYPAMRESTRICTIONS"><i class="parameter"><tt>obey pam restrictions</tt></i></a></p></li><li><p><a href="#OPLOCKBREAKWAITTIME"><i class="parameter"><tt>oplock break wait time</tt></i></a></p></li><li><p><a href="#OS2DRIVERMAP"><i class="parameter"><tt>os2 driver map</tt></i></a></p></li><li><p><a href="#OSLEVEL"><i class="parameter"><tt>os level</tt></i></a></p></li><li><p><a href="#PAMPASSWORDCHANGE"><i class="parameter"><tt>pam password change</tt></i></a></p></li><li><p><a href="#PANICACTION"><i class="parameter"><tt>panic action</tt></i></a></p></li><li><p><a href="#PARANOIDSERVERSECURITY"><i class="parameter"><tt>paranoid server security</tt></i></a></p></li><li><p><a href="#PASSDBBACKEND"><i class="parameter"><tt>passdb backend</tt></i></a></p></li><li><p><a href="#PASSWDCHAT"><i class="parameter"><tt>passwd chat</tt></i></a></p></li><li><p><a href="#PASSWDCHATDEBUG"><i class="parameter"><tt>passwd chat debug</tt></i></a></p></li><li><p><a href="#PASSWDPROGRAM"><i class="parameter"><tt>passwd program</tt></i></a></p></li><li><p><a href="#PASSWORDLEVEL"><i class="parameter"><tt>password level</tt></i></a></p></li><li><p><a href="#PASSWORDSERVER"><i class="parameter"><tt>password server</tt></i></a></p></li><li><p><a href="#PIDDIRECTORY"><i class="parameter"><tt>pid directory</tt></i></a></p></li><li><p><a href="#PREFEREDMASTER"><i class="parameter"><tt>prefered master</tt></i></a></p></li><li><p><a href="#PREFERREDMASTER"><i class="parameter"><tt>preferred master</tt></i></a></p></li><li><p><a href="#PRELOAD"><i class="parameter"><tt>preload</tt></i></a></p></li><li><p><a href="#PRELOADMODULES"><i class="parameter"><tt>preload modules</tt></i></a></p></li><li><p><a href="#PRINTCAP"><i class="parameter"><tt>printcap</tt></i></a></p></li><li><p><a href="#PRIVATEDIR"><i class="parameter"><tt>private dir</tt></i></a></p></li><li><p><a href="#PROTOCOL"><i class="parameter"><tt>protocol</tt></i></a></p></li><li><p><a href="#READBMPX"><i class="parameter"><tt>read bmpx</tt></i></a></p></li><li><p><a href="#READRAW"><i class="parameter"><tt>read raw</tt></i></a></p></li><li><p><a href="#READSIZE"><i class="parameter"><tt>read size</tt></i></a></p></li><li><p><a href="#REALM"><i class="parameter"><tt>realm</tt></i></a></p></li><li><p><a href="#REMOTEANNOUNCE"><i class="parameter"><tt>remote announce</tt></i></a></p></li><li><p><a href="#REMOTEBROWSESYNC"><i class="parameter"><tt>remote browse sync</tt></i></a></p></li><li><p><a href="#RESTRICTANONYMOUS"><i class="parameter"><tt>restrict anonymous</tt></i></a></p></li><li><p><a href="#ROOT"><i class="parameter"><tt>root</tt></i></a></p></li><li><p><a href="#ROOTDIR"><i class="parameter"><tt>root dir</tt></i></a></p></li><li><p><a href="#ROOTDIRECTORY"><i class="parameter"><tt>root directory</tt></i></a></p></li><li><p><a href="#SECURITY"><i class="parameter"><tt>security</tt></i></a></p></li><li><p><a href="#SERVERSCHANNEL"><i class="parameter"><tt>server schannel</tt></i></a></p></li><li><p><a href="#SERVERSTRING"><i class="parameter"><tt>server string</tt></i></a></p></li><li><p><a href="#SETPRIMARYGROUPSCRIPT"><i class="parameter"><tt>set primary group script</tt></i></a></p></li><li><p><a href="#SHOWADDPRINTERWIZARD"><i class="parameter"><tt>show add printer wizard</tt></i></a></p></li><li><p><a href="#SHUTDOWNSCRIPT"><i class="parameter"><tt>shutdown script</tt></i></a></p></li><li><p><a href="#SMBPASSWDFILE"><i class="parameter"><tt>smb passwd file</tt></i></a></p></li><li><p><a href="#SMBPORTS"><i class="parameter"><tt>smb ports</tt></i></a></p></li><li><p><a href="#SOCKETADDRESS"><i class="parameter"><tt>socket address</tt></i></a></p></li><li><p><a href="#SOCKETOPTIONS"><i class="parameter"><tt>socket options</tt></i></a></p></li><li><p><a href="#SOURCEENVIRONMENT"><i class="parameter"><tt>source environment</tt></i></a></p></li><li><p><a href="#STATCACHE"><i class="parameter"><tt>stat cache</tt></i></a></p></li><li><p><a href="#STATCACHESIZE"><i class="parameter"><tt>stat cache size</tt></i></a></p></li><li><p><a href="#STRIPDOT"><i class="parameter"><tt>strip dot</tt></i></a></p></li><li><p><a href="#SYSLOG"><i class="parameter"><tt>syslog</tt></i></a></p></li><li><p><a href="#SYSLOGONLY"><i class="parameter"><tt>syslog only</tt></i></a></p></li><li><p><a href="#TEMPLATEHOMEDIR"><i class="parameter"><tt>template homedir</tt></i></a></p></li><li><p><a href="#TEMPLATESHELL"><i class="parameter"><tt>template shell</tt></i></a></p></li><li><p><a href="#TIMEOFFSET"><i class="parameter"><tt>time offset</tt></i></a></p></li><li><p><a href="#TIMESERVER"><i class="parameter"><tt>time server</tt></i></a></p></li><li><p><a href="#TIMESTAMPLOGS"><i class="parameter"><tt>timestamp logs</tt></i></a></p></li><li><p><a href="#TOTALPRINTJOBS"><i class="parameter"><tt>total print jobs</tt></i></a></p></li><li><p><a href="#UNICODE"><i class="parameter"><tt>unicode</tt></i></a></p></li><li><p><a href="#UNIXCHARSET"><i class="parameter"><tt>unix charset</tt></i></a></p></li><li><p><a href="#UNIXEXTENSIONS"><i class="parameter"><tt>unix extensions</tt></i></a></p></li><li><p><a href="#UNIXPASSWORDSYNC"><i class="parameter"><tt>unix password sync</tt></i></a></p></li><li><p><a href="#UPDATEENCRYPTED"><i class="parameter"><tt>update encrypted</tt></i></a></p></li><li><p><a href="#USEMMAP"><i class="parameter"><tt>use mmap</tt></i></a></p></li><li><p><a href="#USERNAMELEVEL"><i class="parameter"><tt>username level</tt></i></a></p></li><li><p><a href="#USERNAMEMAP"><i class="parameter"><tt>username map</tt></i></a></p></li><li><p><a href="#USESPNEGO"><i class="parameter"><tt>use spnego</tt></i></a></p></li><li><p><a href="#UTMP"><i class="parameter"><tt>utmp</tt></i></a></p></li><li><p><a href="#UTMPDIRECTORY"><i class="parameter"><tt>utmp directory</tt></i></a></p></li><li><p><a href="#WINBINDCACHETIME"><i class="parameter"><tt>winbind cache time</tt></i></a></p></li><li><p><a href="#WINBINDENUMGROUPS"><i class="parameter"><tt>winbind enum groups</tt></i></a></p></li><li><p><a href="#WINBINDENUMUSERS"><i class="parameter"><tt>winbind enum users</tt></i></a></p></li><li><p><a href="#WINBINDGID"><i class="parameter"><tt>winbind gid</tt></i></a></p></li><li><p><a href="#WINBINDSEPARATOR"><i class="parameter"><tt>winbind separator</tt></i></a></p></li><li><p><a href="#WINBINDUID"><i class="parameter"><tt>winbind uid</tt></i></a></p></li><li><p><a href="#WINBINDUSEDDEFAULTDOMAIN"><i class="parameter"><tt>winbind used default domain</tt></i></a></p></li><li><p><a href="#WINSHOOK"><i class="parameter"><tt>wins hook</tt></i></a></p></li><li><p><a href="#WINSPARTNER"><i class="parameter"><tt>wins partner</tt></i></a></p></li><li><p><a href="#WINSPROXY"><i class="parameter"><tt>wins proxy</tt></i></a></p></li><li><p><a href="#WINSSERVER"><i class="parameter"><tt>wins server</tt></i></a></p></li><li><p><a href="#WINSSUPPORT"><i class="parameter"><tt>wins support</tt></i></a></p></li><li><p><a href="#WORKGROUP"><i class="parameter"><tt>workgroup</tt></i></a></p></li><li><p><a href="#WRITERAW"><i class="parameter"><tt>write raw</tt></i></a></p></li><li><p><a href="#WTMPDIRECTORY"><i class="parameter"><tt>wtmp directory</tt></i></a></p></li></ul></div></div><div class="refsect1" lang="en"><h2>COMPLETE LIST OF SERVICE PARAMETERS</h2><p>Here is a list of all service parameters. See the section on
+ each parameter for details. Note that some are synonyms.</p><div class="itemizedlist"><ul type="disc"><li><p><a href="#ADMINUSERS"><i class="parameter"><tt>admin users</tt></i></a></p></li><li><p><a href="#ALLOWHOSTS"><i class="parameter"><tt>allow hosts</tt></i></a></p></li><li><p><a href="#AVAILABLE"><i class="parameter"><tt>available</tt></i></a></p></li><li><p><a href="#BLOCKINGLOCKS"><i class="parameter"><tt>blocking locks</tt></i></a></p></li><li><p><a href="#BLOCKSIZE"><i class="parameter"><tt>block size</tt></i></a></p></li><li><p><a href="#BROWSABLE"><i class="parameter"><tt>browsable</tt></i></a></p></li><li><p><a href="#BROWSEABLE"><i class="parameter"><tt>browseable</tt></i></a></p></li><li><p><a href="#CASESENSITIVE"><i class="parameter"><tt>case sensitive</tt></i></a></p></li><li><p><a href="#CASESIGNAMES"><i class="parameter"><tt>casesignames</tt></i></a></p></li><li><p><a href="#COMMENT"><i class="parameter"><tt>comment</tt></i></a></p></li><li><p><a href="#COPY"><i class="parameter"><tt>copy</tt></i></a></p></li><li><p><a href="#CREATEMASK"><i class="parameter"><tt>create mask</tt></i></a></p></li><li><p><a href="#CREATEMODE"><i class="parameter"><tt>create mode</tt></i></a></p></li><li><p><a href="#CSCPOLICY"><i class="parameter"><tt>csc policy</tt></i></a></p></li><li><p><a href="#DEFAULTCASE"><i class="parameter"><tt>default case</tt></i></a></p></li><li><p><a href="#DEFAULTDEVMODE"><i class="parameter"><tt>default devmode</tt></i></a></p></li><li><p><a href="#DELETEREADONLY"><i class="parameter"><tt>delete readonly</tt></i></a></p></li><li><p><a href="#DELETEVETOFILES"><i class="parameter"><tt>delete veto files</tt></i></a></p></li><li><p><a href="#DENYHOSTS"><i class="parameter"><tt>deny hosts</tt></i></a></p></li><li><p><a href="#DIRECTORY"><i class="parameter"><tt>directory</tt></i></a></p></li><li><p><a href="#DIRECTORYMASK"><i class="parameter"><tt>directory mask</tt></i></a></p></li><li><p><a href="#DIRECTORYMODE"><i class="parameter"><tt>directory mode</tt></i></a></p></li><li><p><a href="#DIRECTORYSECURITYMASK"><i class="parameter"><tt>directory security mask</tt></i></a></p></li><li><p><a href="#DONTDESCEND"><i class="parameter"><tt>dont descend</tt></i></a></p></li><li><p><a href="#DOSFILEMODE"><i class="parameter"><tt>dos filemode</tt></i></a></p></li><li><p><a href="#DOSFILETIMERESOLUTION"><i class="parameter"><tt>dos filetime resolution</tt></i></a></p></li><li><p><a href="#DOSFILETIMES"><i class="parameter"><tt>dos filetimes</tt></i></a></p></li><li><p><a href="#EXEC"><i class="parameter"><tt>exec</tt></i></a></p></li><li><p><a href="#FAKEDIRECTORYCREATETIMES"><i class="parameter"><tt>fake directory create times</tt></i></a></p></li><li><p><a href="#FAKEOPLOCKS"><i class="parameter"><tt>fake oplocks</tt></i></a></p></li><li><p><a href="#FOLLOWSYMLINKS"><i class="parameter"><tt>follow symlinks</tt></i></a></p></li><li><p><a href="#FORCECREATEMODE"><i class="parameter"><tt>force create mode</tt></i></a></p></li><li><p><a href="#FORCEDIRECTORYMODE"><i class="parameter"><tt>force directory mode</tt></i></a></p></li><li><p><a href="#FORCEDIRECTORYSECURITYMODE"><i class="parameter"><tt>force directory security mode</tt></i></a></p></li><li><p><a href="#FORCEGROUP"><i class="parameter"><tt>force group</tt></i></a></p></li><li><p><a href="#FORCESECURITYMODE"><i class="parameter"><tt>force security mode</tt></i></a></p></li><li><p><a href="#FORCEUSER"><i class="parameter"><tt>force user</tt></i></a></p></li><li><p><a href="#FSTYPE"><i class="parameter"><tt>fstype</tt></i></a></p></li><li><p><a href="#GROUP"><i class="parameter"><tt>group</tt></i></a></p></li><li><p><a href="#GUESTACCOUNT"><i class="parameter"><tt>guest account</tt></i></a></p></li><li><p><a href="#GUESTOK"><i class="parameter"><tt>guest ok</tt></i></a></p></li><li><p><a href="#GUESTONLY"><i class="parameter"><tt>guest only</tt></i></a></p></li><li><p><a href="#HIDEDOTFILES"><i class="parameter"><tt>hide dot files</tt></i></a></p></li><li><p><a href="#HIDEFILES"><i class="parameter"><tt>hide files</tt></i></a></p></li><li><p><a href="#HIDESPECIALFILES"><i class="parameter"><tt>hide special files</tt></i></a></p></li><li><p><a href="#HIDEUNREADABLE"><i class="parameter"><tt>hide unreadable</tt></i></a></p></li><li><p><a href="#HIDEUNWRITEABLEFILES"><i class="parameter"><tt>hide unwriteable files</tt></i></a></p></li><li><p><a href="#HOSTSALLOW"><i class="parameter"><tt>hosts allow</tt></i></a></p></li><li><p><a href="#HOSTSDENY"><i class="parameter"><tt>hosts deny</tt></i></a></p></li><li><p><a href="#INHERITACLS"><i class="parameter"><tt>inherit acls</tt></i></a></p></li><li><p><a href="#INHERITPERMISSIONS"><i class="parameter"><tt>inherit permissions</tt></i></a></p></li><li><p><a href="#INVALIDUSERS"><i class="parameter"><tt>invalid users</tt></i></a></p></li><li><p><a href="#LEVEL2OPLOCKS"><i class="parameter"><tt>level2 oplocks</tt></i></a></p></li><li><p><a href="#LOCKING"><i class="parameter"><tt>locking</tt></i></a></p></li><li><p><a href="#LPPAUSECOMMAND"><i class="parameter"><tt>lppause command</tt></i></a></p></li><li><p><a href="#LPQCOMMAND"><i class="parameter"><tt>lpq command</tt></i></a></p></li><li><p><a href="#LPRESUMECOMMAND"><i class="parameter"><tt>lpresume command</tt></i></a></p></li><li><p><a href="#LPRMCOMMAND"><i class="parameter"><tt>lprm command</tt></i></a></p></li><li><p><a href="#MAGICOUTPUT"><i class="parameter"><tt>magic output</tt></i></a></p></li><li><p><a href="#MAGICSCRIPT"><i class="parameter"><tt>magic script</tt></i></a></p></li><li><p><a href="#MANGLECASE"><i class="parameter"><tt>mangle case</tt></i></a></p></li><li><p><a href="#MANGLEDMAP"><i class="parameter"><tt>mangled map</tt></i></a></p></li><li><p><a href="#MANGLEDNAMES"><i class="parameter"><tt>mangled names</tt></i></a></p></li><li><p><a href="#MANGLINGCHAR"><i class="parameter"><tt>mangling char</tt></i></a></p></li><li><p><a href="#MAPARCHIVE"><i class="parameter"><tt>map archive</tt></i></a></p></li><li><p><a href="#MAPHIDDEN"><i class="parameter"><tt>map hidden</tt></i></a></p></li><li><p><a href="#MAPSYSTEM"><i class="parameter"><tt>map system</tt></i></a></p></li><li><p><a href="#MAXCONNECTIONS"><i class="parameter"><tt>max connections</tt></i></a></p></li><li><p><a href="#MAXPRINTJOBS"><i class="parameter"><tt>max print jobs</tt></i></a></p></li><li><p><a href="#MAXREPORTEDPRINTJOBS"><i class="parameter"><tt>max reported print jobs</tt></i></a></p></li><li><p><a href="#MINPRINTSPACE"><i class="parameter"><tt>min print space</tt></i></a></p></li><li><p><a href="#MSDFSPROXY"><i class="parameter"><tt>msdfs proxy</tt></i></a></p></li><li><p><a href="#MSDFSROOT"><i class="parameter"><tt>msdfs root</tt></i></a></p></li><li><p><a href="#NTACLSUPPORT"><i class="parameter"><tt>nt acl support</tt></i></a></p></li><li><p><a href="#ONLYGUEST"><i class="parameter"><tt>only guest</tt></i></a></p></li><li><p><a href="#ONLYUSER"><i class="parameter"><tt>only user</tt></i></a></p></li><li><p><a href="#OPLOCKCONTENTIONLIMIT"><i class="parameter"><tt>oplock contention limit</tt></i></a></p></li><li><p><a href="#OPLOCKS"><i class="parameter"><tt>oplocks</tt></i></a></p></li><li><p><a href="#PATH"><i class="parameter"><tt>path</tt></i></a></p></li><li><p><a href="#POSIXLOCKING"><i class="parameter"><tt>posix locking</tt></i></a></p></li><li><p><a href="#POSTEXEC"><i class="parameter"><tt>postexec</tt></i></a></p></li><li><p><a href="#PREEXEC"><i class="parameter"><tt>preexec</tt></i></a></p></li><li><p><a href="#PREEXECCLOSE"><i class="parameter"><tt>preexec close</tt></i></a></p></li><li><p><a href="#PRESERVECASE"><i class="parameter"><tt>preserve case</tt></i></a></p></li><li><p><a href="#PRINTABLE"><i class="parameter"><tt>printable</tt></i></a></p></li><li><p><a href="#PRINTCAPNAME"><i class="parameter"><tt>printcap name</tt></i></a></p></li><li><p><a href="#PRINTCOMMAND"><i class="parameter"><tt>print command</tt></i></a></p></li><li><p><a href="#PRINTER"><i class="parameter"><tt>printer</tt></i></a></p></li><li><p><a href="#PRINTERADMIN"><i class="parameter"><tt>printer admin</tt></i></a></p></li><li><p><a href="#PRINTERNAME"><i class="parameter"><tt>printer name</tt></i></a></p></li><li><p><a href="#PRINTING"><i class="parameter"><tt>printing</tt></i></a></p></li><li><p><a href="#PRINTOK"><i class="parameter"><tt>print ok</tt></i></a></p></li><li><p><a href="#PUBLIC"><i class="parameter"><tt>public</tt></i></a></p></li><li><p><a href="#QUEUEPAUSECOMMAND"><i class="parameter"><tt>queuepause command</tt></i></a></p></li><li><p><a href="#QUEUERESUMECOMMAND"><i class="parameter"><tt>queueresume command</tt></i></a></p></li><li><p><a href="#READLIST"><i class="parameter"><tt>read list</tt></i></a></p></li><li><p><a href="#READONLY"><i class="parameter"><tt>read only</tt></i></a></p></li><li><p><a href="#ROOTPOSTEXEC"><i class="parameter"><tt>root postexec</tt></i></a></p></li><li><p><a href="#ROOTPREEXEC"><i class="parameter"><tt>root preexec</tt></i></a></p></li><li><p><a href="#ROOTPREEXECCLOSE"><i class="parameter"><tt>root preexec close</tt></i></a></p></li><li><p><a href="#SECURITYMASK"><i class="parameter"><tt>security mask</tt></i></a></p></li><li><p><a href="#SETDIRECTORY"><i class="parameter"><tt>set directory</tt></i></a></p></li><li><p><a href="#SHAREMODES"><i class="parameter"><tt>share modes</tt></i></a></p></li><li><p><a href="#SHORTPRESERVECASE"><i class="parameter"><tt>short preserve case</tt></i></a></p></li><li><p><a href="#STRICTALLOCATE"><i class="parameter"><tt>strict allocate</tt></i></a></p></li><li><p><a href="#STRICTLOCKING"><i class="parameter"><tt>strict locking</tt></i></a></p></li><li><p><a href="#STRICTSYNC"><i class="parameter"><tt>strict sync</tt></i></a></p></li><li><p><a href="#SYNCALWAYS"><i class="parameter"><tt>sync always</tt></i></a></p></li><li><p><a href="#USECLIENTDRIVER"><i class="parameter"><tt>use client driver</tt></i></a></p></li><li><p><a href="#USER"><i class="parameter"><tt>user</tt></i></a></p></li><li><p><a href="#USERNAME"><i class="parameter"><tt>username</tt></i></a></p></li><li><p><a href="#USERS"><i class="parameter"><tt>users</tt></i></a></p></li><li><p><a href="#USESENDFILE"><i class="parameter"><tt>use sendfile</tt></i></a></p></li><li><p><a href="#-VALID"><i class="parameter"><tt>-valid</tt></i></a></p></li><li><p><a href="#VALIDUSERS"><i class="parameter"><tt>valid users</tt></i></a></p></li><li><p><a href="#VETOFILES"><i class="parameter"><tt>veto files</tt></i></a></p></li><li><p><a href="#VETOOPLOCKFILES"><i class="parameter"><tt>veto oplock files</tt></i></a></p></li><li><p><a href="#VFSOBJECT"><i class="parameter"><tt>vfs object</tt></i></a></p></li><li><p><a href="#VFSOBJECTS"><i class="parameter"><tt>vfs objects</tt></i></a></p></li><li><p><a href="#VOLUME"><i class="parameter"><tt>volume</tt></i></a></p></li><li><p><a href="#WIDELINKS"><i class="parameter"><tt>wide links</tt></i></a></p></li><li><p><a href="#WRITABLE"><i class="parameter"><tt>writable</tt></i></a></p></li><li><p><a href="#WRITEABLE"><i class="parameter"><tt>writeable</tt></i></a></p></li><li><p><a href="#WRITECACHESIZE"><i class="parameter"><tt>write cache size</tt></i></a></p></li><li><p><a href="#WRITELIST"><i class="parameter"><tt>write list</tt></i></a></p></li><li><p><a href="#WRITEOK"><i class="parameter"><tt>write ok</tt></i></a></p></li></ul></div></div><div class="refsect1" lang="en"><h2>EXPLANATION OF EACH PARAMETER</h2><div class="variablelist"><dl><dt><span class="term"><a name="ABORTSHUTDOWNSCRIPT"></a>abort shutdown script (G)</span></dt><dd><p><span class="emphasis"><em>This parameter only exists in the HEAD cvs branch</em></span>
+ This a full path name to a script called by <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> that
+ should stop a shutdown procedure issued by the <a href="#SHUTDOWNSCRIPT">
+ <i class="parameter"><tt>shutdown script</tt></i></a>.</p><p>This command will be run as user.</p><p>Default: <span class="emphasis"><em>None</em></span>.</p><p>Example: <b class="command">abort shutdown script = /sbin/shutdown -c</b></p></dd><dt><span class="term"><a name="ADDGROUPSCRIPT"></a>add group script (G)</span></dt><dd><p>This is the full pathname to a script that will be run
+ <span class="emphasis"><em>AS ROOT</em></span> by <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a>
+ when a new group is requested. It will expand any <i class="parameter"><tt>%g</tt></i> to the group name passed. This
+ script is only useful for installations using the Windows NT
+ domain administration tools. The script is free to create a
+ group with an arbitrary name to circumvent unix group name
+ restrictions. In that case the script must print the numeric gid
+ of the created group on stdout.</p></dd><dt><span class="term"><a name="ADDMACHINESCRIPT"></a>add machine script (G)</span></dt><dd><p>This is the full pathname to a script that will be run by
+ <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> when a machine is added
+ to it's domain using the administrator username and password
+ method. </p><p>This option is only required when using sam back-ends tied
+ to the Unix uid method of RID calculation such as smbpasswd.
+ This option is only available in Samba 3.0.</p><p>Default: <b class="command">add machine script = &lt;empty string&gt;</b></p><p>Example: <b class="command">add machine script = /usr/sbin/adduser -n -g
+ machines -c Machine -d /dev/null -s /bin/false %u</b></p></dd><dt><span class="term"><a name="ADDPRINTERCOMMAND"></a>addprinter command (G)</span></dt><dd><p>With the introduction of MS-RPC based printing
+ support for Windows NT/2000 clients in Samba 2.2, The MS Add
+ Printer Wizard (APW) icon is now also available in the
+ &quot;Printers...&quot; folder displayed a share listing. The APW
+ allows for printers to be add remotely to a Samba or Windows
+ NT/2000 print server.</p><p>For a Samba host this means that the printer must be
+ physically added to the underlying printing system. The <i class="parameter"><tt>add
+ printer command</tt></i> defines a script to be run which
+ will perform the necessary operations for adding the printer
+ to the print system and to add the appropriate service definition
+ to the <tt class="filename">smb.conf</tt> file in order that it can be
+ shared by <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a>.</p><p>The <i class="parameter"><tt>addprinter command</tt></i> is
+ automatically invoked with the following parameter (in
+ order):</p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>printer name</tt></i></p></li><li><p><i class="parameter"><tt>share name</tt></i></p></li><li><p><i class="parameter"><tt>port name</tt></i></p></li><li><p><i class="parameter"><tt>driver name</tt></i></p></li><li><p><i class="parameter"><tt>location</tt></i></p></li><li><p><i class="parameter"><tt>Windows 9x driver location</tt></i></p></li></ul></div><p>All parameters are filled in from the PRINTER_INFO_2 structure sent
+ by the Windows NT/2000 client with one exception. The &quot;Windows 9x
+ driver location&quot; parameter is included for backwards compatibility
+ only. The remaining fields in the structure are generated from answers
+ to the APW questions.</p><p>Once the <i class="parameter"><tt>addprinter command</tt></i> has
+ been executed, <b class="command">smbd</b> will reparse the <tt class="filename">
+ smb.conf</tt> to determine if the share defined by the APW
+ exists. If the sharename is still invalid, then <b class="command">smbd
+ </b> will return an ACCESS_DENIED error to the client.</p><p>
+ The &quot;add printer command&quot; program can output a single line of text,
+ which Samba will set as the port the new printer is connected to.
+ If this line isn't output, Samba won't reload its printer shares.
+ </p><p>See also <a href="#DELETEPRINTERCOMMAND"><i class="parameter"><tt>
+ deleteprinter command</tt></i></a>, <a href="#PRINTING">
+ <i class="parameter"><tt>printing</tt></i></a>,
+ <a href="#SHOWADDPRINTERWIZARD"><i class="parameter"><tt>show add
+ printer wizard</tt></i></a></p><p>Default: <span class="emphasis"><em>none</em></span></p><p>Example: <b class="command">addprinter command = /usr/bin/addprinter</b></p></dd><dt><span class="term"><a name="ADDSHARECOMMAND"></a>add share command (G)</span></dt><dd><p>Samba 2.2.0 introduced the ability to dynamically
+ add and delete shares via the Windows NT 4.0 Server Manager. The
+ <i class="parameter"><tt>add share command</tt></i> is used to define an
+ external program or script which will add a new service definition
+ to <tt class="filename">smb.conf</tt>. In order to successfully
+ execute the <i class="parameter"><tt>add share command</tt></i>, <b class="command">smbd</b>
+ requires that the administrator be connected using a root account (i.e.
+ uid == 0).
+ </p><p>
+ When executed, <b class="command">smbd</b> will automatically invoke the
+ <i class="parameter"><tt>add share command</tt></i> with four parameters.
+ </p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>configFile</tt></i> - the location
+ of the global <tt class="filename">smb.conf</tt> file.
+ </p></li><li><p><i class="parameter"><tt>shareName</tt></i> - the name of the new
+ share.
+ </p></li><li><p><i class="parameter"><tt>pathName</tt></i> - path to an **existing**
+ directory on disk.
+ </p></li><li><p><i class="parameter"><tt>comment</tt></i> - comment string to associate
+ with the new share.
+ </p></li></ul></div><p>
+ This parameter is only used for add file shares. To add printer shares,
+ see the <a href="#ADDPRINTERCOMMAND"><i class="parameter"><tt>addprinter
+ command</tt></i></a>.
+ </p><p>
+ See also <a href="#CHANGESHARECOMMAND"><i class="parameter"><tt>change share
+ command</tt></i></a>, <a href="#DELETESHARECOMMAND"><i class="parameter"><tt>delete share
+ command</tt></i></a>.
+ </p><p>Default: <span class="emphasis"><em>none</em></span></p><p>Example: <b class="command">add share command = /usr/local/bin/addshare</b></p></dd><dt><span class="term"><a name="ADDUSERSCRIPT"></a>add user script (G)</span></dt><dd><p>This is the full pathname to a script that will
+ be run <span class="emphasis"><em>AS ROOT</em></span> by <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> under special circumstances described below.</p><p>Normally, a Samba server requires that UNIX users are
+ created for all users accessing files on this server. For sites
+ that use Windows NT account databases as their primary user database
+ creating these users and keeping the user list in sync with the
+ Windows NT PDC is an onerous task. This option allows <a href="smbd.8.html" target="_top">smbd</a> to create the required UNIX users
+ <span class="emphasis"><em>ON DEMAND</em></span> when a user accesses the Samba server.</p><p>In order to use this option, <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> must <span class="emphasis"><em>NOT</em></span> be set to <i class="parameter"><tt>security = share</tt></i>
+ and <i class="parameter"><tt>add user script</tt></i>
+ must be set to a full pathname for a script that will create a UNIX
+ user given one argument of <i class="parameter"><tt>%u</tt></i>, which expands into
+ the UNIX user name to create.</p><p>When the Windows user attempts to access the Samba server,
+ at login (session setup in the SMB protocol) time, <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> contacts the <i class="parameter"><tt>password server</tt></i> and
+ attempts to authenticate the given user with the given password. If the
+ authentication succeeds then <b class="command">smbd</b>
+ attempts to find a UNIX user in the UNIX password database to map the
+ Windows user into. If this lookup fails, and <i class="parameter"><tt>add user script
+ </tt></i> is set then <b class="command">smbd</b> will
+ call the specified script <span class="emphasis"><em>AS ROOT</em></span>, expanding
+ any <i class="parameter"><tt>%u</tt></i> argument to be the user name to create.</p><p>If this script successfully creates the user then <b class="command">smbd
+ </b> will continue on as though the UNIX user
+ already existed. In this way, UNIX users are dynamically created to
+ match existing Windows NT accounts.</p><p>See also <a href="#SECURITY"><i class="parameter"><tt>
+ security</tt></i></a>, <a href="#PASSWORDSERVER">
+ <i class="parameter"><tt>password server</tt></i></a>,
+ <a href="#DELETEUSERSCRIPT"><i class="parameter"><tt>delete user
+ script</tt></i></a>.</p><p>Default: <b class="command">add user script = &lt;empty string&gt;</b></p><p>Example: <b class="command">add user script = /usr/local/samba/bin/add_user %u</b></p></dd><dt><span class="term"><a name="ADDUSERTOGROUPSCRIPT"></a>add user to group script (G)</span></dt><dd><p>Full path to the script that will be called when
+ a user is added to a group using the Windows NT domain administration
+ tools. It will be run by <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> <span class="emphasis"><em>AS ROOT</em></span>.
+ Any <i class="parameter"><tt>%g</tt></i> will be replaced with the group name and
+ any <i class="parameter"><tt>%u</tt></i> will be replaced with the user name.
+ </p><p>Default: <b class="command">add user to group script = </b></p><p>Example: <b class="command">add user to group script = /usr/sbin/adduser %u %g</b></p></dd><dt><span class="term"><a name="ADMINUSERS"></a>admin users (S)</span></dt><dd><p>This is a list of users who will be granted
+ administrative privileges on the share. This means that they
+ will do all file operations as the super-user (root).</p><p>You should use this option very carefully, as any user in
+ this list will be able to do anything they like on the share,
+ irrespective of file permissions.</p><p>Default: <span class="emphasis"><em>no admin users</em></span></p><p>Example: <b class="command">admin users = jason</b></p></dd><dt><span class="term"><a name="ADSSERVER"></a>ads server (G)</span></dt><dd><p>If this option is specified, samba does not try to figure out what
+ ads server to use itself, but uses the specified ads server. Either one
+ DNS name or IP address can be used.</p><p>Default: <b class="command">ads server = </b></p><p>Example: <b class="command">ads server = 192.168.1.2</b></p></dd><dt><span class="term"><a name="ALGORITHMICRIDBASE"></a>algorithmic rid base (G)</span></dt><dd><p>This determines how Samba will use its
+ algorithmic mapping from uids/gid to the RIDs needed to construct
+ NT Security Identifiers.
+ </p><p>Setting this option to a larger value could be useful to sites
+ transitioning from WinNT and Win2k, as existing user and
+ group rids would otherwise clash with sytem users etc.
+ </p><p>All UIDs and GIDs must be able to be resolved into SIDs for
+ the correct operation of ACLs on the server. As such the algorithmic
+ mapping can't be 'turned off', but pushing it 'out of the way' should
+ resolve the issues. Users and groups can then be assigned 'low' RIDs
+ in arbitary-rid supporting backends.
+ </p><p>Default: <b class="command">algorithmic rid base = 1000</b></p><p>Example: <b class="command">algorithmic rid base = 100000</b></p></dd><dt><span class="term"><a name="ALLOWHOSTS"></a>allow hosts (S)</span></dt><dd><p>Synonym for <a href="#HOSTSALLOW">
+ <i class="parameter"><tt>hosts allow</tt></i></a>.</p></dd><dt><span class="term"><a name="ALLOWTRUSTEDDOMAINS"></a>allow trusted domains (G)</span></dt><dd><p>This option only takes effect when the <a href="#SECURITY">
+ <i class="parameter"><tt>security</tt></i></a> option is set to
+ <tt class="constant">server</tt> or <tt class="constant">domain</tt>.
+ If it is set to no, then attempts to connect to a resource from
+ a domain or workgroup other than the one which <a href="smbd.8.html" target="_top">smbd</a> is running
+ in will fail, even if that domain is trusted by the remote server
+ doing the authentication.</p><p>This is useful if you only want your Samba server to
+ serve resources to users in the domain it is a member of. As
+ an example, suppose that there are two domains DOMA and DOMB. DOMB
+ is trusted by DOMA, which contains the Samba server. Under normal
+ circumstances, a user with an account in DOMB can then access the
+ resources of a UNIX account with the same account name on the
+ Samba server even if they do not have an account in DOMA. This
+ can make implementing a security boundary difficult.</p><p>Default: <b class="command">allow trusted domains = yes</b></p></dd><dt><span class="term"><a name="ANNOUNCEAS"></a>announce as (G)</span></dt><dd><p>This specifies what type of server <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> will announce itself as, to a network neighborhood browse
+ list. By default this is set to Windows NT. The valid options
+ are : &quot;NT Server&quot; (which can also be written as &quot;NT&quot;),
+ &quot;NT Workstation&quot;, &quot;Win95&quot; or &quot;WfW&quot; meaning Windows NT Server,
+ Windows NT Workstation, Windows 95 and Windows for Workgroups
+ respectively. Do not change this parameter unless you have a
+ specific need to stop Samba appearing as an NT server as this
+ may prevent Samba servers from participating as browser servers
+ correctly.</p><p>Default: <b class="command">announce as = NT Server</b></p><p>Example: <b class="command">announce as = Win95</b></p></dd><dt><span class="term"><a name="ANNOUNCEVERSION"></a>announce version (G)</span></dt><dd><p>This specifies the major and minor version numbers
+ that nmbd will use when announcing itself as a server. The default
+ is 4.9. Do not change this parameter unless you have a specific
+ need to set a Samba server to be a downlevel server.</p><p>Default: <b class="command">announce version = 4.9</b></p><p>Example: <b class="command">announce version = 2.0</b></p></dd><dt><span class="term"><a name="AUTHMETHODS"></a>auth methods (G)</span></dt><dd><p>This option allows the administrator to chose what
+ authentication methods <b class="command">smbd</b> will use when authenticating
+ a user. This option defaults to sensible values based on <a href="#SECURITY">
+ <i class="parameter"><tt>security</tt></i></a>.</p><p>Each entry in the list attempts to authenticate the user in turn, until
+ the user authenticates. In practice only one method will ever actually
+ be able to complete the authentication.
+ </p><p>Default: <b class="command">auth methods = &lt;empty string&gt;</b></p><p>Example: <b class="command">auth methods = guest sam ntdomain</b></p></dd><dt><span class="term"><a name="AUTOSERVICES"></a>auto services (G)</span></dt><dd><p>This is a synonym for the <a href="#PRELOAD">
+ <i class="parameter"><tt>preload</tt></i></a>.</p></dd><dt><span class="term"><a name="AVAILABLE"></a>available (S)</span></dt><dd><p>This parameter lets you &quot;turn off&quot; a service. If
+ <i class="parameter"><tt>available = no</tt></i>, then <span class="emphasis"><em>ALL</em></span>
+ attempts to connect to the service will fail. Such failures are
+ logged.</p><p>Default: <b class="command">available = yes</b></p></dd><dt><span class="term"><a name="BINDINTERFACESONLY"></a>bind interfaces only (G)</span></dt><dd><p>This global parameter allows the Samba admin
+ to limit what interfaces on a machine will serve SMB requests. It
+ affects file service <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> and name service <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> in a slightly different ways.</p><p>For name service it causes <b class="command">nmbd</b> to bind
+ to ports 137 and 138 on the interfaces listed in
+ the <a href="#INTERFACES">interfaces</a> parameter. <b class="command">nmbd</b> also
+ binds to the &quot;all addresses&quot; interface (0.0.0.0)
+ on ports 137 and 138 for the purposes of reading broadcast messages.
+ If this option is not set then <b class="command">nmbd</b> will service
+ name requests on all of these sockets. If <i class="parameter"><tt>bind interfaces
+ only</tt></i> is set then <b class="command">nmbd</b> will check the
+ source address of any packets coming in on the broadcast sockets
+ and discard any that don't match the broadcast addresses of the
+ interfaces in the <i class="parameter"><tt>interfaces</tt></i> parameter list.
+ As unicast packets are received on the other sockets it allows
+ <b class="command">nmbd</b> to refuse to serve names to machines that
+ send packets that arrive through any interfaces not listed in the
+ <i class="parameter"><tt>interfaces</tt></i> list. IP Source address spoofing
+ does defeat this simple check, however, so it must not be used
+ seriously as a security feature for <b class="command">nmbd</b>.</p><p>For file service it causes <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> to bind only to the interface list
+ given in the <a href="#INTERFACES">interfaces</a> parameter. This
+ restricts the networks that <b class="command">smbd</b> will serve
+ to packets coming in those interfaces. Note that you should not use this parameter
+ for machines that are serving PPP or other intermittent or non-broadcast network
+ interfaces as it will not cope with non-permanent interfaces.</p><p>If <i class="parameter"><tt>bind interfaces only</tt></i> is set then
+ unless the network address <span class="emphasis"><em>127.0.0.1</em></span> is added
+ to the <i class="parameter"><tt>interfaces</tt></i> parameter
+ list <a href="smbpasswd.8.html"><span class="citerefentry"><span class="refentrytitle">smbpasswd</span>(8)</span></a> and <a href="swat.8.html"><span class="citerefentry"><span class="refentrytitle">swat</span>(8)</span></a> may not work as expected due
+ to the reasons covered below.</p><p>To change a users SMB password, the <b class="command">smbpasswd</b>
+ by default connects to the <span class="emphasis"><em>localhost - 127.0.0.1</em></span>
+ address as an SMB client to issue the password change request. If
+ <i class="parameter"><tt>bind interfaces only</tt></i> is set then unless the
+ network address <span class="emphasis"><em>127.0.0.1</em></span> is added to the
+ <i class="parameter"><tt>interfaces</tt></i> parameter list then <b class="command">
+ smbpasswd</b> will fail to connect in it's default mode.
+ <b class="command">smbpasswd</b> can be forced to use the primary IP interface
+ of the local host by using its <a href="smbpasswd.8.html"><span class="citerefentry"><span class="refentrytitle">smbpasswd</span>(8)</span></a> <i class="parameter"><tt>-r <i class="replaceable"><tt>remote machine</tt></i></tt></i>
+ parameter, with <i class="replaceable"><tt>remote machine</tt></i> set
+ to the IP name of the primary interface of the local host.</p><p>The <b class="command">swat</b> status page tries to connect with
+ <b class="command">smbd</b> and <b class="command">nmbd</b> at the address
+ <span class="emphasis"><em>127.0.0.1</em></span> to determine if they are running.
+ Not adding <span class="emphasis"><em>127.0.0.1</em></span> will cause <b class="command">
+ smbd</b> and <b class="command">nmbd</b> to always show
+ &quot;not running&quot; even if they really are. This can prevent <b class="command">
+ swat</b> from starting/stopping/restarting <b class="command">smbd</b>
+ and <b class="command">nmbd</b>.</p><p>Default: <b class="command">bind interfaces only = no</b></p></dd><dt><span class="term"><a name="BLOCKINGLOCKS"></a>blocking locks (S)</span></dt><dd><p>This parameter controls the behavior
+ of <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> when given a request by a client
+ to obtain a byte range lock on a region of an open file, and the
+ request has a time limit associated with it.</p><p>If this parameter is set and the lock range requested
+ cannot be immediately satisfied, samba will internally
+ queue the lock request, and periodically attempt to obtain
+ the lock until the timeout period expires.</p><p>If this parameter is set to <tt class="constant">no</tt>, then
+ samba will behave as previous versions of Samba would and
+ will fail the lock request immediately if the lock range
+ cannot be obtained.</p><p>Default: <b class="command">blocking locks = yes</b></p></dd><dt><span class="term"><a name="BLOCKSIZE"></a>block size (S)</span></dt><dd><p>This parameter controls the behavior of <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> when reporting disk free
+ sizes. By default, this reports a disk block size of 1024 bytes.
+ </p><p>Changing this parameter may have some effect on the
+ efficiency of client writes, this is not yet confirmed. This
+ parameter was added to allow advanced administrators to change
+ it (usually to a higher value) and test the effect it has on
+ client write performance without re-compiling the code. As this
+ is an experimental option it may be removed in a future release.
+ </p><p>Changing this option does not change the disk free reporting
+ size, just the block size unit reported to the client.
+ </p></dd><dt><span class="term"><a name="BROWSABLE"></a>browsable (S)</span></dt><dd><p>See the <a href="#BROWSEABLE">
+ <i class="parameter"><tt>browseable</tt></i></a>.</p></dd><dt><span class="term"><a name="BROWSEABLE"></a>browseable (S)</span></dt><dd><p>This controls whether this share is seen in
+ the list of available shares in a net view and in the browse list.</p><p>Default: <b class="command">browseable = yes</b></p></dd><dt><span class="term"><a name="BROWSELIST"></a>browse list (G)</span></dt><dd><p>This controls whether <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will serve a browse list to
+ a client doing a <b class="command">NetServerEnum</b> call. Normally
+ set to <tt class="constant">yes</tt>. You should never need to change
+ this.</p><p>Default: <b class="command">browse list = yes</b></p></dd><dt><span class="term"><a name="CASESENSITIVE"></a>case sensitive (S)</span></dt><dd><p>See the discussion in the section <a href="#NAMEMANGLINGSECT" title="NAME MANGLING">NAME MANGLING</a>.</p><p>Default: <b class="command">case sensitive = no</b></p></dd><dt><span class="term"><a name="CASESIGNAMES"></a>casesignames (S)</span></dt><dd><p>Synonym for <a href="#CASESENSITIVE">case sensitive</a>.</p></dd><dt><span class="term"><a name="CHANGENOTIFYTIMEOUT"></a>change notify timeout (G)</span></dt><dd><p>This SMB allows a client to tell a server to
+ &quot;watch&quot; a particular directory for any changes and only reply to
+ the SMB request when a change has occurred. Such constant scanning of
+ a directory is expensive under UNIX, hence an <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> daemon only performs such a scan
+ on each requested directory once every <i class="parameter"><tt>change notify
+ timeout</tt></i> seconds.</p><p>Default: <b class="command">change notify timeout = 60</b></p><p>Example: <b class="command">change notify timeout = 300</b></p><p>Would change the scan time to every 5 minutes.</p></dd><dt><span class="term"><a name="CHANGESHARECOMMAND"></a>change share command (G)</span></dt><dd><p>Samba 2.2.0 introduced the ability to dynamically
+ add and delete shares via the Windows NT 4.0 Server Manager. The
+ <i class="parameter"><tt>change share command</tt></i> is used to define an
+ external program or script which will modify an existing service definition
+ in <tt class="filename">smb.conf</tt>. In order to successfully
+ execute the <i class="parameter"><tt>change share command</tt></i>, <b class="command">smbd</b>
+ requires that the administrator be connected using a root account (i.e.
+ uid == 0).
+ </p><p>
+ When executed, <b class="command">smbd</b> will automatically invoke the
+ <i class="parameter"><tt>change share command</tt></i> with four parameters.
+ </p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>configFile</tt></i> - the location
+ of the global <tt class="filename">smb.conf</tt> file.
+ </p></li><li><p><i class="parameter"><tt>shareName</tt></i> - the name of the new
+ share.
+ </p></li><li><p><i class="parameter"><tt>pathName</tt></i> - path to an **existing**
+ directory on disk.
+ </p></li><li><p><i class="parameter"><tt>comment</tt></i> - comment string to associate
+ with the new share.
+ </p></li></ul></div><p>
+ This parameter is only used modify existing file shares definitions. To modify
+ printer shares, use the &quot;Printers...&quot; folder as seen when browsing the Samba host.
+ </p><p>
+ See also <a href="#ADDSHARECOMMAND"><i class="parameter"><tt>add share
+ command</tt></i></a>, <a href="#DELETESHARECOMMAND"><i class="parameter"><tt>delete
+ share command</tt></i></a>.
+ </p><p>Default: <span class="emphasis"><em>none</em></span></p><p>Example: <b class="command">change share command = /usr/local/bin/addshare</b></p></dd><dt><span class="term"><a name="COMMENT"></a>comment (S)</span></dt><dd><p>This is a text field that is seen next to a share
+ when a client does a queries the server, either via the network
+ neighborhood or via <b class="command">net view</b> to list what shares
+ are available.</p><p>If you want to set the string that is displayed next to the
+ machine name then see the <a href="#SERVERSTRING"><i class="parameter"><tt>
+ server string</tt></i></a> parameter.</p><p>Default: <span class="emphasis"><em>No comment string</em></span></p><p>Example: <b class="command">comment = Fred's Files</b></p></dd><dt><span class="term"><a name="CONFIGFILE"></a>config file (G)</span></dt><dd><p>This allows you to override the config file
+ to use, instead of the default (usually <tt class="filename">smb.conf</tt>).
+ There is a chicken and egg problem here as this option is set
+ in the config file!</p><p>For this reason, if the name of the config file has changed
+ when the parameters are loaded then it will reload them from
+ the new config file.</p><p>This option takes the usual substitutions, which can
+ be very useful.</p><p>If the config file doesn't exist then it won't be loaded
+ (allowing you to special case the config files of just a few
+ clients).</p><p>Example: <b class="command">config file = /usr/local/samba/lib/smb.conf.%m</b></p></dd><dt><span class="term"><a name="COPY"></a>copy (S)</span></dt><dd><p>This parameter allows you to &quot;clone&quot; service
+ entries. The specified service is simply duplicated under the
+ current service's name. Any parameters specified in the current
+ section will override those in the section being copied.</p><p>This feature lets you set up a 'template' service and
+ create similar services easily. Note that the service being
+ copied must occur earlier in the configuration file than the
+ service doing the copying.</p><p>Default: <span class="emphasis"><em>no value</em></span></p><p>Example: <b class="command">copy = otherservice</b></p></dd><dt><span class="term"><a name="CREATEMASK"></a>create mask (S)</span></dt><dd><p>A synonym for this parameter is
+ <a href="#CREATEMODE"><i class="parameter"><tt>create mode</tt></i>
+ </a>.</p><p>When a file is created, the necessary permissions are
+ calculated according to the mapping from DOS modes to UNIX
+ permissions, and the resulting UNIX mode is then bit-wise 'AND'ed
+ with this parameter. This parameter may be thought of as a bit-wise
+ MASK for the UNIX modes of a file. Any bit <span class="emphasis"><em>not</em></span>
+ set here will be removed from the modes set on a file when it is
+ created.</p><p>The default value of this parameter removes the
+ 'group' and 'other' write and execute bits from the UNIX modes.</p><p>Following this Samba will bit-wise 'OR' the UNIX mode created
+ from this parameter with the value of the <a href="#FORCECREATEMODE">
+ <i class="parameter"><tt>force create mode</tt></i></a>
+ parameter which is set to 000 by default.</p><p>This parameter does not affect directory modes. See the
+ parameter <a href="#DIRECTORYMODE"><i class="parameter"><tt>directory mode
+ </tt></i></a> for details.</p><p>See also the <a href="#FORCECREATEMODE"><i class="parameter"><tt>force
+ create mode</tt></i></a> parameter for forcing particular mode
+ bits to be set on created files. See also the <a href="#DIRECTORYMODE">
+ <i class="parameter"><tt>directory mode</tt></i></a> parameter for masking
+ mode bits on created directories. See also the <a href="#INHERITPERMISSIONS">
+ <i class="parameter"><tt>inherit permissions</tt></i></a> parameter.</p><p>Note that this parameter does not apply to permissions
+ set by Windows NT/2000 ACL editors. If the administrator wishes to enforce
+ a mask on access control lists also, they need to set the <a href="#SECURITYMASK">
+ <i class="parameter"><tt>security mask</tt></i></a>.</p><p>Default: <b class="command">create mask = 0744</b></p><p>Example: <b class="command">create mask = 0775</b></p></dd><dt><span class="term"><a name="CREATEMODE"></a>create mode (S)</span></dt><dd><p>This is a synonym for <a href="#CREATEMASK"><i class="parameter"><tt>
+ create mask</tt></i></a>.</p></dd><dt><span class="term"><a name="CSCPOLICY"></a>csc policy (S)</span></dt><dd><p>This stands for <span class="emphasis"><em>client-side caching
+ policy</em></span>, and specifies how clients capable of offline
+ caching will cache the files in the share. The valid values
+ are: manual, documents, programs, disable.</p><p>These values correspond to those used on Windows servers.</p><p>For example, shares containing roaming profiles can have
+ offline caching disabled using <b class="command">csc policy = disable</b>.</p><p>Default: <b class="command">csc policy = manual</b></p><p>Example: <b class="command">csc policy = programs</b></p></dd><dt><span class="term"><a name="DEADTIME"></a>dead time (G)</span></dt><dd><p>The value of the parameter (a decimal integer)
+ represents the number of minutes of inactivity before a connection
+ is considered dead, and it is disconnected. The deadtime only takes
+ effect if the number of open files is zero.</p><p>This is useful to stop a server's resources being
+ exhausted by a large number of inactive connections.</p><p>Most clients have an auto-reconnect feature when a
+ connection is broken so in most cases this parameter should be
+ transparent to users.</p><p>Using this parameter with a timeout of a few minutes
+ is recommended for most systems.</p><p>A deadtime of zero indicates that no auto-disconnection
+ should be performed.</p><p>Default: <b class="command">deadtime = 0</b></p><p>Example: <b class="command">deadtime = 15</b></p></dd><dt><span class="term"><a name="DEBUGHIRESTIMESTAMP"></a>debug hires timestamp (G)</span></dt><dd><p>Sometimes the timestamps in the log messages
+ are needed with a resolution of higher that seconds, this
+ boolean parameter adds microsecond resolution to the timestamp
+ message header when turned on.</p><p>Note that the parameter <a href="#DEBUGTIMESTAMP"><i class="parameter"><tt>
+ debug timestamp</tt></i></a> must be on for this to have an
+ effect.</p><p>Default: <b class="command">debug hires timestamp = no</b></p></dd><dt><span class="term"><a name="DEBUGLEVEL"></a>debug level (G)</span></dt><dd><p>Synonym for <a href="#LOGLEVEL"><i class="parameter"><tt>
+ log level</tt></i></a>.</p></dd><dt><span class="term"><a name="DEBUGPID"></a>debug pid (G)</span></dt><dd><p>When using only one log file for more then one forked
+ <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a>-process there may be hard to
+ follow which process outputs which message. This boolean parameter
+ is adds the process-id to the timestamp message headers in the
+ logfile when turned on.</p><p>Note that the parameter <a href="#DEBUGTIMESTAMP"><i class="parameter"><tt>
+ debug timestamp</tt></i></a> must be on for this to have an
+ effect.</p><p>Default: <b class="command">debug pid = no</b></p></dd><dt><span class="term"><a name="DEBUGTIMESTAMP"></a>debug timestamp (G)</span></dt><dd><p>Samba debug log messages are timestamped
+ by default. If you are running at a high <a href="#DEBUGLEVEL">
+ <i class="parameter"><tt>debug level</tt></i></a> these timestamps
+ can be distracting. This boolean parameter allows timestamping
+ to be turned off.</p><p>Default: <b class="command">debug timestamp = yes</b></p></dd><dt><span class="term"><a name="DEBUGUID"></a>debug uid (G)</span></dt><dd><p>Samba is sometimes run as root and sometime
+ run as the connected user, this boolean parameter inserts the
+ current euid, egid, uid and gid to the timestamp message headers
+ in the log file if turned on.</p><p>Note that the parameter <a href="#DEBUGTIMESTAMP"><i class="parameter"><tt>
+ debug timestamp</tt></i></a> must be on for this to have an
+ effect.</p><p>Default: <b class="command">debug uid = no</b></p></dd><dt><span class="term"><a name="DEFAULT"></a>default (G)</span></dt><dd><p>A synonym for <a href="#DEFAULTSERVICE"><i class="parameter"><tt>
+ default service</tt></i></a>.</p></dd><dt><span class="term"><a name="DEFAULTCASE"></a>default case (S)</span></dt><dd><p>See the section on <a href="#NAMEMANGLINGSECT" title="NAME MANGLING">
+ NAME MANGLING</a>. Also note the <a href="#SHORTPRESERVECASE">
+ <i class="parameter"><tt>short preserve case</tt></i></a> parameter.</p><p>Default: <b class="command">default case = lower</b></p></dd><dt><span class="term"><a name="DEFAULTDEVMODE"></a>default devmode (S)</span></dt><dd><p>This parameter is only applicable to <a href="#PRINTOK">printable</a> services.
+ When smbd is serving Printer Drivers to Windows NT/2k/XP clients, each printer on the Samba
+ server has a Device Mode which defines things such as paper size and
+ orientation and duplex settings. The device mode can only correctly be
+ generated by the printer driver itself (which can only be executed on a
+ Win32 platform). Because smbd is unable to execute the driver code
+ to generate the device mode, the default behavior is to set this field
+ to NULL.
+ </p><p>Most problems with serving printer drivers to Windows NT/2k/XP clients
+ can be traced to a problem with the generated device mode. Certain drivers
+ will do things such as crashing the client's Explorer.exe with a NULL devmode.
+ However, other printer drivers can cause the client's spooler service
+ (spoolsv.exe) to die if the devmode was not created by the driver itself
+ (i.e. smbd generates a default devmode).
+ </p><p>This parameter should be used with care and tested with the printer
+ driver in question. It is better to leave the device mode to NULL
+ and let the Windows client set the correct values. Because drivers do not
+ do this all the time, setting <b class="command">default devmode = yes</b>
+ will instruct smbd to generate a default one.
+ </p><p>For more information on Windows NT/2k printing and Device Modes,
+ see the <a href="http://msdn.microsoft.com/" target="_top">MSDN documentation</a>.
+ </p><p>Default: <b class="command">default devmode = no</b></p></dd><dt><span class="term"><a name="DEFAULTSERVICE"></a>default service (G)</span></dt><dd><p>This parameter specifies the name of a service
+ which will be connected to if the service actually requested cannot
+ be found. Note that the square brackets are <span class="emphasis"><em>NOT</em></span>
+ given in the parameter value (see example below).</p><p>There is no default value for this parameter. If this
+ parameter is not given, attempting to connect to a nonexistent
+ service results in an error.</p><p>Typically the default service would be a <a href="#GUESTOK">
+ <i class="parameter"><tt>guest ok</tt></i></a>, <a href="#READONLY">
+ <i class="parameter"><tt>read-only</tt></i></a> service.</p><p>Also note that the apparent service name will be changed
+ to equal that of the requested service, this is very useful as it
+ allows you to use macros like <i class="parameter"><tt>%S</tt></i> to make
+ a wildcard service.</p><p>Note also that any &quot;_&quot; characters in the name of the service
+ used in the default service will get mapped to a &quot;/&quot;. This allows for
+ interesting things.</p><p>Example:</p><pre class="programlisting">
+[global]
+ default service = pub
+
+[pub]
+ path = /%S
+</pre></dd><dt><span class="term"><a name="DELETEGROUPSCRIPT"></a>delete group script (G)</span></dt><dd><p>This is the full pathname to a script that will
+ be run <span class="emphasis"><em>AS ROOT</em></span> <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> when a group is requested to be deleted.
+ It will expand any <i class="parameter"><tt>%g</tt></i> to the group name passed.
+ This script is only useful for installations using the Windows NT domain administration tools.
+ </p></dd><dt><span class="term"><a name="DELETEPRINTERCOMMAND"></a>deleteprinter command (G)</span></dt><dd><p>With the introduction of MS-RPC based printer
+ support for Windows NT/2000 clients in Samba 2.2, it is now
+ possible to delete printer at run time by issuing the
+ DeletePrinter() RPC call.</p><p>For a Samba host this means that the printer must be
+ physically deleted from underlying printing system. The <i class="parameter"><tt>
+ deleteprinter command</tt></i> defines a script to be run which
+ will perform the necessary operations for removing the printer
+ from the print system and from <tt class="filename">smb.conf</tt>.
+ </p><p>The <i class="parameter"><tt>deleteprinter command</tt></i> is
+ automatically called with only one parameter: <i class="parameter"><tt>
+ &quot;printer name&quot;</tt></i>.</p><p>Once the <i class="parameter"><tt>deleteprinter command</tt></i> has
+ been executed, <b class="command">smbd</b> will reparse the <tt class="filename">
+ smb.conf</tt> to associated printer no longer exists.
+ If the sharename is still valid, then <b class="command">smbd
+ </b> will return an ACCESS_DENIED error to the client.</p><p>See also <a href="#ADDPRINTERCOMMAND"><i class="parameter"><tt>
+ addprinter command</tt></i></a>, <a href="#PRINTING">
+ <i class="parameter"><tt>printing</tt></i></a>,
+ <a href="#SHOWADDPRINTERWIZARD"><i class="parameter"><tt>show add
+ printer wizard</tt></i></a></p><p>Default: <span class="emphasis"><em>none</em></span></p><p>Example: <b class="command">deleteprinter command = /usr/bin/removeprinter</b></p></dd><dt><span class="term"><a name="DELETEREADONLY"></a>delete readonly (S)</span></dt><dd><p>This parameter allows readonly files to be deleted.
+ This is not normal DOS semantics, but is allowed by UNIX.</p><p>This option may be useful for running applications such
+ as rcs, where UNIX file ownership prevents changing file
+ permissions, and DOS semantics prevent deletion of a read only file.</p><p>Default: <b class="command">delete readonly = no</b></p></dd><dt><span class="term"><a name="DELETESHARECOMMAND"></a>delete share command (G)</span></dt><dd><p>Samba 2.2.0 introduced the ability to dynamically
+ add and delete shares via the Windows NT 4.0 Server Manager. The
+ <i class="parameter"><tt>delete share command</tt></i> is used to define an
+ external program or script which will remove an existing service
+ definition from <tt class="filename">smb.conf</tt>. In order to successfully
+ execute the <i class="parameter"><tt>delete share command</tt></i>, <b class="command">smbd</b>
+ requires that the administrator be connected using a root account (i.e.
+ uid == 0).
+ </p><p>
+ When executed, <b class="command">smbd</b> will automatically invoke the
+ <i class="parameter"><tt>delete share command</tt></i> with two parameters.
+ </p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>configFile</tt></i> - the location
+ of the global <tt class="filename">smb.conf</tt> file.
+ </p></li><li><p><i class="parameter"><tt>shareName</tt></i> - the name of
+ the existing service.
+ </p></li></ul></div><p>
+ This parameter is only used to remove file shares. To delete printer shares,
+ see the <a href="#DELETEPRINTERCOMMAND"><i class="parameter"><tt>deleteprinter
+ command</tt></i></a>.
+ </p><p>
+ See also <a href="#ADDSHARECOMMAND"><i class="parameter"><tt>add share
+ command</tt></i></a>, <a href="#CHANGESHARECOMMAND"><i class="parameter"><tt>change
+ share command</tt></i></a>.
+ </p><p>Default: <span class="emphasis"><em>none</em></span></p><p>Example: <b class="command">delete share command = /usr/local/bin/delshare</b></p></dd><dt><span class="term"><a name="DELETEUSERFROMGROUPSCRIPT"></a>delete user from group script (G)</span></dt><dd><p>Full path to the script that will be called when
+ a user is removed from a group using the Windows NT domain administration
+ tools. It will be run by <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> <span class="emphasis"><em>AS ROOT</em></span>.
+ Any <i class="parameter"><tt>%g</tt></i> will be replaced with the group name and
+ any <i class="parameter"><tt>%u</tt></i> will be replaced with the user name.
+ </p><p>Default: <b class="command">delete user from group script = </b></p><p>Example: <b class="command">delete user from group script = /usr/sbin/deluser %u %g</b></p></dd><dt><span class="term"><a name="DELETEUSERSCRIPT"></a>delete user script (G)</span></dt><dd><p>This is the full pathname to a script that will
+ be run by <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> when managing users
+ with remote RPC (NT) tools.
+ </p><p>This script is called when a remote client removes a user
+ from the server, normally using 'User Manager for Domains' or
+ <b class="command">rpcclient</b>.</p><p>This script should delete the given UNIX username.</p><p>Default: <b class="command">delete user script = &lt;empty string&gt;</b></p><p>Example: <b class="command">delete user script = /usr/local/samba/bin/del_user %u</b></p></dd><dt><span class="term"><a name="DELETEVETOFILES"></a>delete veto files (S)</span></dt><dd><p>This option is used when Samba is attempting to
+ delete a directory that contains one or more vetoed directories
+ (see the <a href="#VETOFILES"><i class="parameter"><tt>veto files</tt></i></a>
+ option). If this option is set to <tt class="constant">no</tt> (the default) then if a vetoed
+ directory contains any non-vetoed files or directories then the
+ directory delete will fail. This is usually what you want.</p><p>If this option is set to <tt class="constant">yes</tt>, then Samba
+ will attempt to recursively delete any files and directories within
+ the vetoed directory. This can be useful for integration with file
+ serving systems such as NetAtalk which create meta-files within
+ directories you might normally veto DOS/Windows users from seeing
+ (e.g. <tt class="filename">.AppleDouble</tt>)</p><p>Setting <b class="command">delete veto files = yes</b> allows these
+ directories to be transparently deleted when the parent directory
+ is deleted (so long as the user has permissions to do so).</p><p>See also the <a href="#VETOFILES"><i class="parameter"><tt>veto
+ files</tt></i></a> parameter.</p><p>Default: <b class="command">delete veto files = no</b></p></dd><dt><span class="term"><a name="DENYHOSTS"></a>deny hosts (S)</span></dt><dd><p>Synonym for <a href="#HOSTSDENY"><i class="parameter"><tt>hosts
+ deny</tt></i></a>.</p></dd><dt><span class="term"><a name="DFREECOMMAND"></a>dfree command (G)</span></dt><dd><p>The <i class="parameter"><tt>dfree command</tt></i> setting
+ should only be used on systems where a problem occurs with the
+ internal disk space calculations. This has been known to happen
+ with Ultrix, but may occur with other operating systems. The
+ symptom that was seen was an error of &quot;Abort Retry
+ Ignore&quot; at the end of each directory listing.</p><p>This setting allows the replacement of the internal routines to
+ calculate the total disk space and amount available with an external
+ routine. The example below gives a possible script that might fulfill
+ this function.</p><p>The external program will be passed a single parameter indicating
+ a directory in the filesystem being queried. This will typically consist
+ of the string <tt class="filename">./</tt>. The script should return two
+ integers in ASCII. The first should be the total disk space in blocks,
+ and the second should be the number of available blocks. An optional
+ third return value can give the block size in bytes. The default
+ blocksize is 1024 bytes.</p><p>Note: Your script should <span class="emphasis"><em>NOT</em></span> be setuid or
+ setgid and should be owned by (and writeable only by) root!</p><p>Default: <span class="emphasis"><em>By default internal routines for
+ determining the disk capacity and remaining space will be used.
+ </em></span></p><p>Example: <b class="command">dfree command = /usr/local/samba/bin/dfree</b></p><p>Where the script dfree (which must be made executable) could be:</p><pre class="programlisting">
+#!/bin/sh
+df $1 | tail -1 | awk '{print $2&quot; &quot;$4}'
+</pre><p>or perhaps (on Sys V based systems):</p><pre class="programlisting">
+#!/bin/sh
+/usr/bin/df -k $1 | tail -1 | awk '{print $3&quot; &quot;$5}'
+</pre><p>Note that you may have to replace the command names with full path names on some systems.</p></dd><dt><span class="term"><a name="DIRECTORY"></a>directory (S)</span></dt><dd><p>Synonym for <a href="#PATH"><i class="parameter"><tt>path</tt></i></a>.</p></dd><dt><span class="term"><a name="DIRECTORYMASK"></a>directory mask (S)</span></dt><dd><p>This parameter is the octal modes which are
+ used when converting DOS modes to UNIX modes when creating UNIX
+ directories.</p><p>When a directory is created, the necessary permissions are
+ calculated according to the mapping from DOS modes to UNIX permissions,
+ and the resulting UNIX mode is then bit-wise 'AND'ed with this
+ parameter. This parameter may be thought of as a bit-wise MASK for
+ the UNIX modes of a directory. Any bit <span class="emphasis"><em>not</em></span> set
+ here will be removed from the modes set on a directory when it is
+ created.</p><p>The default value of this parameter removes the 'group'
+ and 'other' write bits from the UNIX mode, allowing only the
+ user who owns the directory to modify it.</p><p>Following this Samba will bit-wise 'OR' the UNIX mode
+ created from this parameter with the value of the <a href="#FORCEDIRECTORYMODE">
+ <i class="parameter"><tt>force directory mode</tt></i></a> parameter.
+ This parameter is set to 000 by default (i.e. no extra mode bits are added).</p><p>Note that this parameter does not apply to permissions
+ set by Windows NT/2000 ACL editors. If the administrator wishes to enforce
+ a mask on access control lists also, they need to set the <a href="#DIRECTORYSECURITYMASK">
+ <i class="parameter"><tt>directory security mask</tt></i></a>.</p><p>See the <a href="#FORCEDIRECTORYMODE"><i class="parameter"><tt>force
+ directory mode</tt></i></a> parameter to cause particular mode
+ bits to always be set on created directories.</p><p>See also the <a href="#CREATEMODE"><i class="parameter"><tt>create mode
+ </tt></i></a> parameter for masking mode bits on created files,
+ and the <a href="#DIRECTORYSECURITYMASK"><i class="parameter"><tt>directory
+ security mask</tt></i></a> parameter.</p><p>Also refer to the <a href="#INHERITPERMISSIONS"><i class="parameter"><tt>
+ inherit permissions</tt></i></a> parameter.</p><p>Default: <b class="command">directory mask = 0755</b></p><p>Example: <b class="command">directory mask = 0775</b></p></dd><dt><span class="term"><a name="DIRECTORYMODE"></a>directory mode (S)</span></dt><dd><p>Synonym for <a href="#DIRECTORYMASK"><i class="parameter"><tt>
+ directory mask</tt></i></a></p></dd><dt><span class="term"><a name="DIRECTORYSECURITYMASK"></a>directory security mask (S)</span></dt><dd><p>This parameter controls what UNIX permission bits
+ can be modified when a Windows NT client is manipulating the UNIX
+ permission on a directory using the native NT security dialog
+ box.</p><p>This parameter is applied as a mask (AND'ed with) to
+ the changed permission bits, thus preventing any bits not in
+ this mask from being modified. Essentially, zero bits in this
+ mask may be treated as a set of bits the user is not allowed
+ to change.</p><p>If not set explicitly this parameter is set to 0777
+ meaning a user is allowed to modify all the user/group/world
+ permissions on a directory.</p><p><span class="emphasis"><em>Note</em></span> that users who can access the
+ Samba server through other means can easily bypass this restriction,
+ so it is primarily useful for standalone &quot;appliance&quot; systems.
+ Administrators of most normal systems will probably want to leave
+ it as the default of <tt class="constant">0777</tt>.</p><p>See also the <a href="#FORCEDIRECTORYSECURITYMODE"><i class="parameter"><tt>
+ force directory security mode</tt></i></a>, <a href="#SECURITYMASK">
+ <i class="parameter"><tt>security mask</tt></i></a>,
+ <a href="#FORCESECURITYMODE"><i class="parameter"><tt>force security mode
+ </tt></i></a> parameters.</p><p>Default: <b class="command">directory security mask = 0777</b></p><p>Example: <b class="command">directory security mask = 0700</b></p></dd><dt><span class="term"><a name="DISABLENETBIOS"></a>disable netbios (G)</span></dt><dd><p>Enabling this parameter will disable netbios support
+ in Samba. Netbios is the only available form of browsing in
+ all windows versions except for 2000 and XP. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Note that clients that only support netbios won't be able to
+ see your samba server when netbios support is disabled.
+ </p></div><p>Default: <b class="command">disable netbios = no</b></p><p>Example: <b class="command">disable netbios = yes</b></p></dd><dt><span class="term"><a name="DISABLESPOOLSS"></a>disable spoolss (G)</span></dt><dd><p>Enabling this parameter will disable Samba's support
+ for the SPOOLSS set of MS-RPC's and will yield identical behavior
+ as Samba 2.0.x. Windows NT/2000 clients will downgrade to using
+ Lanman style printing commands. Windows 9x/ME will be uneffected by
+ the parameter. However, this will also disable the ability to upload
+ printer drivers to a Samba server via the Windows NT Add Printer
+ Wizard or by using the NT printer properties dialog window. It will
+ also disable the capability of Windows NT/2000 clients to download
+ print drivers from the Samba host upon demand.
+ <span class="emphasis"><em>Be very careful about enabling this parameter.</em></span>
+ </p><p>See also <a href="#USECLIENTDRIVER">use client driver</a>
+ </p><p>Default : <b class="command">disable spoolss = no</b></p></dd><dt><span class="term"><a name="DISPLAYCHARSET"></a>display charset (G)</span></dt><dd><p>Specifies the charset that samba will use
+ to print messages to stdout and stderr and SWAT will use.
+ Should generally be the same as the <b class="command">unix charset</b>.
+ </p><p>Default: <b class="command">display charset = ASCII</b></p><p>Example: <b class="command">display charset = UTF8</b></p></dd><dt><span class="term"><a name="DNSPROXY"></a>dns proxy (G)</span></dt><dd><p>Specifies that <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> when acting as a WINS server and
+ finding that a NetBIOS name has not been registered, should treat the
+ NetBIOS name word-for-word as a DNS name and do a lookup with the DNS server
+ for that name on behalf of the name-querying client.</p><p>Note that the maximum length for a NetBIOS name is 15
+ characters, so the DNS name (or DNS alias) can likewise only be
+ 15 characters, maximum.</p><p><b class="command">nmbd</b> spawns a second copy of itself to do the
+ DNS name lookup requests, as doing a name lookup is a blocking
+ action.</p><p>See also the parameter <a href="#WINSSUPPORT"><i class="parameter"><tt>
+ wins support</tt></i></a>.</p><p>Default: <b class="command">dns proxy = yes</b></p></dd><dt><span class="term"><a name="DOMAINLOGONS"></a>domain logons (G)</span></dt><dd><p>If set to <tt class="constant">yes</tt>, the Samba server will serve
+ Windows 95/98 Domain logons for the <a href="#WORKGROUP">
+ <i class="parameter"><tt>workgroup</tt></i></a> it is in. Samba 2.2
+ has limited capability to act as a domain controller for Windows
+ NT 4 Domains. For more details on setting up this feature see
+ the Samba-PDC-HOWTO included in the Samba documentation.</p><p>Default: <b class="command">domain logons = no</b></p></dd><dt><span class="term"><a name="DOMAINMASTER"></a>domain master (G)</span></dt><dd><p>Tell <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> to enable WAN-wide browse list
+ collation. Setting this option causes <b class="command">nmbd</b> to
+ claim a special domain specific NetBIOS name that identifies
+ it as a domain master browser for its given <a href="#WORKGROUP">
+ <i class="parameter"><tt>workgroup</tt></i></a>. Local master browsers
+ in the same <i class="parameter"><tt>workgroup</tt></i> on broadcast-isolated
+ subnets will give this <b class="command">nmbd</b> their local browse lists,
+ and then ask <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> for a complete copy of the browse
+ list for the whole wide area network. Browser clients will then contact
+ their local master browser, and will receive the domain-wide browse list,
+ instead of just the list for their broadcast-isolated subnet.</p><p>Note that Windows NT Primary Domain Controllers expect to be
+ able to claim this <i class="parameter"><tt>workgroup</tt></i> specific special
+ NetBIOS name that identifies them as domain master browsers for
+ that <i class="parameter"><tt>workgroup</tt></i> by default (i.e. there is no
+ way to prevent a Windows NT PDC from attempting to do this). This
+ means that if this parameter is set and <b class="command">nmbd</b> claims
+ the special name for a <i class="parameter"><tt>workgroup</tt></i> before a Windows
+ NT PDC is able to do so then cross subnet browsing will behave
+ strangely and may fail.</p><p>If <a href="#DOMAINLOGONS"><b class="command">domain logons = yes</b>
+ </a>, then the default behavior is to enable the <i class="parameter"><tt>domain
+ master</tt></i> parameter. If <i class="parameter"><tt>domain logons</tt></i> is
+ not enabled (the default setting), then neither will <i class="parameter"><tt>domain
+ master</tt></i> be enabled by default.</p><p>Default: <b class="command">domain master = auto</b></p></dd><dt><span class="term"><a name="DONTDESCEND"></a>dont descend (S)</span></dt><dd><p>There are certain directories on some systems
+ (e.g., the <tt class="filename">/proc</tt> tree under Linux) that are either not
+ of interest to clients or are infinitely deep (recursive). This
+ parameter allows you to specify a comma-delimited list of directories
+ that the server should always show as empty.</p><p>Note that Samba can be very fussy about the exact format
+ of the &quot;dont descend&quot; entries. For example you may need <tt class="filename">
+ ./proc</tt> instead of just <tt class="filename">/proc</tt>.
+ Experimentation is the best policy :-) </p><p>Default: <span class="emphasis"><em>none (i.e., all directories are OK
+ to descend)</em></span></p><p>Example: <b class="command">dont descend = /proc,/dev</b></p></dd><dt><span class="term"><a name="DOSCHARSET"></a>dos charset (G)</span></dt><dd><p>DOS SMB clients assume the server has
+ the same charset as they do. This option specifies which
+ charset Samba should talk to DOS clients.
+ </p><p>The default depends on which charsets you have installed.
+ Samba tries to use charset 850 but falls back to ASCII in
+ case it is not available. Run <a href="testparm.1.html"><span class="citerefentry"><span class="refentrytitle">testparm</span>(1)</span></a> to check the default on your system.</p></dd><dt><span class="term"><a name="DOSFILEMODE"></a>dos filemode (S)</span></dt><dd><p> The default behavior in Samba is to provide
+ UNIX-like behavior where only the owner of a file/directory is
+ able to change the permissions on it. However, this behavior
+ is often confusing to DOS/Windows users. Enabling this parameter
+ allows a user who has write access to the file (by whatever
+ means) to modify the permissions on it. Note that a user
+ belonging to the group owning the file will not be allowed to
+ change permissions if the group is only granted read access.
+ Ownership of the file/directory is not changed, only the permissions
+ are modified.</p><p>Default: <b class="command">dos filemode = no</b></p></dd><dt><span class="term"><a name="DOSFILETIMERESOLUTION"></a>dos filetime resolution (S)</span></dt><dd><p>Under the DOS and Windows FAT filesystem, the finest
+ granularity on time resolution is two seconds. Setting this parameter
+ for a share causes Samba to round the reported time down to the
+ nearest two second boundary when a query call that requires one second
+ resolution is made to <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a>.</p><p>This option is mainly used as a compatibility option for Visual
+ C++ when used against Samba shares. If oplocks are enabled on a
+ share, Visual C++ uses two different time reading calls to check if a
+ file has changed since it was last read. One of these calls uses a
+ one-second granularity, the other uses a two second granularity. As
+ the two second call rounds any odd second down, then if the file has a
+ timestamp of an odd number of seconds then the two timestamps will not
+ match and Visual C++ will keep reporting the file has changed. Setting
+ this option causes the two timestamps to match, and Visual C++ is
+ happy.</p><p>Default: <b class="command">dos filetime resolution = no</b></p></dd><dt><span class="term"><a name="DOSFILETIMES"></a>dos filetimes (S)</span></dt><dd><p>Under DOS and Windows, if a user can write to a
+ file they can change the timestamp on it. Under POSIX semantics,
+ only the owner of the file or root may change the timestamp. By
+ default, Samba runs with POSIX semantics and refuses to change the
+ timestamp on a file if the user <b class="command">smbd</b> is acting
+ on behalf of is not the file owner. Setting this option to <tt class="constant">
+ yes</tt> allows DOS semantics and <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will change the file
+ timestamp as DOS requires.</p><p>Default: <b class="command">dos filetimes = no</b></p></dd><dt><span class="term"><a name="ENCRYPTPASSWORDS"></a>encrypt passwords (G)</span></dt><dd><p>This boolean controls whether encrypted passwords
+ will be negotiated with the client. Note that Windows NT 4.0 SP3 and
+ above and also Windows 98 will by default expect encrypted passwords
+ unless a registry entry is changed. To use encrypted passwords in
+ Samba see the chapter &quot;User Database&quot; in the Samba HOWTO Collection. </p><p>In order for encrypted passwords to work correctly
+ <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> must either
+ have access to a local <a href="smbpasswd.5.html"><span class="citerefentry"><span class="refentrytitle">smbpasswd</span>(5)</span></a> file (see the <a href="smbpasswd.8.html"><span class="citerefentry"><span class="refentrytitle">smbpasswd</span>(8)</span></a> program for information on how to set up
+ and maintain this file), or set the <a href="#SECURITY">security = [server|domain|ads]</a> parameter which
+ causes <b class="command">smbd</b> to authenticate against another
+ server.</p><p>Default: <b class="command">encrypt passwords = yes</b></p></dd><dt><span class="term"><a name="ENHANCEDBROWSING"></a>enhanced browsing (G)</span></dt><dd><p>This option enables a couple of enhancements to
+ cross-subnet browse propagation that have been added in Samba
+ but which are not standard in Microsoft implementations.
+ </p><p>The first enhancement to browse propagation consists of a regular
+ wildcard query to a Samba WINS server for all Domain Master Browsers,
+ followed by a browse synchronization with each of the returned
+ DMBs. The second enhancement consists of a regular randomised browse
+ synchronization with all currently known DMBs.</p><p>You may wish to disable this option if you have a problem with empty
+ workgroups not disappearing from browse lists. Due to the restrictions
+ of the browse protocols these enhancements can cause a empty workgroup
+ to stay around forever which can be annoying.</p><p>In general you should leave this option enabled as it makes
+ cross-subnet browse propagation much more reliable.</p><p>Default: <b class="command">enhanced browsing = yes</b></p></dd><dt><span class="term"><a name="ENUMPORTSCOMMAND"></a>enumports command (G)</span></dt><dd><p>The concept of a &quot;port&quot; is fairly foreign
+ to UNIX hosts. Under Windows NT/2000 print servers, a port
+ is associated with a port monitor and generally takes the form of
+ a local port (i.e. LPT1:, COM1:, FILE:) or a remote port
+ (i.e. LPD Port Monitor, etc...). By default, Samba has only one
+ port defined--<tt class="constant">&quot;Samba Printer Port&quot;</tt>. Under
+ Windows NT/2000, all printers must have a valid port name.
+ If you wish to have a list of ports displayed (<b class="command">smbd
+ </b> does not use a port name for anything) other than
+ the default <tt class="constant">&quot;Samba Printer Port&quot;</tt>, you
+ can define <i class="parameter"><tt>enumports command</tt></i> to point to
+ a program which should generate a list of ports, one per line,
+ to standard output. This listing will then be used in response
+ to the level 1 and 2 EnumPorts() RPC.</p><p>Default: <span class="emphasis"><em>no enumports command</em></span></p><p>Example: <b class="command">enumports command = /usr/bin/listports</b></p></dd><dt><span class="term"><a name="EXEC"></a>exec (S)</span></dt><dd><p>This is a synonym for <a href="#PREEXEC">
+ <i class="parameter"><tt>preexec</tt></i></a>.</p></dd><dt><span class="term"><a name="FAKEDIRECTORYCREATETIMES"></a>fake directory create times (S)</span></dt><dd><p>NTFS and Windows VFAT file systems keep a create
+ time for all files and directories. This is not the same as the
+ ctime - status change time - that Unix keeps, so Samba by default
+ reports the earliest of the various times Unix does keep. Setting
+ this parameter for a share causes Samba to always report midnight
+ 1-1-1980 as the create time for directories.</p><p>This option is mainly used as a compatibility option for
+ Visual C++ when used against Samba shares. Visual C++ generated
+ makefiles have the object directory as a dependency for each object
+ file, and a make rule to create the directory. Also, when NMAKE
+ compares timestamps it uses the creation time when examining a
+ directory. Thus the object directory will be created if it does not
+ exist, but once it does exist it will always have an earlier
+ timestamp than the object files it contains.</p><p>However, Unix time semantics mean that the create time
+ reported by Samba will be updated whenever a file is created or
+ or deleted in the directory. NMAKE finds all object files in
+ the object directory. The timestamp of the last one built is then
+ compared to the timestamp of the object directory. If the
+ directory's timestamp if newer, then all object files
+ will be rebuilt. Enabling this option
+ ensures directories always predate their contents and an NMAKE build
+ will proceed as expected.</p><p>Default: <b class="command">fake directory create times = no</b></p></dd><dt><span class="term"><a name="FAKEOPLOCKS"></a>fake oplocks (S)</span></dt><dd><p>Oplocks are the way that SMB clients get permission
+ from a server to locally cache file operations. If a server grants
+ an oplock (opportunistic lock) then the client is free to assume
+ that it is the only one accessing the file and it will aggressively
+ cache file data. With some oplock types the client may even cache
+ file open/close operations. This can give enormous performance benefits.
+ </p><p>When you set <b class="command">fake oplocks = yes</b>, <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will
+ always grant oplock requests no matter how many clients are using the file.</p><p>It is generally much better to use the real <a href="#OPLOCKS">
+ <i class="parameter"><tt>oplocks</tt></i></a> support rather
+ than this parameter.</p><p>If you enable this option on all read-only shares or
+ shares that you know will only be accessed from one client at a
+ time such as physically read-only media like CDROMs, you will see
+ a big performance improvement on many operations. If you enable
+ this option on shares where multiple clients may be accessing the
+ files read-write at the same time you can get data corruption. Use
+ this option carefully!</p><p>Default: <b class="command">fake oplocks = no</b></p></dd><dt><span class="term"><a name="FOLLOWSYMLINKS"></a>follow symlinks (S)</span></dt><dd><p>This parameter allows the Samba administrator
+ to stop <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> from following symbolic
+ links in a particular share. Setting this
+ parameter to <tt class="constant">no</tt> prevents any file or directory
+ that is a symbolic link from being followed (the user will get an
+ error). This option is very useful to stop users from adding a
+ symbolic link to <tt class="filename">/etc/passwd</tt> in their home
+ directory for instance. However it will slow filename lookups
+ down slightly.</p><p>This option is enabled (i.e. <b class="command">smbd</b> will
+ follow symbolic links) by default.</p><p>Default: <b class="command">follow symlinks = yes</b></p></dd><dt><span class="term"><a name="FORCECREATEMODE"></a>force create mode (S)</span></dt><dd><p>This parameter specifies a set of UNIX mode bit
+ permissions that will <span class="emphasis"><em>always</em></span> be set on a
+ file created by Samba. This is done by bitwise 'OR'ing these bits onto
+ the mode bits of a file that is being created or having its
+ permissions changed. The default for this parameter is (in octal)
+ 000. The modes in this parameter are bitwise 'OR'ed onto the file
+ mode after the mask set in the <i class="parameter"><tt>create mask</tt></i>
+ parameter is applied.</p><p>See also the parameter <a href="#CREATEMASK"><i class="parameter"><tt>create
+ mask</tt></i></a> for details on masking mode bits on files.</p><p>See also the <a href="#INHERITPERMISSIONS"><i class="parameter"><tt>inherit
+ permissions</tt></i></a> parameter.</p><p>Default: <b class="command">force create mode = 000</b></p><p>Example: <b class="command">force create mode = 0755</b></p><p>would force all created files to have read and execute
+ permissions set for 'group' and 'other' as well as the
+ read/write/execute bits set for the 'user'.</p></dd><dt><span class="term"><a name="FORCEDIRECTORYMODE"></a>force directory mode (S)</span></dt><dd><p>This parameter specifies a set of UNIX mode bit
+ permissions that will <span class="emphasis"><em>always</em></span> be set on a directory
+ created by Samba. This is done by bitwise 'OR'ing these bits onto the
+ mode bits of a directory that is being created. The default for this
+ parameter is (in octal) 0000 which will not add any extra permission
+ bits to a created directory. This operation is done after the mode
+ mask in the parameter <i class="parameter"><tt>directory mask</tt></i> is
+ applied.</p><p>See also the parameter <a href="#DIRECTORYMASK"><i class="parameter"><tt>
+ directory mask</tt></i></a> for details on masking mode bits
+ on created directories.</p><p>See also the <a href="#INHERITPERMISSIONS"><i class="parameter"><tt>
+ inherit permissions</tt></i></a> parameter.</p><p>Default: <b class="command">force directory mode = 000</b></p><p>Example: <b class="command">force directory mode = 0755</b></p><p>would force all created directories to have read and execute
+ permissions set for 'group' and 'other' as well as the
+ read/write/execute bits set for the 'user'.</p></dd><dt><span class="term"><a name="FORCEDIRECTORYSECURITYMODE"></a>force directory security mode (S)</span></dt><dd><p>This parameter controls what UNIX permission bits
+ can be modified when a Windows NT client is manipulating the UNIX
+ permission on a directory using the native NT security dialog box.</p><p>This parameter is applied as a mask (OR'ed with) to the
+ changed permission bits, thus forcing any bits in this mask that
+ the user may have modified to be on. Essentially, one bits in this
+ mask may be treated as a set of bits that, when modifying security
+ on a directory, the user has always set to be 'on'.</p><p>If not set explicitly this parameter is 000, which
+ allows a user to modify all the user/group/world permissions on a
+ directory without restrictions.</p><p><span class="emphasis"><em>Note</em></span> that users who can access the
+ Samba server through other means can easily bypass this restriction,
+ so it is primarily useful for standalone &quot;appliance&quot; systems.
+ Administrators of most normal systems will probably want to leave
+ it set as 0000.</p><p>See also the <a href="#DIRECTORYSECURITYMASK"><i class="parameter"><tt>
+ directory security mask</tt></i></a>, <a href="#SECURITYMASK">
+ <i class="parameter"><tt>security mask</tt></i></a>,
+ <a href="#FORCESECURITYMODE"><i class="parameter"><tt>force security mode
+ </tt></i></a> parameters.</p><p>Default: <b class="command">force directory security mode = 0</b></p><p>Example: <b class="command">force directory security mode = 700</b></p></dd><dt><span class="term"><a name="FORCEGROUP"></a>force group (S)</span></dt><dd><p>This specifies a UNIX group name that will be
+ assigned as the default primary group for all users connecting
+ to this service. This is useful for sharing files by ensuring
+ that all access to files on service will use the named group for
+ their permissions checking. Thus, by assigning permissions for this
+ group to the files and directories within this service the Samba
+ administrator can restrict or allow sharing of these files.</p><p>In Samba 2.0.5 and above this parameter has extended
+ functionality in the following way. If the group name listed here
+ has a '+' character prepended to it then the current user accessing
+ the share only has the primary group default assigned to this group
+ if they are already assigned as a member of that group. This allows
+ an administrator to decide that only users who are already in a
+ particular group will create files with group ownership set to that
+ group. This gives a finer granularity of ownership assignment. For
+ example, the setting <tt class="filename">force group = +sys</tt> means
+ that only users who are already in group sys will have their default
+ primary group assigned to sys when accessing this Samba share. All
+ other users will retain their ordinary primary group.</p><p>If the <a href="#FORCEUSER"><i class="parameter"><tt>force user</tt></i>
+ </a> parameter is also set the group specified in
+ <i class="parameter"><tt>force group</tt></i> will override the primary group
+ set in <i class="parameter"><tt>force user</tt></i>.</p><p>See also <a href="#FORCEUSER"><i class="parameter"><tt>force user</tt></i></a>.</p><p>Default: <span class="emphasis"><em>no forced group</em></span></p><p>Example: <b class="command">force group = agroup</b></p></dd><dt><span class="term"><a name="FORCESECURITYMODE"></a>force security mode (S)</span></dt><dd><p>This parameter controls what UNIX permission
+ bits can be modified when a Windows NT client is manipulating
+ the UNIX permission on a file using the native NT security dialog
+ box.</p><p>This parameter is applied as a mask (OR'ed with) to the
+ changed permission bits, thus forcing any bits in this mask that
+ the user may have modified to be on. Essentially, one bits in this
+ mask may be treated as a set of bits that, when modifying security
+ on a file, the user has always set to be 'on'.</p><p>If not set explicitly this parameter is set to 0,
+ and allows a user to modify all the user/group/world permissions on a file,
+ with no restrictions.</p><p><span class="emphasis"><em>Note</em></span> that users who can access
+ the Samba server through other means can easily bypass this restriction,
+ so it is primarily useful for standalone &quot;appliance&quot; systems.
+ Administrators of most normal systems will probably want to leave
+ this set to 0000.</p><p>See also the <a href="#FORCEDIRECTORYSECURITYMODE"><i class="parameter"><tt>
+ force directory security mode</tt></i></a>,
+ <a href="#DIRECTORYSECURITYMASK"><i class="parameter"><tt>directory security
+ mask</tt></i></a>, <a href="#SECURITYMASK"><i class="parameter"><tt>
+ security mask</tt></i></a> parameters.</p><p>Default: <b class="command">force security mode = 0</b></p><p>Example: <b class="command">force security mode = 700</b></p></dd><dt><span class="term"><a name="FORCEUSER"></a>force user (S)</span></dt><dd><p>This specifies a UNIX user name that will be
+ assigned as the default user for all users connecting to this service.
+ This is useful for sharing files. You should also use it carefully
+ as using it incorrectly can cause security problems.</p><p>This user name only gets used once a connection is established.
+ Thus clients still need to connect as a valid user and supply a
+ valid password. Once connected, all file operations will be performed
+ as the &quot;forced user&quot;, no matter what username the client connected
+ as. This can be very useful.</p><p>In Samba 2.0.5 and above this parameter also causes the
+ primary group of the forced user to be used as the primary group
+ for all file activity. Prior to 2.0.5 the primary group was left
+ as the primary group of the connecting user (this was a bug).</p><p>See also <a href="#FORCEGROUP"><i class="parameter"><tt>force group</tt></i></a></p><p>Default: <span class="emphasis"><em>no forced user</em></span></p><p>Example: <b class="command">force user = auser</b></p></dd><dt><span class="term"><a name="FSTYPE"></a>fstype (S)</span></dt><dd><p>This parameter allows the administrator to
+ configure the string that specifies the type of filesystem a share
+ is using that is reported by <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> when a client queries the filesystem type
+ for a share. The default type is <tt class="constant">NTFS</tt> for
+ compatibility with Windows NT but this can be changed to other
+ strings such as <tt class="constant">Samba</tt> or <tt class="constant">FAT
+ </tt> if required.</p><p>Default: <b class="command">fstype = NTFS</b></p><p>Example: <b class="command">fstype = Samba</b></p></dd><dt><span class="term"><a name="GETWDCACHE"></a>getwd cache (G)</span></dt><dd><p>This is a tuning option. When this is enabled a
+ caching algorithm will be used to reduce the time taken for getwd()
+ calls. This can have a significant impact on performance, especially
+ when the <a href="#WIDELINKS"><i class="parameter"><tt>wide links</tt></i>
+ </a> parameter is set to <tt class="constant">no</tt>.</p><p>Default: <b class="command">getwd cache = yes</b></p></dd><dt><span class="term"><a name="GROUP"></a>group (S)</span></dt><dd><p>Synonym for <a href="#FORCEGROUP">
+ <i class="parameter"><tt>force group</tt></i></a>.</p></dd><dt><span class="term"><a name="GUESTACCOUNT"></a>guest account (G,S)</span></dt><dd><p>This is a username which will be used for access
+ to services which are specified as <a href="#GUESTOK"><i class="parameter"><tt>
+ guest ok</tt></i></a> (see below). Whatever privileges this
+ user has will be available to any client connecting to the guest service.
+ Typically this user will exist in the password file, but will not
+ have a valid login. The user account &quot;ftp&quot; is often a good choice
+ for this parameter. If a username is specified in a given service,
+ the specified username overrides this one.
+ </p><p>One some systems the default guest account &quot;nobody&quot; may not
+ be able to print. Use another account in this case. You should test
+ this by trying to log in as your guest user (perhaps by using the
+ <b class="command">su -</b> command) and trying to print using the
+ system print command such as <b class="command">lpr(1)</b> or <b class="command">
+ lp(1)</b>.</p><p>This parameter does not accept % macros, because
+ many parts of the system require this value to be
+ constant for correct operation.</p><p>Default: <span class="emphasis"><em>specified at compile time, usually &quot;nobody&quot;</em></span></p><p>Example: <b class="command">guest account = ftp</b></p></dd><dt><span class="term"><a name="GUESTOK"></a>guest ok (S)</span></dt><dd><p>If this parameter is <tt class="constant">yes</tt> for
+ a service, then no password is required to connect to the service.
+ Privileges will be those of the <a href="#GUESTACCOUNT"><i class="parameter"><tt>
+ guest account</tt></i></a>.</p><p>This paramater nullifies the benifits of setting
+ <a href="#RESTRICTANONYMOUS"><i class="parameter"><tt>restrict
+ anonymous</tt></i></a> = 2</p><p>See the section below on <a href="#SECURITY"><i class="parameter"><tt>
+ security</tt></i></a> for more information about this option.
+ </p><p>Default: <b class="command">guest ok = no</b></p></dd><dt><span class="term"><a name="GUESTONLY"></a>guest only (S)</span></dt><dd><p>If this parameter is <tt class="constant">yes</tt> for
+ a service, then only guest connections to the service are permitted.
+ This parameter will have no effect if <a href="#GUESTOK">
+ <i class="parameter"><tt>guest ok</tt></i></a> is not set for the service.</p><p>See the section below on <a href="#SECURITY"><i class="parameter"><tt>
+ security</tt></i></a> for more information about this option.
+ </p><p>Default: <b class="command">guest only = no</b></p></dd><dt><span class="term"><a name="HIDEDOTFILES"></a>hide dot files (S)</span></dt><dd><p>This is a boolean parameter that controls whether
+ files starting with a dot appear as hidden files.</p><p>Default: <b class="command">hide dot files = yes</b></p></dd><dt><span class="term"><a name="HIDEFILES"></a>hide files (S)</span></dt><dd><p>This is a list of files or directories that are not
+ visible but are accessible. The DOS 'hidden' attribute is applied
+ to any files or directories that match.</p><p>Each entry in the list must be separated by a '/',
+ which allows spaces to be included in the entry. '*'
+ and '?' can be used to specify multiple files or directories
+ as in DOS wildcards.</p><p>Each entry must be a Unix path, not a DOS path and must
+ not include the Unix directory separator '/'.</p><p>Note that the case sensitivity option is applicable
+ in hiding files.</p><p>Setting this parameter will affect the performance of Samba,
+ as it will be forced to check all files and directories for a match
+ as they are scanned.</p><p>See also <a href="#HIDEDOTFILES"><i class="parameter"><tt>hide
+ dot files</tt></i></a>, <a href="#VETOFILES"><i class="parameter"><tt>
+ veto files</tt></i></a> and <a href="#CASESENSITIVE">
+ <i class="parameter"><tt>case sensitive</tt></i></a>.</p><p>Default: <span class="emphasis"><em>no file are hidden</em></span></p><p>Example: <b class="command">hide files =
+ /.*/DesktopFolderDB/TrashFor%m/resource.frk/</b></p><p>The above example is based on files that the Macintosh
+ SMB client (DAVE) available from <a href="http://www.thursby.com" target="_top">
+ Thursby</a> creates for internal use, and also still hides
+ all files beginning with a dot.</p></dd><dt><span class="term"><a name="HIDELOCALUSERS"></a>hide local users (G)</span></dt><dd><p>This parameter toggles the hiding of local UNIX
+ users (root, wheel, floppy, etc) from remote clients.</p><p>Default: <b class="command">hide local users = no</b></p></dd><dt><span class="term"><a name="HIDESPECIALFILES"></a>hide special files (S)</span></dt><dd><p>This parameter prevents clients from seeing
+ special files such as sockets, devices and fifo's in directory
+ listings.
+ </p><p>Default: <b class="command">hide special files = no</b></p></dd><dt><span class="term"><a name="HIDEUNREADABLE"></a>hide unreadable (S)</span></dt><dd><p>This parameter prevents clients from seeing the
+ existance of files that cannot be read. Defaults to off.</p><p>Default: <b class="command">hide unreadable = no</b></p></dd><dt><span class="term"><a name="HIDEUNWRITEABLEFILES"></a>hide unwriteable files (S)</span></dt><dd><p>This parameter prevents clients from seeing
+ the existance of files that cannot be written to. Defaults to off.
+ Note that unwriteable directories are shown as usual.
+ </p><p>Default: <b class="command">hide unwriteable = no</b></p></dd><dt><span class="term"><a name="HOMEDIRMAP"></a>homedir map (G)</span></dt><dd><p>If<a href="#NISHOMEDIR"><i class="parameter"><tt>nis homedir
+ </tt></i></a> is <tt class="constant">yes</tt>, and <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> is also acting
+ as a Win95/98 <i class="parameter"><tt>logon server</tt></i> then this parameter
+ specifies the NIS (or YP) map from which the server for the user's
+ home directory should be extracted. At present, only the Sun
+ auto.home map format is understood. The form of the map is:</p><p><b class="command">username server:/some/file/system</b></p><p>and the program will extract the servername from before
+ the first ':'. There should probably be a better parsing system
+ that copes with different map formats and also Amd (another
+ automounter) maps.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>A working NIS client is required on
+ the system for this option to work.</p></div><p>See also <a href="#NISHOMEDIR"><i class="parameter"><tt>nis homedir</tt></i>
+ </a>, <a href="#DOMAINLOGONS"><i class="parameter"><tt>domain logons</tt></i>
+ </a>.</p><p>Default: <b class="command">homedir map = &lt;empty string&gt;</b></p><p>Example: <b class="command">homedir map = amd.homedir</b></p></dd><dt><span class="term"><a name="HOSTMSDFS"></a>host msdfs (G)</span></dt><dd><p>This boolean parameter is only available
+ if Samba has been configured and compiled with the <b class="command">
+ --with-msdfs</b> option. If set to <tt class="constant">yes</tt>,
+ Samba will act as a Dfs server, and allow Dfs-aware clients
+ to browse Dfs trees hosted on the server.</p><p>See also the <a href="#MSDFSROOT"><i class="parameter"><tt>
+ msdfs root</tt></i></a> share level parameter. For
+ more information on setting up a Dfs tree on Samba,
+ refer to <a href="msdfs_setup.html" target="_top">msdfs_setup.html</a>.
+ </p><p>Default: <b class="command">host msdfs = no</b></p></dd><dt><span class="term"><a name="HOSTNAMELOOKUPS"></a>hostname lookups (G)</span></dt><dd><p>Specifies whether samba should use (expensive)
+ hostname lookups or use the ip addresses instead. An example place
+ where hostname lookups are currently used is when checking
+ the <b class="command">hosts deny</b> and <b class="command">hosts allow</b>.
+ </p><p>Default: <b class="command">hostname lookups = yes</b></p><p>Example: <b class="command">hostname lookups = no</b></p></dd><dt><span class="term"><a name="HOSTSALLOW"></a>hosts allow (S)</span></dt><dd><p>A synonym for this parameter is <i class="parameter"><tt>allow
+ hosts</tt></i>.</p><p>This parameter is a comma, space, or tab delimited
+ set of hosts which are permitted to access a service.</p><p>If specified in the [global] section then it will
+ apply to all services, regardless of whether the individual
+ service has a different setting.</p><p>You can specify the hosts by name or IP number. For
+ example, you could restrict access to only the hosts on a
+ Class C subnet with something like <b class="command">allow hosts = 150.203.5.
+ </b>. The full syntax of the list is described in the man
+ page <tt class="filename">hosts_access(5)</tt>. Note that this man
+ page may not be present on your system, so a brief description will
+ be given here also.</p><p>Note that the localhost address 127.0.0.1 will always
+ be allowed access unless specifically denied by a <a href="#HOSTSDENY">
+ <i class="parameter"><tt>hosts deny</tt></i></a> option.</p><p>You can also specify hosts by network/netmask pairs and
+ by netgroup names if your system supports netgroups. The
+ <span class="emphasis"><em>EXCEPT</em></span> keyword can also be used to limit a
+ wildcard list. The following examples may provide some help:</p><p>Example 1: allow all IPs in 150.203.*.*; except one</p><p><b class="command">hosts allow = 150.203. EXCEPT 150.203.6.66</b></p><p>Example 2: allow hosts that match the given network/netmask</p><p><b class="command">hosts allow = 150.203.15.0/255.255.255.0</b></p><p>Example 3: allow a couple of hosts</p><p><b class="command">hosts allow = lapland, arvidsjaur</b></p><p>Example 4: allow only hosts in NIS netgroup &quot;foonet&quot;, but
+ deny access from one particular host</p><p><b class="command">hosts allow = @foonet</b></p><p><b class="command">hosts deny = pirate</b></p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Note that access still requires suitable user-level passwords.</p></div><p>See <a href="testparm.1.html"><span class="citerefentry"><span class="refentrytitle">testparm</span>(1)</span></a> for a way of testing your host access
+ to see if it does what you expect.</p><p>Default: <span class="emphasis"><em>none (i.e., all hosts permitted access)</em></span></p><p>Example: <b class="command">allow hosts = 150.203.5. myhost.mynet.edu.au</b></p></dd><dt><span class="term"><a name="HOSTSDENY"></a>hosts deny (S)</span></dt><dd><p>The opposite of <i class="parameter"><tt>hosts allow</tt></i>
+ - hosts listed here are <span class="emphasis"><em>NOT</em></span> permitted access to
+ services unless the specific services have their own lists to override
+ this one. Where the lists conflict, the <i class="parameter"><tt>allow</tt></i>
+ list takes precedence.</p><p>Default: <span class="emphasis"><em>none (i.e., no hosts specifically excluded)</em></span></p><p>Example: <b class="command">hosts deny = 150.203.4. badhost.mynet.edu.au</b></p></dd><dt><span class="term"><a name="HOSTSEQUIV"></a>hosts equiv (G)</span></dt><dd><p>If this global parameter is a non-null string,
+ it specifies the name of a file to read for the names of hosts
+ and users who will be allowed access without specifying a password.
+ </p><p>This is not be confused with <a href="#HOSTSALLOW">
+ <i class="parameter"><tt>hosts allow</tt></i></a> which is about hosts
+ access to services and is more useful for guest services. <i class="parameter"><tt>
+ hosts equiv</tt></i> may be useful for NT clients which will
+ not supply passwords to Samba.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The use of <i class="parameter"><tt>hosts equiv
+ </tt></i> can be a major security hole. This is because you are
+ trusting the PC to supply the correct username. It is very easy to
+ get a PC to supply a false username. I recommend that the
+ <i class="parameter"><tt>hosts equiv</tt></i> option be only used if you really
+ know what you are doing, or perhaps on a home network where you trust
+ your spouse and kids. And only if you <span class="emphasis"><em>really</em></span> trust
+ them :-).</p></div><p>Default: <span class="emphasis"><em>no host equivalences</em></span></p><p>Example: <b class="command">hosts equiv = /etc/hosts.equiv</b></p></dd><dt><span class="term"><a name="INCLUDE"></a>include (G)</span></dt><dd><p>This allows you to include one config file
+ inside another. The file is included literally, as though typed
+ in place.</p><p>It takes the standard substitutions, except <i class="parameter"><tt>%u
+ </tt></i>, <i class="parameter"><tt>%P</tt></i> and <i class="parameter"><tt>%S</tt></i>.
+ </p><p>Default: <span class="emphasis"><em>no file included</em></span></p><p>Example: <b class="command">include = /usr/local/samba/lib/admin_smb.conf</b></p></dd><dt><span class="term"><a name="INHERITACLS"></a>inherit acls (S)</span></dt><dd><p>This parameter can be used to ensure that if default acls
+ exist on parent directories, they are always honored when creating a
+ subdirectory. The default behavior is to use the mode specified when
+ creating the directory. Enabling this option sets the mode to 0777,
+ thus guaranteeing that default directory acls are propagated.
+ </p><p>Default: <b class="command">inherit acls = no</b>
+</p></dd><dt><span class="term"><a name="INHERITPERMISSIONS"></a>inherit permissions (S)</span></dt><dd><p>The permissions on new files and directories
+ are normally governed by <a href="#CREATEMASK"><i class="parameter"><tt>
+ create mask</tt></i></a>, <a href="#DIRECTORYMASK">
+ <i class="parameter"><tt>directory mask</tt></i></a>, <a href="#FORCECREATEMODE">
+ <i class="parameter"><tt>force create mode</tt></i>
+ </a> and <a href="#FORCEDIRECTORYMODE"><i class="parameter"><tt>force
+ directory mode</tt></i></a> but the boolean inherit
+ permissions parameter overrides this.</p><p>New directories inherit the mode of the parent directory,
+ including bits such as setgid.</p><p>New files inherit their read/write bits from the parent
+ directory. Their execute bits continue to be determined by
+ <a href="#MAPARCHIVE"><i class="parameter"><tt>map archive</tt></i>
+ </a>, <a href="#MAPHIDDEN"><i class="parameter"><tt>map hidden</tt></i>
+ </a> and <a href="#MAPSYSTEM"><i class="parameter"><tt>map system</tt></i>
+ </a> as usual.</p><p>Note that the setuid bit is <span class="emphasis"><em>never</em></span> set via
+ inheritance (the code explicitly prohibits this).</p><p>This can be particularly useful on large systems with
+ many users, perhaps several thousand, to allow a single [homes]
+ share to be used flexibly by each user.</p><p>See also <a href="#CREATEMASK"><i class="parameter"><tt>create mask
+ </tt></i></a>, <a href="#DIRECTORYMASK"><i class="parameter"><tt>
+ directory mask</tt></i></a>, <a href="#FORCECREATEMODE">
+ <i class="parameter"><tt>force create mode</tt></i></a> and <a href="#FORCEDIRECTORYMODE">
+ <i class="parameter"><tt>force directory mode</tt></i>
+ </a>.</p><p>Default: <b class="command">inherit permissions = no</b></p></dd><dt><span class="term"><a name="INTERFACES"></a>interfaces (G)</span></dt><dd><p>This option allows you to override the default
+ network interfaces list that Samba will use for browsing, name
+ registration and other NBT traffic. By default Samba will query
+ the kernel for the list of all active interfaces and use any
+ interfaces except 127.0.0.1 that are broadcast capable.</p><p>The option takes a list of interface strings. Each string
+ can be in any of the following forms:</p><div class="itemizedlist"><ul type="disc"><li><p>a network interface name (such as eth0).
+ This may include shell-like wildcards so eth* will match
+ any interface starting with the substring &quot;eth&quot;</p></li><li><p>an IP address. In this case the netmask is
+ determined from the list of interfaces obtained from the
+ kernel</p></li><li><p>an IP/mask pair. </p></li><li><p>a broadcast/mask pair.</p></li></ul></div><p>The &quot;mask&quot; parameters can either be a bit length (such
+ as 24 for a C class network) or a full netmask in dotted
+ decimal form.</p><p>The &quot;IP&quot; parameters above can either be a full dotted
+ decimal IP address or a hostname which will be looked up via
+ the OS's normal hostname resolution mechanisms.</p><p>For example, the following line:</p><p><b class="command">interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0</b></p><p>would configure three network interfaces corresponding
+ to the eth0 device and IP addresses 192.168.2.10 and 192.168.3.10.
+ The netmasks of the latter two interfaces would be set to 255.255.255.0.</p><p>See also <a href="#BINDINTERFACESONLY"><i class="parameter"><tt>bind
+ interfaces only</tt></i></a>.</p><p>Default: <span class="emphasis"><em>all active interfaces except 127.0.0.1
+ that are broadcast capable</em></span></p></dd><dt><span class="term"><a name="INVALIDUSERS"></a>invalid users (S)</span></dt><dd><p>This is a list of users that should not be allowed
+ to login to this service. This is really a <span class="emphasis"><em>paranoid</em></span>
+ check to absolutely ensure an improper setting does not breach
+ your security.</p><p>A name starting with a '@' is interpreted as an NIS
+ netgroup first (if your system supports NIS), and then as a UNIX
+ group if the name was not found in the NIS netgroup database.</p><p>A name starting with '+' is interpreted only
+ by looking in the UNIX group database. A name starting with
+ '&amp;' is interpreted only by looking in the NIS netgroup database
+ (this requires NIS to be working on your system). The characters
+ '+' and '&amp;' may be used at the start of the name in either order
+ so the value <i class="parameter"><tt>+&amp;group</tt></i> means check the
+ UNIX group database, followed by the NIS netgroup database, and
+ the value <i class="parameter"><tt>&amp;+group</tt></i> means check the NIS
+ netgroup database, followed by the UNIX group database (the
+ same as the '@' prefix).</p><p>The current servicename is substituted for <i class="parameter"><tt>%S</tt></i>.
+ This is useful in the [homes] section.</p><p>See also <a href="#VALIDUSERS"><i class="parameter"><tt>valid users
+ </tt></i></a>.</p><p>Default: <span class="emphasis"><em>no invalid users</em></span></p><p>Example: <b class="command">invalid users = root fred admin @wheel</b></p></dd><dt><span class="term"><a name="KEEPALIVE"></a>keepalive (G)</span></dt><dd><p>The value of the parameter (an integer) represents
+ the number of seconds between <i class="parameter"><tt>keepalive</tt></i>
+ packets. If this parameter is zero, no keepalive packets will be
+ sent. Keepalive packets, if sent, allow the server to tell whether
+ a client is still present and responding.</p><p>Keepalives should, in general, not be needed if the socket
+ being used has the SO_KEEPALIVE attribute set on it (see <a href="#SOCKETOPTIONS">
+ <i class="parameter"><tt>socket options</tt></i></a>).
+ Basically you should only use this option if you strike difficulties.</p><p>Default: <b class="command">keepalive = 300</b></p><p>Example: <b class="command">keepalive = 600</b></p></dd><dt><span class="term"><a name="KERNELOPLOCKS"></a>kernel oplocks (G)</span></dt><dd><p>For UNIXes that support kernel based <a href="#OPLOCKS">
+ <i class="parameter"><tt>oplocks</tt></i></a>
+ (currently only IRIX and the Linux 2.4 kernel), this parameter
+ allows the use of them to be turned on or off.</p><p>Kernel oplocks support allows Samba <i class="parameter"><tt>oplocks
+ </tt></i> to be broken whenever a local UNIX process or NFS operation
+ accesses a file that <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> has oplocked. This allows complete
+ data consistency between SMB/CIFS, NFS and local file access (and is
+ a <span class="emphasis"><em>very</em></span> cool feature :-).</p><p>This parameter defaults to <tt class="constant">on</tt>, but is translated
+ to a no-op on systems that no not have the necessary kernel support.
+ You should never need to touch this parameter.</p><p>See also the <a href="#OPLOCKS"><i class="parameter"><tt>oplocks</tt></i>
+ </a> and <a href="#LEVEL2OPLOCKS"><i class="parameter"><tt>level2 oplocks
+ </tt></i></a> parameters.</p><p>Default: <b class="command">kernel oplocks = yes</b></p></dd><dt><span class="term"><a name="LANMANAUTH"></a>lanman auth (G)</span></dt><dd><p>This parameter determines whether or not <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will attempt to authenticate users
+ using the LANMAN password hash. If disabled, only clients which support NT
+ password hashes (e.g. Windows NT/2000 clients, smbclient, etc... but not
+ Windows 95/98 or the MS DOS network client) will be able to connect to the Samba host.</p><p>The LANMAN encrypted response is easily broken, due to it's
+ case-insensitive nature, and the choice of algorithm. Servers
+ without Windows 95/98 or MS DOS clients are advised to disable
+ this option. </p><p>Unlike the <b class="command">encypt
+ passwords</b> option, this parameter cannot alter client
+ behaviour, and the LANMAN response will still be sent over the
+ network. See the <b class="command">client lanman
+ auth</b> to disable this for Samba's clients (such as smbclient)</p><p>If this option, and <b class="command">ntlm
+ auth</b> are both disabled, then only NTLMv2 logins will be
+ permited. Not all clients support NTLMv2, and most will require
+ special configuration to us it.</p><p>Default : <b class="command">lanman auth = yes</b></p></dd><dt><span class="term"><a name="LARGEREADWRITE"></a>large readwrite (G)</span></dt><dd><p>This parameter determines whether or not
+ <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> supports the new 64k
+ streaming read and write varient SMB requests introduced with
+ Windows 2000. Note that due to Windows 2000 client redirector bugs
+ this requires Samba to be running on a 64-bit capable operating
+ system such as IRIX, Solaris or a Linux 2.4 kernel. Can improve
+ performance by 10% with Windows 2000 clients. Defaults to on. Not as
+ tested as some other Samba code paths.</p><p>Default: <b class="command">large readwrite = yes</b></p></dd><dt><span class="term"><a name="LDAPADMINDN"></a>ldap admin dn (G)</span></dt><dd><p> The <i class="parameter"><tt>ldap admin dn</tt></i>
+ defines the Distinguished Name (DN) name used by Samba to
+ contact the ldap server when retreiving user account
+ information. The <i class="parameter"><tt>ldap admin
+ dn</tt></i> is used in conjunction with the admin dn password
+ stored in the <tt class="filename">private/secrets.tdb</tt> file.
+ See the <a href="smbpasswd.8.html"><span class="citerefentry"><span class="refentrytitle">smbpasswd</span>(8)</span></a> man page for more
+ information on how to accmplish this.</p></dd><dt><span class="term"><a name="LDAPDELETEDN"></a>ldap delete dn (G)</span></dt><dd><p> This parameter specifies whether a delete
+ operation in the ldapsam deletes the complete entry or only the attributes
+ specific to Samba.
+ </p><p>Default: <span class="emphasis"><em>ldap delete dn = no</em></span></p></dd><dt><span class="term"><a name="LDAPFILTER"></a>ldap filter (G)</span></dt><dd><p>This parameter specifies the RFC 2254 compliant LDAP search filter.
+ The default is to match the login name with the <tt class="constant">uid</tt>
+ attribute for all entries matching the <tt class="constant">sambaAccount</tt>
+ objectclass. Note that this filter should only return one entry.
+ </p><p>Default: <b class="command">ldap filter = (&amp;(uid=%u)(objectclass=sambaAccount))</b></p></dd><dt><span class="term"><a name="LDAPMACHINESUFFIX"></a>ldap machine suffix (G)</span></dt><dd><p>It specifies where machines should be added to the ldap tree.</p><p>Default: <span class="emphasis"><em>none</em></span></p></dd><dt><span class="term"><a name="LDAPPASSWDSYNC"></a>ldap passwd sync (G)</span></dt><dd><p>This option is used to define whether
+ or not Samba should sync the LDAP password with the NT
+ and LM hashes for normal accounts (NOT for
+ workstation, server or domain trusts) on a password
+ change via SAMBA.
+ </p><p>The <i class="parameter"><tt>ldap passwd
+ sync</tt></i> can be set to one of three values: </p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>Yes</tt></i> = Try
+ to update the LDAP, NT and LM passwords and update the pwdLastSet time.</p></li><li><p><i class="parameter"><tt>No</tt></i> = Update NT and
+ LM passwords and update the pwdLastSet time.</p></li><li><p><i class="parameter"><tt>Only</tt></i> = Only update
+ the LDAP password and let the LDAP server do the rest.</p></li></ul></div><p>Default: <b class="command">ldap passwd sync = no</b></p></dd><dt><span class="term"><a name="LDAPPORT"></a>ldap port (G)</span></dt><dd><p>This parameter is only available if Samba has been
+ configure to include the <b class="command">--with-ldapsam</b> option
+ at compile time.</p><p>This option is used to control the tcp port number used to contact
+ the <a href="#LDAPSERVER"><i class="parameter"><tt>ldap server</tt></i></a>.
+ The default is to use the stand LDAPS port 636.</p><p>See Also: <a href="#LDAPSSL">ldap ssl</a></p><p>Default : <b class="command">ldap port = 636 ; if ldap ssl = on</b></p><p>Default : <b class="command">ldap port = 389 ; if ldap ssl = off</b></p></dd><dt><span class="term"><a name="LDAPSERVER"></a>ldap server (G)</span></dt><dd><p>This parameter is only available if Samba has been
+ configure to include the <b class="command">--with-ldapsam</b>
+ option at compile time.</p><p>This parameter should contain the FQDN of the ldap directory
+ server which should be queried to locate user account information.
+ </p><p>Default : <b class="command">ldap server = localhost</b></p></dd><dt><span class="term"><a name="LDAPSSL"></a>ldap ssl (G)</span></dt><dd><p>This option is used to define whether or not Samba should
+ use SSL when connecting to the ldap server
+ This is <span class="emphasis"><em>NOT</em></span> related to
+ Samba's previous SSL support which was enabled by specifying the
+ <b class="command">--with-ssl</b> option to the <tt class="filename">configure</tt>
+ script.</p><p>The <i class="parameter"><tt>ldap ssl</tt></i> can be set to one of three values:</p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>Off</tt></i> = Never
+ use SSL when querying the directory.</p></li><li><p><i class="parameter"><tt>Start_tls</tt></i> = Use
+ the LDAPv3 StartTLS extended operation (RFC2830) for
+ communicating with the directory server.</p></li><li><p><i class="parameter"><tt>On</tt></i> = Use SSL
+ on the ldaps port when contacting the <i class="parameter"><tt>ldap server</tt></i>. Only available when the
+ backwards-compatiblity <b class="command">--with-ldapsam</b> option is specified
+ to configure. See <a href="#PASSDBBACKEND"><i class="parameter"><tt>passdb backend</tt></i></a></p></li></ul></div><p>Default : <b class="command">ldap ssl = start_tls</b></p></dd><dt><span class="term"><a name="LDAPSUFFIX"></a>ldap suffix (G)</span></dt><dd><p>Specifies where user and machine accounts are added to the
+ tree. Can be overriden by <b class="command">ldap user
+ suffix</b> and <b class="command">ldap machine
+ suffix</b>. It also used as the base dn for all ldap
+ searches. </p><p>Default: <span class="emphasis"><em>none</em></span></p></dd><dt><span class="term"><a name="LDAPTRUSTIDS"></a>ldap trust ids (G)</span></dt><dd><p>Normally, Samba validates each entry in the LDAP server
+ against getpwnam(). This allows LDAP to be used for Samba with
+ the unix system using NIS (for example) and also ensures that
+ Samba does not present accounts that do not otherwise exist.
+ </p><p>This option is used to disable this functionality, and
+ instead to rely on the presence of the appropriate attributes
+ in LDAP directly, which can result in a significant performance
+ boost in some situations. Setting this option to yes effectivly
+ assumes that the local machine is running <b class="command">nss_ldap</b> against the same LDAP
+ server.</p><p>Default: <b class="command">ldap trust ids = No</b></p></dd><dt><span class="term"><a name="LDAPUSERSUFFIX"></a>ldap user suffix (G)</span></dt><dd><p>It specifies where users are added to the tree.</p><p>Default: <span class="emphasis"><em>none</em></span></p></dd><dt><span class="term"><a name="LEVEL2OPLOCKS"></a>level2 oplocks (S)</span></dt><dd><p>This parameter controls whether Samba supports
+ level2 (read-only) oplocks on a share.</p><p>Level2, or read-only oplocks allow Windows NT clients
+ that have an oplock on a file to downgrade from a read-write oplock
+ to a read-only oplock once a second client opens the file (instead
+ of releasing all oplocks on a second open, as in traditional,
+ exclusive oplocks). This allows all openers of the file that
+ support level2 oplocks to cache the file for read-ahead only (ie.
+ they may not cache writes or lock requests) and increases performance
+ for many accesses of files that are not commonly written (such as
+ application .EXE files).</p><p>Once one of the clients which have a read-only oplock
+ writes to the file all clients are notified (no reply is needed
+ or waited for) and told to break their oplocks to &quot;none&quot; and
+ delete any read-ahead caches.</p><p>It is recommended that this parameter be turned on to
+ speed access to shared executables.</p><p>For more discussions on level2 oplocks see the CIFS spec.</p><p>Currently, if <a href="#KERNELOPLOCKS"><i class="parameter"><tt>kernel
+ oplocks</tt></i></a> are supported then level2 oplocks are
+ not granted (even if this parameter is set to <tt class="constant">yes</tt>).
+ Note also, the <a href="#OPLOCKS"><i class="parameter"><tt>oplocks</tt></i>
+ </a> parameter must be set to <tt class="constant">yes</tt> on this share in order for
+ this parameter to have any effect.</p><p>See also the <a href="#OPLOCKS"><i class="parameter"><tt>oplocks</tt></i>
+ </a> and <a href="#OPLOCKS"><i class="parameter"><tt>kernel oplocks</tt></i>
+ </a> parameters.</p><p>Default: <b class="command">level2 oplocks = yes</b></p></dd><dt><span class="term"><a name="LMANNOUNCE"></a>lm announce (G)</span></dt><dd><p>This parameter determines if <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> will produce Lanman announce
+ broadcasts that are needed by OS/2 clients in order for them to see
+ the Samba server in their browse list. This parameter can have three
+ values, <tt class="constant">yes</tt>, <tt class="constant">no</tt>, or
+ <tt class="constant">auto</tt>. The default is <tt class="constant">auto</tt>.
+ If set to <tt class="constant">no</tt> Samba will never produce these
+ broadcasts. If set to <tt class="constant">yes</tt> Samba will produce
+ Lanman announce broadcasts at a frequency set by the parameter
+ <i class="parameter"><tt>lm interval</tt></i>. If set to <tt class="constant">auto</tt>
+ Samba will not send Lanman announce broadcasts by default but will
+ listen for them. If it hears such a broadcast on the wire it will
+ then start sending them at a frequency set by the parameter
+ <i class="parameter"><tt>lm interval</tt></i>.</p><p>See also <a href="#LMINTERVAL"><i class="parameter"><tt>lm interval</tt></i></a>.</p><p>Default: <b class="command">lm announce = auto</b></p><p>Example: <b class="command">lm announce = yes</b></p></dd><dt><span class="term"><a name="LMINTERVAL"></a>lm interval (G)</span></dt><dd><p>If Samba is set to produce Lanman announce
+ broadcasts needed by OS/2 clients (see the <a href="#LMANNOUNCE">
+ <i class="parameter"><tt>lm announce</tt></i></a> parameter) then this
+ parameter defines the frequency in seconds with which they will be
+ made. If this is set to zero then no Lanman announcements will be
+ made despite the setting of the <i class="parameter"><tt>lm announce</tt></i>
+ parameter.</p><p>See also <a href="#LMANNOUNCE"><i class="parameter"><tt>lm announce</tt></i></a>.</p><p>Default: <b class="command">lm interval = 60</b></p><p>Example: <b class="command">lm interval = 120</b></p></dd><dt><span class="term"><a name="LOADPRINTERS"></a>load printers (G)</span></dt><dd><p>A boolean variable that controls whether all
+ printers in the printcap will be loaded for browsing by default.
+ See the <a href="#PRINTERSSECT" title="The [printers] section">printers</a> section for
+ more details.</p><p>Default: <b class="command">load printers = yes</b></p></dd><dt><span class="term"><a name="LOCALMASTER"></a>local master (G)</span></dt><dd><p>This option allows <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> to try and become a local master browser
+ on a subnet. If set to <tt class="constant">no</tt> then <b class="command">
+ nmbd</b> will not attempt to become a local master browser
+ on a subnet and will also lose in all browsing elections. By
+ default this value is set to <tt class="constant">yes</tt>. Setting this value to
+ <tt class="constant">yes</tt> doesn't mean that Samba will <span class="emphasis"><em>become</em></span> the
+ local master browser on a subnet, just that <b class="command">nmbd</b>
+ will <span class="emphasis"><em>participate</em></span> in elections for local master browser.</p><p>Setting this value to <tt class="constant">no</tt> will cause <b class="command">nmbd</b> <span class="emphasis"><em>never</em></span> to become a local
+ master browser.</p><p>Default: <b class="command">local master = yes</b></p></dd><dt><span class="term"><a name="LOCKDIR"></a>lock dir (G)</span></dt><dd><p>Synonym for <a href="#LOCKDIRECTORY"><i class="parameter"><tt>
+ lock directory</tt></i></a>.
+</p></dd><dt><span class="term"><a name="LOCKDIRECTORY"></a>lock directory (G)</span></dt><dd><p>This option specifies the directory where lock
+ files will be placed. The lock files are used to implement the
+ <a href="#MAXCONNECTIONS"><i class="parameter"><tt>max connections</tt></i>
+ </a> option.</p><p>Default: <b class="command">lock directory = ${prefix}/var/locks</b></p><p>Example: <b class="command">lock directory = /var/run/samba/locks</b></p></dd><dt><span class="term"><a name="LOCKING"></a>locking (S)</span></dt><dd><p>This controls whether or not locking will be
+ performed by the server in response to lock requests from the
+ client.</p><p>If <b class="command">locking = no</b>, all lock and unlock
+ requests will appear to succeed and all lock queries will report
+ that the file in question is available for locking.</p><p>If <b class="command">locking = yes</b>, real locking will be performed
+ by the server.</p><p>This option <span class="emphasis"><em>may</em></span> be useful for read-only
+ filesystems which <span class="emphasis"><em>may</em></span> not need locking (such as
+ CDROM drives), although setting this parameter of <tt class="constant">no</tt>
+ is not really recommended even in this case.</p><p>Be careful about disabling locking either globally or in a
+ specific service, as lack of locking may result in data corruption.
+ You should never need to set this parameter.</p><p>Default: <b class="command">locking = yes</b></p></dd><dt><span class="term"><a name="LOCKSPINCOUNT"></a>lock spin count (G)</span></dt><dd><p>This parameter controls the number of times
+ that smbd should attempt to gain a byte range lock on the
+ behalf of a client request. Experiments have shown that
+ Windows 2k servers do not reply with a failure if the lock
+ could not be immediately granted, but try a few more times
+ in case the lock could later be aquired. This behavior
+ is used to support PC database formats such as MS Access
+ and FoxPro.
+ </p><p>Default: <b class="command">lock spin count = 2</b></p></dd><dt><span class="term"><a name="LOCKSPINTIME"></a>lock spin time (G)</span></dt><dd><p>The time in microseconds that smbd should
+ pause before attempting to gain a failed lock. See
+ <a href="#LOCKSPINCOUNT"><i class="parameter"><tt>lock spin
+ count</tt></i></a> for more details.</p><p>Default: <b class="command">lock spin time = 10</b></p></dd><dt><span class="term"><a name="LOGFILE"></a>log file (G)</span></dt><dd><p>This option allows you to override the name
+ of the Samba log file (also known as the debug file).</p><p>This option takes the standard substitutions, allowing
+ you to have separate log files for each user or machine.</p><p>Example: <b class="command">log file = /usr/local/samba/var/log.%m</b></p></dd><dt><span class="term"><a name="LOGLEVEL"></a>log level (G)</span></dt><dd><p>The value of the parameter (a astring) allows
+ the debug level (logging level) to be specified in the
+ <tt class="filename">smb.conf</tt> file. This parameter has been
+ extended since the 2.2.x series, now it allow to specify the debug
+ level for multiple debug classes. This is to give greater
+ flexibility in the configuration of the system.</p><p>The default will be the log level specified on
+ the command line or level zero if none was specified.</p><p>Example: <b class="command">log level = 3 passdb:5 auth:10 winbind:2</b></p></dd><dt><span class="term"><a name="LOGONDRIVE"></a>logon drive (G)</span></dt><dd><p>This parameter specifies the local path to
+ which the home directory will be connected (see <a href="#LOGONHOME">
+ <i class="parameter"><tt>logon home</tt></i></a>)
+ and is only used by NT Workstations. </p><p>Note that this option is only useful if Samba is set up as a
+ logon server.</p><p>Default: <b class="command">logon drive = z:</b></p><p>Example: <b class="command">logon drive = h:</b></p></dd><dt><span class="term"><a name="LOGONHOME"></a>logon home (G)</span></dt><dd><p>This parameter specifies the home directory
+ location when a Win95/98 or NT Workstation logs into a Samba PDC.
+ It allows you to do </p><p><tt class="prompt">C:\&gt;</tt>
+ <b class="userinput"><tt>NET USE H: /HOME</tt></b>
+ </p><p>from a command prompt, for example.</p><p>This option takes the standard substitutions, allowing
+ you to have separate logon scripts for each user or machine.</p><p>This parameter can be used with Win9X workstations to ensure
+ that roaming profiles are stored in a subdirectory of the user's
+ home directory. This is done in the following way:</p><p><b class="command">logon home = \\%N\%U\profile</b></p><p>This tells Samba to return the above string, with
+ substitutions made when a client requests the info, generally
+ in a NetUserGetInfo request. Win9X clients truncate the info to
+ \\server\share when a user does <b class="command">net use /home</b>
+ but use the whole string when dealing with profiles.</p><p>Note that in prior versions of Samba, the <a href="#LOGONPATH">
+ <i class="parameter"><tt>logon path</tt></i></a> was returned rather than
+ <i class="parameter"><tt>logon home</tt></i>. This broke <b class="command">net use /home</b> but allowed profiles outside the home directory.
+ The current implementation is correct, and can be used for profiles if you use
+ the above trick.</p><p>This option is only useful if Samba is set up as a logon
+ server.</p><p>Default: <b class="command">logon home = &quot;\\%N\%U&quot;</b></p><p>Example: <b class="command">logon home = &quot;\\remote_smb_server\%U&quot;</b></p></dd><dt><span class="term"><a name="LOGONPATH"></a>logon path (G)</span></dt><dd><p>This parameter specifies the home directory
+ where roaming profiles (NTuser.dat etc files for Windows NT) are
+ stored. Contrary to previous versions of these manual pages, it has
+ nothing to do with Win 9X roaming profiles. To find out how to
+ handle roaming profiles for Win 9X system, see the <a href="#LOGONHOME">
+ <i class="parameter"><tt>logon home</tt></i></a> parameter.</p><p>This option takes the standard substitutions, allowing you
+ to have separate logon scripts for each user or machine. It also
+ specifies the directory from which the &quot;Application Data&quot;,
+ (<tt class="filename">desktop</tt>, <tt class="filename">start menu</tt>,
+ <tt class="filename">network neighborhood</tt>, <tt class="filename">programs</tt>
+ and other folders, and their contents, are loaded and displayed on
+ your Windows NT client.</p><p>The share and the path must be readable by the user for
+ the preferences and directories to be loaded onto the Windows NT
+ client. The share must be writeable when the user logs in for the first
+ time, in order that the Windows NT client can create the NTuser.dat
+ and other directories.</p><p>Thereafter, the directories and any of the contents can,
+ if required, be made read-only. It is not advisable that the
+ NTuser.dat file be made read-only - rename it to NTuser.man to
+ achieve the desired effect (a <span class="emphasis"><em>MAN</em></span>datory
+ profile). </p><p>Windows clients can sometimes maintain a connection to
+ the [homes] share, even though there is no user logged in.
+ Therefore, it is vital that the logon path does not include a
+ reference to the homes share (i.e. setting this parameter to
+ \%N\%U\profile_path will cause problems).</p><p>This option takes the standard substitutions, allowing
+ you to have separate logon scripts for each user or machine.</p><p>Note that this option is only useful if Samba is set up
+ as a logon server.</p><p>Default: <b class="command">logon path = \\%N\%U\profile</b></p><p>Example: <b class="command">logon path = \\PROFILESERVER\PROFILE\%U</b></p></dd><dt><span class="term"><a name="LOGONSCRIPT"></a>logon script (G)</span></dt><dd><p>This parameter specifies the batch file (.bat) or
+ NT command file (.cmd) to be downloaded and run on a machine when
+ a user successfully logs in. The file must contain the DOS
+ style CR/LF line endings. Using a DOS-style editor to create the
+ file is recommended.</p><p>The script must be a relative path to the [netlogon]
+ service. If the [netlogon] service specifies a <a href="#PATH">
+ <i class="parameter"><tt>path</tt></i></a> of <tt class="filename">/usr/local/samba/netlogon</tt>, and <b class="command">logon script = STARTUP.BAT</b>, then
+ the file that will be downloaded is:</p><p><tt class="filename">/usr/local/samba/netlogon/STARTUP.BAT</tt></p><p>The contents of the batch file are entirely your choice. A
+ suggested command would be to add <b class="command">NET TIME \\SERVER /SET
+ /YES</b>, to force every machine to synchronize clocks with
+ the same time server. Another use would be to add <b class="command">NET USE
+ U: \\SERVER\UTILS</b> for commonly used utilities, or <b class="command">
+ NET USE Q: \\SERVER\ISO9001_QA</b> for example.</p><p>Note that it is particularly important not to allow write
+ access to the [netlogon] share, or to grant users write permission
+ on the batch files in a secure environment, as this would allow
+ the batch files to be arbitrarily modified and security to be
+ breached.</p><p>This option takes the standard substitutions, allowing you
+ to have separate logon scripts for each user or machine.</p><p>This option is only useful if Samba is set up as a logon
+ server.</p><p>Default: <span class="emphasis"><em>no logon script defined</em></span></p><p>Example: <b class="command">logon script = scripts\%U.bat</b></p></dd><dt><span class="term"><a name="LPPAUSECOMMAND"></a>lppause command (S)</span></dt><dd><p>This parameter specifies the command to be
+ executed on the server host in order to stop printing or spooling
+ a specific print job.</p><p>This command should be a program or script which takes
+ a printer name and job number to pause the print job. One way
+ of implementing this is by using job priorities, where jobs
+ having a too low priority won't be sent to the printer.</p><p>If a <i class="parameter"><tt>%p</tt></i> is given then the printer name
+ is put in its place. A <i class="parameter"><tt>%j</tt></i> is replaced with
+ the job number (an integer). On HPUX (see <i class="parameter"><tt>printing=hpux
+ </tt></i>), if the <i class="parameter"><tt>-p%p</tt></i> option is added
+ to the lpq command, the job will show up with the correct status, i.e.
+ if the job priority is lower than the set fence priority it will
+ have the PAUSED status, whereas if the priority is equal or higher it
+ will have the SPOOLED or PRINTING status.</p><p>Note that it is good practice to include the absolute path
+ in the lppause command as the PATH may not be available to the server.</p><p>See also the <a href="#PRINTING"><i class="parameter"><tt>printing
+ </tt></i></a> parameter.</p><p>Default: Currently no default value is given to
+ this string, unless the value of the <i class="parameter"><tt>printing</tt></i>
+ parameter is <tt class="constant">SYSV</tt>, in which case the default is :</p><p><b class="command">lp -i %p-%j -H hold</b></p><p>or if the value of the <i class="parameter"><tt>printing</tt></i> parameter
+ is <tt class="constant">SOFTQ</tt>, then the default is:</p><p><b class="command">qstat -s -j%j -h</b></p><p>Example for HPUX: <b class="command">lppause command = /usr/bin/lpalt %p-%j -p0</b></p></dd><dt><span class="term"><a name="LPQCACHETIME"></a>lpq cache time (G)</span></dt><dd><p>This controls how long lpq info will be cached
+ for to prevent the <b class="command">lpq</b> command being called too
+ often. A separate cache is kept for each variation of the <b class="command">
+ lpq</b> command used by the system, so if you use different
+ <b class="command">lpq</b> commands for different users then they won't
+ share cache information.</p><p>The cache files are stored in <tt class="filename">/tmp/lpq.xxxx</tt>
+ where xxxx is a hash of the <b class="command">lpq</b> command in use.</p><p>The default is 10 seconds, meaning that the cached results
+ of a previous identical <b class="command">lpq</b> command will be used
+ if the cached data is less than 10 seconds old. A large value may
+ be advisable if your <b class="command">lpq</b> command is very slow.</p><p>A value of 0 will disable caching completely.</p><p>See also the <a href="#PRINTING"><i class="parameter"><tt>printing</tt></i></a> parameter.</p><p>Default: <b class="command">lpq cache time = 10</b></p><p>Example: <b class="command">lpq cache time = 30</b></p></dd><dt><span class="term"><a name="LPQCOMMAND"></a>lpq command (S)</span></dt><dd><p>This parameter specifies the command to be
+ executed on the server host in order to obtain <b class="command">lpq
+ </b>-style printer status information.</p><p>This command should be a program or script which
+ takes a printer name as its only parameter and outputs printer
+ status information.</p><p>Currently nine styles of printer status information
+ are supported; BSD, AIX, LPRNG, PLP, SYSV, HPUX, QNX, CUPS, and SOFTQ.
+ This covers most UNIX systems. You control which type is expected
+ using the <i class="parameter"><tt>printing =</tt></i> option.</p><p>Some clients (notably Windows for Workgroups) may not
+ correctly send the connection number for the printer they are
+ requesting status information about. To get around this, the
+ server reports on the first printer service connected to by the
+ client. This only happens if the connection number sent is invalid.</p><p>If a <i class="parameter"><tt>%p</tt></i> is given then the printer name
+ is put in its place. Otherwise it is placed at the end of the
+ command.</p><p>Note that it is good practice to include the absolute path
+ in the <i class="parameter"><tt>lpq command</tt></i> as the <tt class="envar">$PATH
+ </tt> may not be available to the server. When compiled with
+ the CUPS libraries, no <i class="parameter"><tt>lpq command</tt></i> is
+ needed because smbd will make a library call to obtain the
+ print queue listing.</p><p>See also the <a href="#PRINTING"><i class="parameter"><tt>printing
+ </tt></i></a> parameter.</p><p>Default: <span class="emphasis"><em>depends on the setting of <i class="parameter"><tt>
+ printing</tt></i></em></span></p><p>Example: <b class="command">lpq command = /usr/bin/lpq -P%p</b></p></dd><dt><span class="term"><a name="LPRESUMECOMMAND"></a>lpresume command (S)</span></dt><dd><p>This parameter specifies the command to be
+ executed on the server host in order to restart or continue
+ printing or spooling a specific print job.</p><p>This command should be a program or script which takes
+ a printer name and job number to resume the print job. See
+ also the <a href="#LPPAUSECOMMAND"><i class="parameter"><tt>lppause command
+ </tt></i></a> parameter.</p><p>If a <i class="parameter"><tt>%p</tt></i> is given then the printer name
+ is put in its place. A <i class="parameter"><tt>%j</tt></i> is replaced with
+ the job number (an integer).</p><p>Note that it is good practice to include the absolute path
+ in the <i class="parameter"><tt>lpresume command</tt></i> as the PATH may not
+ be available to the server.</p><p>See also the <a href="#PRINTING"><i class="parameter"><tt>printing
+ </tt></i></a> parameter.</p><p>Default: Currently no default value is given
+ to this string, unless the value of the <i class="parameter"><tt>printing</tt></i>
+ parameter is <tt class="constant">SYSV</tt>, in which case the default is :</p><p><b class="command">lp -i %p-%j -H resume</b></p><p>or if the value of the <i class="parameter"><tt>printing</tt></i> parameter
+ is <tt class="constant">SOFTQ</tt>, then the default is:</p><p><b class="command">qstat -s -j%j -r</b></p><p>Example for HPUX: <b class="command">lpresume command = /usr/bin/lpalt %p-%j -p2</b></p></dd><dt><span class="term"><a name="LPRMCOMMAND"></a>lprm command (S)</span></dt><dd><p>This parameter specifies the command to be
+ executed on the server host in order to delete a print job.</p><p>This command should be a program or script which takes
+ a printer name and job number, and deletes the print job.</p><p>If a <i class="parameter"><tt>%p</tt></i> is given then the printer name
+ is put in its place. A <i class="parameter"><tt>%j</tt></i> is replaced with
+ the job number (an integer).</p><p>Note that it is good practice to include the absolute
+ path in the <i class="parameter"><tt>lprm command</tt></i> as the PATH may not be
+ available to the server.</p><p>See also the <a href="#PRINTING"><i class="parameter"><tt>printing
+ </tt></i></a> parameter.</p><p>Default: <span class="emphasis"><em>depends on the setting of <i class="parameter"><tt>printing
+ </tt></i></em></span></p><p>Example 1: <b class="command">lprm command = /usr/bin/lprm -P%p %j</b></p><p>Example 2: <b class="command">lprm command = /usr/bin/cancel %p-%j</b></p></dd><dt><span class="term"><a name="MACHINEPASSWORDTIMEOUT"></a>machine password timeout (G)</span></dt><dd><p>If a Samba server is a member of a Windows
+ NT Domain (see the <a href="#SECURITYEQUALSDOMAIN">security = domain</a>)
+ parameter) then periodically a running <a href="smbd.8.html" target="_top">
+ smbd(8)</a> process will try and change the MACHINE ACCOUNT
+ PASSWORD stored in the TDB called <tt class="filename">private/secrets.tdb
+ </tt>. This parameter specifies how often this password
+ will be changed, in seconds. The default is one week (expressed in
+ seconds), the same as a Windows NT Domain member server.</p><p>See also <a href="smbpasswd.8.html"><span class="citerefentry"><span class="refentrytitle">smbpasswd</span>(8)</span></a>, and the <a href="#SECURITYEQUALSDOMAIN">
+ security = domain</a>) parameter.</p><p>Default: <b class="command">machine password timeout = 604800</b></p></dd><dt><span class="term"><a name="MAGICOUTPUT"></a>magic output (S)</span></dt><dd><p>This parameter specifies the name of a file
+ which will contain output created by a magic script (see the
+ <a href="#MAGICSCRIPT"><i class="parameter"><tt>magic script</tt></i></a>
+ parameter below).</p><p>Warning: If two clients use the same <i class="parameter"><tt>magic script
+ </tt></i> in the same directory the output file content
+ is undefined.</p><p>Default: <b class="command">magic output = &lt;magic script name&gt;.out</b></p><p>Example: <b class="command">magic output = myfile.txt</b></p></dd><dt><span class="term"><a name="MAGICSCRIPT"></a>magic script (S)</span></dt><dd><p>This parameter specifies the name of a file which,
+ if opened, will be executed by the server when the file is closed.
+ This allows a UNIX script to be sent to the Samba host and
+ executed on behalf of the connected user.</p><p>Scripts executed in this way will be deleted upon
+ completion assuming that the user has the appropriate level
+ of privilege and the file permissions allow the deletion.</p><p>If the script generates output, output will be sent to
+ the file specified by the <a href="#MAGICOUTPUT"><i class="parameter"><tt>
+ magic output</tt></i></a> parameter (see above).</p><p>Note that some shells are unable to interpret scripts
+ containing CR/LF instead of CR as
+ the end-of-line marker. Magic scripts must be executable
+ <span class="emphasis"><em>as is</em></span> on the host, which for some hosts and
+ some shells will require filtering at the DOS end.</p><p>Magic scripts are <span class="emphasis"><em>EXPERIMENTAL</em></span> and
+ should <span class="emphasis"><em>NOT</em></span> be relied upon.</p><p>Default: <span class="emphasis"><em>None. Magic scripts disabled.</em></span></p><p>Example: <b class="command">magic script = user.csh</b></p></dd><dt><span class="term"><a name="MANGLECASE"></a>mangle case (S)</span></dt><dd><p>See the section on <a href="#NAMEMANGLINGSECT" title="NAME MANGLING">NAME MANGLING</a></p><p>Default: <b class="command">mangle case = no</b></p></dd><dt><span class="term"><a name="MANGLEDMAP"></a>mangled map (S)</span></dt><dd><p>This is for those who want to directly map UNIX
+ file names which cannot be represented on Windows/DOS. The mangling
+ of names is not always what is needed. In particular you may have
+ documents with file extensions that differ between DOS and UNIX.
+ For example, under UNIX it is common to use <tt class="filename">.html</tt>
+ for HTML files, whereas under Windows/DOS <tt class="filename">.htm</tt>
+ is more commonly used.</p><p>So to map <tt class="filename">html</tt> to <tt class="filename">htm</tt>
+ you would use:</p><p><b class="command">mangled map = (*.html *.htm)</b></p><p>One very useful case is to remove the annoying <tt class="filename">;1
+ </tt> off the ends of filenames on some CDROMs (only visible
+ under some UNIXes). To do this use a map of (*;1 *;).</p><p>Default: <span class="emphasis"><em>no mangled map</em></span></p><p>Example: <b class="command">mangled map = (*;1 *;)</b></p></dd><dt><span class="term"><a name="MANGLEDNAMES"></a>mangled names (S)</span></dt><dd><p>This controls whether non-DOS names under UNIX
+ should be mapped to DOS-compatible names (&quot;mangled&quot;) and made visible,
+ or whether non-DOS names should simply be ignored.</p><p>See the section on <a href="#NAMEMANGLINGSECT" title="NAME MANGLING">NAME MANGLING</a> for
+ details on how to control the mangling process.</p><p>If mangling is used then the mangling algorithm is as follows:</p><div class="itemizedlist"><ul type="disc"><li><p>The first (up to) five alphanumeric characters
+ before the rightmost dot of the filename are preserved, forced
+ to upper case, and appear as the first (up to) five characters
+ of the mangled name.</p></li><li><p>A tilde &quot;~&quot; is appended to the first part of the mangled
+ name, followed by a two-character unique sequence, based on the
+ original root name (i.e., the original filename minus its final
+ extension). The final extension is included in the hash calculation
+ only if it contains any upper case characters or is longer than three
+ characters.</p><p>Note that the character to use may be specified using
+ the <a href="#MANGLINGCHAR"><i class="parameter"><tt>mangling char</tt></i>
+ </a> option, if you don't like '~'.</p></li><li><p>The first three alphanumeric characters of the final
+ extension are preserved, forced to upper case and appear as the
+ extension of the mangled name. The final extension is defined as that
+ part of the original filename after the rightmost dot. If there are no
+ dots in the filename, the mangled name will have no extension (except
+ in the case of &quot;hidden files&quot; - see below).</p></li><li><p>Files whose UNIX name begins with a dot will be
+ presented as DOS hidden files. The mangled name will be created as
+ for other filenames, but with the leading dot removed and &quot;___&quot; as
+ its extension regardless of actual original extension (that's three
+ underscores).</p></li></ul></div><p>The two-digit hash value consists of upper case alphanumeric characters.</p><p>This algorithm can cause name collisions only if files
+ in a directory share the same first five alphanumeric characters.
+ The probability of such a clash is 1/1300.</p><p>The name mangling (if enabled) allows a file to be
+ copied between UNIX directories from Windows/DOS while retaining
+ the long UNIX filename. UNIX files can be renamed to a new extension
+ from Windows/DOS and will retain the same basename. Mangled names
+ do not change between sessions.</p><p>Default: <b class="command">mangled names = yes</b></p></dd><dt><span class="term"><a name="MANGLINGSTACK"></a>mangling stack (G)</span></dt><dd><p>This parameter controls the number of mangled names
+ that should be cached in the Samba server <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a>.</p><p>This stack is a list of recently mangled base names
+ (extensions are only maintained if they are longer than 3 characters
+ or contains upper case characters).</p><p>The larger this value, the more likely it is that mangled
+ names can be successfully converted to correct long UNIX names.
+ However, large stack sizes will slow most directory accesses. Smaller
+ stacks save memory in the server (each stack element costs 256 bytes).
+ </p><p>It is not possible to absolutely guarantee correct long
+ filenames, so be prepared for some surprises!</p><p>Default: <b class="command">mangled stack = 50</b></p><p>Example: <b class="command">mangled stack = 100</b></p></dd><dt><span class="term"><a name="MANGLINGPREFIX"></a>mangling prefix (G)</span></dt><dd><p> controls the number of prefix
+ characters from the original name used when generating
+ the mangled names. A larger value will give a weaker
+ hash and therefore more name collisions. The minimum
+ value is 1 and the maximum value is 6.</p><p>Default: <b class="command">mangle prefix = 1</b></p><p>Example: <b class="command">mangle prefix = 4</b></p></dd><dt><span class="term"><a name="MANGLINGCHAR"></a>mangling char (S)</span></dt><dd><p>This controls what character is used as
+ the <span class="emphasis"><em>magic</em></span> character in <a href="#NAMEMANGLINGSECT" title="NAME MANGLING">name mangling</a>. The
+ default is a '~' but this may interfere with some software. Use this option to set
+ it to whatever you prefer.</p><p>Default: <b class="command">mangling char = ~</b></p><p>Example: <b class="command">mangling char = ^</b></p></dd><dt><span class="term"><a name="MANGLINGMETHOD"></a>mangling method (G)</span></dt><dd><p> controls the algorithm used for the generating
+ the mangled names. Can take two different values, &quot;hash&quot; and
+ &quot;hash2&quot;. &quot;hash&quot; is the default and is the algorithm that has been
+ used in Samba for many years. &quot;hash2&quot; is a newer and considered
+ a better algorithm (generates less collisions) in the names.
+ However, many Win32 applications store the mangled names and so
+ changing to the new algorithm must not be done
+ lightly as these applications may break unless reinstalled.</p><p>Default: <b class="command">mangling method = hash2</b></p><p>Example: <b class="command">mangling method = hash</b></p></dd><dt><span class="term"><a name="MAPARCHIVE"></a>map archive (S)</span></dt><dd><p>This controls whether the DOS archive attribute
+ should be mapped to the UNIX owner execute bit. The DOS archive bit
+ is set when a file has been modified since its last backup. One
+ motivation for this option it to keep Samba/your PC from making
+ any file it touches from becoming executable under UNIX. This can
+ be quite annoying for shared source code, documents, etc...</p><p>Note that this requires the <i class="parameter"><tt>create mask</tt></i>
+ parameter to be set such that owner execute bit is not masked out
+ (i.e. it must include 100). See the parameter <a href="#CREATEMASK">
+ <i class="parameter"><tt>create mask</tt></i></a> for details.</p><p>Default: <b class="command">map archive = yes</b></p></dd><dt><span class="term"><a name="MAPHIDDEN"></a>map hidden (S)</span></dt><dd><p>This controls whether DOS style hidden files
+ should be mapped to the UNIX world execute bit.</p><p>Note that this requires the <i class="parameter"><tt>create mask</tt></i>
+ to be set such that the world execute bit is not masked out (i.e.
+ it must include 001). See the parameter <a href="#CREATEMASK">
+ <i class="parameter"><tt>create mask</tt></i></a> for details.</p><p>Default: <b class="command">map hidden = no</b></p></dd><dt><span class="term"><a name="MAPSYSTEM"></a>map system (S)</span></dt><dd><p>This controls whether DOS style system files
+ should be mapped to the UNIX group execute bit.</p><p>Note that this requires the <i class="parameter"><tt>create mask</tt></i>
+ to be set such that the group execute bit is not masked out (i.e.
+ it must include 010). See the parameter <a href="#CREATEMASK">
+ <i class="parameter"><tt>create mask</tt></i></a> for details.</p><p>Default: <b class="command">map system = no</b></p></dd><dt><span class="term"><a name="MAPTOGUEST"></a>map to guest (G)</span></dt><dd><p>This parameter is only useful in <a href="#SECURITY">
+ security</a> modes other than <i class="parameter"><tt>security = share</tt></i>
+ - i.e. <tt class="constant">user</tt>, <tt class="constant">server</tt>,
+ and <tt class="constant">domain</tt>.</p><p>This parameter can take three different values, which tell
+ <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> what to do with user
+ login requests that don't match a valid UNIX user in some way.</p><p>The three settings are :</p><div class="itemizedlist"><ul type="disc"><li><p><tt class="constant">Never</tt> - Means user login
+ requests with an invalid password are rejected. This is the
+ default.</p></li><li><p><tt class="constant">Bad User</tt> - Means user
+ logins with an invalid password are rejected, unless the username
+ does not exist, in which case it is treated as a guest login and
+ mapped into the <a href="#GUESTACCOUNT"><i class="parameter"><tt>
+ guest account</tt></i></a>.</p></li><li><p><tt class="constant">Bad Password</tt> - Means user logins
+ with an invalid password are treated as a guest login and mapped
+ into the <a href="#GUESTACCOUNT">guest account</a>. Note that
+ this can cause problems as it means that any user incorrectly typing
+ their password will be silently logged on as &quot;guest&quot; - and
+ will not know the reason they cannot access files they think
+ they should - there will have been no message given to them
+ that they got their password wrong. Helpdesk services will
+ <span class="emphasis"><em>hate</em></span> you if you set the <i class="parameter"><tt>map to
+ guest</tt></i> parameter this way :-).</p></li></ul></div><p>Note that this parameter is needed to set up &quot;Guest&quot;
+ share services when using <i class="parameter"><tt>security</tt></i> modes other than
+ share. This is because in these modes the name of the resource being
+ requested is <span class="emphasis"><em>not</em></span> sent to the server until after
+ the server has successfully authenticated the client so the server
+ cannot make authentication decisions at the correct time (connection
+ to the share) for &quot;Guest&quot; shares.</p><p>For people familiar with the older Samba releases, this
+ parameter maps to the old compile-time setting of the <tt class="constant">
+ GUEST_SESSSETUP</tt> value in local.h.</p><p>Default: <b class="command">map to guest = Never</b></p><p>Example: <b class="command">map to guest = Bad User</b></p></dd><dt><span class="term"><a name="MAXCONNECTIONS"></a>max connections (S)</span></dt><dd><p>This option allows the number of simultaneous connections to a service to be limited.
+ If <i class="parameter"><tt>max connections</tt></i> is greater than 0 then connections
+ will be refused if this number of connections to the service are already open. A value
+ of zero mean an unlimited number of connections may be made.</p><p>Record lock files are used to implement this feature. The lock files will be stored in
+ the directory specified by the <a href="#LOCKDIRECTORY">
+ <i class="parameter"><tt>lock directory</tt></i></a> option.</p><p>Default: <b class="command">max connections = 0</b></p><p>Example: <b class="command">max connections = 10</b></p></dd><dt><span class="term"><a name="MAXDISKSIZE"></a>max disk size (G)</span></dt><dd><p>This option allows you to put an upper limit
+ on the apparent size of disks. If you set this option to 100
+ then all shares will appear to be not larger than 100 MB in
+ size.</p><p>Note that this option does not limit the amount of
+ data you can put on the disk. In the above case you could still
+ store much more than 100 MB on the disk, but if a client ever asks
+ for the amount of free disk space or the total disk size then the
+ result will be bounded by the amount specified in <i class="parameter"><tt>max
+ disk size</tt></i>.</p><p>This option is primarily useful to work around bugs
+ in some pieces of software that can't handle very large disks,
+ particularly disks over 1GB in size.</p><p>A <i class="parameter"><tt>max disk size</tt></i> of 0 means no limit.</p><p>Default: <b class="command">max disk size = 0</b></p><p>Example: <b class="command">max disk size = 1000</b></p></dd><dt><span class="term"><a name="MAXLOGSIZE"></a>max log size (G)</span></dt><dd><p>This option (an integer in kilobytes) specifies
+ the max size the log file should grow to. Samba periodically checks
+ the size and if it is exceeded it will rename the file, adding
+ a <tt class="filename">.old</tt> extension.</p><p>A size of 0 means no limit.</p><p>Default: <b class="command">max log size = 5000</b></p><p>Example: <b class="command">max log size = 1000</b></p></dd><dt><span class="term"><a name="MAXMUX"></a>max mux (G)</span></dt><dd><p>This option controls the maximum number of
+ outstanding simultaneous SMB operations that Samba tells the client
+ it will allow. You should never need to set this parameter.</p><p>Default: <b class="command">max mux = 50</b></p></dd><dt><span class="term"><a name="MAXOPENFILES"></a>max open files (G)</span></dt><dd><p>This parameter limits the maximum number of
+ open files that one <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> file
+ serving process may have open for a client at any one time. The
+ default for this parameter is set very high (10,000) as Samba uses
+ only one bit per unopened file.</p><p>The limit of the number of open files is usually set
+ by the UNIX per-process file descriptor limit rather than
+ this parameter so you should never need to touch this parameter.</p><p>Default: <b class="command">max open files = 10000</b></p></dd><dt><span class="term"><a name="MAXPRINTJOBS"></a>max print jobs (S)</span></dt><dd><p>This parameter limits the maximum number of
+ jobs allowable in a Samba printer queue at any given moment.
+ If this number is exceeded, <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will remote &quot;Out of Space&quot; to the client.
+ See all <a href="#TOTALPRINTJOBS"><i class="parameter"><tt>total
+ print jobs</tt></i></a>.
+ </p><p>Default: <b class="command">max print jobs = 1000</b></p><p>Example: <b class="command">max print jobs = 5000</b></p></dd><dt><span class="term"><a name="MAXPROTOCOL"></a>max protocol (G)</span></dt><dd><p>The value of the parameter (a string) is the highest
+ protocol level that will be supported by the server.</p><p>Possible values are :</p><div class="itemizedlist"><ul type="disc"><li><p><tt class="constant">CORE</tt>: Earliest version. No
+ concept of user names.</p></li><li><p><tt class="constant">COREPLUS</tt>: Slight improvements on
+ CORE for efficiency.</p></li><li><p><tt class="constant">LANMAN1</tt>: First <span class="emphasis"><em>
+ modern</em></span> version of the protocol. Long filename
+ support.</p></li><li><p><tt class="constant">LANMAN2</tt>: Updates to Lanman1 protocol.</p></li><li><p><tt class="constant">NT1</tt>: Current up to date version of the protocol.
+ Used by Windows NT. Known as CIFS.</p></li></ul></div><p>Normally this option should not be set as the automatic
+ negotiation phase in the SMB protocol takes care of choosing
+ the appropriate protocol.</p><p>See also <a href="#MINPROTOCOL"><i class="parameter"><tt>min
+ protocol</tt></i></a></p><p>Default: <b class="command">max protocol = NT1</b></p><p>Example: <b class="command">max protocol = LANMAN1</b></p></dd><dt><span class="term"><a name="MAXREPORTEDPRINTJOBS"></a>max reported print jobs (S)</span></dt><dd><p>This parameter limits the maximum number of
+ jobs displayed in a port monitor for Samba printer queue at any given
+ moment. If this number is exceeded, the excess jobs will not be shown.
+ A value of zero means there is no limit on the number of print
+ jobs reported.
+
+ See all <a href="#TOTALPRINTJOBS"><i class="parameter"><tt>total
+ print jobs</tt></i></a> and <a href="#MAXPRINTJOBS"><i class="parameter"><tt>max print
+ jobs</tt></i></a> parameters.
+ </p><p>Default: <b class="command">max reported print jobs = 0</b></p><p>Example: <b class="command">max reported print jobs = 1000</b></p></dd><dt><span class="term"><a name="MAXSMBDPROCESSES"></a>max smbd processes (G)</span></dt><dd><p>This parameter limits the maximum number of <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> processes concurrently running on a system and is intended
+ as a stopgap to prevent degrading service to clients in the event that the server has insufficient
+ resources to handle more than this number of connections. Remember that under normal operating
+ conditions, each user will have an <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> associated with him or her to handle connections to all
+ shares from a given host.</p><p>Default: <b class="command">max smbd processes = 0</b> ## no limit</p><p>Example: <b class="command">max smbd processes = 1000</b></p></dd><dt><span class="term"><a name="MAXTTL"></a>max ttl (G)</span></dt><dd><p>This option tells <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> what the default 'time to live'
+ of NetBIOS names should be (in seconds) when <b class="command">nmbd</b> is
+ requesting a name using either a broadcast packet or from a WINS server. You should
+ never need to change this parameter. The default is 3 days.</p><p>Default: <b class="command">max ttl = 259200</b></p></dd><dt><span class="term"><a name="MAXWINSTTL"></a>max wins ttl (G)</span></dt><dd><p>This option tells <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> when acting as a WINS server (<a href="#WINSSUPPORT">
+ <i class="parameter"><tt>wins support = yes</tt></i></a>) what the maximum
+ 'time to live' of NetBIOS names that <b class="command">nmbd</b>
+ will grant will be (in seconds). You should never need to change this
+ parameter. The default is 6 days (518400 seconds).</p><p>See also the <a href="#MINWINSTTL"><i class="parameter"><tt>min
+ wins ttl</tt></i></a> parameter.</p><p>Default: <b class="command">max wins ttl = 518400</b></p></dd><dt><span class="term"><a name="MAXXMIT"></a>max xmit (G)</span></dt><dd><p>This option controls the maximum packet size
+ that will be negotiated by Samba. The default is 65535, which
+ is the maximum. In some cases you may find you get better performance
+ with a smaller value. A value below 2048 is likely to cause problems.
+ </p><p>Default: <b class="command">max xmit = 65535</b></p><p>Example: <b class="command">max xmit = 8192</b></p></dd><dt><span class="term"><a name="MESSAGECOMMAND"></a>message command (G)</span></dt><dd><p>This specifies what command to run when the
+ server receives a WinPopup style message.</p><p>This would normally be a command that would
+ deliver the message somehow. How this is to be done is
+ up to your imagination.</p><p>An example is:</p><p><b class="command">message command = csh -c 'xedit %s;rm %s' &amp;</b>
+ </p><p>This delivers the message using <b class="command">xedit</b>, then
+ removes it afterwards. <span class="emphasis"><em>NOTE THAT IT IS VERY IMPORTANT
+ THAT THIS COMMAND RETURN IMMEDIATELY</em></span>. That's why I
+ have the '&amp;' on the end. If it doesn't return immediately then
+ your PCs may freeze when sending messages (they should recover
+ after 30 seconds, hopefully).</p><p>All messages are delivered as the global guest user.
+ The command takes the standard substitutions, although <i class="parameter"><tt>
+ %u</tt></i> won't work (<i class="parameter"><tt>%U</tt></i> may be better
+ in this case).</p><p>Apart from the standard substitutions, some additional
+ ones apply. In particular:</p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>%s</tt></i> = the filename containing
+ the message.</p></li><li><p><i class="parameter"><tt>%t</tt></i> = the destination that
+ the message was sent to (probably the server name).</p></li><li><p><i class="parameter"><tt>%f</tt></i> = who the message
+ is from.</p></li></ul></div><p>You could make this command send mail, or whatever else
+ takes your fancy. Please let us know of any really interesting
+ ideas you have.</p><p>Here's a way of sending the messages as mail to root:</p><p><b class="command">message command = /bin/mail -s 'message from %f on
+ %m' root &lt; %s; rm %s</b></p><p>If you don't have a message command then the message
+ won't be delivered and Samba will tell the sender there was
+ an error. Unfortunately WfWg totally ignores the error code
+ and carries on regardless, saying that the message was delivered.
+ </p><p>If you want to silently delete it then try:</p><p><b class="command">message command = rm %s</b></p><p>Default: <span class="emphasis"><em>no message command</em></span></p><p>Example: <b class="command">message command = csh -c 'xedit %s; rm %s' &amp;</b></p></dd><dt><span class="term"><a name="MINPASSWDLENGTH"></a>min passwd length (G)</span></dt><dd><p>Synonym for <a href="#MINPASSWORDLENGTH">
+ <i class="parameter"><tt>min password length</tt></i></a>.
+ </p></dd><dt><span class="term"><a name="MINPASSWORDLENGTH"></a>min password length (G)</span></dt><dd><p>This option sets the minimum length in characters of a
+ plaintext password that <b class="command">smbd</b> will
+ accept when performing UNIX password changing.</p><p>See also <a href="#UNIXPASSWORDSYNC"><i class="parameter"><tt>unix
+ password sync</tt></i></a>, <a href="#PASSWDPROGRAM">
+ <i class="parameter"><tt>passwd program</tt></i></a> and <a href="#PASSWDCHATDEBUG">
+ <i class="parameter"><tt>passwd chat debug</tt></i></a>.</p><p>Default: <b class="command">min password length = 5</b></p></dd><dt><span class="term"><a name="MINPRINTSPACE"></a>min print space (S)</span></dt><dd><p>This sets the minimum amount of free disk
+ space that must be available before a user will be able to spool
+ a print job. It is specified in kilobytes. The default is 0, which
+ means a user can always spool a print job.</p><p>See also the <a href="#PRINTING"><i class="parameter"><tt>printing
+ </tt></i></a> parameter.</p><p>Default: <b class="command">min print space = 0</b></p><p>Example: <b class="command">min print space = 2000</b></p></dd><dt><span class="term"><a name="MINPROTOCOL"></a>min protocol (G)</span></dt><dd><p>The value of the parameter (a string) is the
+ lowest SMB protocol dialect than Samba will support. Please refer
+ to the <a href="#MAXPROTOCOL"><i class="parameter"><tt>max protocol</tt></i></a>
+ parameter for a list of valid protocol names and a brief description
+ of each. You may also wish to refer to the C source code in
+ <tt class="filename">source/smbd/negprot.c</tt> for a listing of known protocol
+ dialects supported by clients.</p><p>If you are viewing this parameter as a security measure, you should
+ also refer to the <a href="#LANMANAUTH"><i class="parameter"><tt>lanman
+ auth</tt></i></a> parameter. Otherwise, you should never need
+ to change this parameter.</p><p>Default : <b class="command">min protocol = CORE</b></p><p>Example : <b class="command">min protocol = NT1</b> # disable DOS clients</p></dd><dt><span class="term"><a name="MINWINSTTL"></a>min wins ttl (G)</span></dt><dd><p>This option tells <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a>
+ when acting as a WINS server (<a href="#WINSSUPPORT"><i class="parameter"><tt>
+ wins support = yes</tt></i></a>) what the minimum 'time to live'
+ of NetBIOS names that <b class="command">nmbd</b> will grant will be (in
+ seconds). You should never need to change this parameter. The default
+ is 6 hours (21600 seconds).</p><p>Default: <b class="command">min wins ttl = 21600</b></p></dd><dt><span class="term"><a name="MSDFSPROXY"></a>msdfs proxy (S)</span></dt><dd><p>This parameter indicates that the share is a
+ stand-in for another CIFS share whose location is specified by
+ the value of the parameter. When clients attempt to connect to
+ this share, they are redirected to the proxied share using
+ the SMB-Dfs protocol.</p><p>Only Dfs roots can act as proxy shares. Take a look at the
+ <a href="#MSDFSROOT"><i class="parameter"><tt>msdfs root</tt></i></a>
+ and <a href="#HOSTMSDFS"><i class="parameter"><tt>host msdfs</tt></i></a>
+ options to find out how to set up a Dfs root share.</p><p>Example: <b class="command">msdfs proxy = \\\\otherserver\\someshare</b></p></dd><dt><span class="term"><a name="MSDFSROOT"></a>msdfs root (S)</span></dt><dd><p>This boolean parameter is only available if
+ Samba is configured and compiled with the <b class="command">
+ --with-msdfs</b> option. If set to <tt class="constant">yes</tt>,
+ Samba treats the share as a Dfs root and allows clients to browse
+ the distributed file system tree rooted at the share directory.
+ Dfs links are specified in the share directory by symbolic
+ links of the form <tt class="filename">msdfs:serverA\\shareA,serverB\\shareB</tt>
+ and so on. For more information on setting up a Dfs tree
+ on Samba, refer to <a href="msdfs.html" target="_top">&quot;Hosting a Microsoft
+ Distributed File System tree on Samba&quot;</a> document.</p><p>See also <a href="#HOSTMSDFS"><i class="parameter"><tt>host msdfs</tt></i></a></p><p>Default: <b class="command">msdfs root = no</b></p></dd><dt><span class="term"><a name="NAMECACHETIMEOUT"></a>name cache timeout (G)</span></dt><dd><p>Specifies the number of seconds it takes before
+ entries in samba's hostname resolve cache time out. If
+ the timeout is set to 0. the caching is disabled.
+ </p><p>Default: <b class="command">name cache timeout = 660</b></p><p>Example: <b class="command">name cache timeout = 0</b></p></dd><dt><span class="term"><a name="NAMERESOLVEORDER"></a>name resolve order (G)</span></dt><dd><p>This option is used by the programs in the Samba
+ suite to determine what naming services to use and in what order
+ to resolve host names to IP addresses. The option takes a space
+ separated string of name resolution options.</p><p>The options are: &quot;lmhosts&quot;, &quot;host&quot;,
+ &quot;wins&quot; and &quot;bcast&quot;. They cause names to be
+ resolved as follows:</p><div class="itemizedlist"><ul type="disc"><li><p><tt class="constant">lmhosts</tt> : Lookup an IP
+ address in the Samba lmhosts file. If the line in lmhosts has
+ no name type attached to the NetBIOS name (see the <a href="lmhosts.5.html" target="_top">lmhosts(5)</a> for details) then
+ any name type matches for lookup.</p></li><li><p><tt class="constant">host</tt> : Do a standard host
+ name to IP address resolution, using the system <tt class="filename">/etc/hosts
+ </tt>, NIS, or DNS lookups. This method of name resolution
+ is operating system depended for instance on IRIX or Solaris this
+ may be controlled by the <tt class="filename">/etc/nsswitch.conf</tt>
+ file. Note that this method is only used if the NetBIOS name
+ type being queried is the 0x20 (server) name type, otherwise
+ it is ignored.</p></li><li><p><tt class="constant">wins</tt> : Query a name with
+ the IP address listed in the <a href="#WINSSERVER"><i class="parameter"><tt>
+ wins server</tt></i></a> parameter. If no WINS server has
+ been specified this method will be ignored.</p></li><li><p><tt class="constant">bcast</tt> : Do a broadcast on
+ each of the known local interfaces listed in the <a href="#INTERFACES"><i class="parameter"><tt>interfaces</tt></i></a>
+ parameter. This is the least reliable of the name resolution
+ methods as it depends on the target host being on a locally
+ connected subnet.</p></li></ul></div><p>Default: <b class="command">name resolve order = lmhosts host wins bcast</b></p><p>Example: <b class="command">name resolve order = lmhosts bcast host</b></p><p>This will cause the local lmhosts file to be examined
+ first, followed by a broadcast attempt, followed by a normal
+ system hostname lookup.</p></dd><dt><span class="term"><a name="NETBIOSALIASES"></a>netbios aliases (G)</span></dt><dd><p>This is a list of NetBIOS names that <a href="nmbd.8.html" target="_top">nmbd(8)</a> will
+ advertise as additional names by which the Samba server is known. This allows one machine
+ to appear in browse lists under multiple names. If a machine is acting as a browse server
+ or logon server none of these names will be advertised as either browse server or logon
+ servers, only the primary name of the machine will be advertised with these capabilities.
+ </p><p>See also <a href="#NETBIOSNAME"><i class="parameter"><tt>netbios
+ name</tt></i></a>.</p><p>Default: <span class="emphasis"><em>empty string (no additional names)</em></span></p><p>Example: <b class="command">netbios aliases = TEST TEST1 TEST2</b></p></dd><dt><span class="term"><a name="NETBIOSNAME"></a>netbios name (G)</span></dt><dd><p>This sets the NetBIOS name by which a Samba
+ server is known. By default it is the same as the first component
+ of the host's DNS name. If a machine is a browse server or
+ logon server this name (or the first component
+ of the hosts DNS name) will be the name that these services are
+ advertised under.</p><p>See also <a href="#NETBIOSALIASES"><i class="parameter"><tt>netbios
+ aliases</tt></i></a>.</p><p>Default: <span class="emphasis"><em>machine DNS name</em></span></p><p>Example: <b class="command">netbios name = MYNAME</b></p></dd><dt><span class="term"><a name="NETBIOSSCOPE"></a>netbios scope (G)</span></dt><dd><p>This sets the NetBIOS scope that Samba will
+ operate under. This should not be set unless every machine
+ on your LAN also sets this value.</p></dd><dt><span class="term"><a name="NISHOMEDIR"></a>nis homedir (G)</span></dt><dd><p>Get the home share server from a NIS map. For
+ UNIX systems that use an automounter, the user's home directory
+ will often be mounted on a workstation on demand from a remote
+ server. </p><p>When the Samba logon server is not the actual home directory
+ server, but is mounting the home directories via NFS then two
+ network hops would be required to access the users home directory
+ if the logon server told the client to use itself as the SMB server
+ for home directories (one over SMB and one over NFS). This can
+ be very slow.</p><p>This option allows Samba to return the home share as
+ being on a different server to the logon server and as
+ long as a Samba daemon is running on the home directory server,
+ it will be mounted on the Samba client directly from the directory
+ server. When Samba is returning the home share to the client, it
+ will consult the NIS map specified in <a href="#HOMEDIRMAP">
+ <i class="parameter"><tt>homedir map</tt></i></a> and return the server
+ listed there.</p><p>Note that for this option to work there must be a working
+ NIS system and the Samba server with this option must also
+ be a logon server.</p><p>Default: <b class="command">nis homedir = no</b></p></dd><dt><span class="term"><a name="NONUNIXACCOUNTRANGE"></a>non unix account range (G)</span></dt><dd><p>The non unix account range parameter specifies
+ the range of 'user ids' that are allocated by the various 'non unix
+ account' passdb backends. These backends allow
+ the storage of passwords for users who don't exist in /etc/passwd.
+ This is most often used for machine account creation.
+ This range of ids should have no existing local or NIS users within
+ it as strange conflicts can occur otherwise.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>These userids never appear on the system and Samba will never
+ 'become' these users. They are used only to ensure that the algorithmic
+ RID mapping does not conflict with normal users.
+ </p></div><p>Default: <b class="command">non unix account range = &lt;empty string&gt;</b></p><p>Example: <b class="command">non unix account range = 10000-20000</b></p></dd><dt><span class="term"><a name="NTACLSUPPORT"></a>nt acl support (S)</span></dt><dd><p>This boolean parameter controls whether <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will attempt to map
+ UNIX permissions into Windows NT access control lists.
+ This parameter was formally a global parameter in releases
+ prior to 2.2.2.</p><p>Default: <b class="command">nt acl support = yes</b></p></dd><dt><span class="term"><a name="NTLMAUTH"></a>ntlm auth (G)</span></dt><dd><p>This parameter determines whether or not <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will attempt to
+ authenticate users using the NTLM encrypted password response.
+ If disabled, either the lanman password hash or an NTLMv2 response
+ will need to be sent by the client.</p><p>If this option, and <b class="command">lanman
+ auth</b> are both disabled, then only NTLMv2 logins will be
+ permited. Not all clients support NTLMv2, and most will require
+ special configuration to us it.</p><p>Default : <b class="command">ntlm auth = yes</b></p></dd><dt><span class="term"><a name="NTPIPESUPPORT"></a>nt pipe support (G)</span></dt><dd><p>This boolean parameter controls whether
+ <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will allow Windows NT
+ clients to connect to the NT SMB specific <tt class="constant">IPC$</tt>
+ pipes. This is a developer debugging option and can be left
+ alone.</p><p>Default: <b class="command">nt pipe support = yes</b></p></dd><dt><span class="term"><a name="NTSTATUSSUPPORT"></a>nt status support (G)</span></dt><dd><p>This boolean parameter controls whether <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will negotiate NT specific status
+ support with Windows NT/2k/XP clients. This is a developer debugging option and should be left alone.
+ If this option is set to <tt class="constant">no</tt> then Samba offers
+ exactly the same DOS error codes that versions prior to Samba 2.2.3
+ reported.</p><p>You should not need to ever disable this parameter.</p><p>Default: <b class="command">nt status support = yes</b></p></dd><dt><span class="term"><a name="NULLPASSWORDS"></a>null passwords (G)</span></dt><dd><p>Allow or disallow client access to accounts that have null passwords. </p><p>See also <a href="smbpasswd.5.html"><span class="citerefentry"><span class="refentrytitle">smbpasswd</span>(5)</span></a>.</p><p>Default: <b class="command">null passwords = no</b></p></dd><dt><span class="term"><a name="OBEYPAMRESTRICTIONS"></a>obey pam restrictions (G)</span></dt><dd><p>When Samba 3.0 is configured to enable PAM support
+ (i.e. --with-pam), this parameter will control whether or not Samba
+ should obey PAM's account and session management directives. The
+ default behavior is to use PAM for clear text authentication only
+ and to ignore any account or session management. Note that Samba
+ always ignores PAM for authentication in the case of <a href="#ENCRYPTPASSWORDS">
+ <i class="parameter"><tt>encrypt passwords = yes</tt></i></a>. The reason
+ is that PAM modules cannot support the challenge/response
+ authentication mechanism needed in the presence of SMB password encryption.
+ </p><p>Default: <b class="command">obey pam restrictions = no</b></p></dd><dt><span class="term"><a name="ONLYGUEST"></a>only guest (S)</span></dt><dd><p>A synonym for <a href="#GUESTONLY"><i class="parameter"><tt>
+ guest only</tt></i></a>.</p></dd><dt><span class="term"><a name="ONLYUSER"></a>only user (S)</span></dt><dd><p>This is a boolean option that controls whether
+ connections with usernames not in the <i class="parameter"><tt>user</tt></i>
+ list will be allowed. By default this option is disabled so that a
+ client can supply a username to be used by the server. Enabling
+ this parameter will force the server to only use the login
+ names from the <i class="parameter"><tt>user</tt></i> list and is only really
+ useful in <a href="#SECURITYEQUALSSHARE">share level</a>
+ security.</p><p>Note that this also means Samba won't try to deduce
+ usernames from the service name. This can be annoying for
+ the [homes] section. To get around this you could use <b class="command">user =
+ %S</b> which means your <i class="parameter"><tt>user</tt></i> list
+ will be just the service name, which for home directories is the
+ name of the user.</p><p>See also the <a href="#USER"><i class="parameter"><tt>user</tt></i>
+ </a> parameter.</p><p>Default: <b class="command">only user = no</b></p></dd><dt><span class="term"><a name="OPLOCKBREAKWAITTIME"></a>oplock break wait time (G)</span></dt><dd><p>This is a tuning parameter added due to bugs in
+ both Windows 9x and WinNT. If Samba responds to a client too
+ quickly when that client issues an SMB that can cause an oplock
+ break request, then the network client can fail and not respond
+ to the break request. This tuning parameter (which is set in milliseconds)
+ is the amount of time Samba will wait before sending an oplock break
+ request to such (broken) clients.</p><p><span class="emphasis"><em>DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ AND
+ UNDERSTOOD THE SAMBA OPLOCK CODE</em></span>.</p><p>Default: <b class="command">oplock break wait time = 0</b></p></dd><dt><span class="term"><a name="OPLOCKCONTENTIONLIMIT"></a>oplock contention limit (S)</span></dt><dd><p>This is a <span class="emphasis"><em>very</em></span> advanced
+ <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> tuning option to
+ improve the efficiency of the granting of oplocks under multiple
+ client contention for the same file.</p><p>In brief it specifies a number, which causes <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a>not to grant an oplock even when requested
+ if the approximate number of clients contending for an oplock on the same file goes over this
+ limit. This causes <b class="command">smbd</b> to behave in a similar
+ way to Windows NT.</p><p><span class="emphasis"><em>DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ
+ AND UNDERSTOOD THE SAMBA OPLOCK CODE</em></span>.</p><p>Default: <b class="command">oplock contention limit = 2</b></p></dd><dt><span class="term"><a name="OPLOCKS"></a>oplocks (S)</span></dt><dd><p>This boolean option tells <b class="command">smbd</b> whether to
+ issue oplocks (opportunistic locks) to file open requests on this
+ share. The oplock code can dramatically (approx. 30% or more) improve
+ the speed of access to files on Samba servers. It allows the clients
+ to aggressively cache files locally and you may want to disable this
+ option for unreliable network environments (it is turned on by
+ default in Windows NT Servers). For more information see the file
+ <tt class="filename">Speed.txt</tt> in the Samba <tt class="filename">docs/</tt>
+ directory.</p><p>Oplocks may be selectively turned off on certain files with a
+ share. See the <a href="#VETOOPLOCKFILES"><i class="parameter"><tt>
+ veto oplock files</tt></i></a> parameter. On some systems
+ oplocks are recognized by the underlying operating system. This
+ allows data synchronization between all access to oplocked files,
+ whether it be via Samba or NFS or a local UNIX process. See the
+ <i class="parameter"><tt>kernel oplocks</tt></i> parameter for details.</p><p>See also the <a href="#KERNELOPLOCKS"><i class="parameter"><tt>kernel
+ oplocks</tt></i></a> and <a href="#LEVEL2OPLOCKS"><i class="parameter"><tt>
+ level2 oplocks</tt></i></a> parameters.</p><p>Default: <b class="command">oplocks = yes</b></p></dd><dt><span class="term"><a name="OS2DRIVERMAP"></a>os2 driver map (G)</span></dt><dd><p>The parameter is used to define the absolute
+ path to a file containing a mapping of Windows NT printer driver
+ names to OS/2 printer driver names. The format is:</p><p>&lt;nt driver name&gt; = &lt;os2 driver name&gt;.&lt;device name&gt;</p><p>For example, a valid entry using the HP LaserJet 5
+ printer driver would appear as <b class="command">HP LaserJet 5L = LASERJET.HP
+ LaserJet 5L</b>.</p><p>The need for the file is due to the printer driver namespace
+ problem described in the <a href="printing.html" target="_top">Samba
+ Printing HOWTO</a>. For more details on OS/2 clients, please
+ refer to the OS2-Client-HOWTO containing in the Samba documentation.</p><p>Default: <b class="command">os2 driver map = &lt;empty string&gt;</b></p></dd><dt><span class="term"><a name="OSLEVEL"></a>os level (G)</span></dt><dd><p>This integer value controls what level Samba
+ advertises itself as for browse elections. The value of this
+ parameter determines whether <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a>
+ has a chance of becoming a local master browser for the <i class="parameter"><tt>
+ WORKGROUP</tt></i> in the local broadcast area.</p><p><span class="emphasis"><em>Note :</em></span>By default, Samba will win
+ a local master browsing election over all Microsoft operating
+ systems except a Windows NT 4.0/2000 Domain Controller. This
+ means that a misconfigured Samba host can effectively isolate
+ a subnet for browsing purposes. See <tt class="filename">BROWSING.txt
+ </tt> in the Samba <tt class="filename">docs/</tt> directory
+ for details.</p><p>Default: <b class="command">os level = 20</b></p><p>Example: <b class="command">os level = 65 </b></p></dd><dt><span class="term"><a name="PAMPASSWORDCHANGE"></a>pam password change (G)</span></dt><dd><p>With the addition of better PAM support in Samba 2.2,
+ this parameter, it is possible to use PAM's password change control
+ flag for Samba. If enabled, then PAM will be used for password
+ changes when requested by an SMB client instead of the program listed in
+ <a href="#PASSWDPROGRAM"><i class="parameter"><tt>passwd program</tt></i></a>.
+ It should be possible to enable this without changing your
+ <a href="#PASSWDCHAT"><i class="parameter"><tt>passwd chat</tt></i></a>
+ parameter for most setups.</p><p>Default: <b class="command">pam password change = no</b></p></dd><dt><span class="term"><a name="PANICACTION"></a>panic action (G)</span></dt><dd><p>This is a Samba developer option that allows a
+ system command to be called when either <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> or <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> crashes. This is usually used to
+ draw attention to the fact that a problem occurred.</p><p>Default: <b class="command">panic action = &lt;empty string&gt;</b></p><p>Example: <b class="command">panic action = &quot;/bin/sleep 90000&quot;</b></p></dd><dt><span class="term"><a name="PARANOIDSERVERSECURITY"></a>paranoid server security (G)</span></dt><dd><p>Some version of NT 4.x allow non-guest
+ users with a bad passowrd. When this option is enabled, samba will not
+ use a broken NT 4.x server as password server, but instead complain
+ to the logs and exit.
+ </p><p>Disabling this option prevents Samba from making
+ this check, which involves deliberatly attempting a
+ bad logon to the remote server.</p><p>Default: <b class="command">paranoid server security = yes</b></p></dd><dt><span class="term"><a name="PASSDBBACKEND"></a>passdb backend (G)</span></dt><dd xmlns:ns1=""><p>This option allows the administrator to chose which backends
+ to retrieve and store passwords with. This allows (for example) both
+ smbpasswd and tdbsam to be used without a recompile. Multiple
+ backends can be specified, separated by spaces. The backends will be
+ searched in the order they are specified. New users are always added
+ to the first backend specified. </p><p>This parameter is in two parts, the backend's name, and a 'location'
+ string that has meaning only to that particular backed. These are separated
+ by a : character.</p><ns1:p>Available backends can include:
+ </ns1:p><div class="itemizedlist"><ul type="disc"><li><p><b class="command">smbpasswd</b> - The default smbpasswd
+ backend. Takes a path to the smbpasswd file as an optional argument.
+ </p></li><li><p><b class="command">tdbsam</b> - The TDB based password storage
+ backend. Takes a path to the TDB as an optional argument (defaults to passdb.tdb
+ in the <a href="#PRIVATEDIR">
+ <i class="parameter"><tt>private dir</tt></i></a> directory.</p></li><li><p><b class="command">ldapsam</b> - The LDAP based passdb
+ backend. Takes an LDAP URL as an optional argument (defaults to
+ <b class="command">ldap://localhost</b>)</p><p>LDAP connections should be secured where possible. This may be done using either
+ Start-TLS (see <a href="#LDAPSSL"><i class="parameter"><tt>ldap ssl</tt></i></a>) or by
+ specifying <i class="parameter"><tt>ldaps://</tt></i> in
+ the URL argument. </p></li><li><p><b class="command">nisplussam</b> -
+ The NIS+ based passdb backend. Takes name NIS domain as
+ an optional argument. Only works with sun NIS+ servers.
+ </p></li><li><p><b class="command">mysql</b> -
+ The MySQL based passdb backend. Takes an identifier as
+ argument. Read the Samba HOWTO Collection for configuration
+ details.
+ </p></li><li><p><b class="command">guest</b> -
+ Very simple backend that only provides one user: the guest user.
+ Only maps the NT guest user to the <i class="parameter"><tt>guest account</tt></i>.
+ Required in pretty much all situations.
+ </p></li></ul></div><ns1:p>
+ </ns1:p><p>Default: <b class="command">passdb backend = smbpasswd guest</b></p><p>Example: <b class="command">passdb backend = tdbsam:/etc/samba/private/passdb.tdb smbpasswd:/etc/samba/smbpasswd guest</b></p><p>Example: <b class="command">passdb backend = ldapsam:ldaps://ldap.example.com guest</b></p><p>Example: <b class="command">passdb backend = mysql:my_plugin_args tdbsam:/etc/samba/private/passdb.tdb guest</b></p></dd><dt><span class="term"><a name="PASSWDCHAT"></a>passwd chat (G)</span></dt><dd><p>This string controls the <span class="emphasis"><em>&quot;chat&quot;</em></span>
+ conversation that takes places between <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> and the local password changing
+ program to change the user's password. The string describes a
+ sequence of response-receive pairs that <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> uses to determine what to send to the
+ <a href="#PASSWDPROGRAM"><i class="parameter"><tt>passwd program</tt></i>
+ </a> and what to expect back. If the expected output is not
+ received then the password is not changed.</p><p>This chat sequence is often quite site specific, depending
+ on what local methods are used for password control (such as NIS
+ etc).</p><p>Note that this parameter only is only used if the <a href="#UNIXPASSWORDSYNC"> <i class="parameter"><tt>unix password sync</tt></i>
+ </a> parameter is set to <tt class="constant">yes</tt>. This sequence is
+ then called <span class="emphasis"><em>AS ROOT</em></span> when the SMB password in the
+ smbpasswd file is being changed, without access to the old password
+ cleartext. This means that root must be able to reset the user's password without
+ knowing the text of the previous password. In the presence of
+ NIS/YP, this means that the <a href="#PASSWDPROGRAM">passwd program</a> must
+ be executed on the NIS master.
+ </p><p>The string can contain the macro <i class="parameter"><tt>%n</tt></i> which is substituted
+ for the new password. The chat sequence can also contain the standard
+ macros <tt class="constant">\\n</tt>, <tt class="constant">\\r</tt>, <tt class="constant">\\t</tt> and <tt class="constant">\\s</tt> to
+ give line-feed, carriage-return, tab and space. The chat sequence string can also contain
+ a '*' which matches any sequence of characters. Double quotes can be used to collect strings with spaces
+ in them into a single string.</p><p>If the send string in any part of the chat sequence is a full
+ stop &quot;.&quot;, then no string is sent. Similarly, if the
+ expect string is a full stop then no string is expected.</p><p>If the <a href="#PAMPASSWORDCHANGE"><i class="parameter"><tt>pam
+ password change</tt></i></a> parameter is set to <tt class="constant">yes</tt>, the chat pairs
+ may be matched in any order, and success is determined by the PAM result,
+ not any particular output. The \n macro is ignored for PAM conversions.
+ </p><p>See also <a href="#UNIXPASSWORDSYNC"><i class="parameter"><tt>unix password
+ sync</tt></i></a>, <a href="#PASSWDPROGRAM"><i class="parameter"><tt>
+ passwd program</tt></i></a> ,<a href="#PASSWDCHATDEBUG">
+ <i class="parameter"><tt>passwd chat debug</tt></i></a> and <a href="#PAMPASSWORDCHANGE">
+ <i class="parameter"><tt>pam password change</tt></i></a>.</p><p>Default: <b class="command">passwd chat = *new*password* %n\\n
+ *new*password* %n\\n *changed*</b></p><p>Example: <b class="command">passwd chat = &quot;*Enter OLD password*&quot; %o\\n
+ &quot;*Enter NEW password*&quot; %n\\n &quot;*Reenter NEW password*&quot; %n\\n
+ &quot;*Password changed*&quot;</b></p></dd><dt><span class="term"><a name="PASSWDCHATDEBUG"></a>passwd chat debug (G)</span></dt><dd><p>This boolean specifies if the passwd chat script
+ parameter is run in <span class="emphasis"><em>debug</em></span> mode. In this mode the
+ strings passed to and received from the passwd chat are printed
+ in the <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> log with a
+ <a href="#DEBUGLEVEL"><i class="parameter"><tt>debug level</tt></i></a>
+ of 100. This is a dangerous option as it will allow plaintext passwords
+ to be seen in the <b class="command">smbd</b> log. It is available to help
+ Samba admins debug their <i class="parameter"><tt>passwd chat</tt></i> scripts
+ when calling the <i class="parameter"><tt>passwd program</tt></i> and should
+ be turned off after this has been done. This option has no effect if the
+ <a href="#PAMPASSWORDCHANGE"><i class="parameter"><tt>pam password change</tt></i></a>
+ paramter is set. This parameter is off by default.</p><p>See also <a href="#PASSWDCHAT"><i class="parameter"><tt>passwd chat</tt></i>
+ </a>, <a href="#PAMPASSWORDCHANGE"><i class="parameter"><tt>pam password change</tt></i>
+ </a>, <a href="#PASSWDPROGRAM"><i class="parameter"><tt>passwd program</tt></i>
+ </a>.</p><p>Default: <b class="command">passwd chat debug = no</b></p></dd><dt><span class="term"><a name="PASSWDPROGRAM"></a>passwd program (G)</span></dt><dd><p>The name of a program that can be used to set
+ UNIX user passwords. Any occurrences of <i class="parameter"><tt>%u</tt></i>
+ will be replaced with the user name. The user name is checked for
+ existence before calling the password changing program.</p><p>Also note that many passwd programs insist in <span class="emphasis"><em>reasonable
+ </em></span> passwords, such as a minimum length, or the inclusion
+ of mixed case chars and digits. This can pose a problem as some clients
+ (such as Windows for Workgroups) uppercase the password before sending
+ it.</p><p><span class="emphasis"><em>Note</em></span> that if the <i class="parameter"><tt>unix
+ password sync</tt></i> parameter is set to <tt class="constant">yes
+ </tt> then this program is called <span class="emphasis"><em>AS ROOT</em></span>
+ before the SMB password in the <a href="smbpasswd.5.html" target="_top"><a href="smbpasswd.5.html"><span class="citerefentry"><span class="refentrytitle">smbpasswd</span>(5)</span></a>
+ </a> file is changed. If this UNIX password change fails, then
+ <b class="command">smbd</b> will fail to change the SMB password also
+ (this is by design).</p><p>If the <i class="parameter"><tt>unix password sync</tt></i> parameter
+ is set this parameter <span class="emphasis"><em>MUST USE ABSOLUTE PATHS</em></span>
+ for <span class="emphasis"><em>ALL</em></span> programs called, and must be examined
+ for security implications. Note that by default <i class="parameter"><tt>unix
+ password sync</tt></i> is set to <tt class="constant">no</tt>.</p><p>See also <a href="#UNIXPASSWORDSYNC"><i class="parameter"><tt>unix
+ password sync</tt></i></a>.</p><p>Default: <b class="command">passwd program = /bin/passwd</b></p><p>Example: <b class="command">passwd program = /sbin/npasswd %u</b></p></dd><dt><span class="term"><a name="PASSWORDLEVEL"></a>password level (G)</span></dt><dd><p>Some client/server combinations have difficulty
+ with mixed-case passwords. One offending client is Windows for
+ Workgroups, which for some reason forces passwords to upper
+ case when using the LANMAN1 protocol, but leaves them alone when
+ using COREPLUS! Another problem child is the Windows 95/98
+ family of operating systems. These clients upper case clear
+ text passwords even when NT LM 0.12 selected by the protocol
+ negotiation request/response.</p><p>This parameter defines the maximum number of characters
+ that may be upper case in passwords.</p><p>For example, say the password given was &quot;FRED&quot;. If <i class="parameter"><tt>
+ password level</tt></i> is set to 1, the following combinations
+ would be tried if &quot;FRED&quot; failed:</p><p>&quot;Fred&quot;, &quot;fred&quot;, &quot;fRed&quot;, &quot;frEd&quot;,&quot;freD&quot;</p><p>If <i class="parameter"><tt>password level</tt></i> was set to 2,
+ the following combinations would also be tried: </p><p>&quot;FRed&quot;, &quot;FrEd&quot;, &quot;FreD&quot;, &quot;fREd&quot;, &quot;fReD&quot;, &quot;frED&quot;, ..</p><p>And so on.</p><p>The higher value this parameter is set to the more likely
+ it is that a mixed case password will be matched against a single
+ case password. However, you should be aware that use of this
+ parameter reduces security and increases the time taken to
+ process a new connection.</p><p>A value of zero will cause only two attempts to be
+ made - the password as is and the password in all-lower case.</p><p>Default: <b class="command">password level = 0</b></p><p>Example: <b class="command">password level = 4</b></p></dd><dt><span class="term"><a name="PASSWORDSERVER"></a>password server (G)</span></dt><dd><p>By specifying the name of another SMB server (such
+ as a WinNT box) with this option, and using <b class="command">security = domain
+ </b> or <b class="command">security = server</b> you can get Samba
+ to do all its username/password validation via a remote server.</p><p>This option sets the name of the password server to use.
+ It must be a NetBIOS name, so if the machine's NetBIOS name is
+ different from its Internet name then you may have to add its NetBIOS
+ name to the lmhosts file which is stored in the same directory
+ as the <tt class="filename">smb.conf</tt> file.</p><p>The name of the password server is looked up using the
+ parameter <a href="#NAMERESOLVEORDER"><i class="parameter"><tt>name
+ resolve order</tt></i></a> and so may resolved
+ by any method and order described in that parameter.</p><p>The password server must be a machine capable of using
+ the &quot;LM1.2X002&quot; or the &quot;NT LM 0.12&quot; protocol, and it must be in
+ user level security mode.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Using a password server means your UNIX box (running
+ Samba) is only as secure as your password server. <span class="emphasis"><em>DO NOT
+ CHOOSE A PASSWORD SERVER THAT YOU DON'T COMPLETELY TRUST</em></span>.
+ </p></div><p>Never point a Samba server at itself for password serving.
+ This will cause a loop and could lock up your Samba server!</p><p>The name of the password server takes the standard
+ substitutions, but probably the only useful one is <i class="parameter"><tt>%m
+ </tt></i>, which means the Samba server will use the incoming
+ client as the password server. If you use this then you better
+ trust your clients, and you had better restrict them with hosts allow!</p><p>If the <i class="parameter"><tt>security</tt></i> parameter is set to
+ <tt class="constant">domain</tt>, then the list of machines in this
+ option must be a list of Primary or Backup Domain controllers for the
+ Domain or the character '*', as the Samba server is effectively
+ in that domain, and will use cryptographically authenticated RPC calls
+ to authenticate the user logging on. The advantage of using <b class="command">
+ security = domain</b> is that if you list several hosts in the
+ <i class="parameter"><tt>password server</tt></i> option then <b class="command">smbd
+ </b> will try each in turn till it finds one that responds. This
+ is useful in case your primary server goes down.</p><p>If the <i class="parameter"><tt>password server</tt></i> option is set
+ to the character '*', then Samba will attempt to auto-locate the
+ Primary or Backup Domain controllers to authenticate against by
+ doing a query for the name <tt class="constant">WORKGROUP&lt;1C&gt;</tt>
+ and then contacting each server returned in the list of IP
+ addresses from the name resolution source. </p><p>If the list of servers contains both names and the '*'
+ character, the list is treated as a list of preferred
+ domain controllers, but an auto lookup of all remaining DC's
+ will be added to the list as well. Samba will not attempt to optimize
+ this list by locating the closest DC.</p><p>If the <i class="parameter"><tt>security</tt></i> parameter is
+ set to <tt class="constant">server</tt>, then there are different
+ restrictions that <b class="command">security = domain</b> doesn't
+ suffer from:</p><div class="itemizedlist"><ul type="disc"><li><p>You may list several password servers in
+ the <i class="parameter"><tt>password server</tt></i> parameter, however if an
+ <b class="command">smbd</b> makes a connection to a password server,
+ and then the password server fails, no more users will be able
+ to be authenticated from this <b class="command">smbd</b>. This is a
+ restriction of the SMB/CIFS protocol when in <b class="command">security = server
+ </b> mode and cannot be fixed in Samba.</p></li><li><p>If you are using a Windows NT server as your
+ password server then you will have to ensure that your users
+ are able to login from the Samba server, as when in <b class="command">
+ security = server</b> mode the network logon will appear to
+ come from there rather than from the users workstation.</p></li></ul></div><p>See also the <a href="#SECURITY"><i class="parameter"><tt>security
+ </tt></i></a> parameter.</p><p>Default: <b class="command">password server = &lt;empty string&gt;</b></p><p>Example: <b class="command">password server = NT-PDC, NT-BDC1, NT-BDC2, *</b></p><p>Example: <b class="command">password server = *</b></p></dd><dt><span class="term"><a name="PATH"></a>path (S)</span></dt><dd><p>This parameter specifies a directory to which
+ the user of the service is to be given access. In the case of
+ printable services, this is where print data will spool prior to
+ being submitted to the host for printing.</p><p>For a printable service offering guest access, the service
+ should be readonly and the path should be world-writeable and
+ have the sticky bit set. This is not mandatory of course, but
+ you probably won't get the results you expect if you do
+ otherwise.</p><p>Any occurrences of <i class="parameter"><tt>%u</tt></i> in the path
+ will be replaced with the UNIX username that the client is using
+ on this connection. Any occurrences of <i class="parameter"><tt>%m</tt></i>
+ will be replaced by the NetBIOS name of the machine they are
+ connecting from. These replacements are very useful for setting
+ up pseudo home directories for users.</p><p>Note that this path will be based on <a href="#ROOTDIR">
+ <i class="parameter"><tt>root dir</tt></i></a> if one was specified.</p><p>Default: <span class="emphasis"><em>none</em></span></p><p>Example: <b class="command">path = /home/fred</b></p></dd><dt><span class="term"><a name="PIDDIRECTORY"></a>pid directory (G)</span></dt><dd><p>This option specifies the directory where pid
+ files will be placed. </p><p>Default: <b class="command">pid directory = ${prefix}/var/locks</b></p><p>Example: <b class="command">pid directory = /var/run/</b></p></dd><dt><span class="term"><a name="POSIXLOCKING"></a>posix locking (S)</span></dt><dd><p>The <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a>
+ daemon maintains an database of file locks obtained by SMB clients.
+ The default behavior is to map this internal database to POSIX
+ locks. This means that file locks obtained by SMB clients are
+ consistent with those seen by POSIX compliant applications accessing
+ the files via a non-SMB method (e.g. NFS or local file access).
+ You should never need to disable this parameter.</p><p>Default: <b class="command">posix locking = yes</b></p></dd><dt><span class="term"><a name="POSTEXEC"></a>postexec (S)</span></dt><dd><p>This option specifies a command to be run
+ whenever the service is disconnected. It takes the usual
+ substitutions. The command may be run as the root on some
+ systems.</p><p>An interesting example may be to unmount server
+ resources:</p><p><b class="command">postexec = /etc/umount /cdrom</b></p><p>See also <a href="#PREEXEC"><i class="parameter"><tt>preexec</tt></i></a>.</p><p>Default: <span class="emphasis"><em>none (no command executed)</em></span></p><p>Example: <b class="command">postexec = echo \&quot;%u disconnected from %S from %m (%I)\&quot; &gt;&gt; /tmp/log</b></p></dd><dt><span class="term"><a name="PREEXEC"></a>preexec (S)</span></dt><dd><p>This option specifies a command to be run whenever
+ the service is connected to. It takes the usual substitutions.</p><p>An interesting example is to send the users a welcome
+ message every time they log in. Maybe a message of the day? Here
+ is an example:</p><p><b class="command">preexec = csh -c 'echo \&quot;Welcome to %S!\&quot; | /usr/local/samba/bin/smbclient -M %m -I %I' &amp; </b></p><p>Of course, this could get annoying after a while :-)</p><p>See also <a href="#PREEXECCLOSE"><i class="parameter"><tt>preexec close</tt></i></a> and <a href="#POSTEXEC"><i class="parameter"><tt>postexec
+ </tt></i></a>.</p><p>Default: <span class="emphasis"><em>none (no command executed)</em></span></p><p>Example: <b class="command">preexec = echo \&quot;%u connected to %S from %m (%I)\&quot; &gt;&gt; /tmp/log</b></p></dd><dt><span class="term"><a name="PREEXECCLOSE"></a>preexec close (S)</span></dt><dd><p>This boolean option controls whether a non-zero
+ return code from <a href="#PREEXEC"><i class="parameter"><tt>preexec
+ </tt></i></a> should close the service being connected to.</p><p>Default: <b class="command">preexec close = no</b></p></dd><dt><span class="term"><a name="PREFEREDMASTER"></a>prefered master (G)</span></dt><dd><p>Synonym for <a href="#PREFERREDMASTER"><i class="parameter"><tt>
+ preferred master</tt></i></a> for people who cannot spell :-).</p></dd><dt><span class="term"><a name="PREFERREDMASTER"></a>preferred master (G)</span></dt><dd><p>This boolean parameter controls if
+ <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> is a preferred master
+ browser for its workgroup.</p><p>If this is set to <tt class="constant">yes</tt>, on startup, <b class="command">nmbd</b>
+ will force an election, and it will have a slight advantage in
+ winning the election. It is recommended that this parameter is
+ used in conjunction with <b class="command"><a href="#DOMAINMASTER">
+ <i class="parameter"><tt>domain master</tt></i></a> = yes</b>, so
+ that <b class="command">nmbd</b> can guarantee becoming a domain master.</p><p>Use this option with caution, because if there are several
+ hosts (whether Samba servers, Windows 95 or NT) that are
+ preferred master browsers on the same subnet, they will each
+ periodically and continuously attempt to become the local
+ master browser. This will result in unnecessary broadcast
+ traffic and reduced browsing capabilities.</p><p>See also <a href="#OSLEVEL"><i class="parameter"><tt>os level</tt></i></a>.</p><p>Default: <b class="command">preferred master = auto</b></p></dd><dt><span class="term"><a name="PRELOAD"></a>preload (G)</span></dt><dd><p>This is a list of services that you want to be
+ automatically added to the browse lists. This is most useful
+ for homes and printers services that would otherwise not be
+ visible.</p><p>Note that if you just want all printers in your
+ printcap file loaded then the <a href="#LOADPRINTERS">
+ <i class="parameter"><tt>load printers</tt></i></a> option is easier.</p><p>Default: <span class="emphasis"><em>no preloaded services</em></span></p><p>Example: <b class="command">preload = fred lp colorlp</b></p></dd><dt><span class="term"><a name="PRELOADMODULES"></a>preload modules (G)</span></dt><dd><p>This is a list of paths to modules that should
+ be loaded into smbd before a client connects. This improves
+ the speed of smbd when reacting to new connections somewhat. </p><p>It is recommended to only use this option on heavy-performance
+ servers.</p><p>Default: <b class="command">preload modules = </b></p><p>Example: <b class="command">preload modules = /usr/lib/samba/passdb/mysql.so+++ </b></p></dd><dt><span class="term"><a name="PRESERVECASE"></a>preserve case (S)</span></dt><dd><p> This controls if new filenames are created
+ with the case that the client passes, or if they are forced to
+ be the <a href="#DEFAULTCASE"><i class="parameter"><tt>default case
+ </tt></i></a>.</p><p>Default: <b class="command">preserve case = yes</b></p><p>See the section on <a href="#NAMEMANGLINGSECT" title="NAME MANGLING">NAME MANGLING</a> for a fuller discussion.</p></dd><dt><span class="term"><a name="PRINTABLE"></a>printable (S)</span></dt><dd><p>If this parameter is <tt class="constant">yes</tt>, then
+ clients may open, write to and submit spool files on the directory
+ specified for the service. </p><p>Note that a printable service will ALWAYS allow writing
+ to the service path (user privileges permitting) via the spooling
+ of print data. The <a href="#READONLY"><i class="parameter"><tt>read only
+ </tt></i></a> parameter controls only non-printing access to
+ the resource.</p><p>Default: <b class="command">printable = no</b></p></dd><dt><span class="term"><a name="PRINTCAP"></a>printcap (G)</span></dt><dd><p>Synonym for <a href="#PRINTCAPNAME"><i class="parameter"><tt>
+ printcap name</tt></i></a>.</p></dd><dt><span class="term"><a name="PRINTCAPNAME"></a>printcap name (S)</span></dt><dd><p>This parameter may be used to override the
+ compiled-in default printcap name used by the server (usually <tt class="filename">
+ /etc/printcap</tt>). See the discussion of the <a href="#PRINTERSSECT" title="The [printers] section">[printers]</a> section above for reasons
+ why you might want to do this.</p><p>To use the CUPS printing interface set <b class="command">printcap name = cups
+ </b>. This should be supplemented by an addtional setting
+ <a href="#PRINTING">printing = cups</a> in the [global]
+ section. <b class="command">printcap name = cups</b> will use the
+ &quot;dummy&quot; printcap created by CUPS, as specified in your CUPS
+ configuration file.
+ </p><p>On System V systems that use <b class="command">lpstat</b> to
+ list available printers you can use <b class="command">printcap name = lpstat
+ </b> to automatically obtain lists of available printers. This
+ is the default for systems that define SYSV at configure time in
+ Samba (this includes most System V based systems). If <i class="parameter"><tt>
+ printcap name</tt></i> is set to <b class="command">lpstat</b> on
+ these systems then Samba will launch <b class="command">lpstat -v</b> and
+ attempt to parse the output to obtain a printer list.</p><p>A minimal printcap file would look something like this:</p><pre class="programlisting">
+print1|My Printer 1
+print2|My Printer 2
+print3|My Printer 3
+print4|My Printer 4
+print5|My Printer 5
+</pre><p>where the '|' separates aliases of a printer. The fact
+ that the second alias has a space in it gives a hint to Samba
+ that it's a comment.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Under AIX the default printcap
+ name is <tt class="filename">/etc/qconfig</tt>. Samba will assume the
+ file is in AIX <tt class="filename">qconfig</tt> format if the string
+ <tt class="filename">qconfig</tt> appears in the printcap filename.</p></div><p>Default: <b class="command">printcap name = /etc/printcap</b></p><p>Example: <b class="command">printcap name = /etc/myprintcap</b></p></dd><dt><span class="term"><a name="PRINTCOMMAND"></a>print command (S)</span></dt><dd><p>After a print job has finished spooling to
+ a service, this command will be used via a <b class="command">system()</b>
+ call to process the spool file. Typically the command specified will
+ submit the spool file to the host's printing subsystem, but there
+ is no requirement that this be the case. The server will not remove
+ the spool file, so whatever command you specify should remove the
+ spool file when it has been processed, otherwise you will need to
+ manually remove old spool files.</p><p>The print command is simply a text string. It will be used
+ verbatim after macro substitutions have been made:</p><p>%s, %f - the path to the spool
+ file name</p><p>%p - the appropriate printer
+ name</p><p>%J - the job
+ name as transmitted by the client.</p><p>%c - The number of printed pages
+ of the spooled job (if known).</p><p>%z - the size of the spooled
+ print job (in bytes)</p><p>The print command <span class="emphasis"><em>MUST</em></span> contain at least
+ one occurrence of <i class="parameter"><tt>%s</tt></i> or <i class="parameter"><tt>%f
+ </tt></i> - the <i class="parameter"><tt>%p</tt></i> is optional. At the time
+ a job is submitted, if no printer name is supplied the <i class="parameter"><tt>%p
+ </tt></i> will be silently removed from the printer command.</p><p>If specified in the [global] section, the print command given
+ will be used for any printable service that does not have its own
+ print command specified.</p><p>If there is neither a specified print command for a
+ printable service nor a global print command, spool files will
+ be created but not processed and (most importantly) not removed.</p><p>Note that printing may fail on some UNIXes from the
+ <tt class="constant">nobody</tt> account. If this happens then create
+ an alternative guest account that can print and set the <a href="#GUESTACCOUNT">
+ <i class="parameter"><tt>guest account</tt></i></a>
+ in the [global] section.</p><p>You can form quite complex print commands by realizing
+ that they are just passed to a shell. For example the following
+ will log a print job, print the file, then remove it. Note that
+ ';' is the usual separator for command in shell scripts.</p><p><b class="command">print command = echo Printing %s &gt;&gt;
+ /tmp/print.log; lpr -P %p %s; rm %s</b></p><p>You may have to vary this command considerably depending
+ on how you normally print files on your system. The default for
+ the parameter varies depending on the setting of the <a href="#PRINTING">
+ <i class="parameter"><tt>printing</tt></i></a> parameter.</p><p>Default: For <b class="command">printing = BSD, AIX, QNX, LPRNG
+ or PLP :</b></p><p><b class="command">print command = lpr -r -P%p %s</b></p><p>For <b class="command">printing = SYSV or HPUX :</b></p><p><b class="command">print command = lp -c -d%p %s; rm %s</b></p><p>For <b class="command">printing = SOFTQ :</b></p><p><b class="command">print command = lp -d%p -s %s; rm %s</b></p><p>For printing = CUPS : If SAMBA is compiled against
+ libcups, then <a href="#PRINTING">printcap = cups</a>
+ uses the CUPS API to
+ submit jobs, etc. Otherwise it maps to the System V
+ commands with the -oraw option for printing, i.e. it
+ uses <b class="command">lp -c -d%p -oraw; rm %s</b>.
+ With <b class="command">printing = cups</b>,
+ and if SAMBA is compiled against libcups, any manually
+ set print command will be ignored.</p><p>Example: <b class="command">print command = /usr/local/samba/bin/myprintscript %p %s</b></p></dd><dt><span class="term"><a name="PRINTER"></a>printer (S)</span></dt><dd><p>Synonym for <a href="#PRINTERNAME"><i class="parameter"><tt>
+ printer name</tt></i></a>.</p></dd><dt><span class="term"><a name="PRINTERADMIN"></a>printer admin (S)</span></dt><dd><p>This is a list of users that can do anything to
+ printers via the remote administration interfaces offered by MS-RPC
+ (usually using a NT workstation). Note that the root user always
+ has admin rights.</p><p>Default: <b class="command">printer admin = &lt;empty string&gt;</b></p><p>Example: <b class="command">printer admin = admin, @staff</b></p></dd><dt><span class="term"><a name="PRINTERNAME"></a>printer name (S)</span></dt><dd><p>This parameter specifies the name of the printer
+ to which print jobs spooled through a printable service will be sent.</p><p>If specified in the [global] section, the printer
+ name given will be used for any printable service that does
+ not have its own printer name specified.</p><p>Default: <span class="emphasis"><em>none (but may be <tt class="constant">lp</tt>
+ on many systems)</em></span></p><p>Example: <b class="command">printer name = laserwriter</b></p></dd><dt><span class="term"><a name="PRINTING"></a>printing (S)</span></dt><dd><p>This parameters controls how printer status information is
+ interpreted on your system. It also affects the default values for
+ the <i class="parameter"><tt>print command</tt></i>, <i class="parameter"><tt>lpq command</tt></i>, <i class="parameter"><tt>lppause command </tt></i>, <i class="parameter"><tt>lpresume command</tt></i>, and <i class="parameter"><tt>lprm command</tt></i> if specified in the
+ [global] section.</p><p>Currently nine printing styles are supported. They are
+ <tt class="constant">BSD</tt>, <tt class="constant">AIX</tt>,
+ <tt class="constant">LPRNG</tt>, <tt class="constant">PLP</tt>,
+ <tt class="constant">SYSV</tt>, <tt class="constant">HPUX</tt>,
+ <tt class="constant">QNX</tt>, <tt class="constant">SOFTQ</tt>,
+ and <tt class="constant">CUPS</tt>.</p><p>To see what the defaults are for the other print
+ commands when using the various options use the <a href="testparm.1.html"><span class="citerefentry"><span class="refentrytitle">testparm</span>(1)</span></a> program.</p><p>This option can be set on a per printer basis</p><p>See also the discussion in the <a href="#PRINTERSSECT" title="The [printers] section">
+ [printers]</a> section.</p></dd><dt><span class="term"><a name="PRINTOK"></a>print ok (S)</span></dt><dd><p>Synonym for <a href="#PRINTABLE">
+ <i class="parameter"><tt>printable</tt></i></a>.</p></dd><dt><span class="term"><a name="PRIVATEDIR"></a>private dir (G)</span></dt><dd><p>This parameters defines the directory
+ smbd will use for storing such files as <tt class="filename">smbpasswd</tt>
+ and <tt class="filename">secrets.tdb</tt>.
+ </p><p>Default :<b class="command">private dir = ${prefix}/private</b></p></dd><dt><span class="term"><a name="PROTOCOL"></a>protocol (G)</span></dt><dd><p>Synonym for <a href="#MAXPROTOCOL">
+ <i class="parameter"><tt>max protocol</tt></i></a>.</p></dd><dt><span class="term"><a name="PUBLIC"></a>public (S)</span></dt><dd><p>Synonym for <a href="#GUESTOK"><i class="parameter"><tt>guest
+ ok</tt></i></a>.</p></dd><dt><span class="term"><a name="QUEUEPAUSECOMMAND"></a>queuepause command (S)</span></dt><dd><p>This parameter specifies the command to be
+ executed on the server host in order to pause the printer queue.</p><p>This command should be a program or script which takes
+ a printer name as its only parameter and stops the printer queue,
+ such that no longer jobs are submitted to the printer.</p><p>This command is not supported by Windows for Workgroups,
+ but can be issued from the Printers window under Windows 95
+ and NT.</p><p>If a <i class="parameter"><tt>%p</tt></i> is given then the printer name
+ is put in its place. Otherwise it is placed at the end of the command.
+ </p><p>Note that it is good practice to include the absolute
+ path in the command as the PATH may not be available to the
+ server.</p><p>Default: <span class="emphasis"><em>depends on the setting of <i class="parameter"><tt>printing</tt></i></em></span></p><p>Example: <b class="command">queuepause command = disable %p</b></p></dd><dt><span class="term"><a name="QUEUERESUMECOMMAND"></a>queueresume command (S)</span></dt><dd><p>This parameter specifies the command to be
+ executed on the server host in order to resume the printer queue. It
+ is the command to undo the behavior that is caused by the
+ previous parameter (<a href="#QUEUEPAUSECOMMAND"><i class="parameter"><tt>
+ queuepause command</tt></i></a>).</p><p>This command should be a program or script which takes
+ a printer name as its only parameter and resumes the printer queue,
+ such that queued jobs are resubmitted to the printer.</p><p>This command is not supported by Windows for Workgroups,
+ but can be issued from the Printers window under Windows 95
+ and NT.</p><p>If a <i class="parameter"><tt>%p</tt></i> is given then the printer name
+ is put in its place. Otherwise it is placed at the end of the
+ command.</p><p>Note that it is good practice to include the absolute
+ path in the command as the PATH may not be available to the
+ server.</p><p>Default: <span class="emphasis"><em>depends on the setting of <a href="#PRINTING">
+ <i class="parameter"><tt>printing</tt></i></a></em></span></p><p>Example: <b class="command">queuepause command = enable %p</b></p></dd><dt><span class="term"><a name="READBMPX"></a>read bmpx (G)</span></dt><dd><p>This boolean parameter controls whether
+ <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will support the &quot;Read
+ Block Multiplex&quot; SMB. This is now rarely used and defaults to
+ <tt class="constant">no</tt>. You should never need to set this
+ parameter.</p><p>Default: <b class="command">read bmpx = no</b></p></dd><dt><span class="term"><a name="READLIST"></a>read list (S)</span></dt><dd><p>This is a list of users that are given read-only
+ access to a service. If the connecting user is in this list then
+ they will not be given write access, no matter what the <a href="#READONLY">
+ <i class="parameter"><tt>read only</tt></i></a>
+ option is set to. The list can include group names using the
+ syntax described in the <a href="#INVALIDUSERS"><i class="parameter"><tt>
+ invalid users</tt></i></a> parameter.</p><p>See also the <a href="#WRITELIST"><i class="parameter"><tt>
+ write list</tt></i></a> parameter and the <a href="#INVALIDUSERS">
+ <i class="parameter"><tt>invalid users</tt></i>
+ </a> parameter.</p><p>Default: <b class="command">read list = &lt;empty string&gt;</b></p><p>Example: <b class="command">read list = mary, @students</b></p></dd><dt><span class="term"><a name="READONLY"></a>read only (S)</span></dt><dd><p>An inverted synonym is <a href="#WRITEABLE">
+ <i class="parameter"><tt>writeable</tt></i></a>.</p><p>If this parameter is <tt class="constant">yes</tt>, then users
+ of a service may not create or modify files in the service's
+ directory.</p><p>Note that a printable service (<b class="command">printable = yes</b>)
+ will <span class="emphasis"><em>ALWAYS</em></span> allow writing to the directory
+ (user privileges permitting), but only via spooling operations.</p><p>Default: <b class="command">read only = yes</b></p></dd><dt><span class="term"><a name="READRAW"></a>read raw (G)</span></dt><dd><p>This parameter controls whether or not the server
+ will support the raw read SMB requests when transferring data
+ to clients.</p><p>If enabled, raw reads allow reads of 65535 bytes in
+ one packet. This typically provides a major performance benefit.
+ </p><p>However, some clients either negotiate the allowable
+ block size incorrectly or are incapable of supporting larger block
+ sizes, and for these clients you may need to disable raw reads.</p><p>In general this parameter should be viewed as a system tuning
+ tool and left severely alone. See also <a href="#WRITERAW">
+ <i class="parameter"><tt>write raw</tt></i></a>.</p><p>Default: <b class="command">read raw = yes</b></p></dd><dt><span class="term"><a name="READSIZE"></a>read size (G)</span></dt><dd><p>The option <i class="parameter"><tt>read size</tt></i>
+ affects the overlap of disk reads/writes with network reads/writes.
+ If the amount of data being transferred in several of the SMB
+ commands (currently SMBwrite, SMBwriteX and SMBreadbraw) is larger
+ than this value then the server begins writing the data before it
+ has received the whole packet from the network, or in the case of
+ SMBreadbraw, it begins writing to the network before all the data
+ has been read from disk.</p><p>This overlapping works best when the speeds of disk and
+ network access are similar, having very little effect when the
+ speed of one is much greater than the other.</p><p>The default value is 16384, but very little experimentation
+ has been done yet to determine the optimal value, and it is likely
+ that the best value will vary greatly between systems anyway.
+ A value over 65536 is pointless and will cause you to allocate
+ memory unnecessarily.</p><p>Default: <b class="command">read size = 16384</b></p><p>Example: <b class="command">read size = 8192</b></p></dd><dt><span class="term"><a name="REALM"></a>realm (G)</span></dt><dd><p>This option specifies the kerberos realm to use. The realm is
+ used as the ADS equivalent of the NT4 <b class="command">domain</b>. It
+ is usually set to the DNS name of the kerberos server.
+ </p><p>Default: <b class="command">realm = </b></p><p>Example: <b class="command">realm = mysambabox.mycompany.com</b></p></dd><dt><span class="term"><a name="REMOTEANNOUNCE"></a>remote announce (G)</span></dt><dd><p>This option allows you to setup <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a>to periodically announce itself
+ to arbitrary IP addresses with an arbitrary workgroup name.</p><p>This is useful if you want your Samba server to appear
+ in a remote workgroup for which the normal browse propagation
+ rules don't work. The remote workgroup can be anywhere that you
+ can send IP packets to.</p><p>For example:</p><p><b class="command">remote announce = 192.168.2.255/SERVERS
+ 192.168.4.255/STAFF</b></p><p>the above line would cause <b class="command">nmbd</b> to announce itself
+ to the two given IP addresses using the given workgroup names.
+ If you leave out the workgroup name then the one given in
+ the <a href="#WORKGROUP"><i class="parameter"><tt>workgroup</tt></i></a>
+ parameter is used instead.</p><p>The IP addresses you choose would normally be the broadcast
+ addresses of the remote networks, but can also be the IP addresses
+ of known browse masters if your network config is that stable.</p><p>See the documentation file <a href="improved-browsing.html" target="_top">BROWSING</a>
+ in the <tt class="filename">docs/</tt> directory.</p><p>Default: <b class="command">remote announce = &lt;empty string&gt;</b></p></dd><dt><span class="term"><a name="REMOTEBROWSESYNC"></a>remote browse sync (G)</span></dt><dd><p>This option allows you to setup <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> to periodically request
+ synchronization of browse lists with the master browser of a Samba
+ server that is on a remote segment. This option will allow you to
+ gain browse lists for multiple workgroups across routed networks. This
+ is done in a manner that does not work with any non-Samba servers.</p><p>This is useful if you want your Samba server and all local
+ clients to appear in a remote workgroup for which the normal browse
+ propagation rules don't work. The remote workgroup can be anywhere
+ that you can send IP packets to.</p><p>For example:</p><p><b class="command">remote browse sync = 192.168.2.255 192.168.4.255</b></p><p>the above line would cause <b class="command">nmbd</b> to request
+ the master browser on the specified subnets or addresses to
+ synchronize their browse lists with the local server.</p><p>The IP addresses you choose would normally be the broadcast
+ addresses of the remote networks, but can also be the IP addresses
+ of known browse masters if your network config is that stable. If
+ a machine IP address is given Samba makes NO attempt to validate
+ that the remote machine is available, is listening, nor that it
+ is in fact the browse master on its segment.</p><p>Default: <b class="command">remote browse sync = &lt;empty string&gt;</b></p></dd><dt><span class="term"><a name="RESTRICTANONYMOUS"></a>restrict anonymous (G)</span></dt><dd><p>The setting of this parameter determines whether user and
+ group list information is returned for an anonymous connection.
+ and mirrors the effects of the
+ <tt class="constant">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous</tt> registry key in Windows
+ 2000 and Windows NT. When set to 0, user and group list
+ information is returned to anyone who asks. When set
+ to 1, only an authenticated user can retrive user and
+ group list information. For the value 2, supported by
+ Windows 2000/XP and Samba, no anonymous connections are allowed at
+ all. This can break third party and Microsoft
+ applications which expect to be allowed to perform
+ operations anonymously.</p><p>
+ The security advantage of using restrict anonymous = 1 is dubious,
+ as user and group list information can be obtained using other
+ means.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+ The security advantage of using restrict anonymous = 2 is removed
+ by setting <a href="#GUESTOK"><i class="parameter"><tt>guest
+ ok</tt></i> = yes</a> on any share.
+ </p></div><p>Default: <b class="command">restrict anonymous = 0</b></p></dd><dt><span class="term"><a name="ROOT"></a>root (G)</span></dt><dd><p>Synonym for <a href="#ROOTDIRECTORY">
+ <i class="parameter"><tt>root directory&quot;</tt></i></a>.
+ </p></dd><dt><span class="term"><a name="ROOTDIR"></a>root dir (G)</span></dt><dd><p>Synonym for <a href="#ROOTDIRECTORY">
+ <i class="parameter"><tt>root directory&quot;</tt></i></a>.
+ </p></dd><dt><span class="term"><a name="ROOTDIRECTORY"></a>root directory (G)</span></dt><dd><p>The server will <b class="command">chroot()</b> (i.e.
+ Change its root directory) to this directory on startup. This is
+ not strictly necessary for secure operation. Even without it the
+ server will deny access to files not in one of the service entries.
+ It may also check for, and deny access to, soft links to other
+ parts of the filesystem, or attempts to use &quot;..&quot; in file names
+ to access other directories (depending on the setting of the <a href="#WIDELINKS">
+ <i class="parameter"><tt>wide links</tt></i></a>
+ parameter).
+ </p><p>Adding a <i class="parameter"><tt>root directory</tt></i> entry other
+ than &quot;/&quot; adds an extra level of security, but at a price. It
+ absolutely ensures that no access is given to files not in the
+ sub-tree specified in the <i class="parameter"><tt>root directory</tt></i>
+ option, <span class="emphasis"><em>including</em></span> some files needed for
+ complete operation of the server. To maintain full operability
+ of the server you will need to mirror some system files
+ into the <i class="parameter"><tt>root directory</tt></i> tree. In particular
+ you will need to mirror <tt class="filename">/etc/passwd</tt> (or a
+ subset of it), and any binaries or configuration files needed for
+ printing (if required). The set of files that must be mirrored is
+ operating system dependent.</p><p>Default: <b class="command">root directory = /</b></p><p>Example: <b class="command">root directory = /homes/smb</b></p></dd><dt><span class="term"><a name="ROOTPOSTEXEC"></a>root postexec (S)</span></dt><dd><p>This is the same as the <i class="parameter"><tt>postexec</tt></i>
+ parameter except that the command is run as root. This
+ is useful for unmounting filesystems
+ (such as CDROMs) after a connection is closed.</p><p>See also <a href="#POSTEXEC"><i class="parameter"><tt>
+ postexec</tt></i></a>.</p><p>Default: <b class="command">root postexec = &lt;empty string&gt;</b></p></dd><dt><span class="term"><a name="ROOTPREEXEC"></a>root preexec (S)</span></dt><dd><p>This is the same as the <i class="parameter"><tt>preexec</tt></i>
+ parameter except that the command is run as root. This
+ is useful for mounting filesystems (such as CDROMs) when a
+ connection is opened.</p><p>See also <a href="#PREEXEC"><i class="parameter"><tt>
+ preexec</tt></i></a> and <a href="#PREEXECCLOSE">
+ <i class="parameter"><tt>preexec close</tt></i></a>.</p><p>Default: <b class="command">root preexec = &lt;empty string&gt;</b></p></dd><dt><span class="term"><a name="ROOTPREEXECCLOSE"></a>root preexec close (S)</span></dt><dd><p>This is the same as the <i class="parameter"><tt>preexec close
+ </tt></i> parameter except that the command is run as root.</p><p>See also <a href="#PREEXEC"><i class="parameter"><tt>
+ preexec</tt></i></a> and <a href="#PREEXECCLOSE">
+ <i class="parameter"><tt>preexec close</tt></i></a>.</p><p>Default: <b class="command">root preexec close = no</b></p></dd><dt><span class="term"><a name="SECURITY"></a>security (G)</span></dt><dd><p>This option affects how clients respond to
+ Samba and is one of the most important settings in the <tt class="filename">
+ smb.conf</tt> file.</p><p>The option sets the &quot;security mode bit&quot; in replies to
+ protocol negotiations with <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> to turn share level security on or off. Clients decide
+ based on this bit whether (and how) to transfer user and password
+ information to the server.</p><p>The default is <b class="command">security = user</b>, as this is
+ the most common setting needed when talking to Windows 98 and
+ Windows NT.</p><p>The alternatives are <b class="command">security = share</b>,
+ <b class="command">security = server</b> or <b class="command">security = domain
+ </b>.</p><p>In versions of Samba prior to 2.0.0, the default was
+ <b class="command">security = share</b> mainly because that was
+ the only option at one stage.</p><p>There is a bug in WfWg that has relevance to this
+ setting. When in user or server level security a WfWg client
+ will totally ignore the password you type in the &quot;connect
+ drive&quot; dialog box. This makes it very difficult (if not impossible)
+ to connect to a Samba service as anyone except the user that
+ you are logged into WfWg as.</p><p>If your PCs use usernames that are the same as their
+ usernames on the UNIX machine then you will want to use
+ <b class="command">security = user</b>. If you mostly use usernames
+ that don't exist on the UNIX box then use <b class="command">security =
+ share</b>.</p><p>You should also use <b class="command">security = share</b> if you
+ want to mainly setup shares without a password (guest shares). This
+ is commonly used for a shared printer server. It is more difficult
+ to setup guest shares with <b class="command">security = user</b>, see
+ the <a href="#MAPTOGUEST"><i class="parameter"><tt>map to guest</tt></i>
+ </a>parameter for details.</p><p>It is possible to use <b class="command">smbd</b> in a <span class="emphasis"><em>
+ hybrid mode</em></span> where it is offers both user and share
+ level security under different <a href="#NETBIOSALIASES">
+ <i class="parameter"><tt>NetBIOS aliases</tt></i></a>. </p><p>The different settings will now be explained.</p><p><a name="SECURITYEQUALSSHARE"></a><span class="emphasis"><em>SECURITY = SHARE</em></span></p><p>When clients connect to a share level security server they
+ need not log onto the server with a valid username and password before
+ attempting to connect to a shared resource (although modern clients
+ such as Windows 95/98 and Windows NT will send a logon request with
+ a username but no password when talking to a <b class="command">security = share
+ </b> server). Instead, the clients send authentication information
+ (passwords) on a per-share basis, at the time they attempt to connect
+ to that share.</p><p>Note that <b class="command">smbd</b> <span class="emphasis"><em>ALWAYS</em></span>
+ uses a valid UNIX user to act on behalf of the client, even in
+ <b class="command">security = share</b> level security.</p><p>As clients are not required to send a username to the server
+ in share level security, <b class="command">smbd</b> uses several
+ techniques to determine the correct UNIX user to use on behalf
+ of the client.</p><p>A list of possible UNIX usernames to match with the given
+ client password is constructed using the following methods :</p><div class="itemizedlist"><ul type="disc"><li><p>If the <a href="#GUESTONLY"><i class="parameter"><tt>guest
+ only</tt></i></a> parameter is set, then all the other
+ stages are missed and only the <a href="#GUESTACCOUNT">
+ <i class="parameter"><tt>guest account</tt></i></a> username is checked.
+ </p></li><li><p>Is a username is sent with the share connection
+ request, then this username (after mapping - see <a href="#USERNAMEMAP">
+ <i class="parameter"><tt>username map</tt></i></a>),
+ is added as a potential username.
+ </p></li><li><p>If the client did a previous <span class="emphasis"><em>logon
+ </em></span> request (the SessionSetup SMB call) then the
+ username sent in this SMB will be added as a potential username.
+ </p></li><li><p>The name of the service the client requested is
+ added as a potential username.
+ </p></li><li><p>The NetBIOS name of the client is added to
+ the list as a potential username.
+ </p></li><li><p>Any users on the <a href="#USER"><i class="parameter"><tt>
+ user</tt></i></a> list are added as potential usernames.
+ </p></li></ul></div><p>If the <i class="parameter"><tt>guest only</tt></i> parameter is
+ not set, then this list is then tried with the supplied password.
+ The first user for whom the password matches will be used as the
+ UNIX user.</p><p>If the <i class="parameter"><tt>guest only</tt></i> parameter is
+ set, or no username can be determined then if the share is marked
+ as available to the <i class="parameter"><tt>guest account</tt></i>, then this
+ guest user will be used, otherwise access is denied.</p><p>Note that it can be <span class="emphasis"><em>very</em></span> confusing
+ in share-level security as to which UNIX username will eventually
+ be used in granting access.</p><p>See also the section <a href="#VALIDATIONSECT" title="NOTE ABOUT USERNAME/PASSWORD VALIDATION">
+ NOTE ABOUT USERNAME/PASSWORD VALIDATION</a>.</p><p><a name="SECURITYEQUALSUSER"></a><span class="emphasis"><em>SECURITY = USER</em></span></p><p>This is the default security setting in Samba 3.0.
+ With user-level security a client must first &quot;log-on&quot; with a
+ valid username and password (which can be mapped using the <a href="#USERNAMEMAP">
+ <i class="parameter"><tt>username map</tt></i></a>
+ parameter). Encrypted passwords (see the <a href="#ENCRYPTPASSWORDS">
+ <i class="parameter"><tt>encrypted passwords</tt></i></a> parameter) can also
+ be used in this security mode. Parameters such as <a href="#USER">
+ <i class="parameter"><tt>user</tt></i></a> and <a href="#GUESTONLY">
+ <i class="parameter"><tt>guest only</tt></i></a> if set are then applied and
+ may change the UNIX user to use on this connection, but only after
+ the user has been successfully authenticated.</p><p><span class="emphasis"><em>Note</em></span> that the name of the resource being
+ requested is <span class="emphasis"><em>not</em></span> sent to the server until after
+ the server has successfully authenticated the client. This is why
+ guest shares don't work in user level security without allowing
+ the server to automatically map unknown users into the <a href="#GUESTACCOUNT">
+ <i class="parameter"><tt>guest account</tt></i></a>.
+ See the <a href="#MAPTOGUEST"><i class="parameter"><tt>map to guest</tt></i>
+ </a> parameter for details on doing this.</p><p>See also the section <a href="#VALIDATIONSECT" title="NOTE ABOUT USERNAME/PASSWORD VALIDATION">
+ NOTE ABOUT USERNAME/PASSWORD VALIDATION</a>.</p><p><a name="SECURITYEQUALSDOMAIN"></a><span class="emphasis"><em>SECURITY = DOMAIN</em></span></p><p>This mode will only work correctly if <a href="net.8.html"><span class="citerefentry"><span class="refentrytitle">net</span>(8)</span></a> has been used to add this
+ machine into a Windows NT Domain. It expects the <a href="#ENCRYPTPASSWORDS">
+ <i class="parameter"><tt>encrypted passwords</tt></i>
+ </a> parameter to be set to <tt class="constant">yes</tt>. In this
+ mode Samba will try to validate the username/password by passing
+ it to a Windows NT Primary or Backup Domain Controller, in exactly
+ the same way that a Windows NT Server would do.</p><p><span class="emphasis"><em>Note</em></span> that a valid UNIX user must still
+ exist as well as the account on the Domain Controller to allow
+ Samba to have a valid UNIX account to map file access to.</p><p><span class="emphasis"><em>Note</em></span> that from the client's point
+ of view <b class="command">security = domain</b> is the same
+ as <b class="command">security = user</b>. It only
+ affects how the server deals with the authentication,
+ it does not in any way affect what the client sees.</p><p><span class="emphasis"><em>Note</em></span> that the name of the resource being
+ requested is <span class="emphasis"><em>not</em></span> sent to the server until after
+ the server has successfully authenticated the client. This is why
+ guest shares don't work in user level security without allowing
+ the server to automatically map unknown users into the <a href="#GUESTACCOUNT">
+ <i class="parameter"><tt>guest account</tt></i></a>.
+ See the <a href="#MAPTOGUEST"><i class="parameter"><tt>map to guest</tt></i>
+ </a> parameter for details on doing this.</p><p>See also the section <a href="#VALIDATIONSECT" title="NOTE ABOUT USERNAME/PASSWORD VALIDATION">
+ NOTE ABOUT USERNAME/PASSWORD VALIDATION</a>.</p><p>See also the <a href="#PASSWORDSERVER"><i class="parameter"><tt>password
+ server</tt></i></a> parameter and the <a href="#ENCRYPTPASSWORDS">
+ <i class="parameter"><tt>encrypted passwords</tt></i>
+ </a> parameter.</p><p><a name="SECURITYEQUALSSERVER"></a><span class="emphasis"><em>SECURITY = SERVER</em></span></p><p>In this mode Samba will try to validate the username/password
+ by passing it to another SMB server, such as an NT box. If this
+ fails it will revert to <b class="command">security =
+ user</b>. It expects the <a href="#ENCRYPTPASSWORDS">
+ <i class="parameter"><tt>encrypted passwords</tt></i></a> parameter
+ to be set to <tt class="constant">yes</tt>, unless the remote server
+ does not support them. However note that if encrypted passwords have been
+ negotiated then Samba cannot revert back to checking the UNIX password file,
+ it must have a valid <tt class="filename">smbpasswd</tt> file to check
+ users against. See the chapter about the User Database in the Samba HOWTO Collection for details on how to set this up.</p><p><span class="emphasis"><em>Note</em></span> this mode of operation has
+ significant pitfalls, due to the fact that is activly initiates a
+ man-in-the-middle attack on the remote SMB server. In particular,
+ this mode of operation can cause significant resource consuption on
+ the PDC, as it must maintain an active connection for the duration
+ of the user's session. Furthermore, if this connection is lost,
+ there is no way to reestablish it, and futher authenticaions to the
+ Samba server may fail. (From a single client, till it disconnects).
+ </p><p><span class="emphasis"><em>Note</em></span> that from the client's point of
+ view <b class="command">security = server</b> is the
+ same as <b class="command">security = user</b>. It
+ only affects how the server deals with the authentication, it does
+ not in any way affect what the client sees.</p><p><span class="emphasis"><em>Note</em></span> that the name of the resource being
+ requested is <span class="emphasis"><em>not</em></span> sent to the server until after
+ the server has successfully authenticated the client. This is why
+ guest shares don't work in user level security without allowing
+ the server to automatically map unknown users into the <a href="#GUESTACCOUNT">
+ <i class="parameter"><tt>guest account</tt></i></a>.
+ See the <a href="#MAPTOGUEST"><i class="parameter"><tt>map to guest</tt></i>
+ </a> parameter for details on doing this.</p><p>See also the section <a href="#VALIDATIONSECT" title="NOTE ABOUT USERNAME/PASSWORD VALIDATION">
+ NOTE ABOUT USERNAME/PASSWORD VALIDATION</a>.</p><p>See also the <a href="#PASSWORDSERVER"><i class="parameter"><tt>password
+ server</tt></i></a> parameter and the <a href="#ENCRYPTPASSWORDS">
+ <i class="parameter"><tt>encrypted passwords</tt></i></a> parameter.</p><p>Default: <b class="command">security = USER</b></p><p>Example: <b class="command">security = DOMAIN</b></p></dd><dt><span class="term"><a name="SECURITYMASK"></a>security mask (S)</span></dt><dd><p>This parameter controls what UNIX permission
+ bits can be modified when a Windows NT client is manipulating
+ the UNIX permission on a file using the native NT security
+ dialog box.</p><p>This parameter is applied as a mask (AND'ed with) to
+ the changed permission bits, thus preventing any bits not in
+ this mask from being modified. Essentially, zero bits in this
+ mask may be treated as a set of bits the user is not allowed
+ to change.</p><p>If not set explicitly this parameter is 0777, allowing
+ a user to modify all the user/group/world permissions on a file.
+ </p><p><span class="emphasis"><em>Note</em></span> that users who can access the
+ Samba server through other means can easily bypass this
+ restriction, so it is primarily useful for standalone
+ &quot;appliance&quot; systems. Administrators of most normal systems will
+ probably want to leave it set to <tt class="constant">0777</tt>.</p><p>See also the <a href="#FORCEDIRECTORYSECURITYMODE">
+ <i class="parameter"><tt>force directory security mode</tt></i></a>,
+ <a href="#DIRECTORYSECURITYMASK"><i class="parameter"><tt>directory
+ security mask</tt></i></a>, <a href="#FORCESECURITYMODE">
+ <i class="parameter"><tt>force security mode</tt></i></a> parameters.</p><p>Default: <b class="command">security mask = 0777</b></p><p>Example: <b class="command">security mask = 0770</b></p></dd><dt><span class="term"><a name="SERVERSCHANNEL"></a>server schannel (G)</span></dt><dd><p>This controls whether the server offers or even
+ demands the use of the netlogon schannel.
+ <i class="parameter"><tt>server schannel = no</tt></i> does not
+ offer the schannel, <i class="parameter"><tt>server schannel =
+ auto</tt></i> offers the schannel but does not
+ enforce it, and <i class="parameter"><tt>server schannel =
+ yes</tt></i> denies access if the client is not
+ able to speak netlogon schannel. This is only the case
+ for Windows NT4 before SP4.</p><p>Please note that with this set to
+ <i class="parameter"><tt>no</tt></i> you will have to apply the
+ WindowsXP requireSignOrSeal-Registry patch found in
+ the docs/Registry subdirectory.</p><p>Default: <b class="command">server schannel = auto</b></p><p>Example: <b class="command">server schannel = yes</b></p></dd><dt><span class="term"><a name="SERVERSTRING"></a>server string (G)</span></dt><dd><p>This controls what string will show up in the printer comment box in print
+ manager and next to the IPC connection in <b class="command">net view</b>. It
+ can be any string that you wish to show to your users.</p><p>It also sets what will appear in browse lists next
+ to the machine name.</p><p>A <i class="parameter"><tt>%v</tt></i> will be replaced with the Samba
+ version number.</p><p>A <i class="parameter"><tt>%h</tt></i> will be replaced with the
+ hostname.</p><p>Default: <b class="command">server string = Samba %v</b></p><p>Example: <b class="command">server string = University of GNUs Samba
+ Server</b></p></dd><dt><span class="term"><a name="SETDIRECTORY"></a>set directory (S)</span></dt><dd><p>If <b class="command">set directory = no</b>, then
+ users of the service may not use the setdir command to change
+ directory.</p><p>The <b class="command">setdir</b> command is only implemented
+ in the Digital Pathworks client. See the Pathworks documentation
+ for details.</p><p>Default: <b class="command">set directory = no</b></p></dd><dt><span class="term"><a name="SETPRIMARYGROUPSCRIPT"></a>set primary group script (G)</span></dt><dd><p>Thanks to the Posix subsystem in NT a Windows User has a
+ primary group in addition to the auxiliary groups. This script
+ sets the primary group in the unix userdatase when an
+ administrator sets the primary group from the windows user
+ manager or when fetching a SAM with <b class="command">net rpc
+ vampire</b>. <i class="parameter"><tt>%u</tt></i> will be replaced
+ with the user whose primary group is to be set.
+ <i class="parameter"><tt>%g</tt></i> will be replaced with the group to
+ set.</p><p>Default: <span class="emphasis"><em>No default value</em></span></p><p>Example: <b class="command">set primary group script = /usr/sbin/usermod -g '%g' '%u'</b></p></dd><dt><span class="term"><a name="SHAREMODES"></a>share modes (S)</span></dt><dd><p>This enables or disables the honoring of
+ the <i class="parameter"><tt>share modes</tt></i> during a file open. These
+ modes are used by clients to gain exclusive read or write access
+ to a file.</p><p>These open modes are not directly supported by UNIX, so
+ they are simulated using shared memory, or lock files if your
+ UNIX doesn't support shared memory (almost all do).</p><p>The share modes that are enabled by this option are
+ <tt class="constant">DENY_DOS</tt>, <tt class="constant">DENY_ALL</tt>,
+ <tt class="constant">DENY_READ</tt>, <tt class="constant">DENY_WRITE</tt>,
+ <tt class="constant">DENY_NONE</tt> and <tt class="constant">DENY_FCB</tt>.
+ </p><p>This option gives full share compatibility and enabled
+ by default.</p><p>You should <span class="emphasis"><em>NEVER</em></span> turn this parameter
+ off as many Windows applications will break if you do so.</p><p>Default: <b class="command">share modes = yes</b></p></dd><dt><span class="term"><a name="SHORTPRESERVECASE"></a>short preserve case (S)</span></dt><dd><p>This boolean parameter controls if new files
+ which conform to 8.3 syntax, that is all in upper case and of
+ suitable length, are created upper case, or if they are forced
+ to be the <a href="#DEFAULTCASE"><i class="parameter"><tt>default case
+ </tt></i></a>. This option can be use with <a href="#PRESERVECASE"><b class="command">preserve case = yes</b>
+ </a> to permit long filenames to retain their case, while short
+ names are lowered. </p><p>See the section on <a href="#NAMEMANGLINGSECT" title="NAME MANGLING">NAME MANGLING</a>.</p><p>Default: <b class="command">short preserve case = yes</b></p></dd><dt><span class="term"><a name="SHOWADDPRINTERWIZARD"></a>show add printer wizard (G)</span></dt><dd><p>With the introduction of MS-RPC based printing support
+ for Windows NT/2000 client in Samba 2.2, a &quot;Printers...&quot; folder will
+ appear on Samba hosts in the share listing. Normally this folder will
+ contain an icon for the MS Add Printer Wizard (APW). However, it is
+ possible to disable this feature regardless of the level of privilege
+ of the connected user.</p><p>Under normal circumstances, the Windows NT/2000 client will
+ open a handle on the printer server with OpenPrinterEx() asking for
+ Administrator privileges. If the user does not have administrative
+ access on the print server (i.e is not root or a member of the
+ <i class="parameter"><tt>printer admin</tt></i> group), the OpenPrinterEx()
+ call fails and the client makes another open call with a request for
+ a lower privilege level. This should succeed, however the APW
+ icon will not be displayed.</p><p>Disabling the <i class="parameter"><tt>show add printer wizard</tt></i>
+ parameter will always cause the OpenPrinterEx() on the server
+ to fail. Thus the APW icon will never be displayed. <span class="emphasis"><em>
+ Note :</em></span>This does not prevent the same user from having
+ administrative privilege on an individual printer.</p><p>See also <a href="#ADDPRINTERCOMMAND"><i class="parameter"><tt>addprinter
+ command</tt></i></a>, <a href="#DELETEPRINTERCOMMAND">
+ <i class="parameter"><tt>deleteprinter command</tt></i></a>, <a href="#PRINTERADMIN">
+ <i class="parameter"><tt>printer admin</tt></i></a></p><p>Default :<b class="command">show add printer wizard = yes</b></p></dd><dt><span class="term"><a name="SHUTDOWNSCRIPT"></a>shutdown script (G)</span></dt><dd xmlns:ns2=""><p><span class="emphasis"><em>This parameter only exists in the HEAD cvs branch</em></span>
+ This a full path name to a script called by <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> that should start a shutdown procedure.</p><p>This command will be run as the user connected to the server.</p><p>%m %t %r %f parameters are expanded:</p><div class="itemizedlist"><ul type="disc"><li><p><i class="parameter"><tt>%m</tt></i> will be substituted with the
+ shutdown message sent to the server.</p></li><li><p><i class="parameter"><tt>%t</tt></i> will be substituted with the
+ number of seconds to wait before effectively starting the
+ shutdown procedure.</p></li><li><p><i class="parameter"><tt>%r</tt></i> will be substituted with the
+ switch <span class="emphasis"><em>-r</em></span>. It means reboot after shutdown
+ for NT.</p></li><li><p><i class="parameter"><tt>%f</tt></i> will be substituted with the
+ switch <span class="emphasis"><em>-f</em></span>. It means force the shutdown
+ even if applications do not respond for NT.</p></li></ul></div><p>Default: <span class="emphasis"><em>None</em></span>.</p><p>Example: <b class="command">abort shutdown script = /usr/local/samba/sbin/shutdown %m %t %r %f</b></p><ns2:p>Shutdown script example:
+</ns2:p><pre class="programlisting">
+#!/bin/bash
+
+$time=0
+let &quot;time/60&quot;
+let &quot;time++&quot;
+
+/sbin/shutdown $3 $4 +$time $1 &amp;
+</pre><ns2:p>
+Shutdown does not return so we need to launch it in background.
+</ns2:p><p>See also <a href="#ABORTSHUTDOWNSCRIPT">
+ <i class="parameter"><tt>abort shutdown script</tt></i></a>.</p></dd><dt><span class="term"><a name="SMBPASSWDFILE"></a>smb passwd file (G)</span></dt><dd><p>This option sets the path to the encrypted smbpasswd file. By
+ default the path to the smbpasswd file is compiled into Samba.</p><p>Default: <b class="command">smb passwd file = ${prefix}/private/smbpasswd</b></p><p>Example: <b class="command">smb passwd file = /etc/samba/smbpasswd</b></p></dd><dt><span class="term"><a name="SMBPORTS"></a>smb ports (G)</span></dt><dd><p>Specifies which ports the server should listen on for SMB traffic.</p><p>Default: <b class="command">smb ports = 445 139</b></p></dd><dt><span class="term"><a name="SOCKETADDRESS"></a>socket address (G)</span></dt><dd><p>This option allows you to control what
+ address Samba will listen for connections on. This is used to
+ support multiple virtual interfaces on the one server, each
+ with a different configuration.</p><p>By default Samba will accept connections on any
+ address.</p><p>Example: <b class="command">socket address = 192.168.2.20</b></p></dd><dt><span class="term"><a name="SOCKETOPTIONS"></a>socket options (G)</span></dt><dd><p>This option allows you to set socket options
+ to be used when talking with the client.</p><p>Socket options are controls on the networking layer
+ of the operating systems which allow the connection to be
+ tuned.</p><p>This option will typically be used to tune your Samba server
+ for optimal performance for your local network. There is no way
+ that Samba can know what the optimal parameters are for your net,
+ so you must experiment and choose them yourself. We strongly
+ suggest you read the appropriate documentation for your operating
+ system first (perhaps <b class="command">man
+ setsockopt</b> will help).</p><p>You may find that on some systems Samba will say
+ &quot;Unknown socket option&quot; when you supply an option. This means you
+ either incorrectly typed it or you need to add an include file
+ to includes.h for your OS. If the latter is the case please
+ send the patch to <a href="mailto:samba-technical@samba.org" target="_top">
+ samba-technical@samba.org</a>.</p><p>Any of the supported socket options may be combined
+ in any way you like, as long as your OS allows it.</p><p>This is the list of socket options currently settable
+ using this option:</p><div class="itemizedlist"><ul type="disc"><li><p>SO_KEEPALIVE</p></li><li><p>SO_REUSEADDR</p></li><li><p>SO_BROADCAST</p></li><li><p>TCP_NODELAY</p></li><li><p>IPTOS_LOWDELAY</p></li><li><p>IPTOS_THROUGHPUT</p></li><li><p>SO_SNDBUF *</p></li><li><p>SO_RCVBUF *</p></li><li><p>SO_SNDLOWAT *</p></li><li><p>SO_RCVLOWAT *</p></li></ul></div><p>Those marked with a <span class="emphasis"><em>'*'</em></span> take an integer
+ argument. The others can optionally take a 1 or 0 argument to enable
+ or disable the option, by default they will be enabled if you
+ don't specify 1 or 0.</p><p>To specify an argument use the syntax SOME_OPTION = VALUE
+ for example <b class="command">SO_SNDBUF = 8192</b>. Note that you must
+ not have any spaces before or after the = sign.</p><p>If you are on a local network then a sensible option
+ might be:</p><p><b class="command">socket options = IPTOS_LOWDELAY</b></p><p>If you have a local network then you could try:</p><p><b class="command">socket options = IPTOS_LOWDELAY TCP_NODELAY</b></p><p>If you are on a wide area network then perhaps try
+ setting IPTOS_THROUGHPUT. </p><p>Note that several of the options may cause your Samba
+ server to fail completely. Use these options with caution!</p><p>Default: <b class="command">socket options = TCP_NODELAY</b></p><p>Example: <b class="command">socket options = IPTOS_LOWDELAY</b></p></dd><dt><span class="term"><a name="SOURCEENVIRONMENT"></a>source environment (G)</span></dt><dd><p>This parameter causes Samba to set environment
+ variables as per the content of the file named.</p><p>If the value of this parameter starts with a &quot;|&quot; character
+ then Samba will treat that value as a pipe command to open and
+ will set the environment variables from the output of the pipe.</p><p>The contents of the file or the output of the pipe should
+ be formatted as the output of the standard Unix <b class="command">env(1)</b> command. This is of the form:</p><p>Example environment entry:</p><p><b class="command">SAMBA_NETBIOS_NAME = myhostname</b></p><p>Default: <span class="emphasis"><em>No default value</em></span></p><p>Examples: <b class="command">source environment = |/etc/smb.conf.sh</b></p><p>Example: <b class="command">source environment =
+ /usr/local/smb_env_vars</b></p></dd><dt><span class="term"><a name="STATCACHE"></a>stat cache (G)</span></dt><dd><p>This parameter determines if <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will use a cache in order to
+ speed up case insensitive name mappings. You should never need
+ to change this parameter.</p><p>Default: <b class="command">stat cache = yes</b></p></dd><dt><span class="term"><a name="STATCACHESIZE"></a>stat cache size (G)</span></dt><dd><p>This parameter determines the number of
+ entries in the <i class="parameter"><tt>stat cache</tt></i>. You should
+ never need to change this parameter.</p><p>Default: <b class="command">stat cache size = 50</b></p></dd><dt><span class="term"><a name="STRICTALLOCATE"></a>strict allocate (S)</span></dt><dd><p>This is a boolean that controls the handling of
+ disk space allocation in the server. When this is set to <tt class="constant">yes</tt>
+ the server will change from UNIX behaviour of not committing real
+ disk storage blocks when a file is extended to the Windows behaviour
+ of actually forcing the disk system to allocate real storage blocks
+ when a file is created or extended to be a given size. In UNIX
+ terminology this means that Samba will stop creating sparse files.
+ This can be slow on some systems.</p><p>When strict allocate is <tt class="constant">no</tt> the server does sparse
+ disk block allocation when a file is extended.</p><p>Setting this to <tt class="constant">yes</tt> can help Samba return
+ out of quota messages on systems that are restricting the disk quota
+ of users.</p><p>Default: <b class="command">strict allocate = no</b></p></dd><dt><span class="term"><a name="STRICTLOCKING"></a>strict locking (S)</span></dt><dd><p>This is a boolean that controls the handling of
+ file locking in the server. When this is set to <tt class="constant">yes</tt>
+ the server will check every read and write access for file locks, and
+ deny access if locks exist. This can be slow on some systems.</p><p>When strict locking is <tt class="constant">no</tt> the server does file
+ lock checks only when the client explicitly asks for them.</p><p>Well-behaved clients always ask for lock checks when it
+ is important, so in the vast majority of cases <b class="command">strict
+ locking = no</b> is preferable.</p><p>Default: <b class="command">strict locking = no</b></p></dd><dt><span class="term"><a name="STRICTSYNC"></a>strict sync (S)</span></dt><dd><p>Many Windows applications (including the Windows 98 explorer
+ shell) seem to confuse flushing buffer contents to disk with doing
+ a sync to disk. Under UNIX, a sync call forces the process to be
+ suspended until the kernel has ensured that all outstanding data in
+ kernel disk buffers has been safely stored onto stable storage.
+ This is very slow and should only be done rarely. Setting this
+ parameter to <tt class="constant">no</tt> (the default) means that
+ <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> ignores the Windows
+ applications requests for a sync call. There is only a possibility
+ of losing data if the operating system itself that Samba is running
+ on crashes, so there is little danger in this default setting. In
+ addition, this fixes many performance problems that people have
+ reported with the new Windows98 explorer shell file copies.</p><p>See also the <a href="#SYNCALWAYS"><i class="parameter"><tt>sync
+ always</tt></i></a> parameter.</p><p>Default: <b class="command">strict sync = no</b></p></dd><dt><span class="term"><a name="STRIPDOT"></a>strip dot (G)</span></dt><dd><p>This is a boolean that controls whether to
+ strip trailing dots off UNIX filenames. This helps with some
+ CDROMs that have filenames ending in a single dot.</p><p>Default: <b class="command">strip dot = no</b></p></dd><dt><span class="term"><a name="SYNCALWAYS"></a>sync always (S)</span></dt><dd><p>This is a boolean parameter that controls
+ whether writes will always be written to stable storage before
+ the write call returns. If this is <tt class="constant">no</tt> then the server will be
+ guided by the client's request in each write call (clients can
+ set a bit indicating that a particular write should be synchronous).
+ If this is <tt class="constant">yes</tt> then every write will be followed by a <b class="command">fsync()
+ </b> call to ensure the data is written to disk. Note that
+ the <i class="parameter"><tt>strict sync</tt></i> parameter must be set to
+ <tt class="constant">yes</tt> in order for this parameter to have
+ any affect.</p><p>See also the <a href="#STRICTSYNC"><i class="parameter"><tt>strict
+ sync</tt></i></a> parameter.</p><p>Default: <b class="command">sync always = no</b></p></dd><dt><span class="term"><a name="SYSLOG"></a>syslog (G)</span></dt><dd><p>This parameter maps how Samba debug messages
+ are logged onto the system syslog logging levels. Samba debug
+ level zero maps onto syslog <tt class="constant">LOG_ERR</tt>, debug
+ level one maps onto <tt class="constant">LOG_WARNING</tt>, debug level
+ two maps onto <tt class="constant">LOG_NOTICE</tt>, debug level three
+ maps onto LOG_INFO. All higher levels are mapped to <tt class="constant">
+ LOG_DEBUG</tt>.</p><p>This parameter sets the threshold for sending messages
+ to syslog. Only messages with debug level less than this value
+ will be sent to syslog.</p><p>Default: <b class="command">syslog = 1</b></p></dd><dt><span class="term"><a name="SYSLOGONLY"></a>syslog only (G)</span></dt><dd><p>If this parameter is set then Samba debug
+ messages are logged into the system syslog only, and not to
+ the debug log files.</p><p>Default: <b class="command">syslog only = no</b></p></dd><dt><span class="term"><a name="TEMPLATEHOMEDIR"></a>template homedir (G)</span></dt><dd><p>When filling out the user information for a Windows NT
+ user, the <a href="winbindd.8.html"><span class="citerefentry"><span class="refentrytitle">winbindd</span>(8)</span></a> daemon uses this
+ parameter to fill in the home directory for that user. If the
+ string <i class="parameter"><tt>%D</tt></i> is present it
+ is substituted with the user's Windows NT domain name. If the
+ string <i class="parameter"><tt>%U</tt></i> is present it
+ is substituted with the user's Windows NT user name.</p><p>Default: <b class="command">template homedir = /home/%D/%U</b></p></dd><dt><span class="term"><a name="TEMPLATESHELL"></a>template shell (G)</span></dt><dd><p>When filling out the user information for a Windows NT
+ user, the <a href="winbindd.8.html"><span class="citerefentry"><span class="refentrytitle">winbindd</span>(8)</span></a> daemon uses this
+ parameter to fill in the login shell for that user.</p><p>Default: <b class="command">template shell = /bin/false</b></p></dd><dt><span class="term"><a name="TIMEOFFSET"></a>time offset (G)</span></dt><dd><p>This parameter is a setting in minutes to add
+ to the normal GMT to local time conversion. This is useful if
+ you are serving a lot of PCs that have incorrect daylight
+ saving time handling.</p><p>Default: <b class="command">time offset = 0</b></p><p>Example: <b class="command">time offset = 60</b></p></dd><dt><span class="term"><a name="TIMESERVER"></a>time server (G)</span></dt><dd><p>This parameter determines if <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> advertises itself as a time server to Windows
+ clients.</p><p>Default: <b class="command">time server = no</b></p></dd><dt><span class="term"><a name="TIMESTAMPLOGS"></a>timestamp logs (G)</span></dt><dd><p>Synonym for <a href="#DEBUGTIMESTAMP"><i class="parameter"><tt>
+ debug timestamp</tt></i></a>.</p></dd><dt><span class="term"><a name="TOTALPRINTJOBS"></a>total print jobs (G)</span></dt><dd><p>This parameter accepts an integer value which defines
+ a limit on the maximum number of print jobs that will be accepted
+ system wide at any given time. If a print job is submitted
+ by a client which will exceed this number, then <a href="smbd.8.html"><span class="citerefentry"><span class="refentrytitle">smbd</span>(8)</span></a> will return an
+ error indicating that no space is available on the server. The
+ default value of 0 means that no such limit exists. This parameter
+ can be used to prevent a server from exceeding its capacity and is
+ designed as a printing throttle. See also <a href="#MAXPRINTJOBS">
+ <i class="parameter"><tt>max print jobs</tt></i></a>.
+ </p><p>Default: <b class="command">total print jobs = 0</b></p><p>Example: <b class="command">total print jobs = 5000</b></p></dd><dt><span class="term"><a name="UNICODE"></a>unicode (G)</span></dt><dd><p>Specifies whether Samba should try
+ to use unicode on the wire by default. Note: This does NOT
+ mean that samba will assume that the unix machine uses unicode!
+ </p><p>Default: <b class="command">unicode = yes</b></p></dd><dt><span class="term"><a name="UNIXCHARSET"></a>unix charset (G)</span></dt><dd><p>Specifies the charset the unix machine
+ Samba runs on uses. Samba needs to know this in order to be able to
+ convert text to the charsets other SMB clients use.
+ </p><p>Default: <b class="command">unix charset = UTF8</b></p><p>Example: <b class="command">unix charset = ASCII</b></p></dd><dt><span class="term"><a name="UNIXEXTENSIONS"></a>unix extensions (G)</span></dt><dd><p>This boolean parameter controls whether Samba
+ implments the CIFS UNIX extensions, as defined by HP.
+ These extensions enable Samba to better serve UNIX CIFS clients
+ by supporting features such as symbolic links, hard links, etc...
+ These extensions require a similarly enabled client, and are of
+ no current use to Windows clients.</p><p>Default: <b class="command">unix extensions = no</b></p></dd><dt><span class="term"><a name="UNIXPASSWORDSYNC"></a>unix password sync (G)</span></dt><dd><p>This boolean parameter controls whether Samba
+ attempts to synchronize the UNIX password with the SMB password
+ when the encrypted SMB password in the smbpasswd file is changed.
+ If this is set to <tt class="constant">yes</tt> the program specified in the <i class="parameter"><tt>passwd
+ program</tt></i>parameter is called <span class="emphasis"><em>AS ROOT</em></span> -
+ to allow the new UNIX password to be set without access to the
+ old UNIX password (as the SMB password change code has no
+ access to the old password cleartext, only the new).</p><p>See also <a href="#PASSWDPROGRAM"><i class="parameter"><tt>passwd
+ program</tt></i></a>, <a href="#PASSWDCHAT"><i class="parameter"><tt>
+ passwd chat</tt></i></a>.
+ </p><p>Default: <b class="command">unix password sync = no</b></p></dd><dt><span class="term"><a name="UPDATEENCRYPTED"></a>update encrypted (G)</span></dt><dd><p>This boolean parameter allows a user logging on with
+ a plaintext password to have their encrypted (hashed) password in
+ the smbpasswd file to be updated automatically as they log
+ on. This option allows a site to migrate from plaintext
+ password authentication (users authenticate with plaintext
+ password over the wire, and are checked against a UNIX account
+ database) to encrypted password authentication (the SMB
+ challenge/response authentication mechanism) without forcing all
+ users to re-enter their passwords via smbpasswd at the time the
+ change is made. This is a convenience option to allow the change
+ over to encrypted passwords to be made over a longer period.
+ Once all users have encrypted representations of their passwords
+ in the smbpasswd file this parameter should be set to
+ <tt class="constant">no</tt>.</p><p>In order for this parameter to work correctly the <a href="#ENCRYPTPASSWORDS">
+ <i class="parameter"><tt>encrypt passwords</tt></i></a> parameter must
+ be set to <tt class="constant">no</tt> when this parameter is set to <tt class="constant">yes</tt>.</p><p>Note that even when this parameter is set a user
+ authenticating to <b class="command">smbd</b> must still enter a valid
+ password in order to connect correctly, and to update their hashed
+ (smbpasswd) passwords.</p><p>Default: <b class="command">update encrypted = no</b></p></dd><dt><span class="term"><a name="USECLIENTDRIVER"></a>use client driver (S)</span></dt><dd><p>This parameter applies only to Windows NT/2000
+ clients. It has no effect on Windows 95/98/ME clients. When
+ serving a printer to Windows NT/2000 clients without first installing
+ a valid printer driver on the Samba host, the client will be required
+ to install a local printer driver. From this point on, the client
+ will treat the print as a local printer and not a network printer
+ connection. This is much the same behavior that will occur
+ when <b class="command">disable spoolss = yes</b>.
+ </p><p>The differentiating factor is that under normal
+ circumstances, the NT/2000 client will attempt to open the network
+ printer using MS-RPC. The problem is that because the client
+ considers the printer to be local, it will attempt to issue the
+ OpenPrinterEx() call requesting access rights associated with the
+ logged on user. If the user possesses local administator rights but
+ not root privilegde on the Samba host (often the case), the
+ OpenPrinterEx() call will fail. The result is that the client will
+ now display an &quot;Access Denied; Unable to connect&quot; message
+ in the printer queue window (even though jobs may successfully be
+ printed). </p><p>If this parameter is enabled for a printer, then any attempt
+ to open the printer with the PRINTER_ACCESS_ADMINISTER right is mapped
+ to PRINTER_ACCESS_USE instead. Thus allowing the OpenPrinterEx()
+ call to succeed. <span class="emphasis"><em>This parameter MUST not be able enabled
+ on a print share which has valid print driver installed on the Samba
+ server.</em></span></p><p>See also <a href="#DISABLESPOOLSS"><i class="parameter"><tt>disable spoolss</tt></i></a></p><p>Default: <b class="command">use client driver = no</b></p></dd><dt><span class="term"><a name="USEMMAP"></a>use mmap (G)</span></dt><dd><p>This global parameter determines if the tdb internals of Samba can
+ depend on mmap working correctly on the running system. Samba requires a coherent
+ mmap/read-write system memory cache. Currently only HPUX does not have such a
+ coherent cache, and so this parameter is set to <tt class="constant">no</tt> by
+ default on HPUX. On all other systems this parameter should be left alone. This
+ parameter is provided to help the Samba developers track down problems with
+ the tdb internal code.
+ </p><p>Default: <b class="command">use mmap = yes</b></p></dd><dt><span class="term"><a name="USER"></a>user (S)</span></dt><dd><p>Synonym for <a href="#USERNAME"><i class="parameter"><tt>username</tt></i></a>.</p></dd><dt><span class="term"><a name="USERNAME"></a>username (S)</span></dt><dd><p>Multiple users may be specified in a comma-delimited
+ list, in which case the supplied password will be tested against
+ each username in turn (left to right).</p><p>The <i class="parameter"><tt>username</tt></i> line is needed only when
+ the PC is unable to supply its own username. This is the case
+ for the COREPLUS protocol or where your users have different WfWg
+ usernames to UNIX usernames. In both these cases you may also be
+ better using the \\server\share%user syntax instead.</p><p>The <i class="parameter"><tt>username</tt></i> line is not a great
+ solution in many cases as it means Samba will try to validate
+ the supplied password against each of the usernames in the
+ <i class="parameter"><tt>username</tt></i> line in turn. This is slow and
+ a bad idea for lots of users in case of duplicate passwords.
+ You may get timeouts or security breaches using this parameter
+ unwisely.</p><p>Samba relies on the underlying UNIX security. This
+ parameter does not restrict who can login, it just offers hints
+ to the Samba server as to what usernames might correspond to the
+ supplied password. Users can login as whoever they please and
+ they will be able to do no more damage than if they started a
+ telnet session. The daemon runs as the user that they log in as,
+ so they cannot do anything that user cannot do.</p><p>To restrict a service to a particular set of users you
+ can use the <a href="#VALIDUSERS"><i class="parameter"><tt>valid users
+ </tt></i></a> parameter.</p><p>If any of the usernames begin with a '@' then the name
+ will be looked up first in the NIS netgroups list (if Samba
+ is compiled with netgroup support), followed by a lookup in
+ the UNIX groups database and will expand to a list of all users
+ in the group of that name.</p><p>If any of the usernames begin with a '+' then the name
+ will be looked up only in the UNIX groups database and will
+ expand to a list of all users in the group of that name.</p><p>If any of the usernames begin with a '&amp;' then the name
+ will be looked up only in the NIS netgroups database (if Samba
+ is compiled with netgroup support) and will expand to a list
+ of all users in the netgroup group of that name.</p><p>Note that searching though a groups database can take
+ quite some time, and some clients may time out during the
+ search.</p><p>See the section <a href="#VALIDATIONSECT" title="NOTE ABOUT USERNAME/PASSWORD VALIDATION">NOTE ABOUT
+ USERNAME/PASSWORD VALIDATION</a> for more information on how
+ this parameter determines access to the services.</p><p>Default: <b class="command">The guest account if a guest service,
+ else &lt;empty string&gt;.</b></p><p>Examples:<b class="command">username = fred, mary, jack, jane,
+ @users, @pcgroup</b></p></dd><dt><span class="term"><a name="USERNAMELEVEL"></a>username level (G)</span></dt><dd><p>This option helps Samba to try and 'guess' at
+ the real UNIX username, as many DOS clients send an all-uppercase
+ username. By default Samba tries all lowercase, followed by the
+ username with the first letter capitalized, and fails if the
+ username is not found on the UNIX machine.</p><p>If this parameter is set to non-zero the behavior changes.
+ This parameter is a number that specifies the number of uppercase
+ combinations to try while trying to determine the UNIX user name. The
+ higher the number the more combinations will be tried, but the slower
+ the discovery of usernames will be. Use this parameter when you have
+ strange usernames on your UNIX machine, such as <tt class="constant">AstrangeUser
+ </tt>.</p><p>Default: <b class="command">username level = 0</b></p><p>Example: <b class="command">username level = 5</b></p></dd><dt><span class="term"><a name="USERNAMEMAP"></a>username map (G)</span></dt><dd><p>This option allows you to specify a file containing
+ a mapping of usernames from the clients to the server. This can be
+ used for several purposes. The most common is to map usernames
+ that users use on DOS or Windows machines to those that the UNIX
+ box uses. The other is to map multiple users to a single username
+ so that they can more easily share files.</p><p>The map file is parsed line by line. Each line should
+ contain a single UNIX username on the left then a '=' followed
+ by a list of usernames on the right. The list of usernames on the
+ right may contain names of the form @group in which case they
+ will match any UNIX username in that group. The special client
+ name '*' is a wildcard and matches any name. Each line of the
+ map file may be up to 1023 characters long.</p><p>The file is processed on each line by taking the
+ supplied username and comparing it with each username on the right
+ hand side of the '=' signs. If the supplied name matches any of
+ the names on the right hand side then it is replaced with the name
+ on the left. Processing then continues with the next line.</p><p>If any line begins with a '#' or a ';' then it is ignored</p><p>If any line begins with an '!' then the processing
+ will stop after that line if a mapping was done by the line.
+ Otherwise mapping continues with every line being processed.
+ Using '!' is most useful when you have a wildcard mapping line
+ later in the file.</p><p>For example to map from the name <tt class="constant">admin</tt>
+ or <tt class="constant">administrator</tt> to the UNIX name <tt class="constant">
+ root</tt> you would use:</p><p><b class="command">root = admin administrator</b></p><p>Or to map anyone in the UNIX group <tt class="constant">system</tt>
+ to the UNIX name <tt class="constant">sys</tt> you would use:</p><p><b class="command">sys = @system</b></p><p>You can have as many mappings as you like in a username map file.</p><p>If your system supports the NIS NETGROUP option then
+ the netgroup database is checked before the <tt class="filename">/etc/group
+ </tt> database for matching groups.</p><p>You can map Windows usernames that have spaces in them
+ by using double quotes around the name. For example:</p><p><b class="command">tridge = &quot;Andrew Tridgell&quot;</b></p><p>would map the windows username &quot;Andrew Tridgell&quot; to the
+ unix username &quot;tridge&quot;.</p><p>The following example would map mary and fred to the
+ unix user sys, and map the rest to guest. Note the use of the
+ '!' to tell Samba to stop processing if it gets a match on
+ that line.</p><pre class="programlisting">
+!sys = mary fred
+guest = *
+</pre><p>Note that the remapping is applied to all occurrences
+ of usernames. Thus if you connect to \\server\fred and <tt class="constant">
+ fred</tt> is remapped to <tt class="constant">mary</tt> then you
+ will actually be connecting to \\server\mary and will need to
+ supply a password suitable for <tt class="constant">mary</tt> not
+ <tt class="constant">fred</tt>. The only exception to this is the
+ username passed to the <a href="#PASSWORDSERVER"><i class="parameter"><tt>
+ password server</tt></i></a> (if you have one). The password
+ server will receive whatever username the client supplies without
+ modification.</p><p>Also note that no reverse mapping is done. The main effect
+ this has is with printing. Users who have been mapped may have
+ trouble deleting print jobs as PrintManager under WfWg will think
+ they don't own the print job.</p><p>Default: <span class="emphasis"><em>no username map</em></span></p><p>Example: <b class="command">username map = /usr/local/samba/lib/users.map</b></p></dd><dt><span class="term"><a name="USERS"></a>users (S)</span></dt><dd><p>Synonym for <a href="#USERNAME"><i class="parameter"><tt>
+ username</tt></i></a>.</p></dd><dt><span class="term"><a name="USESENDFILE"></a>use sendfile (S)</span></dt><dd><p>If this parameter is <tt class="constant">yes</tt>, and Samba
+ was built with the --with-sendfile-support option, and the underlying operating
+ system supports sendfile system call, then some SMB read calls (mainly ReadAndX
+ and ReadRaw) will use the more efficient sendfile system call for files that
+ are exclusively oplocked. This may make more efficient use of the system CPU's
+ and cause Samba to be faster. This is off by default as it's effects are unknown
+ as yet.</p><p>Default: <b class="command">use sendfile = no</b></p></dd><dt><span class="term"><a name="USESPNEGO"></a>use spnego (G)</span></dt><dd><p> This variable controls controls whether samba will try
+ to use Simple and Protected NEGOciation (as specified by rfc2478) with
+ WindowsXP and Windows2000 clients to agree upon an authentication mechanism.
+ Unless further issues are discovered with our SPNEGO
+ implementation, there is no reason this should ever be
+ disabled.</p><p>Default: <span class="emphasis"><em>use spnego = yes</em></span></p></dd><dt><span class="term"><a name="UTMP"></a>utmp (G)</span></dt><dd><p>This boolean parameter is only available if
+ Samba has been configured and compiled with the option <b class="command">
+ --with-utmp</b>. If set to <tt class="constant">yes</tt> then Samba will attempt
+ to add utmp or utmpx records (depending on the UNIX system) whenever a
+ connection is made to a Samba server. Sites may use this to record the
+ user connecting to a Samba share.</p><p>Due to the requirements of the utmp record, we
+ are required to create a unique identifier for the
+ incoming user. Enabling this option creates an n^2
+ algorithm to find this number. This may impede
+ performance on large installations. </p><p>See also the <a href="#UTMPDIRECTORY"><i class="parameter"><tt>
+ utmp directory</tt></i></a> parameter.</p><p>Default: <b class="command">utmp = no</b></p></dd><dt><span class="term"><a name="UTMPDIRECTORY"></a>utmp directory (G)</span></dt><dd><p>This parameter is only available if Samba has
+ been configured and compiled with the option <b class="command">
+ --with-utmp</b>. It specifies a directory pathname that is
+ used to store the utmp or utmpx files (depending on the UNIX system) that
+ record user connections to a Samba server. See also the <a href="#UTMP">
+ <i class="parameter"><tt>utmp</tt></i></a> parameter. By default this is
+ not set, meaning the system will use whatever utmp file the
+ native system is set to use (usually
+ <tt class="filename">/var/run/utmp</tt> on Linux).</p><p>Default: <span class="emphasis"><em>no utmp directory</em></span></p><p>Example: <b class="command">utmp directory = /var/run/utmp</b></p></dd><dt><span class="term"><a name="-VALID"></a>-valid (S)</span></dt><dd><p> This parameter indicates whether a share is
+ valid and thus can be used. When this parameter is set to false,
+ the share will be in no way visible nor accessible.
+ </p><p>
+ This option should not be
+ used by regular users but might be of help to developers.
+ Samba uses this option internally to mark shares as deleted.
+ </p><p>Default: <span class="emphasis"><em>True</em></span></p></dd><dt><span class="term"><a name="VALIDUSERS"></a>valid users (S)</span></dt><dd><p>This is a list of users that should be allowed
+ to login to this service. Names starting with '@', '+' and '&amp;'
+ are interpreted using the same rules as described in the
+ <i class="parameter"><tt>invalid users</tt></i> parameter.</p><p>If this is empty (the default) then any user can login.
+ If a username is in both this list and the <i class="parameter"><tt>invalid
+ users</tt></i> list then access is denied for that user.</p><p>The current servicename is substituted for <i class="parameter"><tt>%S
+ </tt></i>. This is useful in the [homes] section.</p><p>See also <a href="#INVALIDUSERS"><i class="parameter"><tt>invalid users
+ </tt></i></a></p><p>Default: <span class="emphasis"><em>No valid users list (anyone can login)
+ </em></span></p><p>Example: <b class="command">valid users = greg, @pcusers</b></p></dd><dt><span class="term"><a name="VETOFILES"></a>veto files (S)</span></dt><dd xmlns:ns3=""><p>This is a list of files and directories that
+ are neither visible nor accessible. Each entry in the list must
+ be separated by a '/', which allows spaces to be included
+ in the entry. '*' and '?' can be used to specify multiple files
+ or directories as in DOS wildcards.</p><p>Each entry must be a unix path, not a DOS path and
+ must <span class="emphasis"><em>not</em></span> include the unix directory
+ separator '/'.</p><p>Note that the <i class="parameter"><tt>case sensitive</tt></i> option
+ is applicable in vetoing files.</p><p>One feature of the veto files parameter that it
+ is important to be aware of is Samba's behaviour when
+ trying to delete a directory. If a directory that is
+ to be deleted contains nothing but veto files this
+ deletion will <span class="emphasis"><em>fail</em></span> unless you also set
+ the <i class="parameter"><tt>delete veto files</tt></i> parameter to
+ <i class="parameter"><tt>yes</tt></i>.</p><p>Setting this parameter will affect the performance
+ of Samba, as it will be forced to check all files and directories
+ for a match as they are scanned.</p><p>See also <a href="#HIDEFILES"><i class="parameter"><tt>hide files
+ </tt></i></a> and <a href="#CASESENSITIVE"><i class="parameter"><tt>
+ case sensitive</tt></i></a>.</p><p>Default: <span class="emphasis"><em>No files or directories are vetoed.
+ </em></span></p><ns3:p>Examples:
+</ns3:p><pre class="programlisting">
+; Veto any files containing the word Security,
+; any ending in .tmp, and any directory containing the
+; word root.
+veto files = /*Security*/*.tmp/*root*/
+
+; Veto the Apple specific files that a NetAtalk server
+; creates.
+veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/
+</pre></dd><dt><span class="term"><a name="VETOOPLOCKFILES"></a>veto oplock files (S)</span></dt><dd><p>This parameter is only valid when the <a href="#OPLOCKS">
+ <i class="parameter"><tt>oplocks</tt></i></a>
+ parameter is turned on for a share. It allows the Samba administrator
+ to selectively turn off the granting of oplocks on selected files that
+ match a wildcarded list, similar to the wildcarded list used in the
+ <a href="#VETOFILES"><i class="parameter"><tt>veto files</tt></i></a>
+ parameter.</p><p>Default: <span class="emphasis"><em>No files are vetoed for oplock grants</em></span></p><p>You might want to do this on files that you know will
+ be heavily contended for by clients. A good example of this
+ is in the NetBench SMB benchmark program, which causes heavy
+ client contention for files ending in <tt class="filename">.SEM</tt>.
+ To cause Samba not to grant oplocks on these files you would use
+ the line (either in the [global] section or in the section for
+ the particular NetBench share :</p><p>Example: <b class="command">veto oplock files = /*.SEM/</b></p></dd><dt><span class="term"><a name="VFSOBJECT"></a>vfs object (S)</span></dt><dd><p>Synonym for
+ <a href="#VFSOBJECTS">
+ <i class="parameter"><tt>vfs objects</tt></i>
+ </a>.
+ </p></dd><dt><span class="term"><a name="VFSOBJECTS"></a>vfs objects (S)</span></dt><dd><p>This parameter specifies the backend names which
+ are used for Samba VFS I/O operations. By default, normal
+ disk I/O operations are used but these can be overloaded
+ with one or more VFS objects. </p><p>Default: <span class="emphasis"><em>no value</em></span></p><p>Example: <b class="command">vfs objects = extd_audit recycle</b></p></dd><dt><span class="term"><a name="VOLUME"></a>volume (S)</span></dt><dd><p> This allows you to override the volume label
+ returned for a share. Useful for CDROMs with installation programs
+ that insist on a particular volume label.</p><p>Default: <span class="emphasis"><em>the name of the share</em></span></p></dd><dt><span class="term"><a name="WIDELINKS"></a>wide links (S)</span></dt><dd><p>This parameter controls whether or not links
+ in the UNIX file system may be followed by the server. Links
+ that point to areas within the directory tree exported by the
+ server are always allowed; this parameter controls access only
+ to areas that are outside the directory tree being exported.</p><p>Note that setting this parameter can have a negative
+ effect on your server performance due to the extra system calls
+ that Samba has to do in order to perform the link checks.</p><p>Default: <b class="command">wide links = yes</b></p></dd><dt><span class="term"><a name="WINBINDCACHETIME"></a>winbind cache time (G)</span></dt><dd><p>This parameter specifies the number of
+ seconds the <a href="winbindd.8.html"><span class="citerefentry"><span class="refentrytitle">winbindd</span>(8)</span></a> daemon will cache
+ user and group information before querying a Windows NT server
+ again.</p><p>Default: <b class="command">winbind cache type = 15</b></p></dd><dt><span class="term"><a name="WINBINDENUMGROUPS"></a>winbind enum groups (G)</span></dt><dd><p>On large installations using <a href="winbindd.8.html"><span class="citerefentry"><span class="refentrytitle">winbindd</span>(8)</span></a> it may be necessary to suppress
+ the enumeration of groups through the <b class="command">setgrent()</b>,
+ <b class="command">getgrent()</b> and
+ <b class="command">endgrent()</b> group of system calls. If
+ the <i class="parameter"><tt>winbind enum groups</tt></i> parameter is
+ <tt class="constant">no</tt>, calls to the <b class="command">getgrent()</b> system
+ call will not return any data. </p><p><span class="emphasis"><em>Warning:</em></span> Turning off group
+ enumeration may cause some programs to behave oddly.
+ </p><p>Default: <b class="command">winbind enum groups = yes </b></p></dd><dt><span class="term"><a name="WINBINDENUMUSERS"></a>winbind enum users (G)</span></dt><dd><p>On large installations using <a href="winbindd.8.html"><span class="citerefentry"><span class="refentrytitle">winbindd</span>(8)</span></a> it may be
+ necessary to suppress the enumeration of users through the <b class="command">setpwent()</b>,
+ <b class="command">getpwent()</b> and
+ <b class="command">endpwent()</b> group of system calls. If
+ the <i class="parameter"><tt>winbind enum users</tt></i> parameter is
+ <tt class="constant">no</tt>, calls to the <b class="command">getpwent</b> system call
+ will not return any data. </p><p><span class="emphasis"><em>Warning:</em></span> Turning off user
+ enumeration may cause some programs to behave oddly. For
+ example, the finger program relies on having access to the
+ full user list when searching for matching
+ usernames. </p><p>Default: <b class="command">winbind enum users = yes </b></p></dd><dt><span class="term"><a name="WINBINDGID"></a>winbind gid (G)</span></dt><dd><p>The winbind gid parameter specifies the range of group
+ ids that are allocated by the <a href="winbindd.8.html"><span class="citerefentry"><span class="refentrytitle">winbindd</span>(8)</span></a> daemon. This range of group ids should have no
+ existing local or NIS groups within it as strange conflicts can
+ occur otherwise.</p><p>Default: <b class="command">winbind gid = &lt;empty string&gt;</b></p><p>Example: <b class="command">winbind gid = 10000-20000</b></p></dd><dt><span class="term"><a name="WINBINDSEPARATOR"></a>winbind separator (G)</span></dt><dd><p>This parameter allows an admin to define the character
+ used when listing a username of the form of <i class="replaceable"><tt>DOMAIN
+ </tt></i>\<i class="replaceable"><tt>user</tt></i>. This parameter
+ is only applicable when using the <tt class="filename">pam_winbind.so</tt>
+ and <tt class="filename">nss_winbind.so</tt> modules for UNIX services.
+ </p><p>Please note that setting this parameter to + causes problems
+ with group membership at least on glibc systems, as the character +
+ is used as a special character for NIS in /etc/group.</p><p>Default: <b class="command">winbind separator = '\'</b></p><p>Example: <b class="command">winbind separator = +</b></p></dd><dt><span class="term"><a name="WINBINDUID"></a>winbind uid (G)</span></dt><dd><p>The winbind gid parameter specifies the range of group
+ ids that are allocated by the <a href="winbindd.8.html"><span class="citerefentry"><span class="refentrytitle">winbindd</span>(8)</span></a> daemon. This range of ids should have no
+ existing local or NIS users within it as strange conflicts can
+ occur otherwise.</p><p>Default: <b class="command">winbind uid = &lt;empty string&gt;</b></p><p>Example: <b class="command">winbind uid = 10000-20000</b></p></dd><dt><span class="term"><a name="WINBINDUSEDDEFAULTDOMAIN"></a>winbind used default domain (G)</span></dt><dd><p>This parameter specifies whether the
+ <a href="winbindd.8.html"><span class="citerefentry"><span class="refentrytitle">winbindd</span>(8)</span></a> daemon should operate on users
+ without domain component in their username. Users without a domain
+ component are treated as is part of the winbindd server's own
+ domain. While this does not benifit Windows users, it makes SSH, FTP and
+ e-mail function in a way much closer to the way they
+ would in a native unix system.</p><p>Default: <b class="command">winbind use default domain = &lt;no&gt;</b></p><p>Example: <b class="command">winbind use default domain = yes</b></p></dd><dt><span class="term"><a name="WINSHOOK"></a>wins hook (G)</span></dt><dd><p>When Samba is running as a WINS server this
+ allows you to call an external program for all changes to the
+ WINS database. The primary use for this option is to allow the
+ dynamic update of external name resolution databases such as
+ dynamic DNS.</p><p>The wins hook parameter specifies the name of a script
+ or executable that will be called as follows:</p><p><b class="command">wins_hook operation name nametype ttl IP_list</b></p><div class="itemizedlist"><ul type="disc"><li><p>The first argument is the operation and is
+ one of &quot;add&quot;, &quot;delete&quot;, or
+ &quot;refresh&quot;. In most cases the operation
+ can be ignored as the rest of the parameters
+ provide sufficient information. Note that
+ &quot;refresh&quot; may sometimes be called when
+ the name has not previously been added, in that
+ case it should be treated as an add.</p></li><li><p>The second argument is the NetBIOS name. If the
+ name is not a legal name then the wins hook is not called.
+ Legal names contain only letters, digits, hyphens, underscores
+ and periods.</p></li><li><p>The third argument is the NetBIOS name
+ type as a 2 digit hexadecimal number. </p></li><li><p>The fourth argument is the TTL (time to live)
+ for the name in seconds.</p></li><li><p>The fifth and subsequent arguments are the IP
+ addresses currently registered for that name. If this list is
+ empty then the name should be deleted.</p></li></ul></div><p>An example script that calls the BIND dynamic DNS update
+ program <b class="command">nsupdate</b> is provided in the examples
+ directory of the Samba source code. </p></dd><dt><span class="term"><a name="WINSPARTNER"></a>wins partner (G)</span></dt><dd><p>A space separated list of partners' IP addresses for
+ WINS replication. WINS partners are always defined as push/pull
+ partners as defining only one way WINS replication is unreliable.
+ WINS replication is currently experimental and unreliable between
+ samba servers.
+ </p><p>Default: <b class="command">wins partners = </b></p><p>Example: <b class="command">wins partners = 192.168.0.1 172.16.1.2</b></p></dd><dt><span class="term"><a name="WINSPROXY"></a>wins proxy (G)</span></dt><dd><p>This is a boolean that controls if <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> will respond to broadcast name
+ queries on behalf of other hosts. You may need to set this
+ to <tt class="constant">yes</tt> for some older clients.</p><p>Default: <b class="command">wins proxy = no</b></p></dd><dt><span class="term"><a name="WINSSERVER"></a>wins server (G)</span></dt><dd><p>This specifies the IP address (or DNS name: IP
+ address for preference) of the WINS server that <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> should register with. If you have a WINS server on
+ your network then you should set this to the WINS server's IP.</p><p>You should point this at your WINS server if you have a
+ multi-subnetted network.</p><p>If you want to work in multiple namespaces, you can
+ give every wins server a 'tag'. For each tag, only one
+ (working) server will be queried for a name. The tag should be
+ seperated from the ip address by a colon.
+ </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>You need to set up Samba to point
+ to a WINS server if you have multiple subnets and wish cross-subnet
+ browsing to work correctly.</p></div><p>See the documentation file <a href="improved-browsing.html" target="_top">Browsing</a> in the samba howto collection.</p><p>Default: <span class="emphasis"><em>not enabled</em></span></p><p>Example: <b class="command">wins server = mary:192.9.200.1 fred:192.168.3.199 mary:192.168.2.61</b></p><p>For this example when querying a certain name, 192.19.200.1 will
+ be asked first and if that doesn't respond 192.168.2.61. If either
+ of those doesn't know the name 192.168.3.199 will be queried.
+ </p><p>Example: <b class="command">wins server = 192.9.200.1 192.168.2.61</b></p></dd><dt><span class="term"><a name="WINSSUPPORT"></a>wins support (G)</span></dt><dd><p>This boolean controls if the <a href="nmbd.8.html"><span class="citerefentry"><span class="refentrytitle">nmbd</span>(8)</span></a> process in Samba will act as a WINS server. You should
+ not set this to <tt class="constant">yes</tt> unless you have a multi-subnetted network and
+ you wish a particular <b class="command">nmbd</b> to be your WINS server.
+ Note that you should <span class="emphasis"><em>NEVER</em></span> set this to <tt class="constant">yes</tt>
+ on more than one machine in your network.</p><p>Default: <b class="command">wins support = no</b></p></dd><dt><span class="term"><a name="WORKGROUP"></a>workgroup (G)</span></dt><dd><p>This controls what workgroup your server will
+ appear to be in when queried by clients. Note that this parameter
+ also controls the Domain name used with
+ the <a href="#SECURITYEQUALSDOMAIN"><b class="command">security = domain</b></a>
+ setting.</p><p>Default: <span class="emphasis"><em>set at compile time to WORKGROUP</em></span></p><p>Example: <b class="command">workgroup = MYGROUP</b></p></dd><dt><span class="term"><a name="WRITABLE"></a>writable (S)</span></dt><dd><p>Synonym for <a href="#WRITEABLE"><i class="parameter"><tt>
+ writeable</tt></i></a> for people who can't spell :-).</p></dd><dt><span class="term"><a name="WRITEABLE"></a>writeable (S)</span></dt><dd><p>Inverted synonym for <a href="#READONLY">
+ <i class="parameter"><tt>read only</tt></i></a>.</p></dd><dt><span class="term"><a name="WRITECACHESIZE"></a>write cache size (S)</span></dt><dd><p>If this integer parameter is set to non-zero value,
+ Samba will create an in-memory cache for each oplocked file
+ (it does <span class="emphasis"><em>not</em></span> do this for
+ non-oplocked files). All writes that the client does not request
+ to be flushed directly to disk will be stored in this cache if possible.
+ The cache is flushed onto disk when a write comes in whose offset
+ would not fit into the cache or when the file is closed by the client.
+ Reads for the file are also served from this cache if the data is stored
+ within it.</p><p>This cache allows Samba to batch client writes into a more
+ efficient write size for RAID disks (i.e. writes may be tuned to
+ be the RAID stripe size) and can improve performance on systems
+ where the disk subsystem is a bottleneck but there is free
+ memory for userspace programs.</p><p>The integer parameter specifies the size of this cache
+ (per oplocked file) in bytes.</p><p>Default: <b class="command">write cache size = 0</b></p><p>Example: <b class="command">write cache size = 262144</b></p><p>for a 256k cache size per file.</p></dd><dt><span class="term"><a name="WRITELIST"></a>write list (S)</span></dt><dd><p>This is a list of users that are given read-write
+ access to a service. If the connecting user is in this list then
+ they will be given write access, no matter what the <a href="#READONLY">
+ <i class="parameter"><tt>read only</tt></i></a>
+ option is set to. The list can include group names using the
+ @group syntax.</p><p>Note that if a user is in both the read list and the
+ write list then they will be given write access.</p><p>See also the <a href="#READLIST"><i class="parameter"><tt>read list
+ </tt></i></a> option.</p><p>Default: <b class="command">write list = &lt;empty string&gt;</b></p><p>Example: <b class="command">write list = admin, root, @staff</b></p></dd><dt><span class="term"><a name="WRITEOK"></a>write ok (S)</span></dt><dd><p>Inverted synonym for <a href="#READONLY">
+ <i class="parameter"><tt>read only</tt></i></a>.</p></dd><dt><span class="term"><a name="WRITERAW"></a>write raw (G)</span></dt><dd><p>This parameter controls whether or not the server
+ will support raw write SMB's when transferring data from clients.
+ You should never need to change this parameter.</p><p>Default: <b class="command">write raw = yes</b></p></dd><dt><span class="term"><a name="WTMPDIRECTORY"></a>wtmp directory (G)</span></dt><dd><p>This parameter is only available if Samba has
+ been configured and compiled with the option <b class="command">
+ --with-utmp</b>. It specifies a directory pathname that is
+ used to store the wtmp or wtmpx files (depending on the UNIX system) that
+ record user connections to a Samba server. The difference with
+ the utmp directory is the fact that user info is kept after a user
+ has logged out.</p><p>See also the <a href="#UTMP">
+ <i class="parameter"><tt>utmp</tt></i></a> parameter. By default this is
+ not set, meaning the system will use whatever utmp file the
+ native system is set to use (usually
+ <tt class="filename">/var/run/wtmp</tt> on Linux).</p><p>Default: <span class="emphasis"><em>no wtmp directory</em></span></p><p>Example: <b class="command">wtmp directory = /var/log/wtmp</b></p></dd></dl></div></div><div class="refsect1" lang="en"><h2>WARNINGS</h2><p>Although the configuration file permits service names
to contain spaces, your client software may not. Spaces will
be ignored in comparisons anyway, so it shouldn't be a
problem - but be aware of the possibility.</p><p>On a similar note, many clients - especially DOS clients -
diff --git a/docs/htmldocs/speed.html b/docs/htmldocs/speed.html
index c7ae9dda2d6..c6ea345e394 100644
--- a/docs/htmldocs/speed.html
+++ b/docs/htmldocs/speed.html
@@ -1,4 +1,5 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 39. Samba Performance Tuning</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="Appendixes.html" title="Part VI. Appendixes"><link rel="previous" href="Other-Clients.html" title="Chapter 38. Samba and other CIFS clients"><link rel="next" href="DNSDHCP.html" title="Chapter 40. DNS and DHCP Configuration Guide"></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 39. Samba Performance Tuning</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="Other-Clients.html">Prev</a> </td><th width="60%" align="center">Part VI. Appendixes</th><td width="20%" align="right"> <a accesskey="n" href="DNSDHCP.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="speed"></a>Chapter 39. Samba Performance Tuning</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Paul</span> <span class="surname">Cochrane</span></h3><div class="affiliation"><span class="orgname">Dundee Limb Fitting Centre<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:paulc@dth.scot.nhs.uk">paulc@dth.scot.nhs.uk</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="speed.html#id3018190">Comparisons</a></dt><dt><a href="speed.html#id3018235">Socket options</a></dt><dt><a href="speed.html#id3018310">Read size</a></dt><dt><a href="speed.html#id3018354">Max xmit</a></dt><dt><a href="speed.html#id3018407">Log level</a></dt><dt><a href="speed.html#id3018430">Read raw</a></dt><dt><a href="speed.html#id3018486">Write raw</a></dt><dt><a href="speed.html#id3018528">Slow Logins</a></dt><dt><a href="speed.html#id3018550">LDAP</a></dt><dt><a href="speed.html#id3018575">Client tuning</a></dt><dt><a href="speed.html#id3018601">Samba performance problem due changing kernel</a></dt><dt><a href="speed.html#id3018632">Corrupt tdb Files</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018190"></a>Comparisons</h2></div></div><div></div></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 39. Samba Performance Tuning</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="Appendixes.html" title="Part VI. Appendixes"><link rel="previous" href="Other-Clients.html" title="Chapter 38. Samba and other CIFS clients"><link rel="next" href="DNSDHCP.html" title="Chapter 40. DNS and DHCP Configuration Guide"></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 39. Samba Performance Tuning</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="Other-Clients.html">Prev</a> </td><th width="60%" align="center">Part VI. Appendixes</th><td width="20%" align="right"> <a accesskey="n" href="DNSDHCP.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="speed"></a>Chapter 39. Samba Performance Tuning</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Paul</span> <span class="surname">Cochrane</span></h3><div class="affiliation"><span class="orgname">Dundee Limb Fitting Centre<br></span><div class="address"><p><tt class="email">&lt;<a href="mailto:paulc@dth.scot.nhs.uk">paulc@dth.scot.nhs.uk</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="speed.html#id3014177">Comparisons</a></dt><dt><a href="speed.html#id3014222">Socket options</a></dt><dt><a href="speed.html#id3014295">Read size</a></dt><dt><a href="speed.html#id3014339">Max xmit</a></dt><dt><a href="speed.html#id3014392">Log level</a></dt><dt><a href="speed.html#id3014415">Read raw</a></dt><dt><a href="speed.html#id3015357">Write raw</a></dt><dt><a href="speed.html#id3015399">Slow Logins</a></dt><dt><a href="speed.html#id3015420">LDAP</a></dt><dt><a href="speed.html#id3015445">Client tuning</a></dt><dt><a href="speed.html#id3015468">Samba performance problem due changing kernel</a></dt><dt><a href="speed.html#id3015501">Corrupt tdb Files</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3014177"></a>Comparisons</h2></div></div><div></div></div><p>
The Samba server uses TCP to talk to the client. Thus if you are
trying to see if it performs well you should really compare it to
programs that use the same protocol. The most readily available
@@ -20,7 +21,7 @@ suspect the biggest factor is not Samba vs some other system but the
hardware and drivers used on the various systems. Given similar
hardware Samba should certainly be competitive in speed with other
systems.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018235"></a>Socket options</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3014222"></a>Socket options</h2></div></div><div></div></div><p>
There are a number of socket options that can greatly affect the
performance of a TCP based server like Samba.
</p><p>
@@ -39,7 +40,7 @@ biggest single difference for most networks. Many people report that
adding <i class="parameter"><tt>socket options = TCP_NODELAY</tt></i> doubles the read
performance of a Samba drive. The best explanation I have seen for this is
that the Microsoft TCP/IP stack is slow in sending tcp ACKs.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018310"></a>Read size</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3014295"></a>Read size</h2></div></div><div></div></div><p>
The option <i class="parameter"><tt>read size</tt></i> affects the overlap of disk
reads/writes with network reads/writes. If the amount of data being
transferred in several of the SMB commands (currently SMBwrite, SMBwriteX and
@@ -56,7 +57,7 @@ The default value is 16384, but very little experimentation has been
done yet to determine the optimal value, and it is likely that the best
value will vary greatly between systems anyway. A value over 65536 is
pointless and will cause you to allocate memory unnecessarily.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018354"></a>Max xmit</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3014339"></a>Max xmit</h2></div></div><div></div></div><p>
At startup the client and server negotiate a <i class="parameter"><tt>maximum transmit</tt></i> size,
which limits the size of nearly all SMB commands. You can set the
maximum size that Samba will negotiate using the <i class="parameter"><tt>max xmit = </tt></i> option
@@ -70,12 +71,12 @@ clients may perform better with a smaller transmit unit. Trying values
of less than 2048 is likely to cause severe problems.
</p><p>
In most cases the default is the best option.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018407"></a>Log level</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3014392"></a>Log level</h2></div></div><div></div></div><p>
If you set the log level (also known as <i class="parameter"><tt>debug level</tt></i>) higher than 2
then you may suffer a large drop in performance. This is because the
server flushes the log file after each operation, which can be very
expensive.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018430"></a>Read raw</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3014415"></a>Read raw</h2></div></div><div></div></div><p>
The <i class="parameter"><tt>read raw</tt></i> operation is designed to be an optimised, low-latency
file read operation. A server may choose to not support it,
however. and Samba makes support for <i class="parameter"><tt>read raw</tt></i> optional, with it
@@ -88,7 +89,7 @@ read operations.
So you might like to try <i class="parameter"><tt>read raw = no</tt></i> and see what happens on your
network. It might lower, raise or not affect your performance. Only
testing can really tell.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018486"></a>Write raw</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3015357"></a>Write raw</h2></div></div><div></div></div><p>
The <i class="parameter"><tt>write raw</tt></i> operation is designed to be an optimised, low-latency
file write operation. A server may choose to not support it,
however. and Samba makes support for <i class="parameter"><tt>write raw</tt></i> optional, with it
@@ -96,18 +97,18 @@ being enabled by default.
</p><p>
Some machines may find <i class="parameter"><tt>write raw</tt></i> slower than normal write, in which
case you may wish to change this option.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018528"></a>Slow Logins</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3015399"></a>Slow Logins</h2></div></div><div></div></div><p>
Slow logins are almost always due to the password checking time. Using
the lowest practical <i class="parameter"><tt>password level</tt></i> will improve things.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018550"></a>LDAP</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3015420"></a>LDAP</h2></div></div><div></div></div><p>
LDAP can be vastly improved by using the
<a href="smb.conf.5.html#LDAPTRUSTIDS" target="_top"><i class="parameter"><tt>ldap trust ids</tt></i></a> parameter.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018575"></a>Client tuning</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3015445"></a>Client tuning</h2></div></div><div></div></div><p>
Often a speed problem can be traced to the client. The client (for
example Windows for Workgroups) can often be tuned for better TCP
performance. Check the sections on the various clients in
<a href="Other-Clients.html" title="Chapter 38. Samba and other CIFS clients">Samba and Other Clients</a>.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018601"></a>Samba performance problem due changing kernel</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3015468"></a>Samba performance problem due changing kernel</h2></div></div><div></div></div><p>
Hi everyone. I am running Gentoo on my server and samba 2.2.8a. Recently
I changed kernel version from linux-2.4.19-gentoo-r10 to
linux-2.4.20-wolk4.0s. And now I have performance issue with samba. Ok
@@ -122,7 +123,7 @@ Grab mii-tool and check the duplex settings on the NIC.
My guess is that it is a link layer issue, not an application
layer problem. Also run ifconfig and verify that the framing
error, collisions, etc... look normal for ethernet.
-</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3018632"></a>Corrupt tdb Files</h2></div></div><div></div></div><p>
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id3015501"></a>Corrupt tdb Files</h2></div></div><div></div></div><p>
Well today it happend, our first major problem using samba.
Our samba PDC server has been hosting 3 TB of data to our 500+ users
[Windows NT/XP] for the last 3 years using samba, no problem.
diff --git a/docs/htmldocs/type.html b/docs/htmldocs/type.html
index 0e0f6b7d2ae..a84636c89ff 100644
--- a/docs/htmldocs/type.html
+++ b/docs/htmldocs/type.html
@@ -1,9 +1,10 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part II. Server Configuration Basics</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="index.html" title="SAMBA Project Documentation"><link rel="previous" href="FastStart.html" title="Chapter 3. FastStart for the Impatient"><link rel="next" href="ServerType.html" title="Chapter 4. Server Types and Security Modes"></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">Part II. Server Configuration Basics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="FastStart.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ServerType.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="type"></a>Server Configuration Basics</h1></div></div><div></div></div><div class="partintro" lang="en"><div><div><div><h1 class="title"><a name="id2886752"></a>First Steps in Server Configuration</h1></div></div><div></div></div><p>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part II. Server Configuration Basics</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="index.html" title="SAMBA Project Documentation"><link rel="previous" href="FastStart.html" title="Chapter 3. FastStart for the Impatient"><link rel="next" href="ServerType.html" title="Chapter 4. Server Types and Security Modes"></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">Part II. Server Configuration Basics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="FastStart.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ServerType.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="type"></a>Server Configuration Basics</h1></div></div><div></div></div><div class="partintro" lang="en"><div><div><div><h1 class="title"><a name="id2886394"></a>First Steps in Server Configuration</h1></div></div><div></div></div><p>
Samba can operate in various modes within SMB networks. This HOWTO section contains information on
configuring samba to function as the type of server your network requires. Please read this
section carefully.
-</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>4. <a href="ServerType.html">Server Types and Security Modes</a></dt><dd><dl><dt><a href="ServerType.html#id2888708">Features and Benefits</a></dt><dt><a href="ServerType.html#id2888804">Server Types</a></dt><dt><a href="ServerType.html#id2888887">Samba Security Modes</a></dt><dd><dl><dt><a href="ServerType.html#id2889003">User Level Security</a></dt><dt><a href="ServerType.html#id2889136">Share Level Security</a></dt><dt><a href="ServerType.html#id2889257">Domain Security Mode (User Level Security)</a></dt><dt><a href="ServerType.html#id2889510">ADS Security Mode (User Level Security)</a></dt><dt><a href="ServerType.html#id2889596">Server Security (User Level Security)</a></dt></dl></dd><dt><a href="ServerType.html#id2889820">Seamless Windows Network Integration</a></dt><dt><a href="ServerType.html#id2889997">Common Errors</a></dt><dd><dl><dt><a href="ServerType.html#id2890025">What makes Samba a SERVER?</a></dt><dt><a href="ServerType.html#id2890058">What makes Samba a Domain Controller?</a></dt><dt><a href="ServerType.html#id2890086">What makes Samba a Domain Member?</a></dt><dt><a href="ServerType.html#id2890120">Constantly Losing Connections to Password Server</a></dt></dl></dd></dl></dd><dt>5. <a href="samba-pdc.html">Domain Control</a></dt><dd><dl><dt><a href="samba-pdc.html#id2891927">Features and Benefits</a></dt><dt><a href="samba-pdc.html#id2892230">Basics of Domain Control</a></dt><dd><dl><dt><a href="samba-pdc.html#id2892246">Domain Controller Types</a></dt><dt><a href="samba-pdc.html#id2892458">Preparing for Domain Control</a></dt></dl></dd><dt><a href="samba-pdc.html#id2892778">Domain Control - Example Configuration</a></dt><dt><a href="samba-pdc.html#id2893076">Samba ADS Domain Control</a></dt><dt><a href="samba-pdc.html#id2893098">Domain and Network Logon Configuration</a></dt><dd><dl><dt><a href="samba-pdc.html#id2893113">Domain Network Logon Service</a></dt><dt><a href="samba-pdc.html#id2893441">Security Mode and Master Browsers</a></dt></dl></dd><dt><a href="samba-pdc.html#id2893548">Common Problems and Errors</a></dt><dd><dl><dt><a href="samba-pdc.html#id2893555">I cannot include a '$' in a machine name</a></dt><dt><a href="samba-pdc.html#id2893594">I get told &quot;You already have a connection to the Domain....&quot;
+</p><div class="toc"><p><b>Table of Contents</b></p><dl><dt>4. <a href="ServerType.html">Server Types and Security Modes</a></dt><dd><dl><dt><a href="ServerType.html#id2889441">Features and Benefits</a></dt><dt><a href="ServerType.html#id2889533">Server Types</a></dt><dt><a href="ServerType.html#id2889614">Samba Security Modes</a></dt><dd><dl><dt><a href="ServerType.html#id2886042">User Level Security</a></dt><dt><a href="ServerType.html#id2886175">Share Level Security</a></dt><dt><a href="ServerType.html#id2887246">Domain Security Mode (User Level Security)</a></dt><dt><a href="ServerType.html#id2887488">ADS Security Mode (User Level Security)</a></dt><dt><a href="ServerType.html#id2887572">Server Security (User Level Security)</a></dt></dl></dd><dt><a href="ServerType.html#id2887797">Seamless Windows Network Integration</a></dt><dt><a href="ServerType.html#id2887974">Common Errors</a></dt><dd><dl><dt><a href="ServerType.html#id2888002">What makes Samba a SERVER?</a></dt><dt><a href="ServerType.html#id2888035">What makes Samba a Domain Controller?</a></dt><dt><a href="ServerType.html#id2888063">What makes Samba a Domain Member?</a></dt><dt><a href="ServerType.html#id2889975">Constantly Losing Connections to Password Server</a></dt></dl></dd></dl></dd><dt>5. <a href="samba-pdc.html">Domain Control</a></dt><dd><dl><dt><a href="samba-pdc.html#id2892606">Features and Benefits</a></dt><dt><a href="samba-pdc.html#id2890204">Basics of Domain Control</a></dt><dd><dl><dt><a href="samba-pdc.html#id2890219">Domain Controller Types</a></dt><dt><a href="samba-pdc.html#id2890419">Preparing for Domain Control</a></dt></dl></dd><dt><a href="samba-pdc.html#id2890733">Domain Control - Example Configuration</a></dt><dt><a href="samba-pdc.html#id2891029">Samba ADS Domain Control</a></dt><dt><a href="samba-pdc.html#id2891052">Domain and Network Logon Configuration</a></dt><dd><dl><dt><a href="samba-pdc.html#id2891067">Domain Network Logon Service</a></dt><dt><a href="samba-pdc.html#id2893786">Security Mode and Master Browsers</a></dt></dl></dd><dt><a href="samba-pdc.html#id2893891">Common Problems and Errors</a></dt><dd><dl><dt><a href="samba-pdc.html#id2893898">I cannot include a '$' in a machine name</a></dt><dt><a href="samba-pdc.html#id2893936">I get told &quot;You already have a connection to the Domain....&quot;
or &quot;Cannot join domain, the credentials supplied conflict with an
-existing set..&quot; when creating a machine trust account.</a></dt><dt><a href="samba-pdc.html#id2893643">The system can not log you on (C000019B)....</a></dt><dt><a href="samba-pdc.html#id2893714">The machine trust account for this computer either does not
-exist or is not accessible.</a></dt><dt><a href="samba-pdc.html#id2893771">When I attempt to login to a Samba Domain from a NT4/W2K workstation,
-I get a message about my account being disabled.</a></dt><dt><a href="samba-pdc.html#id2893798">Until a few minutes after Samba has started, clients get the error &quot;Domain Controller Unavailable&quot;</a></dt></dl></dd></dl></dd><dt>6. <a href="samba-bdc.html">Backup Domain Control</a></dt><dd><dl><dt><a href="samba-bdc.html#id2895956">Features And Benefits</a></dt><dt><a href="samba-bdc.html#id2896128">Essential Background Information</a></dt><dd><dl><dt><a href="samba-bdc.html#id2896156">MS Windows NT4 Style Domain Control</a></dt><dt><a href="samba-bdc.html#id2896368">Active Directory Domain Control</a></dt><dt><a href="samba-bdc.html#id2896390">What qualifies a Domain Controller on the network?</a></dt><dt><a href="samba-bdc.html#id2896416">How does a Workstation find its domain controller?</a></dt></dl></dd><dt><a href="samba-bdc.html#id2896462">Backup Domain Controller Configuration</a></dt><dd><dl><dt><a href="samba-bdc.html#id2896532">Example Configuration</a></dt></dl></dd><dt><a href="samba-bdc.html#id2896591">Common Errors</a></dt><dd><dl><dt><a href="samba-bdc.html#id2896605">Machine Accounts keep expiring, what can I do?</a></dt><dt><a href="samba-bdc.html#id2896630">Can Samba be a Backup Domain Controller to an NT4 PDC?</a></dt><dt><a href="samba-bdc.html#id2896663">How do I replicate the smbpasswd file?</a></dt><dt><a href="samba-bdc.html#id2896692">Can I do this all with LDAP?</a></dt></dl></dd></dl></dd><dt>7. <a href="domain-member.html">Domain Membership</a></dt><dd><dl><dt><a href="domain-member.html#id2897692">Features and Benefits</a></dt><dt><a href="domain-member.html#id2897816">MS Windows Workstation/Server Machine Trust Accounts</a></dt><dd><dl><dt><a href="domain-member.html#id2897991">Manual Creation of Machine Trust Accounts</a></dt><dt><a href="domain-member.html#id2898243">Using NT4 Server Manager to Add Machine Accounts to the Domain</a></dt><dt><a href="domain-member.html#id2898440">&quot;On-the-Fly&quot; Creation of Machine Trust Accounts</a></dt><dt><a href="domain-member.html#id2898502">Making an MS Windows Workstation or Server a Domain Member</a></dt></dl></dd><dt><a href="domain-member.html#id2898648">Domain Member Server</a></dt><dd><dl><dt><a href="domain-member.html#id2898697">Joining an NT4 type Domain with Samba-3</a></dt><dt><a href="domain-member.html#id2899075">Why is this better than security = server?</a></dt></dl></dd><dt><a href="domain-member.html#ads-member">Samba ADS Domain Membership</a></dt><dd><dl><dt><a href="domain-member.html#id2899216">Setup your smb.conf</a></dt><dt><a href="domain-member.html#id2899298">Setup your /etc/krb5.conf</a></dt><dt><a href="domain-member.html#ads-create-machine-account">Create the computer account</a></dt><dt><a href="domain-member.html#ads-test-server">Test your server setup</a></dt><dt><a href="domain-member.html#ads-test-smbclient">Testing with smbclient</a></dt><dt><a href="domain-member.html#id2899656">Notes</a></dt></dl></dd><dt><a href="domain-member.html#id2899678">Common Errors</a></dt><dd><dl><dt><a href="domain-member.html#id2899712">Can Not Add Machine Back to Domain</a></dt><dt><a href="domain-member.html#id2899742">Adding Machine to Domain Fails</a></dt></dl></dd></dl></dd><dt>8. <a href="StandAloneServer.html">Stand-Alone Servers</a></dt><dd><dl><dt><a href="StandAloneServer.html#id2902078">Features and Benefits</a></dt><dt><a href="StandAloneServer.html#id2902275">Background</a></dt><dt><a href="StandAloneServer.html#id2902347">Example Configuration</a></dt><dd><dl><dt><a href="StandAloneServer.html#id2902362">Reference Documentation Server</a></dt><dt><a href="StandAloneServer.html#id2902411">Central Print Serving</a></dt></dl></dd><dt><a href="StandAloneServer.html#id2902618">Common Errors</a></dt></dl></dd><dt>9. <a href="ClientConfig.html">MS Windows Network Configuration Guide</a></dt><dd><dl><dt><a href="ClientConfig.html#id2901732">Note</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="FastStart.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ServerType.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. FastStart for the Impatient </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Server Types and Security Modes</td></tr></table></div></body></html>
+existing set..&quot; when creating a machine trust account.</a></dt><dt><a href="samba-pdc.html#id2893986">The system can not log you on (C000019B)....</a></dt><dt><a href="samba-pdc.html#id2894057">The machine trust account for this computer either does not
+exist or is not accessible.</a></dt><dt><a href="samba-pdc.html#id2894114">When I attempt to login to a Samba Domain from a NT4/W2K workstation,
+I get a message about my account being disabled.</a></dt><dt><a href="samba-pdc.html#id2894140">Until a few minutes after Samba has started, clients get the error &quot;Domain Controller Unavailable&quot;</a></dt></dl></dd></dl></dd><dt>6. <a href="samba-bdc.html">Backup Domain Control</a></dt><dd><dl><dt><a href="samba-bdc.html#id2896177">Features And Benefits</a></dt><dt><a href="samba-bdc.html#id2896342">Essential Background Information</a></dt><dd><dl><dt><a href="samba-bdc.html#id2896370">MS Windows NT4 Style Domain Control</a></dt><dt><a href="samba-bdc.html#id2894331">Active Directory Domain Control</a></dt><dt><a href="samba-bdc.html#id2894352">What qualifies a Domain Controller on the network?</a></dt><dt><a href="samba-bdc.html#id2894375">How does a Workstation find its domain controller?</a></dt></dl></dd><dt><a href="samba-bdc.html#id2894401">Backup Domain Controller Configuration</a></dt><dd><dl><dt><a href="samba-bdc.html#id2894471">Example Configuration</a></dt></dl></dd><dt><a href="samba-bdc.html#id2894521">Common Errors</a></dt><dd><dl><dt><a href="samba-bdc.html#id2894535">Machine Accounts keep expiring, what can I do?</a></dt><dt><a href="samba-bdc.html#id2894560">Can Samba be a Backup Domain Controller to an NT4 PDC?</a></dt><dt><a href="samba-bdc.html#id2894593">How do I replicate the smbpasswd file?</a></dt><dt><a href="samba-bdc.html#id2894621">Can I do this all with LDAP?</a></dt></dl></dd></dl></dd><dt>7. <a href="domain-member.html">Domain Membership</a></dt><dd><dl><dt><a href="domain-member.html#id2895146">Features and Benefits</a></dt><dt><a href="domain-member.html#id2894718">MS Windows Workstation/Server Machine Trust Accounts</a></dt><dd><dl><dt><a href="domain-member.html#id2894878">Manual Creation of Machine Trust Accounts</a></dt><dt><a href="domain-member.html#id2896660">Using NT4 Server Manager to Add Machine Accounts to the Domain</a></dt><dt><a href="domain-member.html#id2896857">&quot;On-the-Fly&quot; Creation of Machine Trust Accounts</a></dt><dt><a href="domain-member.html#id2896912">Making an MS Windows Workstation or Server a Domain Member</a></dt></dl></dd><dt><a href="domain-member.html#id2897057">Domain Member Server</a></dt><dd><dl><dt><a href="domain-member.html#id2897105">Joining an NT4 type Domain with Samba-3</a></dt><dt><a href="domain-member.html#id2899703">Why is this better than security = server?</a></dt></dl></dd><dt><a href="domain-member.html#ads-member">Samba ADS Domain Membership</a></dt><dd><dl><dt><a href="domain-member.html#id2899841">Setup your smb.conf</a></dt><dt><a href="domain-member.html#id2899924">Setup your /etc/krb5.conf</a></dt><dt><a href="domain-member.html#ads-create-machine-account">Create the computer account</a></dt><dt><a href="domain-member.html#ads-test-server">Test your server setup</a></dt><dt><a href="domain-member.html#ads-test-smbclient">Testing with smbclient</a></dt><dt><a href="domain-member.html#id2900266">Notes</a></dt></dl></dd><dt><a href="domain-member.html#id2900288">Common Errors</a></dt><dd><dl><dt><a href="domain-member.html#id2900310">Can Not Add Machine Back to Domain</a></dt><dt><a href="domain-member.html#id2900342">Adding Machine to Domain Fails</a></dt></dl></dd></dl></dd><dt>8. <a href="StandAloneServer.html">Stand-Alone Servers</a></dt><dd><dl><dt><a href="StandAloneServer.html#id2901785">Features and Benefits</a></dt><dt><a href="StandAloneServer.html#id2901823">Background</a></dt><dt><a href="StandAloneServer.html#id2901891">Example Configuration</a></dt><dd><dl><dt><a href="StandAloneServer.html#id2900494">Reference Documentation Server</a></dt><dt><a href="StandAloneServer.html#id2900541">Central Print Serving</a></dt></dl></dd><dt><a href="StandAloneServer.html#id2900747">Common Errors</a></dt></dl></dd><dt>9. <a href="ClientConfig.html">MS Windows Network Configuration Guide</a></dt><dd><dl><dt><a href="ClientConfig.html#id2901115">Note</a></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="FastStart.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ServerType.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. FastStart for the Impatient </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Server Types and Security Modes</td></tr></table></div></body></html>
diff --git a/docs/htmldocs/winbind.html b/docs/htmldocs/winbind.html
index 8ba0047742c..d8a48130139 100644
--- a/docs/htmldocs/winbind.html
+++ b/docs/htmldocs/winbind.html
@@ -1,4 +1,5 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 21. Integrated Logon Support using Winbind</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="VFS.html" title="Chapter 20. Stackable VFS modules"><link rel="next" href="AdvancedNetworkManagement.html" title="Chapter 22. Advanced Network Manangement"></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 21. Integrated Logon Support using Winbind</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 21. Integrated Logon Support using Winbind</h2></div><div><div class="authorgroup"><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><tt class="email">&lt;<a href="mailto:tpot@linuxcare.com.au">tpot@linuxcare.com.au</a>&gt;</tt></p></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><tt class="email">&lt;<a href="mailto:tridge@samba.org">tridge@samba.org</a>&gt;</tt></p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Naag</span> <span class="surname">Mummaneni</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:getnag@rediffmail.com">getnag@rediffmail.com</a>&gt;</tt></p></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div></div><div><p class="pubdate">27 June 2002</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="winbind.html#id2979118">Features and Benefits</a></dt><dt><a href="winbind.html#id2979146">Introduction</a></dt><dt><a href="winbind.html#id2979218">What Winbind Provides</a></dt><dd><dl><dt><a href="winbind.html#id2979278">Target Uses</a></dt></dl></dd><dt><a href="winbind.html#id2979309">How Winbind Works</a></dt><dd><dl><dt><a href="winbind.html#id2979337">Microsoft Remote Procedure Calls</a></dt><dt><a href="winbind.html#id2979371">Microsoft Active Directory Services</a></dt><dt><a href="winbind.html#id2979394">Name Service Switch</a></dt><dt><a href="winbind.html#id2979530">Pluggable Authentication Modules</a></dt><dt><a href="winbind.html#id2979602">User and Group ID Allocation</a></dt><dt><a href="winbind.html#id2979637">Result Caching</a></dt></dl></dd><dt><a href="winbind.html#id2979664">Installation and Configuration</a></dt><dd><dl><dt><a href="winbind.html#id2979692">Introduction</a></dt><dt><a href="winbind.html#id2979768">Requirements</a></dt><dt><a href="winbind.html#id2979861">Testing Things Out</a></dt></dl></dd><dt><a href="winbind.html#id2981479">Conclusion</a></dt><dt><a href="winbind.html#id2981498">Common Errors</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2979118"></a>Features and Benefits</h2></div></div><div></div></div><p>Integration of UNIX and Microsoft Windows NT through
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 21. Integrated Logon Support using Winbind</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="SAMBA Project Documentation"><link rel="up" href="optional.html" title="Part III. Advanced Configuration"><link rel="previous" href="VFS.html" title="Chapter 20. Stackable VFS modules"><link rel="next" href="AdvancedNetworkManagement.html" title="Chapter 22. Advanced Network Manangement"></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 21. Integrated Logon Support using Winbind</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 21. Integrated Logon Support using Winbind</h2></div><div><div class="authorgroup"><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><tt class="email">&lt;<a href="mailto:tpot@linuxcare.com.au">tpot@linuxcare.com.au</a>&gt;</tt></p></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><tt class="email">&lt;<a href="mailto:tridge@samba.org">tridge@samba.org</a>&gt;</tt></p></div></div></div><div class="author"><h3 class="author"><span class="firstname">Naag</span> <span class="surname">Mummaneni</span></h3><div class="affiliation"><div class="address"><p><tt class="email">&lt;<a href="mailto:getnag@rediffmail.com">getnag@rediffmail.com</a>&gt;</tt></p></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><tt class="email">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</tt></p></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><tt class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</tt></p></div></div></div></div></div><div><p class="pubdate">27 June 2002</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="winbind.html#id2975375">Features and Benefits</a></dt><dt><a href="winbind.html#id2975403">Introduction</a></dt><dt><a href="winbind.html#id2977384">What Winbind Provides</a></dt><dd><dl><dt><a href="winbind.html#id2977444">Target Uses</a></dt></dl></dd><dt><a href="winbind.html#id2977475">How Winbind Works</a></dt><dd><dl><dt><a href="winbind.html#id2977502">Microsoft Remote Procedure Calls</a></dt><dt><a href="winbind.html#id2977536">Microsoft Active Directory Services</a></dt><dt><a href="winbind.html#id2977558">Name Service Switch</a></dt><dt><a href="winbind.html#id2974921">Pluggable Authentication Modules</a></dt><dt><a href="winbind.html#id2974992">User and Group ID Allocation</a></dt><dt><a href="winbind.html#id2975027">Result Caching</a></dt></dl></dd><dt><a href="winbind.html#id2975055">Installation and Configuration</a></dt><dd><dl><dt><a href="winbind.html#id2975083">Introduction</a></dt><dt><a href="winbind.html#id2975158">Requirements</a></dt><dt><a href="winbind.html#id2976434">Testing Things Out</a></dt></dl></dd><dt><a href="winbind.html#id2980783">Conclusion</a></dt><dt><a href="winbind.html#id2980802">Common Errors</a></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2975375"></a>Features and Benefits</h2></div></div><div></div></div><p>Integration of UNIX and Microsoft Windows NT through
a unified logon has been considered a &quot;holy grail&quot; in heterogeneous
computing environments for a long time. We present
<span class="emphasis"><em>winbind</em></span>, a component of the Samba suite
@@ -8,7 +9,7 @@
Service Switch to allow Windows NT domain users to appear and operate
as UNIX users on a UNIX machine. This paper describes the winbind
system, explaining the functionality it provides, how it is configured,
- and how it works internally.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2979146"></a>Introduction</h2></div></div><div></div></div><p>It is well known that UNIX and Microsoft Windows NT have
+ and how it works internally.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2975403"></a>Introduction</h2></div></div><div></div></div><p>It is well known that UNIX and Microsoft Windows NT have
different models for representing user and group information and
use different technologies for implementing them. This fact has
made it difficult to integrate the two systems in a satisfactory
@@ -29,7 +30,7 @@
tasks for the system administrator when maintaining users and
groups on either system. The winbind system provides a simple
and elegant solution to all three components of the unified logon
- problem.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2979218"></a>What Winbind Provides</h2></div></div><div></div></div><p>Winbind unifies UNIX and Windows NT account management by
+ problem.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2977384"></a>What Winbind Provides</h2></div></div><div></div></div><p>Winbind unifies UNIX and Windows NT account management by
allowing a UNIX box to become a full member of a NT domain. Once
this is done the UNIX box will see NT users and groups as if
they were native UNIX users and groups, allowing the NT domain
@@ -53,7 +54,7 @@
to provide authentication via a NT domain to any PAM enabled
applications. This capability solves the problem of synchronizing
passwords between systems since all passwords are stored in a single
- location (on the domain controller).</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979278"></a>Target Uses</h3></div></div><div></div></div><p>Winbind is targeted at organizations that have an
+ location (on the domain controller).</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2977444"></a>Target Uses</h3></div></div><div></div></div><p>Winbind is targeted at organizations that have an
existing NT based domain infrastructure into which they wish
to put UNIX workstations or servers. Winbind will allow these
organizations to deploy UNIX workstations without having to
@@ -63,12 +64,12 @@
be used is as a central part of UNIX based appliances. Appliances
that provide file and print services to Microsoft based networks
will be able to use Winbind to provide seamless integration of
- the appliance into the domain.</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2979309"></a>How Winbind Works</h2></div></div><div></div></div><p>The winbind system is designed around a client/server
+ the appliance into the domain.</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2977475"></a>How Winbind Works</h2></div></div><div></div></div><p>The winbind system is designed around a client/server
architecture. A long running <b class="command">winbindd</b> daemon
listens on a UNIX domain socket waiting for requests
to arrive. These requests are generated by the NSS and PAM
clients and processed sequentially.</p><p>The technologies used to implement winbind are described
- in detail below.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979337"></a>Microsoft Remote Procedure Calls</h3></div></div><div></div></div><p>Over the last few years, efforts have been underway
+ in detail below.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2977502"></a>Microsoft Remote Procedure Calls</h3></div></div><div></div></div><p>Over the last few years, efforts have been underway
by various Samba Team members to decode various aspects of
the Microsoft Remote Procedure Call (MSRPC) system. This
system is used for most network related operations between
@@ -81,7 +82,7 @@
users or groups. Other MSRPC calls can be used to authenticate
NT domain users and to change user passwords. By directly querying
a Windows PDC for user and group information, winbind maps the
- NT account information onto UNIX user and group names.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979371"></a>Microsoft Active Directory Services</h3></div></div><div></div></div><p>
+ NT account information onto UNIX user and group names.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2977536"></a>Microsoft Active Directory Services</h3></div></div><div></div></div><p>
Since late 2001, Samba has gained the ability to
interact with Microsoft Windows 2000 using its 'Native
Mode' protocols, rather than the NT4 RPC services.
@@ -90,7 +91,7 @@
same way as a Win2k client would, and in so doing
provide a much more efficient and
effective winbind implementation.
- </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979394"></a>Name Service Switch</h3></div></div><div></div></div><p>The Name Service Switch, or NSS, is a feature that is
+ </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2977558"></a>Name Service Switch</h3></div></div><div></div></div><p>The Name Service Switch, or NSS, is a feature that is
present in many UNIX operating systems. It allows system
information such as hostnames, mail aliases and user information
to be resolved from different sources. For example, a standalone
@@ -127,7 +128,7 @@ passwd: files example
is to put <tt class="filename">libnss_winbind.so</tt> in <tt class="filename">/lib/</tt>
then add &quot;winbind&quot; into <tt class="filename">/etc/nsswitch.conf</tt> at
the appropriate place. The C library will then call Winbind to
- resolve user and group names.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979530"></a>Pluggable Authentication Modules</h3></div></div><div></div></div><p>Pluggable Authentication Modules, also known as PAM,
+ resolve user and group names.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2974921"></a>Pluggable Authentication Modules</h3></div></div><div></div></div><p>Pluggable Authentication Modules, also known as PAM,
is a system for abstracting authentication and authorization
technologies. With a PAM module it is possible to specify different
authentication methods for different system applications without
@@ -152,7 +153,7 @@ passwd: files example
is copied to <tt class="filename">/lib/security/</tt> and the PAM
control files for relevant services are updated to allow
authentication via winbind. See the PAM documentation
- for more details.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979602"></a>User and Group ID Allocation</h3></div></div><div></div></div><p>When a user or group is created under Windows NT
+ for more details.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2974992"></a>User and Group ID Allocation</h3></div></div><div></div></div><p>When a user or group is created under Windows NT
is it allocated a numerical relative identifier (RID). This is
slightly different to UNIX which has a range of numbers that are
used to identify users, and the same range in which to identify
@@ -165,7 +166,7 @@ passwd: files example
time, winbind will have mapped all Windows NT users and groups
to UNIX user ids and group ids.</p><p>The results of this mapping are stored persistently in
an ID mapping database held in a tdb database). This ensures that
- RIDs are mapped to UNIX IDs in a consistent way.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979637"></a>Result Caching</h3></div></div><div></div></div><p>An active system can generate a lot of user and group
+ RIDs are mapped to UNIX IDs in a consistent way.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2975027"></a>Result Caching</h3></div></div><div></div></div><p>An active system can generate a lot of user and group
name lookups. To reduce the network cost of these lookups winbind
uses a caching scheme based on the SAM sequence number supplied
by NT domain controllers. User or group information returned
@@ -176,14 +177,14 @@ passwd: files example
the PDC and compared against the sequence number of the cached entry.
If the sequence numbers do not match, then the cached information
is discarded and up to date information is requested directly
- from the PDC.</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2979664"></a>Installation and Configuration</h2></div></div><div></div></div><p>
+ from the PDC.</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2975055"></a>Installation and Configuration</h2></div></div><div></div></div><p>
Many thanks to John Trostel <a href="mailto:jtrostel@snapserver.com" target="_top">jtrostel@snapserver.com</a>
for providing the HOWTO for this section.
</p><p>
This HOWTO describes how to get winbind services up and running
to control access and authenticate users on your Linux box using
the winbind services which come with SAMBA 3.0.
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979692"></a>Introduction</h3></div></div><div></div></div><p>
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2975083"></a>Introduction</h3></div></div><div></div></div><p>
This section describes the procedures used to get winbind up and
running on a RedHat 7.1 system. Winbind is capable of providing access
and authentication control for Windows Domain users through an NT
@@ -208,7 +209,7 @@ somewhat to fit the way your distribution works.
SAMBA server, this HOWTO is for you. That said, I am no NT or PAM
expert, so you may find a better or easier way to accomplish
these tasks.
- </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979768"></a>Requirements</h3></div></div><div></div></div><p>
+ </p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2975158"></a>Requirements</h3></div></div><div></div></div><p>
If you have a samba configuration file that you are currently
using... <span class="emphasis"><em>BACK IT UP!</em></span> If your system already uses PAM,
<span class="emphasis"><em>back up the <tt class="filename">/etc/pam.d</tt> directory
@@ -235,7 +236,7 @@ winbind modules, you should have at least the pam libraries resident
on your system. For recent RedHat systems (7.1, for instance), that
means <tt class="filename">pam-0.74-22</tt>. For best results, it is helpful to also
install the development packages in <tt class="filename">pam-devel-0.74-22</tt>.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2979861"></a>Testing Things Out</h3></div></div><div></div></div><p>
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2976434"></a>Testing Things Out</h3></div></div><div></div></div><p>
Before starting, it is probably best to kill off all the SAMBA
related daemons running on your server. Kill off all <span class="application">smbd</span>,
<span class="application">nmbd</span>, and <span class="application">winbindd</span> processes that may
@@ -246,7 +247,7 @@ services, several pam libraries, and the <tt class="filename">/usr/doc</tt>
and <tt class="filename">/usr/man</tt> entries for pam. Winbind built better
in SAMBA if the pam-devel package was also installed. This package includes
the header files needed to compile pam-aware applications.
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2979923"></a>Configure and compile SAMBA</h4></div></div><div></div></div><p>
+</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2976496"></a>Configure and compile SAMBA</h4></div></div><div></div></div><p>
The configuration and compilation of SAMBA is pretty straightforward.
The first three steps may not be necessary depending upon
whether or not you have previously built the Samba binaries.
@@ -261,15 +262,15 @@ whether or not you have previously built the Samba binaries.
This will, by default, install SAMBA in <tt class="filename">/usr/local/samba</tt>.
See the main SAMBA documentation if you want to install SAMBA somewhere else.
It will also build the winbindd executable and libraries.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2980035"></a>Configure <tt class="filename">nsswitch.conf</tt> and the
+</p></div><div xmlns:ns73="" class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2976608"></a>Configure <tt class="filename">nsswitch.conf</tt> and the
winbind libraries on Linux and Solaris</h4></div></div><div></div></div><p>
The libraries needed to run the <span class="application">winbindd</span> daemon
through nsswitch need to be copied to their proper locations, so
-</p><p>
-</p><pre class="screen">
+</p><ns73:p>
+</ns73:p><pre class="screen">
<tt class="prompt">root# </tt><b class="userinput"><tt>cp ../samba/source/nsswitch/libnss_winbind.so /lib</tt></b>
-</pre><p>
-</p><p>
+</pre><ns73:p>
+</ns73:p><p>
I also found it necessary to make the following symbolic link:
</p><p>
<tt class="prompt">root# </tt> <b class="userinput"><tt>ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2</tt></b>
@@ -296,7 +297,7 @@ is faster (and you don't need to reboot) if you do it manually:
</p><p>
This makes <tt class="filename">libnss_winbind</tt> available to winbindd
and echos back a check to you.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2980242"></a>NSS Winbind on AIX</h4></div></div><div></div></div><p>(This section is only for those running AIX)</p><p>
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2976815"></a>NSS Winbind on AIX</h4></div></div><div></div></div><p>(This section is only for those running AIX)</p><p>
The winbind AIX identification module gets built as libnss_winbind.so in the
nsswitch directory of the samba source. This file can be copied to
/usr/lib/security, and the AIX naming convention would indicate that it
@@ -316,7 +317,7 @@ Programming Concepts for AIX&quot;: <a href="http://publibn.boulder.ibm.com/doc_
Chapter 18. Loadable Authentication Module Programming Interface</a>
and more information on administering the modules at <a href="http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixbman/baseadmn/iandaadmin.htm" target="_top">
&quot;System Management Guide: Operating System and Devices&quot;</a>.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2980323"></a>Configure smb.conf</h4></div></div><div></div></div><p>
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2976887"></a>Configure smb.conf</h4></div></div><div></div></div><p>
Several parameters are needed in the smb.conf file to control
the behavior of <span class="application">winbindd</span>. Configure
<tt class="filename">smb.conf</tt> These are described in more detail in
@@ -338,7 +339,7 @@ include the following entries in the [global] section:
# give winbind users a real shell (only needed if they have telnet access)
<a href="winbindd.8.html#TEMPLATEHOMEDIR" target="_top">template homedir</a> = /home/winnt/%D/%U
<a href="winbindd.8.html#TEMPLATESHELL" target="_top">template shell</a> = /bin/bash
-</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2980439"></a>Join the SAMBA server to the PDC domain</h4></div></div><div></div></div><p>
+</pre></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2977000"></a>Join the SAMBA server to the PDC domain</h4></div></div><div></div></div><p>
Enter the following command to make the SAMBA server join the
PDC domain, where <i class="replaceable"><tt>DOMAIN</tt></i> is the name of
your Windows domain and <i class="replaceable"><tt>Administrator</tt></i> is
@@ -349,7 +350,7 @@ a domain user who has administrative privileges in the domain.
The proper response to the command should be: &quot;Joined the domain
<i class="replaceable"><tt>DOMAIN</tt></i>&quot; where <i class="replaceable"><tt>DOMAIN</tt></i>
is your DOMAIN name.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2980493"></a>Start up the winbindd daemon and test it!</h4></div></div><div></div></div><p>
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2979843"></a>Start up the winbindd daemon and test it!</h4></div></div><div></div></div><p>
Eventually, you will want to modify your smb startup script to
automatically invoke the winbindd daemon when the other parts of
SAMBA start, but it is possible to test out just the winbind
@@ -421,7 +422,7 @@ directories and default shells.
The same thing can be done for groups with the command
</p><p>
<tt class="prompt">root# </tt><b class="userinput"><tt>getent group</tt></b>
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2980734"></a>Fix the init.d startup scripts</h4></div></div><div></div></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2980741"></a>Linux</h5></div></div><div></div></div><p>
+</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2980083"></a>Fix the init.d startup scripts</h4></div></div><div></div></div><div xmlns:ns74="" class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2980091"></a>Linux</h5></div></div><div></div></div><p>
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 task, you need to modify the startup scripts of your system.
@@ -452,18 +453,18 @@ start() {
touch /var/lock/subsys/smb || RETVAL=1
return $RETVAL
}
-</pre><p>If you would like to run winbindd in dual daemon mode, replace
+</pre><ns74:p>If you would like to run winbindd in dual daemon mode, replace
the line
-</p><pre class="programlisting">
+</ns74:p><pre class="programlisting">
daemon /usr/local/samba/bin/winbindd
-</pre><p>
+</pre><ns74:p>
in the example above with:
-</p><pre class="programlisting">
+</ns74:p><pre class="programlisting">
daemon /usr/local/samba/bin/winbindd -B
-</pre><p>.
-</p><p>
+</pre><ns74:p>.
+</ns74:p><p>
The 'stop' function has a corresponding entry to shut down the
services and looks like this:
</p><pre class="programlisting">
@@ -487,7 +488,7 @@ stop() {
echo &quot;&quot;
return $RETVAL
}
-</pre></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2980903"></a>Solaris</h5></div></div><div></div></div><p>Winbind doesn't work on solaris 9, see the <a href="Portability.html#winbind-solaris9" title="Winbind on Solaris 9">Portability</a> chapter for details.</p><p>On solaris, you need to modify the
+</pre></div><div xmlns:ns75="" class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2980236"></a>Solaris</h5></div></div><div></div></div><p>Winbind doesn't work on solaris 9, see the <a href="Portability.html#winbind-solaris9" title="Winbind on Solaris 9">Portability</a> chapter for details.</p><p>On solaris, you need to modify the
<tt class="filename">/etc/init.d/samba.server</tt> startup script. It usually
only starts smbd and nmbd but should now start winbindd too. If you
have samba installed in <tt class="filename">/usr/local/samba/bin</tt>,
@@ -539,22 +540,22 @@ the file could contains something like this:
echo &quot;Usage: /etc/init.d/samba.server { start | stop }&quot;
;;
esac
-</pre><p>
+</pre><ns75:p>
Again, if you would like to run samba in dual daemon mode, replace
-</p><pre class="programlisting">
+</ns75:p><pre class="programlisting">
/usr/local/samba/bin/winbindd
-</pre><p>
+</pre><ns75:p>
in the script above with:
-</p><pre class="programlisting">
+</ns75:p><pre class="programlisting">
/usr/local/samba/bin/winbindd -B
-</pre><p>
-</p></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2981021"></a>Restarting</h5></div></div><div></div></div><p>
+</pre><ns75:p>
+</ns75:p></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2980325"></a>Restarting</h5></div></div><div></div></div><p>
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
should be able to connect to the samba server as a domain member just as
if you were a local user.
-</p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2981058"></a>Configure Winbind and PAM</h4></div></div><div></div></div><p>
+</p></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2980361"></a>Configure Winbind and PAM</h4></div></div><div></div></div><p>
If you have made it this far, you know that winbindd and samba are working
together. If you want to use winbind to provide authentication for other
services, keep reading. The pam configuration files need to be altered in
@@ -574,7 +575,7 @@ your other pam security modules. On my RedHat system, this was the
modules reside in <tt class="filename">/usr/lib/security</tt>.
</p><p>
<tt class="prompt">root# </tt><b class="userinput"><tt>cp ../samba/source/nsswitch/pam_winbind.so /lib/security</tt></b>
-</p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2981164"></a>Linux/FreeBSD-specific PAM configuration</h5></div></div><div></div></div><p>
+</p><div xmlns:ns76="" class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2980468"></a>Linux/FreeBSD-specific PAM configuration</h5></div></div><div></div></div><p>
The <tt class="filename">/etc/pam.d/samba</tt> file does not need to be changed. I
just left this fileas it was:
</p><pre class="programlisting">
@@ -630,14 +631,14 @@ same way. It now looks like this:
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_console.so
-</pre><p>
-In this case, I added the </p><pre class="programlisting">auth sufficient /lib/security/pam_winbind.so</pre><p>
-lines as before, but also added the </p><pre class="programlisting">required pam_securetty.so</pre><p>
+</pre><ns76:p>
+In this case, I added the </ns76:p><pre class="programlisting">auth sufficient /lib/security/pam_winbind.so</pre><ns76:p>
+lines as before, but also added the </ns76:p><pre class="programlisting">required pam_securetty.so</pre><ns76:p>
above it, to disallow root logins over the network. I also added a
<b class="command">sufficient /lib/security/pam_unix.so use_first_pass</b>
line after the <b class="command">winbind.so</b> line to get rid of annoying
double prompts for passwords.
-</p></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2981388"></a>Solaris-specific configuration</h5></div></div><div></div></div><p>
+</ns76:p></div><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="id2980691"></a>Solaris-specific configuration</h5></div></div><div></div></div><p>
The /etc/pam.conf needs to be changed. I changed this file so that my Domain
users can logon both locally as well as telnet.The following are the changes
that I made.You can customize the pam.conf file as per your requirements,but
@@ -709,12 +710,12 @@ annoying double prompts for passwords.
</p><p>
Now restart your Samba and try connecting through your application that you
configured in the pam.conf.
-</p></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2981479"></a>Conclusion</h2></div></div><div></div></div><p>The winbind system, through the use of the Name Service
+</p></div></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2980783"></a>Conclusion</h2></div></div><div></div></div><p>The winbind system, through the use of the Name Service
Switch, Pluggable Authentication Modules, and appropriate
Microsoft RPC calls have allowed us to provide seamless
integration of Microsoft Windows NT domain users on a
UNIX system. The result is a great reduction in the administrative
- cost of running a mixed UNIX and NT network.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2981498"></a>Common Errors</h2></div></div><div></div></div><p>Winbind has a number of limitations in its current
+ cost of running a mixed UNIX and NT network.</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2980802"></a>Common Errors</h2></div></div><div></div></div><p>Winbind has a number of limitations in its current
released version that we hope to overcome in future
releases:</p><div class="itemizedlist"><ul type="disc"><li><p>Winbind is currently only available for
the Linux, Solaris and IRIX operating systems, although ports to other operating