diff options
author | John Terpstra <jht@samba.org> | 2000-07-30 07:38:43 +0000 |
---|---|---|
committer | John Terpstra <jht@samba.org> | 2000-07-30 07:38:43 +0000 |
commit | 693fba1eb2f30db906c5fa089e6d1626dac8a15c (patch) | |
tree | e09bcbd8cfd1c846afefc94605ed4895c96e85ec /docs/htmldocs/using_samba | |
parent | c46e6a5961ba4af2ec2381c2ceab88d03335d3f2 (diff) | |
download | samba-693fba1eb2f30db906c5fa089e6d1626dac8a15c.tar.gz samba-693fba1eb2f30db906c5fa089e6d1626dac8a15c.tar.bz2 samba-693fba1eb2f30db906c5fa089e6d1626dac8a15c.zip |
Adding Using_Samba book back to Samba-pre3.
(This used to be commit 9f5f8ad21d9c7f5efb69abbe08ee2e34b787e68b)
Diffstat (limited to 'docs/htmldocs/using_samba')
158 files changed, 27479 insertions, 0 deletions
diff --git a/docs/htmldocs/using_samba/appa_01.html b/docs/htmldocs/using_samba/appa_01.html new file mode 100644 index 0000000000..30080dffbf --- /dev/null +++ b/docs/htmldocs/using_samba/appa_01.html @@ -0,0 +1,153 @@ +<HTML> +<HEAD> +<TITLE> +[Appendix A] Configuring Samba with SSL</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:41:36Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_03.html" TITLE="9.3 Extra Resources"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 9.3 Extra Resources" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Appendix A</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_02.html" TITLE="A.2 Requirements"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A.2 Requirements" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="appendix"> +<A CLASS="title" NAME="appa-73322"> +A. Configuring Samba with SSL</a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#appa-pgfId-986440" TITLE="A.1 About Certificates"> +About Certificates</a><br> +<A CLASS="sect1" HREF="appa_02.html" TITLE="A.2 Requirements"> +Requirements</a><br> +<A CLASS="sect1" HREF="appa_03.html" TITLE="A.3 Installing SSLeay"> +Installing SSLeay</a><br> +<A CLASS="sect1" HREF="appa_04.html" TITLE="A.4 Setting Up SSL Proxy"> +Setting Up SSL Proxy</a><br> +<A CLASS="sect1" HREF="appa_05.html" TITLE="A.5 SSL Configuration Options"> +SSL Configuration Options</a></p><P> +</p></div><P CLASS="para">This appendix describes how to set up Samba to use secure connections between the Samba server and its clients. The protocol used here is Netscape's Secure Sockets Layer (SSL). For this example, we will establish a secure connection between a Samba server and a Windows NT workstation. </p><P CLASS="para"> +Before we begin, we will assume that you are familiar with the fundamentals of public-key cryptography and X.509 certificates. If not, we highly recommend Bruce Schneier's <I CLASS="filename"> +Applied Cryptography, 2nd Edition</i> (Wiley) as the premiere source for learning the many secret faces of cryptography.</p><P CLASS="para"> +If you would like more information on Samba and SSL, be sure to look at the document <I CLASS="filename"> +SSLeay.txt</i> in the <I CLASS="filename"> +docs/textdocs</i> directory of the Samba distribution, which is the basis for this appendix.</p><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="appa-pgfId-986440"> +A.1 About Certificates</a></h2><P CLASS="para"> +Here are a few quick questions and answers from the <I CLASS="filename"> +SSLeay.txt</i> file in the Samba documentation, regarding the benefits of SSL and certificates. This text was written by Christian Starkjohann for the Samba projects. </p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-990471"> +A.1.1 What is a Certificate?</a></h3><P CLASS="para"> +A certifcate is issued by an issuer, usually a <EM CLASS="emphasis"> +Certification Authority</em> (CA), who confirms something by issuing the certificate. The subject of this confirmation depends on the CA's policy. CAs for secure web servers (used for shopping malls, etc.) usually attest only that the given public key belongs the given domain name. Company-wide CAs might attest that you are an employee of the company, that you have permissions to use a server, and so on. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-990473"> +A.1.2 What is an X.509 certificate, technically?</a></h3><P CLASS="para"> +Technically, the certificate is a block of data signed by the certificate issuer (the CA). The relevant fields are:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-990475"> +</a>Unique identifier (name) of the certificate issuer</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-990476"> +</a>Time range during which the certificate is valid</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-990477"> +</a>Unique identifier (name) of the certified object</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-990478"> +</a>Public key of the certified object</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-990479"> +</a>The issuer's signature over all the above</p></li></ul><P CLASS="para"> +If this certificate is to be verified, the verifier must have a table of the names and public keys of trusted CAs. For simplicity, these tables should list certificates issued by the respective CAs for themselves (self-signed certificates).</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-990481"> +A.1.3 What are the implications of this certificate structure?</a></h3><P CLASS="para"> +Four implications follow:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-990485"> +</a>Because the certificate contains the subjects's public key, the certificate and the private key together are all that is needed to encrypt and decrypt.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-990489"> +</a>To verify certificates, you need the certificates of all CAs you trust. </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-990490"> +</a>The simplest form of a dummy-certificate is one that is signed by the subject.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-990491"> +</a>A CA is needed. The client can't simply issue local certificates for servers it trusts because the server determines which certificate it presents. </p></li></ul></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_03.html" TITLE="9.3 Extra Resources"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 9.3 Extra Resources" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_02.html" TITLE="A.2 Requirements"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A.2 Requirements" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +9.3 Extra Resources</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +A.2 Requirements</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appa_02.html b/docs/htmldocs/using_samba/appa_02.html new file mode 100644 index 0000000000..e69b2fd912 --- /dev/null +++ b/docs/htmldocs/using_samba/appa_02.html @@ -0,0 +1,100 @@ +<HTML> +<HEAD> +<TITLE> +[Appendix A] A.2 Requirements</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:41:37Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_01.html" TITLE="A.1 About Certificates"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.1 About Certificates" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="appendix" REL="up" HREF="appa_01.html" TITLE="A. Configuring Samba with SSL"> +Appendix A<br> +Configuring Samba with SSL</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_03.html" TITLE="A.3 Installing SSLeay"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A.3 Installing SSLeay" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="appa-pgfId-990469"> +A.2 Requirements</a></h2><P CLASS="para">To set up SSL connections, you will need to download two programs in addition to Samba:</p><DL CLASS="variablelist"> +<DT CLASS="term">SSLeay</dt><DD CLASS="listitem"> +<P CLASS="para"> +Eric Young's implementation of the Secure Socket's Layer (SSL) protocol as a series of Unix programming libraries</p></dd><DT CLASS="term">SSL Proxy</dt><DD CLASS="listitem"> +<P CLASS="para"> +A freeware SSL application from Objective Development, which can be used to proxy a secure link on Unix or Windows NT platforms</p></dd></dl><P CLASS="para"> +These two products assist with the server and client side of the encrypted SSL connection. The SSLeay libraries are compiled and installed directly on the Unix system. SSL Proxy, on the other hand, can be downloaded and compiled (or downloaded in binary format) and located on the client side. If you intend to have a Windows NT client or a Samba client on the other end of the SSL connection, you will not require a special setup.</p><P CLASS="para"> +SSL Proxy, however, does not work on Windows 95/98 machines. Therefore, if you want to have a secure connection between a Samba server and Windows 95/98 client, you will need to place either a Unix server or a Windows NT machine on the same subnet with the Windows 9<EM CLASS="emphasis"> +x</em> clients and route all network connections through the SSL-Proxy-enabled machine. See <A CLASS="xref" HREF="appa_02.html#appa-89929"> +Figure A.1</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="appa-89929"> +Figure A.1: Two possible ways of proxying Windows 95/98 clients</a></h4><IMG CLASS="graphic" SRC="figs/sam.aa01.gif" ALT="Figure A.1"><P CLASS="para"> +For the purposes of this chapter, we will create a simple SSL connection between the Samba server and a Windows NT client. This configuration can be used to set up more complex networks at the administrator's discretion.</p></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_01.html" TITLE="A.1 About Certificates"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.1 About Certificates" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_03.html" TITLE="A.3 Installing SSLeay"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A.3 Installing SSLeay" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +A.1 About Certificates</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +A.3 Installing SSLeay</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appa_03.html b/docs/htmldocs/using_samba/appa_03.html new file mode 100644 index 0000000000..f8cdb13931 --- /dev/null +++ b/docs/htmldocs/using_samba/appa_03.html @@ -0,0 +1,325 @@ +<HTML> +<HEAD> +<TITLE> +[Appendix A] A.3 Installing SSLeay</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:41:37Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_02.html" TITLE="A.2 Requirements"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.2 Requirements" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="appendix" REL="up" HREF="appa_01.html" TITLE="A. Configuring Samba with SSL"> +Appendix A<br> +Configuring Samba with SSL</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_04.html" TITLE="A.4 Setting Up SSL Proxy"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A.4 Setting Up SSL Proxy" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="appa-pgfId-985777"> +A.3 Installing SSLeay</a></h2><P CLASS="para"> +Samba uses the SSLeay package, written by Eric Young, to provide Secure Sockets Layer support on the server side. Because of U.S. export law, however, the SSLeay package cannot be shipped with Samba distributions that are based in the United States. For that reason, the Samba creators decided to leave it as a separate package entirely. You can download the SSLeay distribution from any of the following sites:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-985779"> +</a><A CLASS="systemitem.url" HREF="ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/"> +ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/</a></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-985781"> +</a><A CLASS="systemitem.url" HREF="ftp://ftp.uni-mainz.de/pub/internet/security/ssl"> +ftp://ftp.uni-mainz.de/pub/internet/security/ssl</a></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-985782"> +</a><A CLASS="systemitem.url" HREF="ftp://ftp.cert.dfn.de/pub/tools/crypt/sslapps"> +ftp://ftp.cert.dfn.de/pub/tools/crypt/sslapps</a></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-985783"> +</a><A CLASS="systemitem.url" HREF="ftp://ftp.funet.fi/pub/crypt/mirrors/ftp.psy.uq.oz.au"> +ftp://ftp.funet.fi/pub/crypt/mirrors/ftp.psy.uq.oz.au</a></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-985784"> +</a><A CLASS="systemitem.url" HREF="ftp://ftp.sunet.se/ftp/pub/security/tools/crypt/ssleay"> +ftp://ftp.sunet.se/ftp/pub/security/tools/crypt/ssleay</a></p></li></ul><P CLASS="para"> +The latest version as of this printing is 0.9.0b. Download it to the same server as the Samba distribution, then uncompress and untar it. You should be left with a directory entitled <I CLASS="filename"> +SSLeay-0.9.0b</i>. After changing to that directory, you will need to configure and build the SSL encryption package in the same way that you did with Samba.</p><P CLASS="para"> +SSLeay uses a Perl-based <I CLASS="filename"> +configure</i> script. This script modifies the Makefile that constructs the utilities and libraries of the SSLeay package. However, the default script is hardcoded to find Perl at <I CLASS="filename"> +/usr/local/bin/perl</i>. You may need to change the <I CLASS="filename"> +configure</i> script to point to the location of the Perl executable file on your Unix system. For example, you can type the following to locate the Perl executable:</p><PRE CLASS="programlisting"># <CODE CLASS="userinput"><B>which perl</b></code> +/usr/bin/perl</pre><P CLASS="para"> +Then modify the first line of the <I CLASS="filename"> +configure</i> script to force it to use the correct Perl executable. For example, on our Red Hat Linux system:</p><PRE CLASS="programlisting"> +#!/usr/bin/perl +# +# see PROBLEMS for instructions on what sort of things to do +# when tracking a bug -tjh +...</pre><P CLASS="para"> +After that, you need to run the <I CLASS="filename"> +configure</i> script by specifying a target platform for the distribution. This target platform can be any of the following:</p><PRE CLASS="programlisting"> +BC-16 BC-32 FreeBSD NetBSD-m86 +NetBSD-sparc NetBSD-x86 SINIX-N VC-MSDOS +VC-NT VC-W31-16 VC-W31-32 VC-WIN16 +VC-WIN32 aix-cc aix-gcc alpha-cc +alpha-gcc alpha400-cc cc cray-t90-cc +debug debug-irix-cc debug-linux-elf dgux-R3-gcc +dgux-R4-gcc dgux-R4-x86-gcc dist gcc +hpux-cc hpux-gcc hpux-kr-cc irix-cc +irix-gcc linux-aout linux-elf ncr-scde +nextstep purify sco5-cc solaris-sparc-cc +solaris-sparc-gcc solaris-sparc-sc4 solaris-usparc-sc4 solaris-x86-gcc +sunos-cc sunos-gcc unixware-2.0 unixware</pre><P CLASS="para"> +For our system, we would enter the following:</p><PRE CLASS="programlisting"> +# <CODE CLASS="userinput"><B>./Configure linux-elf</b></code> +CC =gcc +CFLAG =-DL_ENDIAN -DTERMIO -DBN_ASM -O3 -fomit-frame-pointer +EX_LIBS = +BN_MULW =asm/bn86-elf.o +DES_ENC =asm/dx86-elf.o asm/yx86-elf.o +BF_ENC =asm/bx86-elf.o +CAST_ENC =asm/cx86-elf.o +RC4_ENC =asm/rx86-elf.o +RC5_ENC =asm/r586-elf.o +MD5_OBJ_ASM =asm/mx86-elf.o +SHA1_OBJ_ASM =asm/sx86-elf.o +RMD160_OBJ_ASM=asm/rm86-elf.o +THIRTY_TWO_BIT mode +DES_PTR used +DES_RISC1 used +DES_UNROLL used +BN_LLONG mode +RC4_INDEX mode </pre><P CLASS="para"> +After the package has been configured, you can build it by typing <CODE CLASS="literal"> +make</code>. If the build did not successfully complete, consult the documentation that comes with the distribution or the FAQ at <a href="http://www.cryptsoft.com/ssleay/"><I CLASS="filename">http://www.cryptsoft.com/ssleay/</i></a> for more information on what may have happened. If the build did complete, type <CODE CLASS="literal"> +make</code> <CODE CLASS="literal"> +install</code> to install the libraries on the system. Note that the makefile installs the package in <I CLASS="filename"> +/usr/local/ssl</i> by default. If you decide to install it in another directory, remember the directory when configuring Samba to use SSL.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-985829"> +A.3.1 Configuring SSLeay for Your System</a></h3><P CLASS="para"> +The first thing you need to do is to set the <CODE CLASS="literal"> +PATH</code> environment variable on your system to include the <I CLASS="filename"> +/bin</i> directory of the SSL distribution. This can be done with the following statement:</p><PRE CLASS="programlisting"> +PATH=$PATH:/usr/local/ssl/bin</pre><P CLASS="para"> +That's the easy part. Following that, you will need to create a random series of characters that will be used to prime SSLeay's random number generator. The random number generator will be used to create key pairs for both the clients and the server. You can create this random series by filling a text file of a long series of random characters. For example, you can use your favorite editor to create a text file with random characters, or use this command and enter arbitrary characters at the standard input:</p><PRE CLASS="programlisting"> +cat >/tmp/private.txt</pre><P CLASS="para"> +The Samba documentation recommends that you type characters for longer than a minute before interrupting the input stream by hitting Control-D. Try not to type only the characters that are under your fingers on the keyboard; throw in some symbols and numbers as well. Once you've completed the random file, you can prime the random number generator with the following command:</p><PRE CLASS="programlisting"> +# ssleay genrsa -rand /tmp/private.txt >/dev/null +2451 semi-random bytes loaded +Generating RSA private key, 512 bit long modulus +..+++++ +.................................+++++ +e is 65537 (0x10001)</pre><P CLASS="para"> +You can safely ignore the output of this command. After it has completed, remove the series of characters used to create the key because this could be used to recreate any private keys that were generated from this random number generator:</p><PRE CLASS="programlisting"> +rm -f /tmp/private.txt</pre><P CLASS="para"> +The result of this command is the hidden file .<EM CLASS="emphasis"> +rnd</em>, which is stored in your home directory. SSLeay will use this file when creating key pairs in the future.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-985843"> +A.3.2 Configuring Samba to use SSL</a></h3><P CLASS="para">At this point, you can compile Samba to use SSL. Recall that in <a href="ch02_01.html"><b>Chapter 2, <CITE CLASS="chapter">Installing Samba on a Unix System</cite></b></a>, we said you have to first run the configure script, which initializes the makefile, before you compile Samba. In order to use SSL with Samba, you will need to reconfigure the makefile:</p><PRE CLASS="programlisting"> +./configure --with-ssl</pre><P CLASS="para"> +After that, you can compile Samba with the following commands:</p><PRE CLASS="programlisting"># <CODE CLASS="userinput"><B>make clean</b></code> +# <CODE CLASS="userinput"><B>make all</b></code></pre><P CLASS="para"> +If you encounter an error that says the <I CLASS="filename"> +smbd</i> executable is missing the file <I CLASS="filename"> +ssl.h</i>, you probably didn't install SSLeay in the default directory. Use the configure option <CODE CLASS="literal"> +--with-sslinc</code> to point to the base directory of the SSL distribution - in this case, the directory that contains <EM CLASS="emphasis"> +include/ssl.h</em>.</p><P CLASS="para"> +On the other hand, if you have a clean compile, you're ready to move on to the next step: creating certificates.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-62097"> +A.3.3 Becoming a Certificate Authority</a></h3><P CLASS="para"> +<I CLASS="firstterm"> +</i>The SSL protocol requires the use of X.509 certificates in the protocol handshake to ensure that either one or both parties involved in the communication are indeed who they say they are. Certificates in real life, such as those use for SSL connections on public web sites, can cost in the arena of $300 a year. This is because the certificate must have a digital signature placed on it by a <I CLASS="firstterm"> +certificate authority</i>. A certificate authority is an entity that vouches for the authenticity of a digital certificate by signing it with its own private key. This way, anyone who wishes to check the authenticity of the certificate can simply use the certificate authority's public key to check the signature.</p><P CLASS="para"> +You are allowed to use a public certificate authority with SSLeay. However, you don't have to. Instead, SSLeay will allow you to declare yourself a trusted certificate authority - specifying which clients you choose to trust and which clients you do not. In order to do this, you will need to perform several tasks with the SSLeay distribution.</p><P CLASS="para"> +The first thing you need to do is specify a secure location where the certificates of the clients and potentially the server will be stored. We have chosen <I CLASS="filename"> +/etc/certificates</i> as our default. Execute the following commands as <CODE CLASS="literal"> +root</code>: </p><PRE CLASS="programlisting"># <CODE CLASS="userinput"><B>cd /etc</b></code> +# <CODE CLASS="userinput"><B>mkdir certificates</b></code> +# <CODE CLASS="userinput"><B>chmod 700 certificates</b></code></pre><P CLASS="para"> +Note that we shut out all access to users other than <CODE CLASS="literal"> +root</code> for this directory. This is very important.</p><P CLASS="para"> +Next, you need to set up the SSLeay scripts and configuration files to use the certificates stored in this directory. In order to do this, first modify the <I CLASS="filename"> +CA.sh</i> script located at <EM CLASS="emphasis"> +/usr/local/ssl/bin/CA.sh</em> to specify the location of the directory you just created. Find the line that contains the following entry:</p><PRE CLASS="programlisting"> +CATOP=./demoCA</pre><P CLASS="para"> +Then change it to:</p><PRE CLASS="programlisting"> +CATOP=/etc/certificates</pre><P CLASS="para"> +Next, you need to modify the <EM CLASS="emphasis"> +/usr/local/ssl/lib/ssleay.cnf</em> file to specify the same directory. Find the entry:</p><PRE CLASS="programlisting"> +[ CA_default ] +dir = ./demoCA # Where everything is kept</pre><P CLASS="para"> +Then change it to:</p><PRE CLASS="programlisting"> +[ CA_default ] +dir = /etc/certificates # Where everything is kept</pre><P CLASS="para"> +Next, run the certificate authority setup script, <I CLASS="filename"> +CA.sh</i>, in order to create the certificates. Be sure to do this as the same user that you used to prime the random number generator above:</p><PRE CLASS="programlisting"> +/usr/local/ssl/bin/CA.sh -newca +mkdir: cannot make directory '/etc/certificates': File exists +CA certificate filename (or enter to create)</pre><P CLASS="para"> +Press the Enter key to create a certificate for the CA. You should then see:</p><PRE CLASS="programlisting"> +Making CA certificate ... +Using configuration from /usr/local/ssl/lib/ssleay.cnf +Generating a 1024 bit RSA private key +.............................+++++ +.....................+++++ +writing new private key to /etc/certificates/private/cakey.pem +Enter PEM pass phrase:</pre><P CLASS="para"> +Enter a new pass phrase for your certificate. You will need to enter it twice correctly before SSLeay will accept it:</p><PRE CLASS="programlisting"> +Enter PEM pass phrase: +Verifying password - Enter PEM pass phrase:</pre><P CLASS="para"> +Be sure to remember this pass phrase. You will need it to sign the client certificates in the future. Once SSLeay has accepted the pass phrase, it will continue on with a series of questions for each of the fields in the X509 certificate:</p><PRE CLASS="programlisting"> +You are about to be asked to enter information that will be +incorporated into your certificate request. +What you are about to enter is what is called a Distinguished +Name or a DN. +There are quite a few fields but you can leave some blank +For some fields there will be a default value, +If you enter '.', the field will be left blank.</pre><P CLASS="para"> +Fill out the remainder of the fields with information about your organization. For example, our certificate looks like this:</p><PRE CLASS="programlisting"> +Country Name (2 letter code) [AU]:<CODE CLASS="userinput"> +<B> +US</b></code> +State or Province Name (full name) [Some-State]:<CODE CLASS="userinput"> +<B> +California</b></code> +Locality Name (eg, city) []:<CODE CLASS="userinput"> +<B> +Sebastopol</b></code> +Organization Name (eg, company) []:<CODE CLASS="userinput"> +<B> +O'Reilly</b></code> +Organizational Unit Name (eg, section) []:<CODE CLASS="userinput"> +<B> +Books</b></code> +Common Name (eg, YOUR name) []:<CODE CLASS="userinput"> +<B> +John Doe</b></code> +Email Address []:<CODE CLASS="userinput"> +<B> +doe@ora.com</b></code></pre><P CLASS="para"> +After that, SSLeay will be configured as a certificate authority and can be used to sign certificates for client machines that will be connecting to the Samba server.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986381"> +A.3.4 Creating Certificates for Clients</a></h3><P CLASS="para"> +It's simple to create a certificate for a client machine. First, you need to generate a public/private key pair for each entity, create a certificate request file, and then use <EM CLASS="emphasis"> +SSLeay</em> to sign the file as a trusted authority.</p><P CLASS="para"> +For our example client <CODE CLASS="literal"> +phoenix</code>, this boils down to three SSLeay commands. The first generates a key pair for the client and places it in the file <I CLASS="filename"> +phoenix.key</i>. The private key will be encrypted, in this case using triple DES. Enter a pass phrase when requested below - you'll need it for the next step:</p><PRE CLASS="programlisting"> +# ssleay genrsa -des3 1024 >phoenix.key +1112 semi-random bytes loaded +Generating RSA private key, 1024 bit long modulus +........................................+++++ +.............+++++ +e is 65537 (0x10001) +Enter PEM pass phrase: +Verifying password - Enter PEM pass phrase:</pre><P CLASS="para"> +After that command has completed, type in the following command:</p><PRE CLASS="programlisting"># <CODE CLASS="userinput"><B>ssleay req -new -key phoenix.key -out phoenix-csr</b></code> +Enter PEM pass phrase:</pre><P CLASS="para"> +Enter the pass phrase for the client certificate you just created (not the certificate authority). At this point, you will need to answer the questionnaire again, this time for the client machine. In addition, you must type in a challenge password and an optional company name - those do not matter here. When the command completes, you will have a certificate request in the file <EM CLASS="emphasis"> +phoenix-csr.</em></p><P CLASS="para"> +Then, you must sign the certificate request as the trusted certificate authority. Type in the following command:</p><PRE CLASS="programlisting"># <CODE CLASS="userinput"><B>ssleay ca -days 1000 -inflies phoenix-csr >phoenix.pem</b></code></pre><P CLASS="para"> +This command will prompt you to enter the PEM pass phrase of the <EM CLASS="emphasis"> +certificate authority</em>. Be sure that you do not enter the PEM pass phrase of the client certificate that you just created. After entering the correct pass phrase, you should see the following:</p><PRE CLASS="programlisting"> +Check that the request matches the signature +Signature ok +The Subjects Distinguished Name is as follows: +...</pre><P CLASS="para"> +This will be followed by the information that you just entered for the client certificate. If there is an error in the fields, the program will notify you. On the other hand, if everything is fine, SSLeay will confirm that it should sign the certificate and commit it to the database. This adds a record of the certificate to the <I CLASS="filename"> +/etc/certificates/newcerts</i> directory.</p><P CLASS="para"> +The operative files at the end of this exercise are the <EM CLASS="emphasis"> +phoenix.key</em> and <EM CLASS="emphasis"> +phoenix.pem </em>files, which reside in the current directory. These files will be passed off to the client with whom the SSL-enabled Samba server will interact, and will be used by SSL Proxy.<I CLASS="firstterm"> +</i></p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986754">A.3.5 Configuring the Samba Server</a></h3><P CLASS="para"> +The next step is to modify the Samba configuration file to include the following setup options. These options assume that you created the certificates directory for the certificate authority at <I CLASS="filename"> +/etc/certificates </i>:</p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl server cert = /etc/certificates/cacert.pem + ssl server key = /etc/certificates/private/cakey.pem + ssl CA certDir = /etc/certificates</pre><P CLASS="para"> +At this point, you will need to kill the Samba daemons and restart them manually:</p><PRE CLASS="programlisting"> +# <CODE CLASS="userinput"><B>nmbd -D</b></code> +# <CODE CLASS="userinput"><B>smbd -D</b></code> +Enter PEM pass phrase:</pre><P CLASS="para"> +You will need to enter the PEM pass phrase of the certificate authority to start up the Samba daemons. Note that this may present a problem in terms of starting the program using ordinary means. However, you can get around this using advanced scripting languages, such as Expect or Python.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986870"> +A.3.6 Testing with smbclient</a></h3><P CLASS="para"> +A good way to test whether Samba is working properly is to use the<EM CLASS="emphasis"> + smbclient</em> program. On the Samba server, enter the following command, substituting the appropriate share and user for a connection:</p><PRE CLASS="programlisting"> +# <CODE CLASS="userinput"><B>smbclient //hydra/data -U tom</b></code></pre><P CLASS="para"> +You should see several debugging statements followed by a line indicating the negotiated cipher, such as:</p><PRE CLASS="programlisting"> +SSL: negotiated cipher: DES-CBC3-SHA</pre><P CLASS="para"> +After that, you can enter your password and connect to the share normally. If this works, you can be sure that Samba is correctly supporting SSL connections. Now, on to the client setup. </p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_02.html" TITLE="A.2 Requirements"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.2 Requirements" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_04.html" TITLE="A.4 Setting Up SSL Proxy"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A.4 Setting Up SSL Proxy" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +A.2 Requirements</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +A.4 Setting Up SSL Proxy</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appa_04.html b/docs/htmldocs/using_samba/appa_04.html new file mode 100644 index 0000000000..d4f99e2951 --- /dev/null +++ b/docs/htmldocs/using_samba/appa_04.html @@ -0,0 +1,135 @@ +<HTML> +<HEAD> +<TITLE> +[Appendix A] A.4 Setting Up SSL Proxy</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:41:41Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_03.html" TITLE="A.3 Installing SSLeay"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.3 Installing SSLeay" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="appendix" REL="up" HREF="appa_01.html" TITLE="A. Configuring Samba with SSL"> +Appendix A<br> +Configuring Samba with SSL</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_05.html" TITLE="A.5 SSL Configuration Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A.5 SSL Configuration Options" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="appa-pgfId-986788"> +A.4 Setting Up SSL Proxy</a></h2><P CLASS="para"> +The SSL Proxy program is available as a standalone binary or as source code. You can download it from <A CLASS="systemitem.url" HREF="http://obdev.at/Products/sslproxy.html"> +http://obdev.at/Products/sslproxy.html</a>.</p><P CLASS="para"> +Once it is downloaded, you can configure and compile it like Samba. We will configure it on a Windows NT system. However, setting it up for a Unix system involves a nearly identical series of steps. Be sure that you are the superuser (administrator) for the next series of steps.</p><P CLASS="para"> +If you downloaded the binary for Windows NT, you should have the following files in a directory:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-986793"> +</a><I CLASS="filename"> +cygwinb19.dll</i></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-986794"> +</a><I CLASS="filename"> +README.TXT</i></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-986795"> +</a><I CLASS="filename"> +sslproxy.exe</i></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appa-pgfId-986796"> +</a><I CLASS="filename"> +dummyCert.pem</i></p></li></ul><P CLASS="para"> +The only one that you will be interested in is the SSL Proxy executable. Copy over the <EM CLASS="emphasis"> +phoenix.pem</em> and <EM CLASS="emphasis"> +phoenix.key</em> files that you generated earlier for the client to the same directory as the SSL proxy executable. Make sure that the directory is secure from the prying eyes of other users.</p><P CLASS="para"> +The next step is to ensure that the Windows NT machine can resolve the NetBIOS name of the Samba server. This means that you should either have a WINS server up and running (the Samba server can perform this task with the <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +support</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> option) or have it listed in the appropriate <EM CLASS="emphasis"> +hosts</em> file of the system. See <a href="ch07_01.html"><b>Chapter 7, <CITE CLASS="chapter">Printing and Name Resolution</cite></b></a>, for more information on WINS server.[<A CLASS="footnote" HREF="#appa-pgfId-986801">1</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="appa-pgfId-986801">[1]</a> If you are running SSL Proxy on a Unix server, you should ensure that the DNS name of the Samba server can be resolved.</p></div></blockquote><P CLASS="para"> +Finally, start up SSL Proxy with the following command. Here, we assume that <CODE CLASS="literal"> +hydra</code> is the name of the Samba server:</p><PRE CLASS="programlisting"> +# <CODE CLASS="userinput"><B>C:\SSLProxy>sslproxy -l 139 -R hydra -r 139 -n -c phoenix.pem -k phoenix.key</b></code></pre><P CLASS="para"> +This tells SSL Proxy to listen for connections to port 139 and relay those requests to port 139 on the NetBIOS machine <CODE CLASS="literal"> +hydra</code>. It also instructs SSL Proxy to use the <I CLASS="filename"> +phoenix.pem</i> and <I CLASS="filename"> +phoenix.key</i> files to generate the certificate and keys necessary to initiate the SSL connection. SSL Proxy responds with:</p><PRE CLASS="programlisting"> +Enter PEM pass phrase:</pre><P CLASS="para"> +Enter the PEM pass phrase of the client keypair that you generated, <EM CLASS="emphasis"> +not</em> the certificate authority. You should then see the following output:</p><PRE CLASS="programlisting"> +SSL: No verify locations, trying default +proxy ready, listening for connections</pre><P CLASS="para"> +That should take care of the client. You can place this command in a startup sequence on either Unix or Windows NT if you want this functionality available at all times. Be sure to set any clients you have connecting to the NT server (including the NT server itself) to point to this server instead of the Samba server.</p><P CLASS="para"> +After you've completed setting this up, try to connect using clients that proxy through the NT server. You should find that it works almost transparently.</p></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_03.html" TITLE="A.3 Installing SSLeay"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.3 Installing SSLeay" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_05.html" TITLE="A.5 SSL Configuration Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A.5 SSL Configuration Options" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +A.3 Installing SSLeay</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +A.5 SSL Configuration Options</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appa_05.html b/docs/htmldocs/using_samba/appa_05.html new file mode 100644 index 0000000000..2048040ec9 --- /dev/null +++ b/docs/htmldocs/using_samba/appa_05.html @@ -0,0 +1,460 @@ +<HTML> +<HEAD> +<TITLE> +[Appendix A] A.5 SSL Configuration Options</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:41:44Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_04.html" TITLE="A.4 Setting Up SSL Proxy"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.4 Setting Up SSL Proxy" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="appendix" REL="up" HREF="appa_01.html" TITLE="A. Configuring Samba with SSL"> +Appendix A<br> +Configuring Samba with SSL</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appb_01.html" TITLE="B. Samba Performance Tuning"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: B. Samba Performance Tuning" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="appa-pgfId-985845"> +A.5 SSL Configuration Options</a></h2><P CLASS="para"> +<A CLASS="xref" HREF="appa_05.html#appa-61150">Table A.1</a> summarizes the configuration options introduced in the previous section for using SSL. Note that all of these options are global in scope; in other words, they must appear in the <CODE CLASS="literal"> +[global]</code> section of the configuration file. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appa-61150"> +Table A.1: SSL Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates whether SSL mode is enabled with Samba.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl hosts</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of addresses)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a list of hosts that must always connect using SSL.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl hosts resign</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of addresses)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a list of hosts that never connect using SS.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl CA certDir</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the directory where the certificates are stored.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl CA certFile</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a file that contains all of the certificates for Samba.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl server cert</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the location of the server's certificate.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl server key</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the location of the server's private key.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl client cert</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the location of the client's certificate.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl client key</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the location of the client's private key.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl require clientcert</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates whether Samba should require each client to have a certificate.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl require servercert</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates whether the server itself should have a certificate.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl ciphers</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +String </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the cipher suite to use during protocol negotiation.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl version</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl2or3</code>, <CODE CLASS="literal"> +ssl3</code>, or <CODE CLASS="literal"> +tls1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the version of SSL to use.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl2or3</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ssl compatibility</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates whether compatibility with other implementations of SSL should be activated.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986013"> +A.5.1 ssl</a></h3><P CLASS="para"> +This global option configures Samba to use SSL for communication between itself and clients. The default value of this option is <CODE CLASS="literal"> +no</code>. You can reset it as follows:</p><PRE CLASS="programlisting"> +[global] + ssl = yes</pre><P CLASS="para"> +Note that in order to use this option, you must have a proxy for Windows 95/98 clients, such as in the model presented earlier in this chapter.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986018"> +A.5.2 ssl hosts</a></h3><P CLASS="para"> +This option specifies the hosts that will be forced into using SSL. The syntax for specifying hosts and addresses is the same as the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> and the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> configuration options. For example:</p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts = 192.168.220.</pre><P CLASS="para"> +This example specifies that all hosts that fall into the 192.168.220 subnet must use SSL connections with the client. This type of structure is useful if you know that various connections will be made by a subnet that lies across an untrusted network, such as the Internet. If neither this option nor the <CODE CLASS="literal"> +ssl</code> <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +resign</code> option has been specified, and <CODE CLASS="literal"> +ssl</code> is set to <CODE CLASS="literal"> +yes</code>, Samba will allow only SSL connections from all clients.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986024"> +A.5.3 ssl hosts resign</a></h3><P CLASS="para"> +This option specifies the hosts that will <EM CLASS="emphasis"> +not</em> be forced into SSL mode. The syntax for specifying hosts and addresses is the same as the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> and the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> configuration options. For example:</p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts resign = 160.2.310. 160.2.320.</pre><P CLASS="para"> +This example specifies that all hosts that fall into the 160.2.310 or 160.2.320 subnets will not use SSL connections with the client. If neither this option nor the <CODE CLASS="literal"> +ssl</code> <CODE CLASS="literal"> +hosts</code> option has been specified, and <CODE CLASS="literal"> +ssl</code> is set to <CODE CLASS="literal"> +yes</code>, Samba will allow only SSL connections from all clients.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986030"> +A.5.4 ssl CA certDir</a></h3><P CLASS="para"> +This option specifies the directory containing the certificate authority's certificates that Samba will use to authenticate clients. There must be one file in this directory for each certificate authority, named as specified earlier in this chapter. Any other files in this directory are ignored. For example:</p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts = 192.168.220. + ssl CA certDir = /usr/local/samba/cert</pre><P CLASS="para"> +There is no default for this option. You can alternatively use the option <CODE CLASS="literal"> +ssl</code> <CODE CLASS="literal"> +CA</code> <CODE CLASS="literal"> +certFile</code> if you wish to place all the certificate authority information in the same file.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986037"> +A.5.5 ssl CA certFile</a></h3><P CLASS="para"> +This option specifies a file that contains the certificate authority's certificates that Samba will use to authenticate clients. This option differs from <CODE CLASS="literal"> +ssl</code> <CODE CLASS="literal"> +CA</code> <CODE CLASS="literal"> +certDir</code> in that there is only one file used for all the certificate authorities. An example of its usage follows:</p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts = 192.168.220. + ssl CA certFile = /usr/local/samba/cert/certFile</pre><P CLASS="para"> +There is no default for this option. You can also use the option <CODE CLASS="literal"> +ssl</code> <CODE CLASS="literal"> +CA</code> <CODE CLASS="literal"> +certDir</code> if you wish to have a separate file for each certificate authority that Samba trusts.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986044"> +A.5.6 ssl server cert</a></h3><P CLASS="para"> +This option specifies the location of the server's certificate. This option is mandatory; the server must have a certificate in order to use SSL. For example: </p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts = 192.168.220. + ssl CA certFile = /usr/local/samba/cert/certFile + ssl server cert = /usr/local/samba/private/server.pem</pre><P CLASS="para"> +There is no default for this option. Note that the certificate may contain the private key for the server.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986052"> +A.5.7 ssl server key</a></h3><P CLASS="para"> +This option specifies the location of the server's private key. You should ensure that the location of the file cannot be accessed by anyone other than <CODE CLASS="literal"> +root</code>. For example:</p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts = 192.168.220. + ssl CA certFile = /usr/local/samba/cert/certFile + ssl server key = /usr/local/samba/private/samba.pem</pre><P CLASS="para"> +There is no default for this option. Note that the private key may be contained in the certificate for the server. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986060"> +A.5.8 ssl client cert</a></h3><P CLASS="para"> +This option specifies the location of the client's certificate. The certificate may be requested by the Samba server with the <CODE CLASS="literal"> +ssl</code> <CODE CLASS="literal"> +require</code> <CODE CLASS="literal"> +clientcert</code> option; the certificate is also used by <I CLASS="filename"> +smbclient</i>. For example: </p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts = 192.168.220. + ssl CA certFile = /usr/local/samba/cert/certFile + ssl server cert = /usr/local/ssl/private/server.pem + ssl client cert= /usr/local/ssl/private/clientcert.pem</pre><P CLASS="para"> +There is no default for this option. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986069"> +A.5.9 ssl client key</a></h3><P CLASS="para"> +This option specifies the location of the client's private key. You should ensure that the location of the file cannot be accessed by anyone other than <CODE CLASS="literal"> +root</code>. For example:</p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts = 192.168.220. + ssl CA certDir = /usr/local/samba/cert/ + ssl server key = /usr/local/ssl/private/samba.pem + ssl client key = /usr/local/ssl/private/clients.pem</pre><P CLASS="para"> +There is no default for this option. This option is only needed if the client has a certificate. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986078"> +A.5.10 ssl require clientcert</a></h3><P CLASS="para"> +This option specifies whether the client is required to have a certificate. The certificates listed with either the <CODE CLASS="literal"> +ssl</code> <CODE CLASS="literal"> +CA</code> <CODE CLASS="literal"> +certDir</code> or the <CODE CLASS="literal"> +ssl</code> <CODE CLASS="literal"> +CA</code> <CODE CLASS="literal"> +certFile</code> will be searched to confirm that the client has a valid certificate and is authorized to connect to the Samba server. The value of this option is a simple boolean. For example:</p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts = 192.168.220. + ssl CA certFile = /usr/local/samba/cert/certFile + ssl require clientcert = yes</pre><P CLASS="para"> +We recommend that you require certificates from all clients that could be connecting to the Samba server. The default value for this option is <CODE CLASS="literal"> +no</code>.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-990571"> +A.5.11 ssl require servercert</a></h3><P CLASS="para"> +This option specifies whether the server is required to have a certificate. Again, this will be used by the <I CLASS="filename"> +smbclient</i> program. The value of this option is a simple boolean. For example:</p><PRE CLASS="programlisting"> +[global] + ssl = yes + ssl hosts = 192.168.220. + ssl CA certFile = /usr/local/samba/cert/certFile + ssl require clientcert = yes + ssl require servercert = yes</pre><P CLASS="para"> +Although we recommend that you require certificates from all clients that could be connecting to the Samba server, a server certificate is not required. It is, however, recommended. The default value for this option is <CODE CLASS="literal"> +no</code>.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986095"> +A.5.12 ssl ciphers</a></h3><P CLASS="para"> +This option sets the ciphers on which SSL will decide during the negotiation phase of the SSL connection. Samba can use any of the following ciphers:</p><PRE CLASS="programlisting"> +DEFAULT +DES-CFB-M1 +NULL-MD5 +RC4-MD5 +EXP-RC4-MD5 +RC2-CBC-MD5 +EXP-RC2-CBC-MD5 +IDEA-CBC-MD5 +DES-CBC-MD5 +DES-CBC-SHA +DES-CBC3-MD5 +DES-CBC3-SHA +RC4-64-MD5 +NULL</pre><P CLASS="para"> +It is best not to set this option unless you are familiar with the SSL protocol and want to mandate a specific cipher suite.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-986097"> +A.5.13 ssl version</a></h3><P CLASS="para"> +This global option specifies the version of SSL that Samba will use when handling encrypted connections. The default value is <CODE CLASS="literal"> +ssl2or3</code>, which specifies that either version 2 or 3 of the SSL protocol can be used, depending on which version is negotiated in the handshake between the server and the client. However, if you want Samba to use only a specific version of the protocol, you can specify the following:</p><PRE CLASS="programlisting"> +[global] + ssl version = ssl3</pre><P CLASS="para"> +Again, it is best not to set this option unless you are familiar with the SSL protocol and want to mandate a specific version.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appa-pgfId-990580"> +A.5.14 ssl compatibility</a></h3><P CLASS="para"> +This global option specifies whether Samba should be configured to use other versions of SSL. However, because no other versions exist at this writing, the issue is moot and the variable should always be left at the default.</p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_04.html" TITLE="A.4 Setting Up SSL Proxy"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.4 Setting Up SSL Proxy" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appb_01.html" TITLE="B. Samba Performance Tuning"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: B. Samba Performance Tuning" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172">A.4 Setting Up SSL Proxy</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +B. Samba Performance Tuning</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appb_01.html b/docs/htmldocs/using_samba/appb_01.html new file mode 100644 index 0000000000..4e1ec529af --- /dev/null +++ b/docs/htmldocs/using_samba/appb_01.html @@ -0,0 +1,162 @@ +<HTML> +<HEAD> +<TITLE> +[Appendix B] Samba Performance Tuning</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:42:02Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_05.html" TITLE="A.5 SSL Configuration Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.5 SSL Configuration Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Appendix B</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_02.html" TITLE="B.2 Samba Tuning"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: B.2 Samba Tuning" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="appendix"> +<A CLASS="title" NAME="appb-66714"> +B. Samba Performance Tuning</a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#appb-47134" TITLE="B.1 A Simple Benchmark"> +A Simple Benchmark</a><br> +<A CLASS="sect1" HREF="appb_02.html" TITLE="B.2 Samba Tuning"> +Samba Tuning</a><br> +<A CLASS="sect1" HREF="appb_03.html" TITLE="B.3 Sizing Samba Servers"> +Sizing Samba Servers</a></p><P> +</p></div><P CLASS="para">This appendix discusses various ways of performance tuning and system sizing with Samba. <I CLASS="firstterm"> +Performance tuning</i> is the art of finding bottlenecks and adjusting to eliminate them. <EM CLASS="emphasis"> +Sizing</em> is the practice of eliminating bottlenecks by spending money to avoid having them in the first place. Normally, you won't have to worry about either with Samba. On a completely untuned server, Samba will happily support a small community of users. However, on a properly tuned server, Samba will support at least twice as many users. This chapter is devoted to outlining various performance-tuning and sizing techniques that you can use if you want to stretch your Samba server to the limit.</p><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="appb-47134"> +B.1 A Simple Benchmark</a></h2><P CLASS="para">How do you know if you're getting reasonable performance? A simple benchmark is to compare Samba with FTP. <A CLASS="xref" HREF="appb_01.html#appb-73167"> +Table B.1</a> shows the throughput, in kilobytes per second, of a pair of servers: a medium-size Sun SPARC Ultra and a small Linux Pentium server. Numbers are reported in kilobytes per second (KB/s). </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appb-73167"> +Table B.1: Sample Benchmark Benchmarks </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Command</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +FTP</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Untuned Samba</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Tuned Samba</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sparc get</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1014.5</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +645.3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +866.7</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sparc put</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +379.8 </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +386.1</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +329.5</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Pentium get</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +973.27</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +N/A</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +725</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Pentium put</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1014.5</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +N/A</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1100</p></td></tr></tbody></table><P CLASS="para"> +If you run the same tests on your server, you probably won't see the same numbers. However, you <EM CLASS="emphasis"> +should </em>see similar ratios of Samba to FTP, probably in the range of 68 to 80 percent. It's not a good idea to base <EM CLASS="emphasis"> +all</em> of Samba's throughput against FTP. The golden rule to remember is this: if Samba is much slower than FTP, it's time to tune it.</p><P CLASS="para"> +You might think that an equivalent test would be to compare Samba to NFS. In reality, however, it's much less useful to compare their speeds. Depending entirely on whose version of NFS you have and how well it's tuned, Samba can be slower or faster than NFS. We usually find that Samba is faster, but watch out; NFS uses a different algorithm from Samba, so tuning options that are optimal for NFS may be detrimental for Samba. If you run Samba on a well-tuned NFS server, Samba may perform rather badly.</p><P CLASS="para"> +A more popular benchmark is Ziff-Davis' <EM CLASS="emphasis"> +NetBench, </em>a simulation of many users on client machines running word processors and accessing data on the SMB server. It's not a prefect measure (each NetBench client does about ten times the work of a normal user on our site), but it is a fair comparison of similar servers. In tests performed by Jeremy Allison in November 1998, Samba 2.0 on a SGI multiprocessor outperformed NT Server 4.0 (Patch Level 2) on an equivalent high-end Compaq. This was confirmed and strengthened by a Sm@rt Reseller test of NT and Linux on identical hardware in February 1999. </p><P CLASS="para"> +In April 1999, the Mindcraft test lab released a report about a test showing that Samba on a four-processor Linux machine was significantly slower than native file serving on the same machine running Windows NT. While the original report was slammed by the Open Source community because it was commissioned by Microsoft and tuned the systems to favor Windows NT, a subsequent test was fairer and generally admitted to reveal some areas where Linux needed to improve its performance, especially on multiprocessors. Little was said about Samba itself. Samba is known to scale well on multiprocessors, and exceeds 440MB/s on a four-processor SGI O200, beating Mindcraft's 310MB/s.</p><P CLASS="para"> +Relative performance will probably change as NT and PC hardware get faster, of course, but Samba is improving as well. For example, Samba 1.9.18 was faster only with more than 35 clients. Samba 2.0, however, is faster regardless of the number of clients. In short, Samba is very competitive with the best networking software in the industry, and is only getting better. </p><P CLASS="para"> +As we went to press, Andrew Tridgell released the alpha-test version suite of benchmarking programs for Samba and SMB networks. Expect even more work on performance from the Samba team in the future.</p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appa_05.html" TITLE="A.5 SSL Configuration Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: A.5 SSL Configuration Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_02.html" TITLE="B.2 Samba Tuning"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: B.2 Samba Tuning" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +A.5 SSL Configuration Options</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +B.2 Samba Tuning</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appb_02.html b/docs/htmldocs/using_samba/appb_02.html new file mode 100644 index 0000000000..4d2ce9ae3a --- /dev/null +++ b/docs/htmldocs/using_samba/appb_02.html @@ -0,0 +1,342 @@ +<HTML> +<HEAD> +<TITLE> +[Appendix B] B.2 Samba Tuning</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:42:03Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_01.html" TITLE="B.1 A Simple Benchmark"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: B.1 A Simple Benchmark" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="appendix" REL="up" HREF="appb_01.html" TITLE="B. Samba Performance Tuning"> +Appendix B<br> +Samba Performance Tuning</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_03.html" TITLE="B.3 Sizing Samba Servers"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: B.3 Sizing Samba Servers" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="appb-50295"> +B.2 Samba Tuning</a></h2><P CLASS="para">That being said, let's discuss how you can take an already fast networking package and make it even faster.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appb-pgfId-948325"> +B.2.1 Benchmarking</a></h3><P CLASS="para">Benchmarking is an arcane and somewhat black art, but the level of expertise needed for simple performance tuning is fairly low. Since the Samba server's goal in life is to transfer files, we will examine only throughput, not response time to particular events, under the benchmarking microscope. After all, it's relatively easy to measure file transfer speed, and Samba doesn't suffer too badly from response-time problems that would require more sophisticated techniques. </p><P CLASS="para"> +Our basic strategy for this work will be:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-948328"> +</a>Find a reasonably-sized file to copy and a program that reports on copy speeds, such as <I CLASS="filename"> +smbclient</i>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-948329"> +</a>Find a quiet (or typical) time to do the test.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-948330"> +</a>Pre-run each test a few times to preload buffers.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-948331"> +</a>Run tests several times and watch for unusual results.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-948332"> +</a>Record each run in detail.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-948333"> +</a>Compare the average of the valid runs to expected values.</p></li></ul><P CLASS="para"> +After establishing a baseline using this method, we can adjust a single parameter and do the measurements all over again. An empty table for your tests is provided at the end of this chapter.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appb-pgfId-948336"> +B.2.2 Things to Tweak</a></h3><P CLASS="para"> +There are literally thousands of Samba setting combinations that you can use in search of that perfect server. Those of us with lives outside of system administration, however, can narrow down the number of options to those listed in this section, which are the most likely to affect overall throughput. They are presented roughly in order of impact.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-948339"> +B.2.2.1 Log level</a></h4><P CLASS="para">This is an obvious one. Increasing the logging level (<CODE CLASS="literal">log</code> <CODE CLASS="literal"> +level</code> or <CODE CLASS="literal"> +debug</code> <CODE CLASS="literal"> +level</code> configuration options) is a good way to debug a problem, unless you happen to be searching for a performance problem! As mentioned in <a href="ch04_01.html"><b>Chapter 4, <CITE CLASS="chapter">Disk Shares</cite></b></a>, Samba produces a ton of debugging messages at level 3 and above, and writing them to disk or syslog is a slow operation. In our <I CLASS="filename"> +smbclient/ftp</i> tests, raising the log level from 0 to 3 cut the untuned <CODE CLASS="literal"> +get</code> <CODE CLASS="literal"> +speed</code> from 645.3 to 622.2KB/s, or roughly 5 percent. Higher log levels were even worse.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-948342"> +B.2.2.2 Socket options</a></h4><P CLASS="para"> +The next thing to look at are the <CODE CLASS="literal"> +socket</code> <CODE CLASS="literal"> +options</code> configuration options. These are really host system tuning options, but they're set on a per-connection basis, and can be reset by Samba on the sockets it employs by adding <CODE CLASS="literal"> +socket</code> <CODE CLASS="literal"> +options</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +option</code> to the <CODE CLASS="literal"> +[global]</code> section of your <I CLASS="filename"> +smb.conf </i>file. Not all of these options are supported by all vendors; check your vendor's manual pages on <I CLASS="function"> +setsockopt </i>(1) or <I CLASS="function"> +socket </i>(5) for details.</p><P CLASS="para"> +The main options are:</p><DL CLASS="variablelist"> +<DT CLASS="term"> +<CODE CLASS="literal"> +TCP_NODELAY</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Have the server send as many packets as necessary to keep delay low. This is used on telnet connections to give good response time, and is used - somewhat counter-intuitively - to get good speed even when doing small requests or when acknowledgments are delayed (as seems to occur with Microsoft TCP/IP). This is worth a 30-50 percent speedup by itself. Incidentally, in Samba 2.0.4, <CODE CLASS="literal"> +socket</code> <CODE CLASS="literal"> +options</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +TCP_NODELAY</code> became the default value for that option.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +IPTOS_LOWDELAY</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +This is another option that trades off throughput for lower delay, but which affects routers and other systems, not the server. All the IPTOS options are new; they're not supported by all operating systems and routers. If they are supported, set <CODE CLASS="literal"> +IPTOS_LOWDELAY</code> whenever you set <CODE CLASS="literal"> +TCP_NODELAY</code>.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +SO_SNDBUF</code> <CODE CLASS="literal"> +and</code> <CODE CLASS="literal"> +SO_RCVBUF</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +The send and receive buffers can often be the reset to a value higher than that of the operating system. This yields a marginal increase of speed (until it reaches a point of diminishing returns). </p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +SO_KEEPALIVE</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +This initiates a periodic (four-hour) check to see if the client has disappeared. Expired connections are addressed somewhat better with Samba's <CODE CLASS="literal"> +keepalive</code> and <CODE CLASS="literal"> +dead</code> <CODE CLASS="literal"> +time</code> options. All three eventually arrange to close dead connections, returning unused memory and process-table entries to the operating system.</p></dd></dl><P CLASS="para"> +There are several other socket options you might look at, (e.g., <CODE CLASS="literal"> +SO_SNDLOWAT</code>), but they vary in availability from vendor to vendor. You probably want to look at <CITE CLASS="citetitle"> +TCP/IP Illustrated</cite> if you're interested in exploring more of these options for performance tuning with Samba.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-948370"> +B.2.2.3 read raw and write raw</a></h4><P CLASS="para">These are important performance configuration options; they enable Samba to use large reads and writes to the network, of up to 64KB in a single SMB request. They also require the largest SMB packet structures, <CODE CLASS="literal"> +SMBreadraw</code> and <CODE CLASS="literal"> +SMBwriteraw</code>, from which the options take their names. Note that this is not the same as a Unix <EM CLASS="emphasis"> +raw read</em>. This Unix term usually refers to reading disks without using the files system, quite a different sense from the one described here for Samba.</p><P CLASS="para"> +In the past, some client programs failed if you tried to use <CODE CLASS="literal"> +read</code> <CODE CLASS="literal"> +raw</code>. As far as we know, no client suffers from this problem any more. Read and write raw default to <CODE CLASS="literal"> +yes</code>, and should be left on unless you find you have one of the buggy clients.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-948374"> +B.2.2.4 Opportunistic locking</a></h4><P CLASS="para">Opportunistic locks, or <EM CLASS="emphasis"> +oplocks</em>, allow clients to cache files locally, improving performance on the order of 30 percent. This option is now enabled by default. For read-only files, the <CODE CLASS="literal"> +fake</code> <CODE CLASS="literal"> +oplocks</code> provides the same functionality without actually doing any caching. If you have files that cannot be cached, <EM CLASS="emphasis"> +oplocks</em> can be turned off.</p><P CLASS="para"> +Database files should never be cached, nor should any files that are updated both on the server and the client and whose changes must be immediately visible. For these files, the <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +oplock</code> <CODE CLASS="literal"> +files</code> option allows you to specify a list of individual files or a pattern containing wildcards to avoid caching. <EM CLASS="emphasis"> +oplocks</em> can be turned off on a share-by-share basis if you have large groups of files you don't want cached on clients. See <a href="ch05_01.html"><b>Chapter 5, <CITE CLASS="chapter">Browsing and Advanced Disk Shares</cite></b></a>, for more information on opportunistic locks.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-948378"> +B.2.2.5 IP packet size (MTU)</a></h4><P CLASS="para">Networks generally set a limit to the size of an individual transmission or packet This is called the Maximum Segment Size, or if the packet header size is included, the Maximum Transport Unit (MTU). This MTU is not set by Samba, but Samba needs to use a <CODE CLASS="literal"> +max</code> <CODE CLASS="literal"> +xmit</code> (write size) bigger than the MTU, or throughput will be reduced. This is discussed in further detail in the following note. The MTU is normally preset to 1500 bytes on an Ethernet and 4098 bytes on FDDI. In general, having it too low cuts throughput, and having it too high causes a sudden performance dropoff due to fragmentation and retransmissions.</p><P CLASS="para"> +If you are communicating over a router, some systems will assume the router is a serial link (e.g., a T1) and set the MTU to more or less 536 bytes. Windows 95 makes this mistake, which causes nearby clients to perform well, but clients on the other side of the router to be noticeably slower. If the client makes the opposite error and uses a large MTU on a link which demands a small one, the packets will be broken up into fragments. This slows transfers slightly, and any networking errors will cause multiple fragments to be retransmitted, which slows Samba significantly. Fortunately, you can modify the Windows MTU size to prevent either error. To understand this in more detail, see "The Windows 95 Networking Frequently Asked Questions (FAQ)" at <A CLASS="systemitem.url" HREF="http://www.stanford.edu/~llurch/win95netbugs/faq.html"> +http://www.stanford.edu/~llurch/win95netbugs/faq.html</a>, which explains how to override the Windows MTU and Window Size.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-19919"> +<a name="b226"></a> +B.2.2.6 The TCP receive window</a></h4><P CLASS="para">TCP/IP works by breaking down data into small packets that can be transmitted from one machine to another. When each packet is transmitted, it contains a checksum that allows the receiver to check the packet data for potential errors in transmission. Theoretically, when a packet is received and verified, an acknowledgment packet should be sent back to the sender that essentially says, "Everything arrived intact: please continue."</p><P CLASS="para"> +In order to keep things moving, however, TCP accepts a range (window) of packets that allows a sender to keep transmitting without having to wait for an acknowledgment of every single packet. (It can then bundle a group of acknowledgments and transmit them back to the sender at the same time.) In other words, this receive window is the number of bytes that the sender can transmit before it has to stop and wait for a receiver's acknowledgment. Like the MTU, it is automatically set based on the type of connection. Having the window too small causes a lot of unnecessary waiting for acknowledgment messages. Various operating systems set moderate buffer sizes on a per-socket basis to keep one program from hogging all the memory.</p><P CLASS="para"> +The buffer sizes are assigned in bytes, such as <CODE CLASS="literal"> +SO_SNDBUF=8192</code> in the <CODE CLASS="literal"> +socket</code> <CODE CLASS="literal"> +options</code> line. Thus, an example <CODE CLASS="literal"> +socket</code> <CODE CLASS="literal"> +options</code> configuration option is: </p><PRE CLASS="programlisting"> +<CODE CLASS="literal">socket</code> <CODE CLASS="literal">options</code> <CODE CLASS="literal">=</code> <CODE CLASS="literal">SO_SNDBUF=8192</code> </pre><P CLASS="para"> +Normally, one tries to set these socket options higher than the default: 4098 in SunOS 4.1.3 and SVR4, and 8192-16384 in AIX, Solaris, and BSD. 16384 has been suggested as a good starting point: in a non-Samba test mentioned in Stevens' book, it yielded a 40 percent improvement. You'll need to experiment, because performance will fall off again if you set the sizes too high. This is illustrated in <A CLASS="xref" HREF="appb_02.html#appb-34738"> +Figure B.1</a>, a test done on a particular Linux system. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="appb-34738"> +Figure B.1: SO_SNDBUF size and performance</a></h4><IMG CLASS="graphic" SRC="figs/sam.ab01.gif" ALT="Figure B.1"><P CLASS="para"> +Setting the socket options <CODE CLASS="literal"> +O_SNDBUF</code> and <CODE CLASS="literal"> +SO_RCVBUF</code> to less than the default is inadvisable. Setting them higher improves performance, up to a network-specific limit. However, once you exceed that limit, performance will abruptly level off.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-960372"> +B.2.2.7 max xmit</a></h4><P CLASS="para">In Samba, the option that is directly related with the MTU and window size is <CODE CLASS="literal"> +max</code> <CODE CLASS="literal"> +xmit</code>. This option sets the largest block of data Samba will try to write at any one time. It's sometimes known as the <I CLASS="firstterm"> +write size</i>, although that is not the name of the Samba configuration option.</p><P CLASS="para"> +Because the percentage of each block required for overhead falls as the blocks get larger, max xmit is conventionally set as large as possible. It defaults to the protocol's upper limit, which is 64 kilobytes. The smallest value that doesn't cause significant slowdowns is 2048. If it is set low enough, it will limit the largest packet size that Samba will be able to negotiate. This can be used to simulate a small MTU if you need to test an unreliable network connection. However, such a test should not be used in production for reducing the effective MTU.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-948396"> +B.2.2.8 read size</a></h4><P CLASS="para">If <CODE CLASS="literal"> +max</code> <CODE CLASS="literal"> +xmit</code> is commonly called the write size, you'd expect <CODE CLASS="literal"> +read</code> <CODE CLASS="literal"> +size</code> to be the maximum amount of data that Samba would want to read from the client via the network. Actually, it's not. In fact, it's an option to trigger <I CLASS="firstterm"> +write ahead</i>. This means that if Samba gets behind reading from the disk and writing to the network (or vice versa) by the specified amount, it will start overlapping network writes with disk reads (or vice versa).</p><P CLASS="para"> +The read size doesn't have a big performance effect on Unix, unless you set its value quite small. At that point, it causes a detectable slowdown. For this reason, it defaults to 2048 and can't be set lower than 1024.</p></div><DIV CLASS="sect3"> + +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-950907"> +B.2.2.9 read prediction </a></h4> + +<P CLASS="para">Besides being counterintuitive, this option is also +obsolete. It enables Samba to read ahead on files opened read only by the +clients. The option is disabled in Samba 2.0 (and late 1.9) because it +interferes with opportunistic locking.</p> + +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-950907-add1"> +B.2.2.10 write cache size </a></h4> + +<P CLASS="para"> +This parameter was introduced in Samba 2.0.7 to allow tuning the +write-size of RAID disks, as well as allowing general caching of +writes on machines with lots of memory but slow disks.</p> + +<p> It specifies in bytes the size of a per-file write cache that +Samba will create for an oplocked file. This can improve performance +significantly by causing writes to be done in large +chunk sizes. </p> + +<p> Up to 10 write caches can be active simultaneously per smbd, each of +the specified size, allocated to the first 10 oplocked files. As with +other filesystem caches, crashing before the data is written can corrupt +files. </P> + +<p> Setting <CODE CLASS="literal"> sync always </CODE> will override the +write caching, and setting <CODE CLASS="literal">strict sync</CODE> will +allow Windows clients to override it. Alas, Windows Explorer defaults +to setting the sync bit, so setting <CODE CLASS="literal">strict sync</CODE> +can be a big performance hit.</p> + +<p> As it's new, we haven't many reports on the performance increase, and +merely suspect it will be considerable.</p> +</div></div><DIV CLASS="sect2"> + + + +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appb-pgfId-948407"> +B.2.3 Other Samba Options</a></h3><P CLASS="para">The following Samba options will affect performance if they're set incorrectly, much like the debug level. They're mentioned here so you will know what to look out for:</p><DL CLASS="variablelist"> +<DT CLASS="term"> +<CODE CLASS="literal">hide files</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Providing a pattern to identify files hidden by the Windows client <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +files</code> will result in any file matching the pattern being passed to the client with the DOS hidden attribute set. It requires a pattern match per file when listing directories, and slows the server noticeably.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +lpq cache time</code></dt><DD CLASS="listitem"> +<P CLASS="para">If your <CODE CLASS="literal"> +lpq</code> (printer queue contents) command takes a long time to complete, you should increase <CODE CLASS="literal"> +lpq</code> <CODE CLASS="literal"> +cache</code> <CODE CLASS="literal"> +time</code> to a value higher than the actual time required for <CODE CLASS="literal"> +lpq</code> to execute, so as to keep Samba from starting a new query when one's already running. The default is 10 seconds, which is reasonable.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +strict locking</code></dt><DD CLASS="listitem"> +<P CLASS="para">Setting the <CODE CLASS="literal"> +strict</code> <CODE CLASS="literal"> +locking</code> option causes Samba to check for locks on every access, not just when asked to by the client. The option is primarily a bug-avoidance feature, and can prevent ill-behaved DOS and Windows applications from corrupting shared files. However, it is slow and should typically be avoided.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +strict sync</code></dt><DD CLASS="listitem"> +<P CLASS="para">Setting <CODE CLASS="literal"> +strict</code> <CODE CLASS="literal"> +sync</code> will cause Samba to write each packet to disk and wait for the write to complete whenever the client sets the sync bit in a packet. Windows 98 Explorer sets the bit in all packets transmitted, so if you turn this on, anyone with Windows 98 will think Samba servers are horribly slow.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +sync always</code></dt><DD CLASS="listitem"> +<P CLASS="para">Setting <CODE CLASS="literal"> +sync</code> <CODE CLASS="literal"> +always</code> causes Samba to flush every write to disk. This is good if your server crashes constantly, but the performance costs are immense. SMB servers normally use oplocks and automatic reconnection to avoid the ill effects of crashes, so setting this option is not normally necessary.</p></dd><DT CLASS="term"> +<CODE CLASS="literal">wide links</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Turning off <CODE CLASS="literal"> +wide</code> <CODE CLASS="literal"> +links</code> prevents Samba from following symbolic links in one file share to files that are not in the share. It is turned on by default, since following links in Unix is not a security problem. Turning it off requires extra processing on every file open. If you do turn off wide links, be sure to turn on <CODE CLASS="literal"> +getwd</code> <CODE CLASS="literal"> +cache</code> to cache some of the required data.</p><P CLASS="para"> +There is also a <CODE CLASS="literal"> +follow</code> <CODE CLASS="literal"> +symlinks</code> option that can be turned off to prevent following any symbolic links at all. However, this option does not pose a performance problem.</p></dd><DT CLASS="term"> +<CODE CLASS="literal">getwd cache</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +This option caches the path to the current directory, avoiding long tree-walks to discover it. It's a nice performance improvement on a printer server or if you've turned off <CODE CLASS="literal"> +wide</code> <CODE CLASS="literal"> +links</code>.</p></dd></dl></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appb-pgfId-948430"> +B.2.4 Our Recommendations </a></h3><P CLASS="para">Here's an <I CLASS="filename"> +smb.conf</i> file that incorporates the recommended performance enhancements so far. Comments have been added on the right side.</p><PRE CLASS="programlisting"> +[global] + log level = 1 # Default is 0 + socket options = TCP_NODELAY IPTOS_LOWDELAY + read raw = yes # Default + write raw = yes # Default + oplocks = yes # Default + max xmit = 65535 # Default + dead time = 15 # Default is 0 + getwd cache = yes + lpq cache = 30 +[okplace] + veto oplock files = this/that/theotherfile +[badplace] + oplocks = no</pre></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_01.html" TITLE="B.1 A Simple Benchmark"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: B.1 A Simple Benchmark" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_03.html" TITLE="B.3 Sizing Samba Servers"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: B.3 Sizing Samba Servers" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +B.1 A Simple Benchmark</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +B.3 Sizing Samba Servers</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appb_03.html b/docs/htmldocs/using_samba/appb_03.html new file mode 100644 index 0000000000..115be4daa3 --- /dev/null +++ b/docs/htmldocs/using_samba/appb_03.html @@ -0,0 +1,876 @@ +<HTML> +<HEAD> +<TITLE> +[Appendix B] B.3 Sizing Samba Servers</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:42:12Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_02.html" TITLE="B.2 Samba Tuning"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: B.2 Samba Tuning" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="appendix" REL="up" HREF="appb_01.html" TITLE="B. Samba Performance Tuning"> +Appendix B<br> +Samba Performance Tuning</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appc_01.html" TITLE="C. Samba Configuration Option Quick Reference"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: C. Samba Configuration Option Quick Reference" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="appb-22511"> +B.3 Sizing Samba Servers</a></h2><P CLASS="para">Sizing is a way to prevent bottlenecks before they occur. The preferred way to do this is to know how many requests per second or how many kilobytes per second the clients will need, and ensure that all the components of the server provide at least that many.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appb-pgfId-948449"> +B.3.1 The Bottlenecks</a></h3><P CLASS="para">The three primary bottlenecks you should worry about are CPU, disk I/O, and the network. For most machines, CPUs are rarely a bottleneck. A single Sun SPARC 10 CPU can start (and complete) between 700 and 800 I/O operations a second, giving approximately 5,600 to 6,400KB/s of throughput when the data averages around 8KBs (a common buffer size). A single Intel Pentium 133 can do less only because of somewhat slower cache and bus interfaces, not due to lack of CPU power. Purpose-designed Pentium servers, like some Compaq servers, will be able to start 700 operations per CPUs, on up to four CPUs.</p><P CLASS="para"> +Too little memory, on the other hand, can easily be a bottleneck; each Samba process will use between 600 and 800KB on Intel Linux, and more on RISC CPUs. Having less will cause an increase in virtual memory paging and therefore a performance hit. On Solaris, where it has been measured, <EM CLASS="emphasis"> +smbd</em> will use 2.6 MB for program and shared libraries, plus 768KB for each connected client. <EM CLASS="emphasis"> +nmbd</em> occupies 2.1 MB, plus 496KB extra for its (single) auxiliary process.</p><P CLASS="para"> +Hard disks will always bottleneck at a specific number of I/O operations per second: for example, each 7200 RPM SCSI disk is capable of performing 70 operations per second, for a throughput of 560KB/s; a 4800 RPM disk will perform fewer than 50, for a throughput of 360KB/s. A single IDE disk will do still fewer. If the disks are independent, or striped together in a RAID 1 configuration, they will each peak out at 400 to 560KB/s and will scale linearly as you add more. Note that this is true only of RAID 1. RAID levels other than 1 (striping) add extra overhead. </p><P CLASS="para"> +Ethernets (and other networks) are obvious bottleneck: a 10 Mb/s (mega<EM CLASS="emphasis"> +bits</em>/second) Ethernet will handle around 1100KB/s (kilo<EM CLASS="emphasis"> +bytes</em>/s) using 1500-byte packets A 100 Mb/s Fast Ethernet will bottleneck below 65,000KB/s with the same packet size. FDDI, at 155 Mb/s will top out at approximately 6,250KB/s, but gives good service at even 100 percent load and transmits much larger packets (4KB).</p><P CLASS="para"> +ATM should be much better, but as of the writing of this book it was too new to live up to its potential; it seems to deliver around 7,125 Mb/s using 9KB packets. </p><P CLASS="para"> +Of course, there can be other bottlenecks: more than one IDE disk per controller is not good, as are more than three 3600 SCSI-I disks per slow/narrow controller, or more than three 7200 SCSI-II disks per SCSI-II fast/wide controller. RAID 5 is also slow, as it requires twice as many writes as independent disks or RAID 1.</p><P CLASS="para"> +After the second set of Ethernets and the second disk controller, start worrying about bus bandwidth, especially if you are using ISA/EISA buses.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appb-pgfId-948459"> +B.3.2 Reducing Bottlenecks </a></h3><P CLASS="para">From the information above we can work out a model that will tell us the maximum capability of a given machine. The data is mostly taken from Brian Wong's <CITE CLASS="citetitle"> +Configuration and Capacity Planning for Solaris Servers</cite>,<CITE CLASS="citetitle"> +[<A CLASS="footnote" HREF="#appb-pgfId-951214">1</a>]</cite> so there is a slight Sun bias to our examples.</p><P CLASS="para"> +A word of warning: this is not a complete model. Don't assume that this model will predict every bottleneck or even be within 10 percent in its estimates. A model to predict performance instead of one to warn you of bottlenecks would be much more complex and would contain rules like "not more than three disks per SCSI chain". (A good book on real models is Raj Jain's <CITE CLASS="citetitle"> +The Art of Computer Systems Performance Analysis</cite>.[<A CLASS="footnote" HREF="#appb-pgfId-951230">2</a>]) With that warning, we present the system in <A CLASS="xref" HREF="appb_03.html#appb-98866"> +Figure B.2</a>. </p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="appb-pgfId-951230">[2]</a> See Jain. Raj, <EM CLASS="emphasis"> +The Art of Computer Systems Performance Analysis</em>, New York, NY (John Wiley and Sons), 1991, ISBN 0-47-150336-3.</p></div></blockquote><H4 CLASS="figure"> +<A CLASS="title" NAME="appb-98866"> +Figure B.2: Data flow through a Samba server, with possible bottlenecks</a></h4><IMG CLASS="graphic" SRC="figs/sam.ab02.gif" ALT="Figure B.2"><P CLASS="para"> +The flow of data should be obvious. For example, on a read, data flows from the disk, across the bus, through or past the CPU, and to the network interface card (NIC). It is then broken up into packets and sent across the network. Our strategy here is to follow the data through the system and see what bottlenecks will choke it off. Believe it or not, it's rather easy to make a set of tables that list the maximum performance of common disks, CPUs, and network cards on a system. So that's exactly what we're going to do.</p><P CLASS="para"> +Let's take a concrete example: a Linux Pentium 133 MHz machine with a single 7200 RPM data disk, a PCI bus, and a 10-Mb/s Ethernet card. This is a perfectly reasonable server. We start with <A CLASS="xref" HREF="appb_03.html#appb-78077"> +Table B.2</a>, which describes the hard drive - the first potential bottleneck in the system. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appb-78077"> +Table B.2: Disk Throughput </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Disk RPM</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +I/O Operations/second</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +KB/second</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +7200</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +70</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +560</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +4800</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +60</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +480</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +3600</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +40</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +320</p></td></tr></tbody></table><P CLASS="para"> +Disk throughput is the number of kilobytes of data that a disk can transfer per second. It is computed from the number of 8KB I/O operations per second a disk can perform, which in turn is strongly influenced by disk RPM and bit density. In effect, the question is: how much data can pass below the drive heads in one second? With a single 7200 RPM disk, the example server will give us 70 I/O operations per second at roughly 560KB/s.</p><P CLASS="para"> +The second possible bottleneck is the CPU. The data doesn't actually flow through the CPU on any modern machines, so we have to compute throughput somewhat indirectly.</p><P CLASS="para"> +The CPU has to issue I/O requests and handle the interrupts coming back, then transfer the data across the bus to the network card. From much past experimentation, we know that the overhead that dominates the processing is consistently in the filesystem code, so we can ignore the other software being run. We compute the throughput by just multiplying the (measured) number of file I/O operations per second that a CPU can process by the same 8K average request size. This gives us the results shown in <A CLASS="xref" HREF="appb_03.html#appb-42029"> +Table B.3</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appb-42029"> +Table B.3: CPU Throughput </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +CPU</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +I/O Operations/second</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +KB/second</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Intel Pentium 133</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +700</p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +5,600</p> +</td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Dual Pentium 133</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1,200</p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +9,600</p> +</td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sun SPARC II</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +660</p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +5,280</p> +</td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sun SPARC 10</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +750</p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +6,000</p> +</td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sun Ultra 200</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2,650</p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +21,200</p> +</td></tr></tbody></table><P CLASS="para"> +Now we put the disk and the CPU together: in the Linux example, we have a single 7200 RPM disk, which can give us 560KB/s, and a CPU capable of starting 700 I/O operations, which could give us 5600KB/s. So far, as you would expect, our bottleneck is clearly going to be the hard disk.</p><P CLASS="para"> +The last potential bottleneck is the network. If the network speed is below 100 Mb/s, the bottleneck will be the network speed. After that, the design of the network card is more likely to slow us down. <A CLASS="xref" HREF="appb_03.html#appb-67604"> +Table B.4</a> shows us the average throughput of many types of data networks. Although network speed is conventionally measured in bits per second, <A CLASS="xref" HREF="appb_03.html#appb-67604"> +Table B.4</a> lists bytes per second to make comparison with the disk and CPU (<A CLASS="xref" HREF="appb_03.html#appb-78077">Table B.2</a> and <A CLASS="xref" HREF="appb_03.html#appb-42029"> +Table B.3</a>) easier.</p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appb-67604"> +Table B.4: Network Throughput </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Network Type</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +KB/second</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + ISDN </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + 16 </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + T1 </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + 197 </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + Ethernet 10m </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + 1,113 </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + Token ring </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + 1,500 </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + FDDI </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + 6,250 </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + Ethernet 100m </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + 6,500[<A CLASS="footnote" HREF="#appb-pgfId-960131">3</a>]</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + ATM 155 </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> + 7,125a </p></td></tr></tbody></table><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="appb-pgfId-960131">[3]</a> These will increase. For example, Crays, Sun Ultras, and DEC/Compaq Alphas already have bettered these figures.</p></div></blockquote><P CLASS="para"> +In the running example, we have a bottleneck at 560KB/s due to the disk. <A CLASS="xref" HREF="appb_03.html#appb-67604"> +Table B.4</a> shows us that a standard 10 megabit per second Ethernet (1,113KB/s) is far faster than the disk. Therefore, the hard disk is still the limiting factor. (This scenario, by the way, is very common.) Just by looking at the tables, we can predict that small servers won't have CPU problems, and that large ones with multiple CPUs will support striping and multiple Ethernets long before they start running out of CPU power. This, in fact, is exactly what happens.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appb-pgfId-948657"> +B.3.3 Practical Examples</a></h3><P CLASS="para"> +An example from <EM CLASS="emphasis"> +Configuration and Capacity Planning for Solaris Servers</em> (Wong) shows that a dual-processor SPARCstation 20/712 with four Ethernets and six 2.1 GB disks will spend all its time waiting for the disks to return some data. If it was loaded with disks (Brian Wong suggests as many as 34 of them), it would still be held below 1,200KB/s by the Ethernet cards. To get the performance the machine is capable of, we would need to configure multiple Ethernets, 100 Mbps Fast Ethernet, or 155 Mbps FDDI. </p><P CLASS="para"> +The progression you'd work through to get that conclusion looks something like <A CLASS="xref" HREF="appb_03.html#appb-26613"> +Table B.5</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appb-26613"> +Table B.5: Tuning a Medium-Sized Server </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Machine</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Disk Throughput</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +CPU Throughput</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Network Throughput</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Actual Throughput</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Dual SPARC 10, 1 disk </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +560</em></p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +6000 </p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1,113 </p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +560 </p> +</td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Add 5 more disks </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +3,360 </p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +6000</p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +1,113 </em></p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1,113 </p> +</td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Add 3 more Ethernets </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +3,360 </em></p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +16000</p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +4,452 </p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +3,360 </p> +</td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Change to using a 20-disk array </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +11,200 </p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +6000 </p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +4,452</em> </p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +4,452 </p> +</td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Use dual 100 Mbps ether </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +11,200 </em></p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +6000 </p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +13,000 </p> +</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +11,200</p> +</td></tr></tbody></table><P CLASS="para"> +Initially, the bottleneck is the disk with only 560 MB/s of throughput available. Our solution is to add five more disks. This gives us more throughput on the disks than on the Ethernet, so then the Ethernet becomes the problem. Consequently, as we continue to expand, we go back and forth several times between these two. As you add disks, CPUs, and network cards, the bottleneck moves. Essentially, the strategy is to add more equipment to try to avoid each bottleneck until you reach your target performance, or (unfortunately) you either can't add any more or run out of money.</p><P CLASS="para"> +Our experience bears out this kind of calculation; a large SPARC 10 file server that one author maintained was quite capable of saturating an Ethernet plus about a third of an FDDI ring when using two processors. It did nearly as well with a single processor, albeit with a fast operating system and judicious over-optimization.</p><P CLASS="para"> +The same process applies to other brands of purpose-designed servers. We found the same rules applied to DECstation 2100s as to the newest Alphas or Compaqs, old MIPS 3350s and new SGI O2s. In general, a machine offering multi-CPU server configurations will have enough bus bandwidth and CPU power to reliably bottleneck on hard disk I/O when doing file service. As one would hope, considering the cost!</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appb-pgfId-948730"> +B.3.4 How Many Clients can Samba Handle?</a></h3><P CLASS="para"> +Well, that depends entirely on how much data each user consumes. A small server with three SCSI-1 disks, which can serve about 960KB/s of data, will support between 36 and 80 clients in an ordinary office environment where they are typically loading, and saving equal-sized spreadsheets or word processing documents (36 clients × 2.3 transfers/second × 12k file 1 MB/s).</p><P CLASS="para"> +On the same server in a development environment with programmers running a fairly heavy edit-compile-test cycle, one can easily see requests for 1 MB/s, limiting the server to 25 or fewer clients. To take this a bit further, an imaging system whose clients each require 10 MB/s will perform poorly no matter how big a server is if they're all on a 10 MB/s Ethernet. And so on. </p><P CLASS="para"> +If you don't know how much data an average user consumes, you can size your Samba servers by patterning them after existing NFS, Netware, or LAN Manager servers. You should be especially careful that the new servers have as many disks and disk controllers as the ones you've copied. This technique is appropriately called "punt and hope."</p><P CLASS="para"> +If you know how many clients an existing server can support, you're in <EM CLASS="emphasis"> +much</em> better shape. You can analyze the server to see what its maximum capacity is and use that to estimate how much data they must be demanding. For example, if serving home directories to 30 PCs from a PC server with two IDE disks is just too slow, and 25 clients is about right, then you can safely assume you're bottlenecked on Ethernet I/O (approximately 375KB) rather than disk I/O (up to 640KB). If so, you can then conclude that the clients are demanding 15 (that is, 375/25)KB/s on average.</p><P CLASS="para"> +Supporting a new lab of 75 clients will mean you'll need 1,125KB/s, spread over multiple (preferably three) Ethernets, and a server with at least three 7200 RPM disks and a CPU capable of keeping up. These requirements can be met by a Pentium 133 or above with the bus architecture to drive them all at full speed (e.g., PCI).</p><P CLASS="para"> +A custom-built PC server or a multiprocessor-capable workstation like a Sun Sparc, a DEC/Compaq Alpha, an SGI, or the like, would scale up easier, as would a machine with fast Ethernet, plus a switching hub to drive the client machines on individual 10 MB/s Ethernets.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="appb-pgfId-948739"> +B.3.4.1 How to guess</a></h4><P CLASS="para"> +If you have no idea at all what you need, the best thing is to try to guess based on someone else's experience. Each individual client machine can average from less than 1 I/O per second (normal PC or Mac used for sales/accounting) to as much as 4 (fast workstation using large applications). A fast workstation running a compiler can happily average 3-4 MB/s in data transfer requests, and an imaging system can demand even more. </p><P CLASS="para"> +Our recommendation? Spy on someone with a similar configuration and try to estimate their bandwidth requirements from their bottlenecks and the volume of the screams from their users. We also recommend Brian Wong's <CITE CLASS="citetitle"> +Configuration and Capacity Planning for Solaris Servers</cite>. While he uses Sun Solaris foremost in his examples, his bottlenecks are disks and network cards, which are common among all the major vendors. His tables for FTP servers also come very close to what we calculated for Samba servers, and make a good starting point.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="appb-90359">B.3.5 Measurement Forms</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="appb_03.html#appb-82208">Table B.6</a> and <A CLASS="xref" HREF="appb_03.html#appb-34846"> +Table B.7</a> are empty tables that you can use for copying and recording data. The bottleneck calculation in the previous example can be done in a spreadsheet, or manually with Table B-8. If Samba is as good as or better than FTP, and if there aren't any individual test runs that are much different from the average, you have a well-configured system. If loopback isn't much faster than anything else, you have a problem with your TCP/IP software. If both FTP and Samba are slow, you probably have a problem with your networking: a faulty Ethernet card will produce this, as will accidentally setting an Ethernet card to half-duplex when it's not connected to a half-duplex hub. Remember that CPU and disk speeds are commonly measured in bytes, network speeds in bits. </p><P CLASS="para"> +We've included columns for both bytes and bits in the tables. In the last column, we compare results to 10 Mb/s because that's the speed of a traditional Ethernet. <EM CLASS="emphasis"> + </em></p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appb-82208"> +Table B.6: Ethernet Interface to Same Host: FTP </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Run No</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Size in Bytes</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Time (sec) </p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Bytes/sec</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Bits/sec</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +% of 10 Mb/s</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +4</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +5</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Average:</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Deviation:</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr></tbody></table><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appb-34846"> +Table B.7: Ethernet Interface to Same Host: FTP </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Run No</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Size in Bytes</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Time, sec </p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Bytes/sec</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Bits/sec</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +% of 10 Mb/s</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +4</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +5</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Average:</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Deviation:</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr></tbody></table><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appb-51003"> +Table B.8: Bottleneck Calculation Table</a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +CPU</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +CPUThroughput</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Number of Disks</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Disk Throughput</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Number of Networks</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Network Throughput</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Total Throughput</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr></tbody></table><P CLASS="para"> +In <A CLASS="xref" HREF="appb_03.html#appb-51003"> +Table B.8</a>:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-960325"> +</a>CPU throughput = (KB/second from Figure 6-5) × (number of CPUs)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-960301"> +</a>Disk throughput = (KB/second from Figure 6-4) × (number of disks)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-960305"> +</a>Network throughput = (KB/second from Figure 6-6) × (number of networks)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="appb-pgfId-960306"> +</a>Total throughput = min (Disk, CPU, and Network throughput)</p></li></ul><P CLASS="para"> +A typical test, in this case for an FTP <CODE CLASS="literal"> +get</code>, would be entered as in Table B-9: <EM CLASS="emphasis"> + </em> </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appb-37370"> +Table B.9: Ethernet Interface to Same Host: FTP </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Run No</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Size in Bytes</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Time, sec </p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Bytes/sec</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Bits/sec</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +% of 10 Mb/s</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1812898</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2.3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +761580</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2.3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +767820</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2.4</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +747420</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +4</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2.3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +760020</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +5</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2.3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +772700</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Average:</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2.32</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +777310</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +6218480</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +62</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Deviation:</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +0.04</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr></tbody></table><P CLASS="para"> +The Sparc example we used earlier would look like Table B-10. <EM CLASS="emphasis"> + </em> </p><P CLASS="para"> +</p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_02.html" TITLE="B.2 Samba Tuning"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: B.2 Samba Tuning" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appc_01.html" TITLE="C. Samba Configuration Option Quick Reference"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: C. Samba Configuration Option Quick Reference" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +B.2 Samba Tuning</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +C. Samba Configuration Option Quick Reference</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appc_01.html b/docs/htmldocs/using_samba/appc_01.html new file mode 100644 index 0000000000..cd9d1ede35 --- /dev/null +++ b/docs/htmldocs/using_samba/appc_01.html @@ -0,0 +1,3497 @@ +<HTML> +<HEAD> +<TITLE>[Appendix C] Samba Configuration Option Quick Reference</title> +</head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_03.html" TITLE="B.3 Sizing Samba Servers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: B.3 Sizing Samba Servers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Appendix C</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appd_01.html" TITLE="D. Downloading Samba with CVS"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: D. Downloading Samba with CVS" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="appendix"> +<A CLASS="title" NAME="appc-23653"> +C. Samba Configuration Option Quick Reference</a></h1><P CLASS="para">The following pages list each of the Samba configuration options. If an option is applicable only to the global section, "[global]" will appear before its name. Any lists mentioned are space separated, except where noted. A glossary of terms follows the options.</p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>admin users = user list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: user list</p> + +<P CLASS="para"> +List of users who will be granted root permissions on the share by Samba.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>allow hosts = host list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: any</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +hosts allow</code>. List of machines that may connect to a share.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>alternate permissions = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Obsolete. Has no effect in Samba 2. Files will be shown as read-only if the owner can't write them. In Samba 1.9 and earlier, setting this option would set the DOS filesystem read-only attribute on any file the user couldn't read. This in turn required the <CODE CLASS="literal"> +delete readonly</code> option.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] announce as = system type</i></b> +<P CLASS="refpurpose">Default: NT</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: NT, Win95, WfW</p> + +<P CLASS="para"> +Have Samba announce itself as something other than an NT server. Discouraged because it interferes with serving browse lists.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] announce version = number.number</i></b> +<P CLASS="refpurpose">Default: 4.2</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: any</p> + +<P CLASS="para"> +Instructs Samba to announce itself as an older version SMB server. Discouraged.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] auto services = share list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: any shares</p> + +<P CLASS="para"> +List of shares that will always appear in browse lists. A synonym is <CODE CLASS="literal"> +preload</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>available = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to NO, denies access to a share. Doesn't affect browsing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] bind interfaces only = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, shares and browsing will be provided only on interfaces in an interfaces list (see <CODE CLASS="literal"> +interfaces</code>). New in Samba 1.9.18. If you set this option to YES, be sure to add 127.0.0.1 to the interfaces list to allow <EM CLASS="emphasis"> +smbpasswd</em> to connect to the local machine to change passwords. This is a convienence option; it does not improve security.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>browsable = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Allows a share to be announced in browse lists.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>blocking locks = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, honors byte range lock requests with time limits for queuing the request and retrying it until the time period expires. New in Samba 2.0.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] browse list = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Turns on/off <CODE CLASS="literal"> +browse</code> <CODE CLASS="literal"> +list</code> from this server. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] case sensitive = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, uses exactly the case the client supplied when trying to resolve a filename. If NO, matches either upper- or lowercase name. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] case sig names = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +case sensitive</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] change notify timeout = number</i></b> +<P CLASS="refpurpose">Default: 60</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: positive number</p> + +<P CLASS="para"> +Sets the number of seconds between checks when a client asks for notification of changes in a directory. Introduced in Samba 2.0 to limit the performance cost of the checks. Avoid lowering.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>character set = name</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: ISO8859-1, ISO8859-2, ISO8859-5, KOI8-R</p> + +<P CLASS="para"> +If set, translates from DOS code pages to the Western European (ISO8859-1), Eastern European (ISO8859-2), Russian Cyrillic (ISO8859-5), or Alternate Russian (KOI8-R) character set. The <CODE CLASS="literal"> +client code page</code> must be set to 850.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>client code page = name</i></b> +<P CLASS="refpurpose">Default: 437 (US MS-DOS)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: See <a href="ch08_03.html#ch08-20815"><b>Table 8.4</b></a></p> + +<P CLASS="para"> +Sets the DOS code page explicitly, overriding any previous <CODE CLASS="literal"> +valid chars</code> settings. Examples of values are 850 for European, 437 is the US standard, and 932 for Japanese Shift-JIS. Introduced in Samba 1.9.19.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>coding system = code</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: euc, cap, hex, hexN, sjis, j8bb, j8bj, jis8, j8bh, j8@b, j8@j, j8@h, j7bb, j7bj, jis7, j7bh, j7@b, j7@j, j7@h, jubb, jubj, junet, jubh, ju@b, ju@j, ju@h</p> + +<P CLASS="para"> +Sets the coding system used, notably for Kanji. This is employed for filenames and should correspond to the code page in use. The <CODE CLASS="literal"> +client code page</code> option must be set to 932 (Japanese Shift-JIS). Introduced in Samba 2.0.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>comment = text</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: a text string or NULL</p> + +<P CLASS="para"> +Sets the comment that appears beside a share in a NET VIEW or the details list of a Microsoft directory window. See also the <CODE CLASS="literal"> +server string</code> configuration option.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] config file = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Selects an additional Samba configuration file to read instead of the current one. Used to relocate the configuration file, or used with %-variables to select custom configuration files for some users or machines. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>copy = section name</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: existing section's name</p> + +<P CLASS="para"> +Copies the configuration of a previously seen share into the share where it appears. Used with %-variables to select custom configurations for machines, architectures and users. The copied section must be earlier in the configuration file. Copied options are of lesser priority than those explicitly listed in the section.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>create mask = octal value</i></b> +<P CLASS="refpurpose">Default: 0744</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: octal permission bits, 0-0777</p> + +<P CLASS="para"> +Also called <CODE CLASS="literal"> +create mode</code>. Sets the maximum allowable permissions for new files (e.g., 0755). See also <CODE CLASS="literal"> +directory mask</code>. To require certain permissions to be set, see <CODE CLASS="literal"> +force create mask/force directory mask</code>. This option stopped affecting directories in Samba 1.9.17, and the default value changed in Samba 2.0.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>create mode = octal permission bits</i></b> +<P CLASS="refpurpose">Default: 0744</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: octal permission bits, 0-0777</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +create mask</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] deadtime = minutes</i></b> +<P CLASS="refpurpose">Default: 0 </p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: minutes</p> + +<P CLASS="para"> +The time in minutes before an unused connection will be terminated. Zero means forever. Used to keep clients from tying up server resources forever. If used, clients will have to auto-reconnect after minutes of inactivity. See also <CODE CLASS="literal"> +keepalive</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] debug level = number</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Sets the logging level used. Values of 3 or more slow Samba noticeably. A synonym is <CODE CLASS="literal"> +log level</code>. Recommended value: 1.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] debug timestamp = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Timestamps all log messages. Can be turned off when it's not useful (e.g., in debugging). New in Samba 2.0.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] default = name</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: share name</p> + +<P CLASS="para"> +Also called <CODE CLASS="literal"> +default service</code>. The name of a service (share) to provide if someone requests a service they don't have permission to use or which doesn't exist. As of Samba 1.9.14, the path will be set from the name the client specified, with any "_" characters changed to "/" characters, allowing access to any directory on the Samba server. Use is strongly discouraged.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>default case = case</i></b> +<P CLASS="refpurpose">Default: LOWER</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: LOWER, UPPER</p> + +<P CLASS="para"> +Sets the case in which to store new filenames. LOWER indicates mixed case, UPPER indicates uppercase letters.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] default service = share name</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: share name</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +default</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>delete readonly = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: NO, YES</p> + +<P CLASS="para"> +Allow delete requests to remove read-only files. This is not allowed in DOS/Windows, but is normal in Unix, which has separate directory permissions. Used with programs like RCS, or with the older <CODE CLASS="literal"> +alternate permissions</code> option.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>delete veto files = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: NO, YES</p> + +<P CLASS="para"> +Allow delete requests for a directory containing files or subdirectories the user can't see due to the <CODE CLASS="literal"> +veto files</code> option. If set to NO, the directory will not be deleted and will still contain invisible files.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>deny hosts = host list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: host list</p> + +<P CLASS="para"> +A synonym is <CODE CLASS="literal"> +hosts deny</code>. Specifies a list of machines from which to refuse connections or shares.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] dfree command = command</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: shell command</p> + +<P CLASS="para"> +A command to run on the server to return disk free space. Not needed unless the OS command does not work properly.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>directory = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +path</code>. A directory provided by a file share, or used by a printer share. Set automatically in the <CODE CLASS="literal"> +[homes]</code> share to user's home directory, otherwise defaults to<I CLASS="filename"> + /tmp</i>. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>directory mask = octal permission bits</i></b> +<P CLASS="refpurpose">Default: 0755</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: octal value from 0 to 0777</p> + +<P CLASS="para"> +Also called <CODE CLASS="literal"> +directory mode</code>. Sets the maximum allowable permissions for newly created directories. To require certain permissions be set, see the <CODE CLASS="literal"> +force create mask</code> and <CODE CLASS="literal"> +force directory mask</code> options.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>directory mode = octal permission bits</i></b> +<P CLASS="refpurpose">Default: 0755</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: octal value from 0 to 0777</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +directory mask</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] dns proxy = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, and if <CODE CLASS="literal"> +wins server = YES</code>, look up hostnames in DNS if they are not found using WINS.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] domain logons = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Allow Windows 95/98 or NT clients to log on to an NT-like domain.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] domain master = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Become a domain master browser list collector if possible for the entire workgroup/domain. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>dont descend = comma-list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: comma-separated list of paths</p> + +<P CLASS="para"> +Does not allow a change directory or search in the directories specified. This is a browsing convenience option; it doesn't provide any extra security.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>dos filetimes = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Allow non-owners to change file times if they can write to the file. See also <CODE CLASS="literal"> +dos filetime resolution</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>dos filetime resolution = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Set file times on Unix to match DOS standards (round to next even second). Recommended if using Visual C++ or a PC <EM CLASS="emphasis"> +make</em> program to avoid remaking the programs unnecesarily. Use with the <CODE CLASS="literal"> +dos filetimes</code> option.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] encrypt passwords = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Uses Windows NT-style password encryption. Requires an <I CLASS="filename"> +smbpasswd</i> on the Samba server.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>exec = command</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: shell command</p> + +<P CLASS="para"> +Synonym of <CODE CLASS="literal"> +preexec</code>, a command to run as the user just before connecting to the share.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>fake directory create times = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Bug fix for users of Microsoft <EM CLASS="emphasis"> +nmake</em>. If set, Samba will set directory create times such that <EM CLASS="emphasis"> +nmake</em> won't remake all files every time.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>fake oplocks = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Return YES whenever a client asks if it can lock a file and cache it locally, but does not enforce lock on the server. Use only for read-only disks, as Samba now supports real <CODE CLASS="literal"> +oplocks</code> and has per-file overrides. See also <CODE CLASS="literal"> +oplocks</code> and <CODE CLASS="literal"> +veto oplock files</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>follow symlinks = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, Samba will follow symlinks in a file share or shares. See the <CODE CLASS="literal"> +wide links</code> option if you want to restrict symlinks to just the current share.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>force create mask = octal permission bits</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: octal value from 0 to 0777</p> + +<P CLASS="para"> +Provides bits that will be <CODE CLASS="literal"> +OR</code>ed into the permissions of newly created files. Used with the <CODE CLASS="literal"> +create mode</code> configuration option.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>force create mode = octal permission bits</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: octal value from 0 to 0777</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +force create mask</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>force directory mask = octal permission bits</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: octal value from 0 to 0777</p> + +<P CLASS="para"> +Provides bits that will be <CODE CLASS="literal"> +OR</code>ed into the permissions of newly created directories, forcing those bits to be set. Used with <CODE CLASS="literal"> +directory mode</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>force directory mode = octal permission bits</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: octal value from 0 to 0777</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +force</code> <CODE CLASS="literal"> +directory</code> <CODE CLASS="literal"> +mask</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>force group = unix group</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: group</p> + +<P CLASS="para"> +Sets the effective group name assigned to all users accessing a share. Used to override user's normal groups.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>force user = name</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: username</p> + +<P CLASS="para"> +Sets the effective username assigned to all users accessing a share. Discouraged.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>fstype = string</i></b> +<P CLASS="refpurpose">Default: NTFS</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: NTFS, FAT, Samba</p> + +<P CLASS="para"> +Sets the filesystem type reported to the client. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] getwd cache = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Cache current directory for performance. Recommended with the <CODE CLASS="literal"> +wide links</code> option.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>group = group</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: unix group</p> + +<P CLASS="para"> +An obsolete form of <CODE CLASS="literal"> +force group</code>. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>guest account = user</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: username</p> + +<P CLASS="para"> +Sets the name of the unprivileged Unix account to use for tasks like printing and for accessing shares marked with <CODE CLASS="literal"> +guest ok</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>guest ok = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, passwords are not needed for this share. Synonym of <CODE CLASS="literal"> +public</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>guest only = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Forces user of a share to do so as the guest account. Requires <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> or <CODE CLASS="literal"> +public</code> to be <CODE CLASS="literal"> +yes</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>hide dot files = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Treats files beginning with a dot in a share as if they had the DOS/Windows hidden attribute set.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>hide files = slash-separated list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of patterns, separated by <CODE CLASS="literal"> +/</code> characters</p> + +<P CLASS="para"> +List of file or directory names to set the DOS hidden attribute on. Names may contain <CODE CLASS="literal"> +?</code> or <CODE CLASS="literal"> +*</code> pattern-characters and <CODE CLASS="literal"> +%</code>-variables. See also <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +dot</code> <CODE CLASS="literal"> +files</code> and <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +files</code>. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] homedir map = NIS map name</i></b> +<P CLASS="refpurpose">Default: auto.home</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: NIS map name</p> + +<P CLASS="para"> +Used with <CODE CLASS="literal"> +nis homedir</code> to locate user's Unix home directory from Sun NIS (not NIS+).</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>hosts allow = host list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of hostnames</p> + +<P CLASS="para"> +Synonym of <CODE CLASS="literal"> +allow hosts</code>, a list of machines that can access a share or shares. If NULL (the default) any machine can access the share unless there is a <CODE CLASS="literal"> +hosts deny</code> option. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>hosts deny = host list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of hostnames</p> + +<P CLASS="para"> +Synonym of <CODE CLASS="literal"> +deny hosts</code>, a list of machines that cannot connect to a share or shares. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] hosts equiv = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Path to a file of trusted machines from which password-less logins are allowed. Strongly discouraged, because Windows/NT users can always override the user name, the only security in this scheme.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>include = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Include the named file in <I CLASS="filename"> +smb.conf</i> at the line where it appears. This option does not understand the variables <CODE CLASS="literal"> +%u</code> (user), <CODE CLASS="literal"> +%P</code> (current share's root directory), or <CODE CLASS="literal"> +%S</code> (current share name), because they are not set at the time the file is read.</p> +</div> +</blockquote> +</div> +<p> </p> + +<!-- added for 2.0.7,. davecb --> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>inherit permissions = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set, subdirectories will be created with the same permissions +as the directory they are in. This overrides +<CODE CLASS="literal">create mask, directory mask, force create mode +</CODE> and <CODE CLASS="literal"> force directory mode</CODE>, but +not <CODE CLASS="literal">map archive, map hidden </CODE> and <CODE CLASS="literal"> +map system</CODE>. Will never set the <CODE CLASS="literal">setuid +</CODE> bit. New in 2.0.7, this is a means of ensuring Unix permissions +can be propagated to subdirectories, especially in [homes].<p> + +</div> +</blockquote> +</div> +<p> </p> +<!-- end of 2.0.7 --> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] interfaces = interface list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: IP addresses separated by spaces</p> + +<P CLASS="para"> +Sets the interfaces to which Samba will respond. The default is the machine's primary interface only. Recommended on multihomed machines or to override erroneous addresses and netmasks.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>invalid users = user list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of users</p> + +<P CLASS="para"> +List of users that will not be permitted access to a share or shares. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] keepalive = number</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number of seconds</p> + +<P CLASS="para"> +Number of seconds between checks for a crashed client. The default of 0 causes no checks to be performed. Recommended if you want checks more often than every four hours. 3600 (10 minutes) is reasonable. See also <CODE CLASS="literal"> +socket options</code> for another approach.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] kernel oplocks = boolean</i></b> +<P CLASS="refpurpose">Default: automatic</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Break oplock when a Unix process accesses an <EM CLASS="emphasis"> +oplocked</em> file, preventing corruption. Set to YES on operating systems supporting this, otherwise set to NO. New in Samba 2.0; supported on SGI, and hopefully soon on Linux and BSD. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] ldap filter = various</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: various</p> + +<P CLASS="para"> +Options beginning with <CODE CLASS="literal"> +ldap</code> are part of an experimental (circa Samba 2.0) use of the Lightweight Directory Access Protocol (LDAP) general directory/distributed database for user, name, and host information. This option is reserved for future use.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] ldap port = various</i></b> +<P CLASS="refpurpose">Default: various</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: various</p> + +<P CLASS="para"> +Options beginning with <CODE CLASS="literal"> +ldap</code> are part of an experimental (circa Samba 2.0) use of the Lightweight Directory Access Protocol (LDAP) general directory/distributed database for user, name, and host information. This option is reserved for future use.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] ldap root = various</i></b> +<P CLASS="refpurpose">Default: various</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: various</p> + +<P CLASS="para"> +Options beginning with <CODE CLASS="literal"> +ldap</code> are part of an experimental (circa Samba 2.0) use of the Lightweight Directory Access Protocol (LDAP) general directory/distributed database for user, name, and host information. This option is reserved for future use.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] ldap server = various</i></b> +<P CLASS="refpurpose">Default: various</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: various</p> + +<P CLASS="para"> +Options beginning with <CODE CLASS="literal"> +ldap</code> are part of an experimental (circa Samba 2.0) use of the Lightweight Directory Access Protocol (LDAP) general directory/distributed database for user, name, and host information. This option is reserved for future use.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] ldap suffix = various</i></b> +<P CLASS="refpurpose">Default: various</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: various</p> + +<P CLASS="para"> +Options beginning with <CODE CLASS="literal"> +ldap</code> are part of an experimental (circa Samba 2.0) use of the Lightweight Directory Access Protocol (LDAP) general directory/distributed database for user, name, and host information. This option is reserved for future use.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] load printers = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Load all printer names from the system printer capabilities into browse list. Uses configuration options from the <CODE CLASS="literal"> +[printers]</code> section.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] local master = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Stands for election as the local master browser. See also <CODE CLASS="literal"> +domain master</code> and <CODE CLASS="literal"> +os level</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] lm announce = value</i></b> +<P CLASS="refpurpose">Default: AUTO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: AUTO, YES, NO</p> + +<P CLASS="para"> +Produce OS/2 SMB broadcasts at an interval specified by the <CODE CLASS="literal"> +lm interval</code> option. YES/NO turns them on/off unconditionally. AUTO causes the Samba server to wait for a LAN Manager announcement from another client before sending one out. Required for OS/2 client browsing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] lm interval = seconds</i></b> +<P CLASS="refpurpose">Default: 60</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Sets the time period, in seconds, between OS/2 SMB broadcast announcements.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] lock directory = pathname</i></b> +<P CLASS="refpurpose">Default: <EM CLASS="emphasis"> +/usr/local/samba/var/locks</em></p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Set a directory to keep lock files in. The directory must be writable by Samba, readable by everyone.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>locking = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Perform file locking. If set to NO, Samba will accept lock requests but will not actually lock resources. Recommended only for read-only file systems.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] log file = pathname</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Set name and location of the log file. Allows all %-variables.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] log level = number</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +A synonym of <CODE CLASS="literal"> +debug level</code>. Sets the logging level used. Values of 3 or more slow the system noticeably.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] logon drive = drive</i></b> +<P CLASS="refpurpose">Default: None</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: DOS drive name</p> + +<P CLASS="para"> +Sets the drive on Windows NT (only) of the <CODE CLASS="literal"> +logon path</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] logon home = path</i></b> +<P CLASS="refpurpose">Default: <EM CLASS="emphasis"> +\\</em><CODE CLASS="replaceable"><I>%</i></code></p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Sets the home directory of a Windows 95/98 or NT Workstation user. Allows <CODE CLASS="literal"> +NET</code> <CODE CLASS="literal"> +USE</code> <CODE CLASS="literal"> +H:/HOME</code> from the command prompt.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] logon path = pathname</i></b> +<P CLASS="refpurpose">Default: <EM CLASS="emphasis"> +\\</em><CODE CLASS="replaceable"><I>N</i></code><EM CLASS="emphasis">\</em><CODE CLASS="replaceable"><I>%U</i></code><EM CLASS="emphasis">\profile</em></p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Windows pathname</p> + +<P CLASS="para"> +Sets path to Windows profile directory. This contains <EM CLASS="emphasis"> +USER.MAN</em> and/or <EM CLASS="emphasis"> +USER.DAT</em> profile files and the Windows 95 Desktop, Start Menu, Network Neighborhood, and programs folders. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] logon script = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Sets pathname relative to <CODE CLASS="literal"> +[netlogin]</code> share of a DOS/NT script to run on the client at login time. Allows all %-variables.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>lppause command = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualfied Unix shell command</p> + +<P CLASS="para"> +Sets the command to pause a print job. Honors the <CODE CLASS="literal"> +%p</code> (printer name) and <CODE CLASS="literal"> +%j</code> (job number) variables. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>lpresume command = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualified Unix shell command</p> + +<P CLASS="para"> +Sets the command to resume a paused print job. Honors the <CODE CLASS="literal"> +%p</code> (printer name) and <CODE CLASS="literal"> +%j</code> (job number) variables. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] lpq cache time = seconds</i></b> +<P CLASS="refpurpose">Default: 10</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number of seconds</p> + +<P CLASS="para"> +Sets how long to keep print queue (<CODE CLASS="literal">lpq</code>) status is cached, in seconds.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>lpq command = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualfied Unix shell command</p> + +<P CLASS="para"> +Sets the command used to get printer status. Usually initialized to a default value by the <CODE CLASS="literal"> +printing</code> option. Honors the <CODE CLASS="literal"> +%p</code> (printer name) variable.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>lprm command = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualified Unix shell command</p> + +<P CLASS="para"> +Sets the command to delete a print job. Usually initialized to a default value by the <CODE CLASS="literal"> +printing</code> option. Honors the <CODE CLASS="literal"> +%p</code> (printer name) and <CODE CLASS="literal"> +%j</code> (job number) variables.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>machine password timeout = seconds</i></b> +<P CLASS="refpurpose">Default: 604,800</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number of seconds</p> + +<P CLASS="para"> +Sets the period between (NT domain) machine password changes. Default is 1 week, or 604,800 seconds.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>magic output = pathname</i></b> +<P CLASS="refpurpose">Default: <EM CLASS="emphasis"> +script.out</em></p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Sets the output file for the discouraged <CODE CLASS="literal"> +magic scripts</code> option. Default is the script name, followed by the extension <EM CLASS="emphasis"> +.out</em>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>magic script = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Sets a filename for execution via a shell whenever the file is closed from the client, to allow clients to run commands on the server. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>mangle case = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: allowable values: YES, NO</p> + +<P CLASS="para"> +Mangle a name if it is in mixed case.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>mangled map = map list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of to-from pairs</p> + +<P CLASS="para"> +Set up a table of names to remap (e.g., <EM CLASS="emphasis"> +.html</em> to <EM CLASS="emphasis"> +.htm</em>). </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>mangled names = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Sets Samba to abbreviate names that are too long or have unsupported characters to the DOS 8.3 style. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>mangling char = character</i></b> +<P CLASS="refpurpose">Default: ~</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: character</p> + +<P CLASS="para"> +Sets the unique mangling character used in all mangled names.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] mangled stack = number</i></b> +<P CLASS="refpurpose">Default: 50</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Sets the size of a cache of recently-mangled filenames.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>map aliasname = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Points to a file of Unix group/NT group pairs, one per line. This is used to map NT aliases to Unix group names. See also the configuration options <CODE CLASS="literal"> +username</code> <CODE CLASS="literal"> +map</code> and <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +groupname</code>. Introduced in Samba 2.0.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>map archive = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, Samba sets the executable-by-user (0100) bit on Unix files if the DOS archive attribute is set. Recommended: if used, the <CODE CLASS="literal"> +create mask</code> must contain the 0100 bit.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>map hidden = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, sets executable-by-other (0001) bit on Unix files if the DOS hidden attribute is set. If used, the <CODE CLASS="literal"> +create mask</code> option must contain the 0001 bit.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>map groupname = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Points to a file of Unix group/NT group, one per line. This is used to map NT group names to Unix group names. See also the configuration options <CODE CLASS="literal"> +username</code> <CODE CLASS="literal"> +map</code> and <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +aliasname</code>. Introduced in Samba 2.0.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>map system = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, Samba sets the executable-by-group (0010) bit on Unix files if the DOS system attribute is set. If used, the <CODE CLASS="literal"> +create mask</code> must contain the 0010 bit.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>max connections = number</i></b> +<P CLASS="refpurpose">Default: 0 (infinity)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Set maximum number of connections allowed to a share from each individual client machine.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] max disk size = number</i></b> +<P CLASS="refpurpose">Default: 0 (unchanged)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: size in MB</p> + +<P CLASS="para"> +Sets maximum disk size/free-space size (in megabytes) to return to client. Some clients or applications can't understand large maximum disk sizes.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] max log size = number</i></b> +<P CLASS="refpurpose">Default: 5000</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: size in KB</p> + +<P CLASS="para"> +Sets the size (in kilobytes) at which Samba will start a new log file. The current log file will be renamed with an <EM CLASS="emphasis"> +.old</em> extension, replacing any previous file with that name. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] max mux = number</i></b> +<P CLASS="refpurpose">Default: 50</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Sets the number of simultaneous operations that Samba clients may make. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] max packet = number</i></b> +<P CLASS="refpurpose">Default: N/A</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +packet size</code>. Obsolete as of Samba 1.7. Use <CODE CLASS="literal"> +max xmit</code> instead.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] max open files = number</i></b> +<P CLASS="refpurpose">Default: 10,000</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Limits the number of files a Samba process will try to keep open at one time. Samba allows you to set this to less than the Unix maximum. This option is a workaround for a separate problem. Avoid changing. This option was introduced in Samba 2.0.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] max ttl = seconds</i></b> +<P CLASS="refpurpose">Default: 14400 (4 hrs)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: time in seconds</p> + +<P CLASS="para"> +Sets the time to keep NetBIOS names in <EM CLASS="emphasis"> +nmbd</em> cache while trying to perform a lookup on it. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] max wins ttl = seconds</i></b> +<P CLASS="refpurpose">Default: 259200 (3 days)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: time in seconds</p> + +<P CLASS="para"> +Limits time-to-live of a NetBIOS name in <EM CLASS="emphasis"> +nmbd</em> WINS cache, in seconds. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] max xmit = bytes</i></b> +<P CLASS="refpurpose">Default: 65535</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: size in bytes</p> + +<P CLASS="para"> +Sets maximum packet size that will be negotiated by Samba. Tuning parameter for slow links and older client bugs. Values less than 2048 are discouraged.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] message command = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: shell command</p> + +<P CLASS="para"> +Sets the command on the server to run when a WinPopup message arrives from a client. The command must end in "<CODE CLASS="literal">&</code>" to allow immediate return. Honors all %-variables except <CODE CLASS="literal"> +%u</code> (user), and supports the extra variables <CODE CLASS="literal"> +%s</code> (filename the message is in), <CODE CLASS="literal"> +%t</code> (destination machine), and <CODE CLASS="literal"> +%f</code> (from).</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>min print space = kilobytes</i></b> +<P CLASS="refpurpose">Default: 0 (unlimited)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: space in KB</p> + +<P CLASS="para"> +Sets minimum spool space required before accepting a print request.</p> +</div> +</blockquote> +</div> +<p> </p> + +<!-- 2.0.7, davecb --> +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>min password length = characters</i></b> +<P CLASS="refpurpose">Default: 5</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: decimal number of characters</p> + +<P CLASS="para"> +Sets the shortest password Samba will pass to the Unix passwd command. +</div> +</blockquote> +</div> +<p> </p> +<!-- sne 2.0.7 --> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] min wins ttl = seconds</i></b> +<P CLASS="refpurpose">Default: 21600 (6 hrs)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: time in seconds</p> + +<P CLASS="para"> +Sets minimum time-to-live of a NetBIOS name in <EM CLASS="emphasis"> +nmbd</em> WINS cache, in seconds. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>name resolve order = list</i></b> +<P CLASS="refpurpose">Default: lmhosts wins hosts bcast</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of lmhosts, wins, hosts and bcast</p> + +<P CLASS="para"> +Sets order of lookup when trying to get IP address from names. The <CODE CLASS="literal"> +hosts</code> parameter carrries out a regular name look up using the server's normal sources: <EM CLASS="emphasis"> +/etc/hosts</em>, DNS, NIS, or a combination of them. Introduced in Samba 1.9.18p4.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] netbios aliases = list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of netbios names</p> + +<P CLASS="para"> +Adds additional NetBIOS names by which a Samba server will advertise itself.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>netbios name = hostname</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: host name</p> + +<P CLASS="para"> +Sets the NetBIOS name by which a Samba server is known, or primary name if NetBIOS aliases exist. </p> +</div> +</blockquote> +</div> +<p> </p> + +<!-- 2.0.7, davecb --> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>netbios scope = string</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: string</p> + +<P CLASS="para"> +Sets the NetBIOS scope string. Samba will not communicate with a machine +with a different scope. This was an early predecessor of workgroups: avoid +setting it. Added in 2.0.7. <!-- why was it added, anyway? --> +</div> +</blockquote> +</div> +<p> </p> +<!-- end 2.0.7 --> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] networkstation user login = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to NO, clients will not do a full login when <CODE CLASS="literal"> +security = server</code>. Avoid changing. Turning it off is a temporary workaround (introduced in Samba 1.9.18p3) for NT trusted domains bug. Automatic correction was introduced in Samba 1.9.18p10; the parameter may eventually be removed.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] nis homedir = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, the <CODE CLASS="literal"> +homedir map</code> will be used to look up the user's home-directory server name and return it to the client. The client will contact that machine to connect to the share. This avoids mounting from a machine that doesn't actually have the disk. The machine with the home directories must be an SMB server.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] nt pipe support = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Allows turning off NT-specific pipe calls. This is a developer/benchmarking option and may be removed in the future. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] nt smb support = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, allow NT-specific SMBs to be used. This is a developer/benchmarking option and may be removed in the future. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] null passwords = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, allows access to accounts that have null passwords. Strongly discouraged.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>ole locking compatibility = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, locking ranges will be mapped to avoid Unix locks crashing when Windows uses locks above 32KB. You should avoid changing this option. Introduced in Samba 1.9.18p10. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>only guest = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +A synonym for <CODE CLASS="literal"> +guest only</code>. Forces user of a share to login as the guest account. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>only user = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Requires that users of the share be on a <CODE CLASS="literal"> +username =</code> list. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>oplocks = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, support local caching of <EM CLASS="emphasis"> +opportunistic</em> locked files on client. This option is recommended because it improves performance by about 30%. See also <CODE CLASS="literal"> +fake</code> <CODE CLASS="literal"> +oplocks</code> and <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +oplock</code> <CODE CLASS="literal"> +files</code>. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] os level = number</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Sets the candidacy of the server when electing a browse master. Used with the <CODE CLASS="literal"> +domain</code> <CODE CLASS="literal"> +master</code> or <CODE CLASS="literal"> +local</code> <CODE CLASS="literal"> +master</code> options. You can set a higher value than a competing operating system if you want Samba to win. Windows for Workgroups and Windows 95 use 1, Windows NT client uses 17, and Windows NT Server uses 33.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] packet size = bytes</i></b> +<P CLASS="refpurpose">Default: 65535</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number in bytes</p> + +<P CLASS="para"> +Obsolete. Discouraged synonym of <CODE CLASS="literal"> +max packet</code>. See <CODE CLASS="literal"> +max xmit</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] passwd chat debug = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Logs an entire password chat, including passwords passed, with a log level of 100. For debugging only. Introduced in Samba 1.9.18p5.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] passwd chat = command sequence</i></b> +<P CLASS="refpurpose">Default: compiled-in value</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix server commands</p> + +<P CLASS="para"> +Sets the command used to change passwords on the server. Supports the variables <CODE CLASS="literal"> +%o</code> (old password) and <CODE CLASS="literal"> +%n</code> (new password) and allows <CODE CLASS="literal"> +\r</code> <CODE CLASS="literal"> +\n</code> <CODE CLASS="literal"> +\t</code> and <CODE CLASS="literal"> +\s</code> (space) escapes in the sequence.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] passwd program = program</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix server program</p> + +<P CLASS="para"> +Sets the command used to change user's password. Will be run as <CODE CLASS="literal"> +root</code>. Supports <CODE CLASS="literal"> +%u</code> (user).</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] password level = number</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Specifies the number of uppercase letter permutations used to match passwords. Workaround for clients that change passwords to a single case before sending them to the Samba server. Causes repeated login attempts with passwords in different cases, which can trigger account lockouts. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] password server = netbios names</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of NetBIOS names</p> + +<P CLASS="para"> +A list of SMB servers that will validate passwords for you. Used with an NT password server (PDC or BDC) and the <CODE CLASS="literal"> +security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +server</code> or <CODE CLASS="literal"> +security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +domain</code> configuration options. Caution: an NT password server must allow logins from the Samba server.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>panic action = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualfied Unix shell command</p> + +<P CLASS="para"> +Sets the command to run when Samba panics. For Samba developers and testers, <CODE CLASS="literal"> +/usr/bin/X11/xterm -display :0 -e gdb /samba/bin/smbd %d</code> is a possible value.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>path = pathname</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Sets the path to the directory provided by a file share or used by a printer share. Set automatically in <CODE CLASS="literal"> +[homes]</code> share to user's home directory, otherwise defaults to<I CLASS="filename"> + /tmp</i>. Honors the <CODE CLASS="literal"> +%u</code> (user) and <CODE CLASS="literal"> +%m</code> (machine) variables.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>postexec = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualified Unix shell command</p> + +<P CLASS="para"> +Sets a command to run as the user after disconnecting from the share. See also the options <CODE CLASS="literal"> +preexec</code>, <CODE CLASS="literal"> +root preexec</code>, and <CODE CLASS="literal"> +root postexec</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>postscript = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Flags a printer as PostScript to avoid a Windows bug by inserting <CODE CLASS="literal"> +%!</code> as the first line. Works only if printer actually is PostScript compatible.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>preexec = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualified Unix shell command</p> + +<P CLASS="para"> +Sets a command to run as the user before connecting to the share. See also the options <CODE CLASS="literal"> +postexec</code>, <CODE CLASS="literal"> +root preexec</code>, and <CODE CLASS="literal"> +root postexec</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] preferred master = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, Samba is preferred to become the master browser. Causes Samba to call a browsing election when it comes online.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>preload = share list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of services</p> + +<P CLASS="para"> +Synonym of <CODE CLASS="literal"> +auto</code> <CODE CLASS="literal"> +services</code>. Specifies a list of shares that will always appear in browse lists.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>preserve case = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, this option leaves filenames in the case sent by client. If no, it forces filenames to the case specified by the <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +case</code> option. See also <CODE CLASS="literal"> +short preserve case</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>print command = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualified Unix shell command</p> + +<P CLASS="para"> +Sets the command used to send a spooled file to the printer. Usually initialized to a default value by the <CODE CLASS="literal"> +printing</code> option. This option honors the <CODE CLASS="literal"> +%p</code> (printer name), <CODE CLASS="literal"> +%s</code> (spool file) and <CODE CLASS="literal"> +%f</code> (spool file as a relative path) variables. Note that the command in the value of the option must include file deletion of the spool file.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>print ok = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Synonym of <CODE CLASS="literal"> +printable</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>printable = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Sets a share to be a print share. Required for all printers.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] printcap name = pathname</i></b> +<P CLASS="refpurpose">Default: <EM CLASS="emphasis"> +/etc/printcap</em></p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Sets the path to the printer capabilities file used by the <CODE CLASS="literal"> +[printers]</code> share. The default value changes to <I CLASS="filename"> +/etc/qconfig</i> under AIX and <I CLASS="filename"> +lpstat</i> on System V.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>printer = name</i></b> +<P CLASS="refpurpose">Default: <CODE CLASS="literal"> +lp</code></p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: printer name</p> + +<P CLASS="para"> +Sets the name of the Unix printer.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>printer driver = printer driver name</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: exact printer driver string used by Windows</p> + +<P CLASS="para"> +Sets the string to pass to Windows when asked what driver to use to prepare files for a printer share. Note that the value is case sensitive.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] printer driver file = path</i></b> +<P CLASS="refpurpose">Default: <EM CLASS="emphasis"> +samba-lib/printers.def</em></p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Sets the location of a<EM CLASS="emphasis"> + msprint.def</em> file, usable by Windows 95/98.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>printer driver location = path</i></b> +<P CLASS="refpurpose">Default: <EM CLASS="emphasis"> +\\</em><CODE CLASS="replaceable"><I>server</i></code><EM CLASS="emphasis">\PRINTER$</em></p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Windows network path</p> + +<P CLASS="para"> +Sets the location of the driver for a particular printer. The value is a pathname for a share that stores the printer driver files.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>printer name = name</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: name</p> + +<P CLASS="para"> +Synonym of <CODE CLASS="literal"> +printer</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>printing = style</i></b> +<P CLASS="refpurpose">Default: bsd</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: bsd, sysv, hpux, aix, qnx, plp, lprng</p> + +<P CLASS="para"> +Sets printing style to one of the above, instead of the compiled-in value. This sets initial values of at least the <CODE CLASS="literal"> +print</code> <CODE CLASS="literal"> +command</code>, <CODE CLASS="literal"> +print</code> <CODE CLASS="literal"> +command</code>, <CODE CLASS="literal"> +lpq</code> <CODE CLASS="literal"> +command</code>, and <CODE CLASS="literal"> +lprm</code> <CODE CLASS="literal"> +command</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] protocol = protocol</i></b> +<P CLASS="refpurpose">Default: NT1</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: NT1, LANMAN2, LANMAN1, COREPLUS, CORE</p> + +<P CLASS="para"> +Sets SMB protocol version to one of the allowable values. Resetting is highly discouraged. Only for backwards compatibility with older-client bugs.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>public = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, passwords are not needed for this share. A synonym is <CODE CLASS="literal"> +guest ok</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>queuepause command = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: valid Unix command</p> + +<P CLASS="para"> +Sets the command used to pause a print queue. Usually initialized to a default value by the <CODE CLASS="literal"> +printing</code> option. Introduced in Samba 1.9.18p10.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>queueresume command = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: varies</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: valid Unix command</p> + +<P CLASS="para"> +Sets the command used to resume a print queue. Usually initialized to a default value by the <CODE CLASS="literal"> +printing</code> option. Introduced in Samba 1.9.18p10.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>read bmpx = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Obsolete. Do not change.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>read list = comma-separated list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: comma-separated list of users</p> + +<P CLASS="para"> +Specifies a list of users given read-only access to a writeable share. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>read only = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Sets a share to read-only. Antonym of <CODE CLASS="literal"> +writable</code> and <CODE CLASS="literal"> +write ok</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] read prediction = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Reads ahead data for read-only files. Obsolete; removed in Samba 2.0.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] read raw = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Allows fast streaming reads over TCP using 64K buffers. Recommended.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] read size = bytes</i></b> +<P CLASS="refpurpose">Default: 2048</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: size in bytes</p> + +<P CLASS="para"> +Sets a buffering option for servers with mismatched disk and network speeds. Requires experimentation. Avoid changing. Should not exceed 65536.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] remote announce = remote list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of remote addresses</p> + +<P CLASS="para"> +Adds workgroups to the list on which the Samba server will announce itself. Specified as IP address/workgroup (for instance, 192.168.220.215/SIMPLE) with multiple groups separated by spaces. Allows directed broadcasts. The server will appear on those workgroup's browse lists. Does not require WINS.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] remote browse sync = address list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: IP-address list</p> + +<P CLASS="para"> +Enables Samba-only browse list synchronization with other Samba local master browsers. Addresses can be specific addresses or directed broadcasts (i.e., ###.###.###.255). The latter will cause Samba to hunt down the local master.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>revalidate = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, requires users to re-enter passwords even after a successful initial logon to a share with a password.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] root = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +root directory</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] root dir = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +root directory</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] root directory = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Specifies a directory to <CODE CLASS="literal"> +chroot()</code> to before starting daemons. Prevents any access below that directory tree. See also the <CODE CLASS="literal"> +wide links</code> configuration option.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>root postexec = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualified Unix shell command</p> + +<P CLASS="para"> +Sets a command to run as root after disconnecting from the share. See also <CODE CLASS="literal"> +preexec</code>, <CODE CLASS="literal"> +postexec</code>, and <CODE CLASS="literal"> +root</code> <CODE CLASS="literal"> +preexec</code> configuration options. Runs after the user's <CODE CLASS="literal"> +postexec</code> command. Use with caution.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>root preexec = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: fully-qualified Unix shell command</p> + +<P CLASS="para"> +Sets a command to run as root before connecting to the share. See also <CODE CLASS="literal"> +preexec</code>, <CODE CLASS="literal"> +postexec</code>, and <CODE CLASS="literal"> +root</code> <CODE CLASS="literal"> +postexec</code> configuration options. Runs before the user's <CODE CLASS="literal"> +preexec</code> command. Use with caution.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] security = value</i></b> +<P CLASS="refpurpose">Default: share in Samba 1.0, user in 2.0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: share, user, server, domain</p> + +<P CLASS="para"> +Sets password-security policy. If <CODE CLASS="literal"> +security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +share</code>, services have a shared password, available to everyone. If <CODE CLASS="literal"> +security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +user</code>, users have (Unix) accounts and passwords. If <CODE CLASS="literal"> +security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +server</code>, users have accounts and passwords and a separate machine authenticates them for Samba. If <CODE CLASS="literal"> +security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +domain</code>, full NT-domain authentication is done. See also the <CODE CLASS="literal"> +password server</code> and <CODE CLASS="literal"> +encrypted passwords</code> configuration options. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] server string = text</i></b> +<P CLASS="refpurpose">Default: Samba <CODE CLASS="literal"> +%v</code> in 2.0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: string</p> + +<P CLASS="para"> +Sets the name that appears beside a server in browse lists. Honors the <CODE CLASS="literal"> +%v</code> (Samba version number) and <CODE CLASS="literal"> +%h</code> (hostname) variables.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>set directory = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Allows DEC Pathworks client to use the <EM CLASS="emphasis"> +set dir</em> command.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] shared file entries = number</i></b> +<P CLASS="refpurpose">Default: 113</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Obsolete; do not use.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>shared mem size = bytes</i></b> +<P CLASS="refpurpose">Default: 102400</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: size in bytes</p> + +<P CLASS="para"> +If compiled with FAST_SHARE_MODES (mmap), sets the shared memory size in bytes. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] smb passwd file = path</i></b> +<P CLASS="refpurpose">Default: <I CLASS="filename"> +/usr/local/samba/private/smbpasswd</i></p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: Unix pathname</p> + +<P CLASS="para"> +Overrides compiled-in path to password file if <CODE CLASS="literal"> +encrypted passwords</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code>. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] smbrun = /absolute_ path/command</i></b> +<P CLASS="refpurpose">Default: compiled-in value</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: smbrun command</p> + +<P CLASS="para"> +Overrides compiled-in path to <I CLASS="filename"> +smbrun</i> binary. Avoid changing.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>share modes = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, this option supports Windows-style whole-file (deny mode) locks.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>short preserve case = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, leaves mangled 8.3-style filenames in the case sent by client. If no, it forces the case to that specified by the <CODE CLASS="literal"> +default case</code> option. See also <CODE CLASS="literal"> +preserve case</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] socket address = IP address</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: IP address</p> + +<P CLASS="para"> +Sets address on which to listen for connections. Default is to listen to all addresses. Used to support multiple virtual interfaces on one server. Highly discouraged. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] socket options = socket option list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list</p> + +<P CLASS="para"> +Sets OS-specific socket options. <CODE CLASS="literal"> +SO_KEEPALIVE</code> has TCP check clients every 4 hours to see if they are still accessible. <CODE CLASS="literal"> +TCP_NODELAY</code> sends even tiny packets to keep delay low. Recommended wherever the operating system supports them. See <a href="appb_01.html"><b>Appendix B, <CITE CLASS="appendix">Samba Performance Tuning</cite></b></a>, for more information.</p> +</div> +</blockquote> +</div> +<p> </p> + +<!-- 2.0.7, davecb --> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] source environment = string</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +This pathname parameter causes Samba to read a list of environment +variables from a named file on startup. This can be useful in setting +up Samba in a clustered environment. This is new in 2.0.7.</p> + +<p> The file must be owned by root and not be world writable, +and if the filename begins with a "|" (pipe) character, it must point to +a command which is neither world writable nor resides +in a world writable directory.</p> + +<p> The data should be in the form of lines such as +<CODE CLASS="literal">SAMBA_NETBIOS_NAME=myhostname</CODE>. +This variable will then be available in the smb.conf files as $%SAMBA_NETBIOS_NAME.</p> + +</div> +</blockquote> +</div> +<p> </p> +<!-- end of 2.0.7 --> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] status = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, logs connections to a file (or shared memory) accessible to <I CLASS="filename"> +smbstatus</i>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>strict sync = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, Samba will synchronize to disk whenever the client sets the sync bit in a packet. If set to NO, Samba flushes data to disk whenever buffers fill. Defaults to NO because Windows 98 Explorer sets the bit (incorrectly) in all packets. Introduced in Samba 1.9.18p10.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>strict locking = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, Samba checks locks on every access, not just on demand and at open time. Not recommended.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] strip dot = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Removes trailing dots from filenames. Use <CODE CLASS="literal"> +mangled map</code> instead.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] syslog = number</i></b> +<P CLASS="refpurpose">Default: 1</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Sets number of Samba log messages to send to <I CLASS="filename"> +syslog</i>. Higher is more verbose. The <I CLASS="filename"> +syslog.conf</i> file must have suitable logging enabled.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] syslog only = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, log only to <EM CLASS="emphasis"> +syslog, </em>not standard Samba log files.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>sync always = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, Samba calls<EM CLASS="emphasis"> + fsync</em>(3) after every write. Avoid except for debugging crashing servers.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] time offset = minutes</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: minutes</p> + +<P CLASS="para"> +Sets number of minutes to add to system time zone calculation. Provided to fix a client daylight-savings bug; not recommended.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] time server = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If YES, <EM CLASS="emphasis"> +nmbd</em> will provide time service to its clients.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>unix password sync = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set, will attempt to change the user's Unix password whenever the user changes his or her SMB password. Used to ease synchronization of Unix and Microsoft password databases. Added in Samba 1.9.18p4. See also <CODE CLASS="literal"> +passwd chat</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>unix realname = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set, will provide the GCOS field of <I CLASS="filename"> +/etc/passwd</i> to the client as the user's full name.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>update encrypted = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Updates the Microsoft-format password file when a user logs in with unencrypted passwords. Provided to ease conversion to encryped passwords for Windows 95/98 and NT. Added in Samba 1.9.18p5.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>user = comma-separated list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: comma-separated list of user names</p> + +<P CLASS="para"> +Synonym for <CODE CLASS="literal"> +username</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>username = comma-separated list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: comma-separated list of user names</p> + +<P CLASS="para"> +Sets a list of users to try to log in as for a share or shares with share-level security. Synonyms are <CODE CLASS="literal"> +user</code> and <CODE CLASS="literal"> +users</code>. Discouraged. Use <CODE CLASS="literal"> +NET USE \\</code><CODE CLASS="replaceable"><I>server</i></code><CODE CLASS="literal">\</code><CODE CLASS="replaceable"><I>share </i></code><CODE CLASS="literal">%</code><CODE CLASS="replaceable"><I>user</i></code> from the client instead.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>username level = number</i></b> +<P CLASS="refpurpose">Default: 0</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: number</p> + +<P CLASS="para"> +Number of uppercase letter permutations allowed to match Unix usernames. Workaround for Windows feature (single-case usernames). Use is discouraged.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] username map = pathname</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +Names a file of Unix-to-Windows name pairs; used to map different spellings of account names and those Windows usernames longer than eight characters.</p> +</div> +</blockquote> +</div> +<p> </p> + +<!-- 2.0.7 --> +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] utmp = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +This is available if Samba has been configured with the option +<CODE CLASS="literal"> --with-utmp</CODE>. +If set, Samba will add utmp/utmpx records whenever a +connection is made to a Samba server. New in 2.0.7, sites may use this +to record the user connecting to a Samba share. +</p> +</div> +</blockquote> +</div> +<p> </p> + + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] utmp directory = string</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: pathname</p> + +<P CLASS="para"> +This is available if Samba has been configured with the option +<CODE CLASS="literal">--with-utmp</CODE>. If it and <CODE CLASS="literal"> +utmp </CODE> are set, Samba will look in the specified directory +insteqad of the default system directory for utmp/utmpx files. +New in 2.0.7, also called <CODE CLASS="literal"> utmp dir</CODE>. +</p> +</div> +</blockquote> +</div> +<p> </p> +<!-- end of 2.0.7 -> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>valid chars = list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of numeric values</p> + +<P CLASS="para"> +Semi-obsolete. Adds national characters to a character set map. Overridden by <CODE CLASS="literal"> +client code page</code>. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>valid users = user list</i></b> +<P CLASS="refpurpose">Default: NULL (everyone)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: list of users</p> + +<P CLASS="para"> +List of users that can log in to a share. </p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>veto files = slash-list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: slash-separated list of filenames</p> + +<P CLASS="para"> +List of files not to allow the client to see when listing a directory's contents. See also <CODE CLASS="literal"> +delete veto files</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>veto oplock files = slash-list</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: slash-separated list of filenames</p> + +<P CLASS="para"> +List of files not to oplock (and cache on clients). See also <CODE CLASS="literal"> +oplocks</code> and <CODE CLASS="literal"> +fake oplocks</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>volume = share name</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: string</p> + +<P CLASS="para"> +Sets the volume label of a disk share, notably a CD-ROM.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>wide links = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, Samba will follow symlinks out of the current disk share(s). See also the <CODE CLASS="literal"> +root dir</code> and <CODE CLASS="literal"> +follow symlinks</code> options.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] wins proxy = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, <EM CLASS="emphasis"> +nmbd</em> will proxy resolution requests to WINS servers on behalf of old clients, which use broadcasts. WINS server is typically on another subnet.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] wins server = host</i></b> +<P CLASS="refpurpose">Default: NULL</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: hostname</p> + +<P CLASS="para"> +Sets the DNS name or IP address of the WINS server.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] wins support = boolean</i></b> +<P CLASS="refpurpose">Default: NO</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +If set to YES, Samba activates WINS service. The <CODE CLASS="literal"> +wins server</code> option must not be set if <CODE CLASS="literal"> +wins support = yes</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] workgroup = name</i></b> +<P CLASS="refpurpose">Default: compiled-in</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: workgroup name</p> + +<P CLASS="para"> +Sets the workgroup to which things will be served. Overrides compiled-in value. Choosing a name other than <CODE CLASS="literal"> +WORKGROUP</code> is strongly recommended.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>writable = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Antonym for <CODE CLASS="literal"> +read only</code>; synonym of <CODE CLASS="literal"> +write ok</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>write list = comma-separated list</i></b> +<P CLASS="refpurpose">Default: NULL (everyone)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: comma-separated list of users</p> + +<P CLASS="para"> +List of users that are given read-write access to a read-only share. See also <CODE CLASS="literal"> +read list</code>.</p> +</div> +</blockquote> +</div> +<p> </p> + +<!-- 2.0.7 addendum, davecb --> +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>write cache size = decimal number</i></b> +<P CLASS="refpurpose">Default: 0 (Disabled)</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: decimal number of bytes</p> + +<P CLASS="para"> +Sets the size of a write buffer that Samba uses to pre-accumulate +write into, so as to write with a particular size that's optimal for +a given filesystem. Typically this is used with RAID drives, which +have a preferred write size, systems with large memory and slow disks, etc.</p> + +<p> As of Samba 2.0.7, this applies to the first 10 oplocked files, +which are also found in shares where this option is set. +</p> +</div> +</blockquote> +</div> +<p> </p> +<!-- end of 2.0.7 addendum --> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>write ok = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Synonym of the <CODE CLASS="literal"> +writable</code> configuration option.</p> +</div> +</blockquote> +</div> +<p> </p> + +<DIV CLASS="refentry"> +<DIV CLASS="refnamediv"><b><i>[global] write raw = boolean</i></b> +<P CLASS="refpurpose">Default: YES</p></div><BLOCKQUOTE> +<DIV CLASS="refsynopsisdiv"> +<P CLASS="para">Allowable values: YES, NO</p> + +<P CLASS="para"> +Allows fast streaming writes over TCP, using 64KB buffers. Recommended.</p> +</div> +</blockquote> + +<DIV CLASS="refsect1"><h2>Glossary of Configuration Values</h2> +<DL CLASS="variablelist"> +<DT CLASS="term">Address list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A space-separated list of IP addresses in ###.###.###.### format.</p></dd><DT CLASS="term"> +Comma-separated list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A list of items separated by commas.</p></dd><DT CLASS="term"> +Command</dt><DD CLASS="listitem"> +<P CLASS="para"> +A Unix command, with full path and parameters.</p></dd><DT CLASS="term"> +Host list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A space-separated list of hosts. Allows IP addresses, address masks, domain names, ALL, and EXCEPT</p></dd><DT CLASS="term"> +Interface list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A space-separated list of interfaces, in either address/netmask or address/n-bits format. For example, 192.168.2.10/24 or 192.168.2.10/255.255.255.0</p></dd><DT CLASS="term"> +Map list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A space-separated list of file-remapping strings such as <CODE CLASS="literal"> +(*.html</code> <CODE CLASS="literal"> +*.htm)</code>.</p></dd><DT CLASS="term"> +Remote list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A space-separated list of subnet-broadcast-address/workgroup pairs. For example, 192.168.2.255/SERVERS 192.168.4.255/STAFF.</p></dd><DT CLASS="term"> +Service (share) list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A space-separated list of share names, without the enclosing square brackets.</p></dd><DT CLASS="term"> +Slash-list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A list of filenames, separated by "/" characters to allow embedded spaces. For example, <CODE CLASS="literal"> +/.*/fred</code> <CODE CLASS="literal"> +flintstone/*.frk/</code>.</p></dd><DT CLASS="term"> +Text</dt><DD CLASS="listitem"> +<P CLASS="para"> +One line of text. </p></dd><DT CLASS="term"> +User list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A space-separated list of usernames. In Samba 1.9, <CODE CLASS="literal"> +@group-name</code> will include everyone in Unix group <CODE CLASS="literal"> +group-name</code>. In Samba 2.0, <CODE CLASS="literal"> +@group-name</code> includes whomever is in the NIS netgroup <CODE CLASS="literal"> +group_name</code> if one exists, otherwise whomever is in the Unix group <CODE CLASS="literal"> +group_name</code>. In addition, +<CODE CLASS="literal"> +group_name</code> is a Unix group, &<CODE CLASS="literal"> +group_name</code> is an NIS netgroup, and &+ and +& cause an ordered search of both Unix and NIS groups.</p></dd></dl></div> +<DIV CLASS="refsect1"> +<h2>Configuration File Variables</h2> +<P CLASS="para"> +<A CLASS="xref" HREF="appc_01.html#appc-88529"> +Table C.1</a> lists of Samba configuration file variables. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="appc-88529"> +Table C.1: Variables in Alphabetic Order </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Name</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Meaning</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%a</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Client's architecture (one of Samba, WfWg, WinNT, Win95, or UNKNOWN)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%d</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current server process's processID </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%f</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Print-spool file as a relative path (printing only)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%f</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +User from which a message was sent (messages only)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%G</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Primary group name of <CODE CLASS="literal"> +%U</code> (requested username) </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%g</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Primary group name of <CODE CLASS="literal"> +%u</code> (actual username)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%H</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Home directory of <CODE CLASS="literal"> +%u</code> (actual username)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%h</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba server's (Internet) hostname</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%I</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Client's IP address </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%j</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Print job number (printing only)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%L</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba server's NetBIOS name (virtual servers have multiple names)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%M</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Client's (Internet) hostname </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%m</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Client's NetBIOS name </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%n</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +New password (password change only)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%N</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Name of the NIS home directory server (without NIS, same as <CODE CLASS="literal"> +%L</code>)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%o</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Old password (password change only)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%P</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current share's root directory (actual)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%p</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current share's root directory (in an NIS homedir map)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%p</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Print filename (printing only)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%R</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Protocol level in use (one of CORE, COREPLUS, LANMAN1, LANMAN2, or NT1)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%S</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current share's name </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%s</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Filename the message is in (messages only)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%s</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Print-spool file name (printing only)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%T</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current date and time </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%t</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Destination machine (messages only)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%u</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current share's username </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%U</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Requested username for current share </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%v</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba version</p></td></tr></tbody></table></div></blockquote></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appb_03.html" TITLE="B.3 Sizing Samba Servers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: B.3 Sizing Samba Servers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appd_01.html" TITLE="D. Summary of Samba Daemons and Commands"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: D. Summary of Samba Daemons and Commands" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +B.3 Sizing Samba Servers</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +D. Summary of Samba Daemons and Commands</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appd_01.html b/docs/htmldocs/using_samba/appd_01.html new file mode 100644 index 0000000000..5e3bd16aa4 --- /dev/null +++ b/docs/htmldocs/using_samba/appd_01.html @@ -0,0 +1,1907 @@ +<HTML> +<HEAD> +<TITLE>Appendix D</title> +</head> + +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="appc_01.html" TITLE="C. Samba Configuration Option Quick Reference"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: C. Samba Configuration Option Quick Reference" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Appendix D</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appe_01.html" TITLE="E. Downloading Samba with CVS"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: E. Downloading Samba with CVS" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> + +<blockquote> +<div class="samplechapter"> +<h1>Appendix D<br> +Summary of Samba Daemons and Commands</h1> + +<p> +This appendix is a reference listing of command-line options and other information to help you use the executables that come with Samba distribution. + +<DIV> +<H2 CLASS="FM-HeadA">Samba Distribution Programs</h2> +<P CLASS="Body">The following sections provide information about the command-line parameters for Samba programs.</p> +<DIV> +<H3 CLASS="HeadB">smbd</h3> +<P CLASS="Body">The <EM CLASS="Emphasis">smbd</em> + program provides Samba's file and printer services, using one TCP/IP stream and one daemon per client. It is controlled from the default configuration file, <EM CLASS="Replaceable">samba_dir</em><EM CLASS="Emphasis">/lib/smb.conf</em>, and can be overridden by command-line options.</p> +<P CLASS="Body">The configuration file is automatically re-evaluated every minute. If it has changed, most new options are immediately effective. You can force Samba to immediately reload the configuration file if you send a SIGHUP to <EM CLASS="Emphasis">smbd</em> +. Reloading the configuration file, however, will not affect any clients that are already connected. To escape this "grandfather" configuration, a client would need to disconnect and reconnect, or the server itself would have to be restarted, forcing all clients to reconnect.</p> +<DIV> +<H4 CLASS="HeadC">Other signals</h4> +<P CLASS="Body">To shut down a <EM CLASS="Emphasis">smbd</em> + process, send it the termination signal SIGTERM (-15) which allows it to die gracefully instead of a SIGKILL (-9). To increment the debug logging level of <EM CLASS="Emphasis">smbd</em> + at runtime, send the program a SIGUSR1 signal. To decrement it at runtime, send the program a SIGUSR2 signal. </p> +</div> +<DIV> +<H4 CLASS="HeadC">Command-line options</h4> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-D</em> +</h4> +<UL> +<LI CLASS="ListVariable">The <EM CLASS="Emphasis">smbd</em> + program is run as a daemon. This is the recommended way to use <EM CLASS="Emphasis">smbd</em> (it is also the default action). In addition, <EM CLASS="Emphasis">smbd</em> can also be run from <EM CLASS="Emphasis">inetd</em>.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-d</em> + <EM CLASS="Replaceable">debuglevel</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the debug (sometimes called logging) level. The level can range from 0 all the way to 10. Specifying the value on the command line overrides the value specified in the <EM CLASS="Filename">smb.conf</em> + file. Debug level 0 logs only the most important messages; level 1 is normal; levels 3 and above are primarily for debugging and slow <EM CLASS="Emphasis">smbd</em> + considerably.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-h</em> + </h4> +<UL> +<LI CLASS="ListVariable">Prints command-line usage information for the <EM CLASS="Filename">smbd</em> + program.</li> +</ul> +<DIV> +<H4 CLASS="HeadC">Testing/debugging options</h4> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-a</em> +</h4> +<UL> +<LI CLASS="ListVariable">If this is specified, each new connection to the Samba server will append all logging messages to the log file. This option is the opposite of <EM CLASS="Literal">-o</em>, and is the default.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-i</em> + <EM CLASS="Replaceable">scope</em> +</h4> +<UL> +<LI CLASS="ListVariable"> </li> +<LI CLASS="ListVariable">This sets a NetBIOS scope identifier. Only machines with the same identifier will communicate with the server. The scope identifier was a predecessor to workgroups, and this option is included only for backwards compatibility.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-l</em> + <EM CLASS="Replaceable">log_file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Send the log messages to somewhere other than the location compiled in or specified in the <EM CLASS="Filename">smb.conf</em> file. The default is often <EM CLASS="Filename">/usr/local/samba/var/log.smb</em>, <EM CLASS="Filename">/usr/samba/var/log.smb,</em> or <EM CLASS="Filename">/var/log/log.smb</em>. The first two are strongly discouraged on Linux, where <EM CLASS="Filename">/usr</em> + may be a read-only filesystem. </li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-O</em> + <EM CLASS="Replaceable">socket_options</em> +</h4> +<UL> +<LI CLASS="ListVariable">This sets the TCP/IP socket options, using the same parameters as the <EM CLASS="Literal">socket</em> + <EM CLASS="Literal">options</em> + configuration option. It is often used for performance tuning and testing.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-o</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option is the opposite of <EM CLASS="Literal">-a</em>. It causes log files to be overwritten when opened. Using this option saves hunting for the right log entries if you are performing a series of tests and inspecting the log file each time.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-P</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option forces <EM CLASS="Filename">smbd</em> + not to send any network data out. This option is typically used only by Samba developers.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-P</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option forces <EM CLASS="Filename">smbd</em> + not to send any network data out. This option is typically used only by Samba developers. </li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-p</em> + <EM CLASS="Replaceable">port_number</em> +</h4> +<UL> +<LI CLASS="ListVariable">This sets the TCP/IP port number that the server will accept requests from. Currently, all Microsoft clients send only to the default port: 139.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-s</em> + <EM CLASS="Replaceable">configuration_file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies the location of the Samba configuration file. Although the file defaults to <EM CLASS="Filename">/usr/local/samba/lib/smb.conf</em>, you can override it here on the command line, typically for debugging.</li> +</ul> +</div> +</div> +<DIV> +<H3 CLASS="HeadB">nmbd</h3> +<P CLASS="Body">The <EM CLASS="Emphasis">nmbd</em> + program is Samba's NetBIOS name and browsing daemon. It replies to broadcast NetBIOS over TCP/IP (NBT) name-service requests from SMB clients and optionally to Microsoft's Windows Internet Name Service (WINS) requests. Both of these are versions of the name-to-address lookup required by SMB clients. The broadcast version uses UDP/IP broadcast on the local subnet only, while WINS uses TCP/IP, which may be routed. If running as a WINS server, <EM CLASS="Emphasis">nmbd</em> + keeps a current name and address database in the file <EM CLASS="Filename">wins.dat</em> in the <EM CLASS="Literal">samba_dir</em><EM CLASS="Filename">/var/locks</em> directory.</p> +<P CLASS="Body">An active <EM CLASS="Emphasis">nmbd</em> + program can also respond to browsing protocol requests used by the Windows Network Neighborhood. Browsing is a combined advertising, service announcement, and active directory protocol. This protocol provides a dynamic directory of servers and the disks and printers that the servers are providing. As with WINS, this was initially done by making UDP/IP broadcasts on the local subnet. Now, with the concept of a local master browser, it is done by making TCP/IP connections to a server. If <EM CLASS="Emphasis">nmbd</em> + is acting as a local master browser, it stores the browsing database in the file <EM CLASS="Filename">browse.dat</em> in the <EM CLASS="Literal">samba_dir</em><EM CLASS="Filename">/var/locks</em> directory.</p> +<DIV> +<H4 CLASS="HeadC">Signals</h4> +<P CLASS="Body">Like <EM CLASS="Emphasis">smbd</em>, the <EM CLASS="Emphasis">nmbd</em> program responds to several Unix signals. Sending <EM CLASS="Emphasis">nmbd</em> + a SIGHUP signal will cause it to dump the names it knows about to the file <EM CLASS="Filename">namelist.debug</em> + in the <EM CLASS="Literal">samba_dir</em> +/<EM CLASS="Emphasis">locks</em> + directory and its browsing database to the <EM CLASS="Filename">browse.dat </em> +file in the same directory. To shut down a <EM CLASS="Emphasis">nmbd</em> + process send it a SIGTERM (-15) signal instead of a SIGKILL (-9) to allow it to die gracefully. You can increment the debug logging level of <EM CLASS="Emphasis">nmbd</em> + by sending it a SIGUSR1 signal; you can decrement it by sending a SIGUSR2 signal.</p> +</div> +<DIV> +<H4 CLASS="HeadC">Command-line options</h4> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-D</em> +</h4> +<UL> +<LI CLASS="ListVariable">Instructs the <EM CLASS="Filename">nmbd</em> + program to run as a daemon. This is the recommended way to use <EM CLASS="Filename">nmbd</em>. In addition, <EM CLASS="Filename">nmbd</em> can also be run from <EM CLASS="FirstTerm">inetd</em>.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-d</em> + <EM CLASS="Replaceable">debuglevel</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the debug (sometimes called logging) level. The level can range from 0, all the way to 10. Specifying the value on the command line overrides the value specified in the <EM CLASS="Filename">smb.conf</em> + file. Debug level 0 logs only the most important messages; level 1 is normal; level 3 and above are primarily for debugging, and slow <EM CLASS="Emphasis">nmbd</em> + considerably.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-h</em> + </h4> +<UL> +<LI CLASS="ListVariable">Prints command-line usage information for the <EM CLASS="Filename">nmbd</em> program (also <EM CLASS="Literal">-?</em>).</li> +</ul> +<DIV> +<H4 CLASS="HeadC">Testing/debugging options</h4> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-a</em> +</h4> +<UL> +<LI CLASS="ListVariable">If this is specified, each new connection to the Samba server will append all logging messages to the log file. This option is the opposite of <EM CLASS="Literal">-o</em>, and is the default.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-H</em> + <EM CLASS="Replaceable">hosts_ file</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option loads a standard <EM CLASS="Emphasis">hosts</em> + file for name resolution. </li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-i</em> + <EM CLASS="Replaceable">scope</em> +</h4> +<UL> +<LI CLASS="ListVariable">This sets a NetBIOS scope identifier. Only machines with the same identifier will communicate with the server. The scope identifier was a predecessor to workgroups, and this option is included only for backward compatibility.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-l</em> + <EM CLASS="Replaceable">log_file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sends the log messages to somewhere other than the location compiled-in or specified in the <EM CLASS="Filename">smb.conf</em> file. The default is often <EM CLASS="Filename">/usr/local/samba/var/log.nmb</em>, <EM CLASS="Filename">/usr/samba/var/log.nmb,</em> or <EM CLASS="Filename">/var/log/log.nmb</em>. The first two are strongly discouraged on Linux, where <EM CLASS="Filename">/usr</em> + may be a read-only filesystem. </li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-n</em> + <EM CLASS="Replaceable">NetBIOS_name</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option allows you to override the NetBIOS name by which the daemon will advertise itself. Specifying the option on the command line overrides the <EM CLASS="Literal">netbios</em> + <EM CLASS="Literal">name</em> + option in the Samba configuration file.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-O</em> + <EM CLASS="Replaceable">socket_options</em> +</h4> +<UL> +<LI CLASS="ListVariable">This sets the TCP/IP socket options, using the same parameters as the <EM CLASS="Literal">socket</em> + <EM CLASS="Literal">options</em> + configuration option. It is often used for performance tuning and testing.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-o</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option is the opposite of <EM CLASS="Literal">-a</em> +. It causes log files to be overwritten when opened. Using this option saves hunting for the right log entries if you are performing a series of tests and inspecting the log file each time.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-p</em> + <EM CLASS="Replaceable">port_number</em> +</h4> +<UL> +<LI CLASS="ListVariable">This sets the UDP/IP port number from which the server will accept requests. Currently, all Microsoft clients send only to the default port: 137.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-s</em> + <EM CLASS="Replaceable">configuration_file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies the location of the Samba configuration file. Although the file defaults to <EM CLASS="Filename">/usr/local/samba/lib/smb.conf</em>, you can override it here on the command line, typically for debugging.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-v</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option prints the current version of Samba.</li> +</ul> +</div> +</div> +<DIV> +<H3 CLASS="HeadB">Samba Startup File </h3> +<P CLASS="Body">Samba is normally started by running it from your Unix system's <EM CLASS="Filename">rc</em> + files at boot time. For systems with a System V-like set of <EM CLASS="Filename">/etc/rcN.d</em> + directories, this can be done by placing a suitably named script in the <EM CLASS="Filename">/rc</em> + directory. Usually, the script starting Samba is called <EM CLASS="Emphasis">S91samba</em> +, while the script stopping or "killing" Samba is called <EM CLASS="Emphasis">K91samba. </em> +On Linux, the usual subdirectory for the scripts is <EM CLASS="Filename">/etc/rc2.d.</em> + On Solaris, the directory is <EM CLASS="Filename">/etc/rc3.d</em> +. For machines with <EM CLASS="Filename">/etc/rc.local</em> + files, you would normally add the following lines to that file:</p> +<P CLASS="Code">/usr/local/samba/bin/smbd -D</p> +<P CLASS="Code">/usr/local/samba/bin/nmbd -D </p> +<P CLASS="Body">The following example script supports two extra commands, <EM CLASS="Literal">status</em> + and <EM CLASS="Literal">restart</em>, in addition to the normal <EM CLASS="Literal">start</em> + and <EM CLASS="Literal">stop</em> + for System V machines:</p> + +<pre> +#!/bin/sh +# +# /etc/rc2.d./S91Samba --manage the SMB server in a System V manner +# +OPTS="-D" +#DEBUG=-d3 +PS="ps ax" +SAMBA_DIR=/usr/local/samba +case "$1" in +'start') + echo "samba " + $SAMBA_DIR/bin/smbd $OPTS $DEBUG + $SAMBA_DIR/bin/nmbd $OPTS $DEBUG + ;; +'stop') + echo "Stopping samba" + $PS | awk '/usr.local.samba.bin/ { print $1}' |\ + xargs kill + ;; +'status') + x=`$PS | grep -v grep | grep '$SAMBA_DIR/bin'` + if [ ! "$x" ]; then + echo "No samba processes running" + else + echo " PID TT STAT TIME COMMAND" + echo "$x" + fi + ;; +'restart') + /etc/rc2.d/S91samba stop + /etc/rc2.d/S91samba start + /etc/rc2.d/S91samba status + ;; +*) + echo "$0: Usage error -- you must say $0 start, stop, status or restart." + ;; +esac +exit +</pre> +<P CLASS="Body">You'll need to set the actual paths and <EM CLASS="Literal">ps</em> + options to suit the machine you're using. In addition, you might want to add additional commands to tell Samba to reload its <EM CLASS="Filename">smb.conf</em> + file or dump its <EM CLASS="Emphasis">nmbd</em> + tables, depending on your actual needs. </p> +</div> +<DIV> +<H3 CLASS="HeadB">smbsh</h3> +<P CLASS="Body">The <EM CLASS="Emphasis">smbsh</em> + program lets you use a remote Windows share on your Samba server as if the share was a regular Unix directory. When it's run, it provides an extra directory tree under <EM CLASS="Filename">/smb</em>. Subdirectories of <EM CLASS="Filename">/smb</em> + are servers, and subdirectories of the servers are their individual disk and printer shares. Commands run by <EM CLASS="Emphasis">smbsh</em> + treat the <EM CLASS="Filename">/smb</em> + filesystem as if it were local to Unix. This means that you don't need <EM CLASS="Emphasis">smbmount</em> + in your kernel to mount Windows filesystems the way you mount with NFS filesystems. However, you do need to configure Samba with the <EM CLASS="Literal">--with-smbwrappers</em> + option to enable <EM CLASS="Filename">smbsh</em>.</p> +<DIV> +<H4 CLASS="HeadC">Options</h4> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-d</em> + debuglevel</h4> +<UL> +<LI CLASS="ListVariable">Sets the debug (sometimes called logging) level. The level can range from 0, the default, all the way to 10. Debug level 0 logs only the most important messages; level 1 is normal; level 3 and above are primarily for debugging, and slow <EM CLASS="Emphasis">smbsh</em> + considerably.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-l</em> + <EM CLASS="Replaceable">logfile</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the name of the logfile to use.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-P</em> + <EM CLASS="Replaceable">prefix</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the root directory to mount the SMB filesystem. The default is <EM CLASS="Filename">/smb</em>.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-R</em> + <EM CLASS="Replaceable">resolve order</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the resolve order of the name servers. This option is similar to the <EM CLASS="Literal">resolve order</em> + configuration option, and can take any of the four parameters, <EM CLASS="Literal">lmhosts</em>, <EM CLASS="Literal">host</em>, <EM CLASS="Literal">wins</em>, and <EM CLASS="Literal">bcast</em>, in any order.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-U</em> + <EM CLASS="Replaceable">user</em> +</h4> +<UL> +<LI CLASS="ListVariable">Supports <EM CLASS="Replaceable">user%password.</em> +</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-W</em> + <EM CLASS="Replaceable">workgroup</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the NetBIOS workgroup to which the client will connect.</li> +</ul> +</div> +</div> +<DIV> +<H3 CLASS="HeadB">smbclient</h3> +<P CLASS="Body">The <EM CLASS="Emphasis">smbclient</em> + program is the maid-of-all-work of the Samba suite. Initially intended as a testing tool, it has become a full command-line Unix client, with an FTP-like interactive client. Some of its options are still used for testing and tuning, and it makes a simple tool for ensuring that Samba is running on a server.</p> +<P CLASS="Body">It's convenient to look at <EM CLASS="Emphasis">smbclient</em> + as a suite of programs:</p> +<UL> +<LI CLASS="ListBullet">FTP-like interactive file transfer program</li> +<LI CLASS="ListBullet">Interactive printing program</li> +<LI CLASS="ListBullet">Interactive tar program </li> +<LI CLASS="ListBullet">Command-line message program</li> +<LI CLASS="ListBullet">Command-line <EM CLASS="Emphasis">tar</em> + program (but see <EM CLASS="Emphasis">smbtar</em> + later)</li> +<LI CLASS="ListBullet">"What services do you have" query program</li> +<LI CLASS="ListBullet">Command-line debugging program</li> +</ul> +<DIV> +<H4 CLASS="HeadC">General command-line options</h4> +<P CLASS="Body">The program has the usual set of <EM CLASS="Emphasis">smbd</em> +-like options, which apply to all the interactive and command-line use. The syntax is:</p> +<P CLASS="Code">smbclient //<EM CLASS="Replaceable">server_name</em> +/<EM CLASS="Replaceable">share_name</em> + [<EM CLASS="Replaceable">password</em> +] [-<EM CLASS="Replaceable">options</em> +]</p> +<P CLASS="Body">Here is an explanation of each of the command-line options:</p> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-d</em> + <EM CLASS="Replaceable">debug_level</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the debug (logging) level, from 0 to 10, with <EM CLASS="Literal">A</em> + for all. Overrides the value in <EM CLASS="Filename">smb.conf</em>. Debug level 0 logs only the most important messages; level 1 is normal; debug level 3 and above are for debugging, and slow <EM CLASS="Emphasis">smbclient</em> + considerably.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-h</em> +</h4> +<UL> +<LI CLASS="ListVariable">Prints the command-line help information (usage) for smbclient.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-n</em> + <EM CLASS="Replaceable">NetBIOS_name</em> +</h4> +<P CLASS="ListSimple">Allows you to override the NetBIOS name by which the program will advertise itself. </p> +<DIV> +<H4 CLASS="HeadC">Smbclient operations</h4> +<P CLASS="Body">Running <EM CLASS="Literal">smbclient</em><EM CLASS="Literal">//</em><EM CLASS="Replaceable">server_name</em><EM CLASS="Literal">/</em><EM CLASS="Replaceable">share</em> + will cause it to prompt you for a username and password. If the login is successful, it will connect to the share and give you a prompt much like an FTP prompt (the backslash in the prompt will be replaced by the current directory within the share as you move around the filesystem):</p> +<P CLASS="Code">smb:\></p> +<P CLASS="Body">From this command line, you can use several FTP-like commands, as listed below. Arguments in square brackets are optional. </p> +<TABLE> +<CAPTION> +<H4 CLASS="TableLabel"><A NAME="89417"></a> </h4> +<H4 CLASS="TableTitle">smbclient Commands </h4> +</caption> +<TR> +<TH ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellHeading">Command</p> +</th> +<TH ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellHeading">Description</p> +</th> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">?</em> + <EM CLASS="Replaceable">command</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Provides list of commands or help on specified command.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">help</em> + [<EM CLASS="Replaceable">command</em>]</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Provides list of commands or help on specified command.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">!</em> + [<EM CLASS="Replaceable">command</em>]</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">If a command is specified, it will be run in a local shell. If not, you will be placed into a local shell on the client.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">dir</em> + [<EM CLASS="Replaceable">filename</em>]</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Displays any files matching <EM CLASS="Replaceable">filename</em> + in the current directory on the server, or all files if <EM CLASS="Replaceable">filename</em> + is omitted.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">ls</em> + [<EM CLASS="Replaceable">filename</em>]</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Displays any files matching <EM CLASS="Replaceable">filename</em> + in the current directory on the server, or all files if <EM CLASS="Replaceable">filename</em> + is omitted.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">cd</em> + [<EM CLASS="Replaceable">directory</em>]</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">If <EM CLASS="Replaceable">directory</em> + is specified, changes to the specified directory on the remote server. If not, reports the current directory on the remote machine.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">lcd</em> + [<EM CLASS="Replaceable">directory</em>]</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">If <EM CLASS="Replaceable">directory</em> + is specified, the current directory on the local machine will be changed. If not, the name of the current directory on the local machine will be reported.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">get</em> + <EM CLASS="Emphasis">remotefile </em> +[<EM CLASS="Replaceable">localfile</em>]</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Copies the file <EM CLASS="Replaceable">remotefile</em> to the local machine. If a <EM CLASS="Replaceable">localfile</em> + is specified, uses that name to copy the file to. Treats the file as binary; does <EM CLASS="Emphasis">not</em> + do LF to CR/LF conversions.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">put</em> + <EM CLASS="Emphasis">localfile </em> +[<EM CLASS="Replaceable">remotefile</em>]</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Copies <EM CLASS="Replaceable">localfile</em> + to the remote machine. If a <EM CLASS="Replaceable">remotefile</em> + is specified, uses that as the name to copy to on the remote server. Treats the file as binary; does <EM CLASS="Emphasis">not</em> + do LF to CR/LF conversions.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">mget</em> + <EM CLASS="Replaceable">pattern</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Gets all files matching <EM CLASS="Replaceable">pattern</em> + from the remote machine.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">mput</em> +<EM CLASS="Replaceable"> pattern</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Places all local files matching <EM CLASS="Replaceable">pattern</em> + on the remote machine.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">prompt</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Toggles interactive prompting on and off for <EM CLASS="Literal">mget</em> and <EM CLASS="Literal">mput</em>.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">lowercase ON </em> + <br> + +(or<EM CLASS="Literal"> OFF</em>)</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">If lowercase is on, <EM CLASS="Emphasis">smbclient</em> + will convert filenames to lowercase during an <EM CLASS="Literal">mget</em> + or <EM CLASS="Literal">get</em> + (but not a <EM CLASS="Literal">mput</em> or <EM CLASS="Literal">put</em>).</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">del</em> + <EM CLASS="Replaceable">filename</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Delete a file on the remote machine.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">md</em> + <EM CLASS="Replaceable">directory</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Create a directory on the remote machine.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">mkdir</em> + <EM CLASS="Replaceable">directory</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Create a directory on the remote machine.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">rd</em> + <EM CLASS="Replaceable">directory</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Remove the specified directory on the remote machine.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">rmdir</em> + <EM CLASS="Replaceable">directory</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Remove the specified directory on the remote machine.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">setmode</em> + <EM CLASS="Replaceable">filename</em> + <EM CLASS="Literal">[+|-]rsha</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Set DOS filesystem attribute bits, using Unix-like modes. <EM CLASS="Literal">r</em> + is read-only, <EM CLASS="Literal">s</em> + is system, <EM CLASS="Literal">h</em> + is hidden, and <EM CLASS="Literal">a</em> + is archive.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">exit</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Exits <EM CLASS="Emphasis">smbclient</em>.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">quit</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Exits <EM CLASS="Emphasis">smbclient</em>.</p> +</td> +</tr> +</table> +<P CLASS="Body">There are also mask and recursive commands for large copies; see the <EM CLASS="Filename">smbclient</em> + manual page for details on how to use these. With the exception of mask, recursive, and the lack of an ASCII transfer mode, <EM CLASS="Emphasis">smbclient</em> + works exactly the same as FTP. Note that because it does binary transfers, Windows files copied to Unix will have lines ending in carriage-return and linefeed (<EM CLASS="Literal">\r\n</em>), not Unix's linefeed (<EM CLASS="Literal">\n</em>).</p> +</div> +<DIV> +<H4 CLASS="HeadC">Printing commands</h4> +<P CLASS="Body">The <EM CLASS="Emphasis">smbclient</em> + program can also be used for access to a printer by connecting to a print share. Once connected, the commands shown below can be used to print. </p> +<TABLE> +<CAPTION> +<H4 CLASS="TableLabel"><A NAME="39300"></a> </h4> +<H4 CLASS="TableTitle">smbclient Printing Commands </h4> +</caption> +<TR> +<TH ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellHeading">Command</p> +</th> +<TH ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellHeading">Description</p> +</th> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">print</em> +<EM CLASS="Replaceable"> filename</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Prints the file by copying it from the local machine to the remote one and then submitting it as a print job there.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">printmode</em> + <EM CLASS="Replaceable">text </em> +|<EM CLASS="Replaceable"> graphics</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Instructs the server that the following files will be plain text (ASCII) or the binary graphics format that the printer requires. It's up to the user to ensure that the file is indeed the right kind.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">queue</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Displays the queue for the print share you're connected to, showing job ID, name, size, and status.</p> +</td> +</tr> +</table> +</div> +</div> +<DIV> +<H4 CLASS="SidebarBody">Finally, to print from the <EM CLASS="Emphasis">smbclient</em>, use the <EM CLASS="Literal">-c</em> + option:</h4> +<P CLASS="Code">cat <EM CLASS="Replaceable">printfile</em> + | smbclient //<EM CLASS="Replaceable">server</em> +/<EM CLASS="Replaceable">printer_name</em> + -c "print -"</p> +<DIV> +<H4 CLASS="HeadC">Tar commands</h4> +<P CLASS="Body"><EM CLASS="Emphasis">smbclient</em> + can tar up files from a file share. This is normally done from the command line using the <EM CLASS="Emphasis">smbtar</em> + command, but the commands shown below are also available interactively. </p> +<TABLE> +<CAPTION> +<H4 CLASS="TableLabel"><A NAME="54517"></a> </h4> +<H4 CLASS="TableTitle">smbclient Tar Commands </h4> +</caption> +<TR> +<TH ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellHeading">Command</p> +</th> +<TH ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellHeading">Description</p> +</th> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">tar c|x[IXbgNa]</em> + <EM CLASS="Replaceable">operands</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Performs a creation or extraction <EM CLASS="Emphasis">tar</em> similar to the command-line program. </p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">blocksize</em> + <EM CLASS="Replaceable">size</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Sets the block size to be used by <EM CLASS="Emphasis">tar</em>, in 512-byte blocks.</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">tarmode full|inc|reset|<br> + +noreset</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Makes <EM CLASS="Emphasis">tar</em> + pay attention to DOS archive bit for all following commands. In <EM CLASS="Literal">full</em> + mode (the default), <EM CLASS="Emphasis">tar</em> + will back up everything. In <EM CLASS="Literal">inc</em> + (incremental) mode, <EM CLASS="Emphasis">tar</em> + will back up only those files with the archive bit set. In <EM CLASS="Literal">reset</em> + mode, <EM CLASS="Emphasis">tar</em> + will reset the archive bit on all files it backs up (this requires the share to be writable), and in <EM CLASS="Literal">noreset</em> + mode the archive bit will not be reset even after the file has been backed up.</p> +</td> +</tr> +</table> +</div> +<DIV> +<H4 CLASS="HeadC">Command-line message program options</h4> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-M</em> + <EM CLASS="Replaceable">NetBIOS_machine_name</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option allows you to send immediate messages using the WinPopup protocol to another computer. Once a connection is established, you can type your message, pressing control-D to end. If WinPopup is not running on the receiving machine, the program returns an error.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-U</em> + <EM CLASS="Replaceable">user</em> + </h4> +<UL> +<LI CLASS="ListVariable">This<EM CLASS="Replaceable"> </em> +option allows you to indirectly control the FROM part of the message. </li> +</ul> +<DIV> +<H4 CLASS="HeadC">Command-line tar program options</h4> +<P CLASS="Body">The <EM CLASS="Literal">-T</em> + (tar), <EM CLASS="Literal">-D</em> + (starting directory), and <EM CLASS="Literal">-c</em> + (command) options are used together to tar up files interactively. This is better done with <EM CLASS="Filename">smbtar</em>, which will be discussed shortly. We don't recommend using <EM CLASS="Emphasis">smbclient</em> + directly as a <EM CLASS="Emphasis">tar</em> + program. </p> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-D</em> + <EM CLASS="Replaceable">initial_directory</em> +</h4> +<UL> +<LI CLASS="ListVariable">Changes to initial directory before starting.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-c</em> + <EM CLASS="Replaceable">command_string</em> + </h4> +<UL> +<LI CLASS="ListVariable">Passes a command string to the <EM CLASS="Emphasis">smbclient</em> + command interpreter, which treats it as a semicolon-separated list of commands to be executed. This is handy to say things such as <EM CLASS="Literal">tarmode</em> <EM CLASS="Literal">inc</em>, for example, which forces <EM CLASS="Literal">smbclient</em> + <EM CLASS="Literal">-T</em> + to back up only files with the archive bit set.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-T</em> + <EM CLASS="Replaceable">command filename</em> +</h4> +<UL> +<LI CLASS="ListVariable">Runs the <EM CLASS="Emphasis">tar</em> + driver, which is <EM CLASS="Emphasis">gtar</em> + compatible. The two main commands are: <EM CLASS="Literal">c</em> + (create) and <EM CLASS="Literal">x</em> + (extract), which may be followed by any of:</li> +</ul> +<DIV> +<H4 CLASS="FM-ListVariableTermRunin"><EM CLASS="Literal">a</em> +</h4> +<P CLASS="FM-ListVariable">Resets archive bits once files are saved.</p> +</div> +<DIV> +<H5 CLASS="FM-ListVariableTerm"><EM CLASS="Literal">b</em> + <EM CLASS="Replaceable">size</em> +</h5> +<P CLASS="FM-ListVariable">Sets blocksize in 512-byte units.</p> +<DIV> +<H4 CLASS="FM-ListVariableTermRunin"><EM CLASS="Literal">g</em> +</h4> +<P CLASS="FM-ListVariable">Backs up only files with the archive bit set.</p> +</div> +</div> +<DIV> +<H5 CLASS="FM-ListVariableTerm"><EM CLASS="Literal">I</em> + <EM CLASS="Replaceable">file</em> +</h5> +<P CLASS="FM-ListVariable">Includes files and directories (this is the default). Does not do pattern-matching.</p> +</div> +<DIV> +<H5 CLASS="FM-ListVariableTerm"><EM CLASS="Literal">N</em> + <EM CLASS="Replaceable">filename</em> +</h5> +<P CLASS="FM-ListVariable">Backs up only those files newer than <EM CLASS="Replaceable">filename.</em> +</p> +<DIV> +<H4 CLASS="FM-ListVariableTermRunin"><EM CLASS="Literal">q</em> +</h4> +<P CLASS="FM-ListVariable">Does not produce diagnostics.</p> +</div> +</div> +<DIV> +<H5 CLASS="FM-ListVariableTerm"><EM CLASS="Literal">X</em> + <EM CLASS="Replaceable">file</em> +</h5> +<P CLASS="FM-ListVariable">Excludes files.</p> +<DIV> +<H4 CLASS="HeadC">Command-line query program</h4> +<P CLASS="Body">If <EM CLASS="Filename">smbclient</em> + is run as:</p> +<P CLASS="Code">smbclient -L <EM CLASS="Replaceable">server_name</em> +</p> +<P CLASS="Body">it will list the shares and other services that machine provides. This is handy if you don't have <EM CLASS="Filename">smbwrappers</em>. It can also be helpful as a testing program in its own right.</p> +</div> +<DIV> +<H4 CLASS="HeadC">Command-line debugging /diagnostic program options</h4> +<P CLASS="Body">Any of the various modes of operation of <EM CLASS="Emphasis">smbclient</em> + can be used with the debugging and testing command-line options:</p> +</div> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-B</em> + <EM CLASS="Replaceable">IP_addr</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the broadcast address.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-d</em> + <EM CLASS="Replaceable">debug_level</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the debug (sometimes called logging) level. The level can range from 0 all the way to 10. In addition, you can specify <EM CLASS="Literal">A</em> + for all debugging options. Debug level 0 logs only the most important messages; level 1 is normal; level 3 and above are primarily for debugging and slow operations considerably.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-E</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sends all messages to stderr instead of stdout.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-I</em> + <EM CLASS="Replaceable">IP_address</em> + </h4> +<UL> +<LI CLASS="ListVariable">Sets the IP address of the server to which it connects.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-i</em> + <EM CLASS="Replaceable">scope</em> +</h4> +<UL> +<LI CLASS="ListVariable">This sets a NetBIOS scope identifier. Only machines with the same identifier will communicate with the server. The scope identifier was a predecessor to workgroups, and this option is included only for backward compatibility.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-l</em> + <EM CLASS="Replaceable">log_file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sends the log messages to the specified file. </li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-N</em> +</h4> +<UL> +<LI CLASS="ListVariable">Suppresses the password prompt. Unless a password is specified on the command line or this parameter is specified, the client will prompt for a password.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-n</em> + <EM CLASS="Replaceable">NetBIOS_name</em> +</h4> +<P CLASS="ListSimple">This option allows you to override the NetBIOS name by which the daemon will advertise itself. </p> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-O</em> + <EM CLASS="Replaceable">socket_options</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the TCP/IP socket options using the same parameters as the <EM CLASS="Literal">socket</em> + <EM CLASS="Literal">options</em> + configuration option. It is often used for performance tuning and testing.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-p</em> + <EM CLASS="Replaceable">port_number</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the port number from which the client will accept requests. </li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-R</em> + <EM CLASS="Replaceable">resolve_order</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the resolve order of the name servers. This option is similar to the <EM CLASS="Literal">resolve</em> + <EM CLASS="Literal">order</em> + configuration option, and can take any of the four parameters, <EM CLASS="Literal">lmhosts</em>, <EM CLASS="Literal">host</em>, <EM CLASS="Literal">wins</em>, and <EM CLASS="Literal">bcast</em>, in any order.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-s</em> + <EM CLASS="Replaceable">configuration_file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies the location of the Samba configuration file. Used for debugging.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-t</em> + <EM CLASS="Replaceable">terminal_code</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the terminal code for Asian languages.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-U</em> + <EM CLASS="Replaceable">username</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the username and optionally password (e.g., <EM CLASS="Literal">-U</em> + <EM CLASS="Literal">fred%secret</em>).</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-W</em> + <EM CLASS="Replaceable">workgroup</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies the workgroup that you want the client to connect as.</li> +</ul> +<P CLASS="Body">If you want to test a particular name service, run <EM CLASS="Emphasis">smbclient</em> + with <EM CLASS="Literal">-R</em> + and just the name of the service. This will force <EM CLASS="Emphasis">smbclient</em> + to use only the service you gave.<EM CLASS="Emphasis"></em> +</p> +</div> +</div> +<DIV> +<H3 CLASS="HeadB">smbstatus</h3> +<P CLASS="Body">The <EM CLASS="Filename">smbstatus</em> + program lists the current connections on a Samba server. There are three separate sections. The first section lists various shares that are in use by specific users. The second section lists the locked files that Samba currently has on all of its shares. Finally, the third section lists the amount of memory usage for each of the shares. For example:</p> +<pre> +# <EM CLASS="LineEmphasis">smbstatus</em> + +Samba version 2.0.3 +Service uid gid pid machine +---------------------------------------------- +network davecb davecb 7470 phoenix (192.168.220.101) Sun May 16 +network davecb davecb 7589 chimaera (192.168.220.102) Sun May 16 + +Locked files: +Pid DenyMode R/W Oplock Name +-------------------------------------------------- +7589 DENY_NONE RDONLY EXCLUSIVE+BATCH /home/samba/quicken/inet/common/system/help.bmp Sun May 16 21:23:40 1999 +7470 DENY_WRITE RDONLY NONE /home/samba/word/office/findfast.exe Sun May 16 20:51:08 1999 +7589 DENY_WRITE RDONLY EXCLUSIVE+BATCH /home/samba/quicken/lfbmp70n.dll Sun May 16 21:23:39 1999 +7589 DENY_WRITE RDWR EXCLUSIVE+BATCH /home/samba/quicken/inet/qdata/runtime.dat Sun May 16 21:23:41 1999 +7470 DENY_WRITE RDONLY EXCLUSIVE+BATCH /home/samba/word/office/osa.exe Sun May 16 20:51:09 1999 +7589 DENY_WRITE RDONLY NONE /home/samba/quicken/qversion.dll Sun May 16 21:20:33 1999 +7470 DENY_WRITE RDONLY NONE /home/samba/quicken/qversion.dll Sun May 16 20:51:11 1999 + +Share mode memory usage (bytes): + 1043432(99%) free + 4312(0%) used + 832(0%) overhead = 1048576(100%) total +</pre> +<DIV> +<H4 CLASS="HeadC">Options</h4> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-b</em> +</h4> +<UL> +<LI CLASS="ListVariable">Forces <EM CLASS="Filename">smbstatus</em> + to produce brief output. This includes the version of Samba and auditing information about the users that have logged into the server.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-d</em> +</h4> +<UL> +<LI CLASS="ListVariable">Gives verbose output, including each of the three reporting sections listed in the previous example. This is the default.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-L</em> +</h4> +<UL> +<LI CLASS="ListVariable">Forces <EM CLASS="Filename">smbstatus</em> + to print only the current file locks it has. This corresponds to the second section in a verbose output. </li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-p</em> +</h4> +<UL> +<LI CLASS="ListVariable">Prints a list of <EM CLASS="Filename">smbd</em> + process IDs only. This is often used for scripts.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-S</em> +</h4> +<UL> +<LI CLASS="ListVariable">Prints only a list of shares and their connections. This corresponds to the first section in a verbose output.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-s</em> + <EM CLASS="Replaceable">configuration_file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the Samba configuration file to use when processing this command.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-u</em> + <EM CLASS="Replaceable">username</em> +</h4> +<UL> +<LI CLASS="ListVariable">Limits the <EM CLASS="Filename">smbstatus</em> + report to the activity of a single user.</li> +</ul> +</div> +</div> +<DIV> +<H3 CLASS="HeadB">smbtar</h3> +<P CLASS="Body">The <EM CLASS="Emphasis">smbtar</em> + program is a shell script on top of <EM CLASS="Emphasis">smbclient</em> + that gives the program more intelligible options when doing tar operations. Functionally, it is equivalent to the Unix <EM CLASS="Emphasis">tar</em> + program.</p> +<DIV> +<H4 CLASS="HeadC">Options</h4> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-a</em> +</h4> +<UL> +<LI CLASS="ListVariable">Resets the archive bit mode</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-b</em> + <EM CLASS="Replaceable">blocksize</em> +</h4> +<UL> +<LI CLASS="ListVariable">Blocking size. Defaults to 20.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-d</em> + <EM CLASS="Replaceable">directory</em> +</h4> +<UL> +<LI CLASS="ListVariable">Changes to initial directory before restoring or backing up files.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-i</em> +</h4> +<UL> +<LI CLASS="ListVariable">Incremental mode; tar files are backed up only if they have the DOS archive bit set. The archive bit is reset after each file is read.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-l</em> + <EM CLASS="Replaceable">log_level</em> +</h4> +<UL> +<LI CLASS="ListVariable"> Sets the logging level.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-N</em> + <EM CLASS="Replaceable">filename</em> +</h4> +<UL> +<LI CLASS="ListVariable">Backs up only the files newer than the last modification date of <EM CLASS="Replaceable">filename</em>. For incremental backups.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-p</em> + <EM CLASS="Replaceable">password</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies the password to use to access a share.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-r</em> +</h4> +<UL> +<LI CLASS="ListVariable">Restores files to the share from the tar file.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-s</em> + <EM CLASS="Replaceable">server</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies the SMB/CIFS server in which the share resides.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-t</em> + <EM CLASS="Replaceable">tape</em> +</h4> +<UL> +<LI CLASS="ListVariable">Tape device or file. Default is the value of the environment variable <EM CLASS="Literal">$TAPE</em>, or <EM CLASS="Emphasis">tar.out</em> + if <EM CLASS="Literal">$TAPE</em> + isn't set.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-u</em> + <EM CLASS="Replaceable">user</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies the user to connect to the share as. You can specify the password as well, in the format <EM CLASS="Replaceable">username</em><EM CLASS="Literal">%</em><EM CLASS="Replaceable">password</em>.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-v</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies the use of verbose mode.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-X</em> + <EM CLASS="Replaceable">file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Tells <EM CLASS="FirstTerm">smbtar</em> + to exclude the specified file from the <EM CLASS="Emphasis">tar</em> + create or restore.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-x</em> + <EM CLASS="Replaceable">share</em> +</h4> +<UL> +<LI CLASS="ListVariable">States the share name on the server to connect to. The default is <EM CLASS="Literal">backup</em>, which is a common share name to perform backups with.</li> +</ul> +</div> +<DIV> +<H4 CLASS="SidebarBody">For example, a trivial backup command to archive the data for user <EM CLASS="Literal">sue</em> + is:</h4> +<P CLASS="Code"># <EM CLASS="LineEmphasis">smbtar -s pc_name -x sue -u sue -p secret -t sue.tar </em> +</p> +</div> +</div> +<DIV> +<H3 CLASS="HeadB">nmblookup</h3> +<P CLASS="Body">The <EM CLASS="Filename">nmblookup</em> + program is a client program that exercises the NetBIOS-over-UDP/IP name service for resolving NBT machine names into IP addresses. The command works by broadcasting its queries on the local subnet until a machine with that name responds. You can think of it as a Windows <EM CLASS="Emphasis">nslookup(1) </em> +or <EM CLASS="EmailSite">dig(1). </em> +This is useful for looking up both normal NetBIOS names, and the odd ones like <EM CLASS="Literal">__MSBROWSE__</em> + that the Windows name services use to provide directory-like services. If you wish to query for a particular type of NetBIOS name, add the NetBIOS <EM CLASS="Literal"><type></em> + to the end of the name.</p> +<P CLASS="Body">The command line is:</p> +<P CLASS="Code">nmblookup [-options] <EM CLASS="Replaceable">name</em> +</p> +<P CLASS="Body">The options supported are:</p> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-A</em> +</h4> +<UL> +<LI CLASS="ListVariable">Interprets <EM CLASS="Replaceable">name</em> + as an IP address and do a node-status query on this address.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-B</em> + <EM CLASS="Replaceable">broadcast _address</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sends the query to the given broadcast address. The default is to send the query to the broadcast address of the primary network interface.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-d</em> + <EM CLASS="Replaceable">debuglevel</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the debug (sometimes called logging) level. The level can range from 0 all the way to 10. Debug level 0 logs only the most important messages; level 1 is normal; level 3 and above are primarily for debugging and slow the program considerably.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-h</em> +</h4> +<UL> +<LI CLASS="ListVariable">Prints command-line usage information for the program.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-i</em> + <EM CLASS="Replaceable">scope</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets a NetBIOS scope identifier. Only machines with the same identifier will communicate with the server. The scope identifier was a predecessor to workgroups, and this option is included only for backward compatibility.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-M</em> +</h4> +<UL> +<LI CLASS="ListVariable">Searches for a local master browser. This is done with a broadcast searching for a machine that will respond to the special name <EM CLASS="Literal">__MSBROWSE__</em>, and then asking that machine for information, instead of broadcasting the query itself.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-R</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the recursion desired bit in the packet. This will cause the machine that responds to try to do a WINS lookup and return the address and any other information the WINS server has saved.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-r</em> +</h4> +<UL> +<LI CLASS="ListVariable">Use the root port of 137 for Windows 95 machines.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-S</em> +</h4> +<UL> +<LI CLASS="ListVariable">Once the name query has returned an IP address, does a node status query as well. This returns all the resource types that the machine knows about, with their numeric attributes. For example:</li> +</ul> +<pre> +% <EM CLASS="LineEmphasis">nmblookup -d 4 -S elsbeth</em> +received 6 names + ELSBETH <00> - <GROUP> B <ACTIVE> + ELSBETH <03> - B <ACTIVE> + ELSBETH <1d> - B <ACTIVE> + ELSBETH <1e> - <GROUP> B <ACTIVE> + ELSBETH <20> - B <ACTIVE> + ..__MSBROWSE__.. <01> - <GROUP> B <ACTIVE> +</pre> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-s</em> + <EM CLASS="Replaceable">configuration_file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies the location of the Samba configuration file. Although the file defaults to <EM CLASS="Filename">/usr/local/samba/lib/smb.conf</em>, you can override it here on the command-line, normally for debugging.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-T</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option can be used to translate IP addresses into resolved names. </li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-U</em> + <EM CLASS="Replaceable">unicast_address</em> +</h4> +<UL> +<LI CLASS="ListVariable">Performs a unicast query to the specified address. Used with <EM CLASS="Literal">-R</em> + to query WINS servers.</li> +</ul> +<P CLASS="Body">Note that there is no workgroup option for <EM CLASS="Emphasis">nmblookup</em>; you can get around this by putting <EM CLASS="Literal">workgroup</em> + <EM CLASS="Literal">=</em> + <EM CLASS="Replaceable">workgroup_name </em> +in a file and passing it to <EM CLASS="Emphasis">nmblookup</em> + with the <EM CLASS="Literal">-s</em> + <EM CLASS="Replaceable">smb.conf_file</em> + option. </p> +</div> +</div> +<DIV> +<H3 CLASS="HeadB">smbpasswd</h3> +<P CLASS="Body">The <EM CLASS="Emphasis">smbpasswd</em> + password has two distinct sets of functions. When run by users, it changes their encrypted passwords. When run by <EM CLASS="Literal">root</em>, it updates the encrypted password file. When run by an ordinary user with no options, it connects to the primary domain controller and changes his or her Windows password.</p> +<P CLASS="Body">The program will fail if <EM CLASS="Emphasis">smbd</em> + is not operating, if the <EM CLASS="Literal">hosts</em> + <EM CLASS="Literal">allow</em> + or <EM CLASS="Literal">hosts</em> + <EM CLASS="Literal">deny</em> + configuration options will not permit connections from localhost (IP address 127.0.0.1), or the <EM CLASS="Literal">encrypted</em> + <EM CLASS="Literal">passwords</em> + <EM CLASS="Literal">=</em> + <EM CLASS="Literal">no</em> + option is set.</p> +<DIV> +<H4 CLASS="HeadC">Regular user options</h4> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-D</em> + <EM CLASS="Replaceable">debug_level</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the debug (also called logging) level. The level can range from 0 to 10. Debug level 0 logs only the most important messages; level 1 is normal; level 3 and above are primarily for debugging and slow the program considerably.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-h</em> +</h4> +<UL> +<LI CLASS="ListVariable">Prints command-line usage information for the program.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-r</em> + <EM CLASS="Replaceable">remote_machine_name</em> +</h4> +<UL> +<LI CLASS="ListVariable">Specifies on which machine the password should change. The remote machine must be a primary domain controller (PDC).</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-R</em> + <EM CLASS="Replaceable">resolve_order</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets the resolve order of the name servers. This option is similar to the <EM CLASS="Literal">resolve</em> + <EM CLASS="Literal">order</em> + configuration option, and can take any of the four parameters, <EM CLASS="Literal">lmhosts</em>, <EM CLASS="Literal">host</em>, <EM CLASS="Literal">wins</em>, and <EM CLASS="Literal">bcast</em>,<EM CLASS="Literal"> </em> in any order.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-U</em> + <EM CLASS="Replaceable">username</em> +</h4> +<UL> +<LI CLASS="ListVariable">Used only with <EM CLASS="Literal">-r</em>, to modify a username that is spelled differently on the remote machine.</li> +</ul> +<DIV> +<H4 CLASS="HeadC">Root-only options</h4> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-a</em> + <EM CLASS="Replaceable">username</em> +</h4> +<UL> +<LI CLASS="ListVariable">Adds a user to the encrypted password file.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-d</em> + <EM CLASS="Replaceable">username</em> +</h4> +<UL> +<LI CLASS="ListVariable">Disables a user in the encrypted password file.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-e</em> + <EM CLASS="Replaceable">username</em> +</h4> +<UL> +<LI CLASS="ListVariable">Enables a disabled user in the encrypted password file.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-m</em> + <EM CLASS="Replaceable">machine_name</em> +</h4> +<UL> +<LI CLASS="ListVariable">Changes a machine account's password. The machine accounts are used to authenticate machines when they connect to a primary or backup domain controller.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-j</em> + <EM CLASS="Replaceable">domain_name</em> +</h4> +<UL> +<LI CLASS="ListVariable">Adds a Samba server to a Windows NT Domain.</li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-n</em> +</h4> +<UL> +<LI CLASS="ListVariable">Sets no password for the user.</li> +</ul> +</div> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-s</em> + <EM CLASS="Replaceable">username</em> +</h4> +<UL> +<LI CLASS="ListVariable">Causes <EM CLASS="Emphasis">smbpasswd</em> + to be silent and to read its old and new passwords from standard input, rather than from <EM CLASS="Filename">/dev/tty</em>. This is useful for writing scripts.</li> +</ul> +</div> +</div> +<DIV> +<H3 CLASS="HeadB">testparm</h3> +<P CLASS="Body">The <EM CLASS="Emphasis">testparm</em> + program checks an <EM CLASS="Filename">smb.conf</em> + file for obvious errors and self-consistency. Its command line is:</p> +<P CLASS="Code">testparm [options] <EM CLASS="Replaceable">configfile_name [hostname IP_addr]</em> +</p> +<P CLASS="Body">If the configuration file is not specified, the file at <EM CLASS="Replaceable">samba_dir</em> +<EM CLASS="Filename">/lib/smb.conf</em> + is checked by default. If you specify a hostname and an IP address, an extra check will be made to ensure that the specified machine would be allowed to connect to Samba. If a hostname is specified, an IP address should be present as well.</p> +<DIV> +<H4 CLASS="HeadC">Options</h4> +</div> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-h</em> +</h4> +<UL> +<LI CLASS="ListVariable">Prints command-line information for the program.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-L</em> + server_name</h4> +<UL> +<LI CLASS="ListVariable">Resets the <EM CLASS="Literal">%L</em> + configuration variable to the specified server name. </li> +</ul> +<DIV> +<H4 CLASS="ListVariableTermRunin"><EM CLASS="Literal">-s</em> +</h4> +<UL> +<LI CLASS="ListVariable">This option prevents the <EM CLASS="Emphasis">testparm</em> + program from prompting the user to press the Enter key before printing a list of the configuration options for the server.</li> +</ul> +</div> +</div> +</div> +<DIV> +<H3 CLASS="HeadB">testprns</h3> +<P CLASS="Body">The <EM CLASS="Emphasis">testprns</em> + program checks a specified printer name against the system printer capabilities (<EM CLASS="Filename">printcap</em>) file. Its command line is:</p> +<P CLASS="Code">testprns <EM CLASS="Replaceable">printername</em> + [<EM CLASS="Replaceable">printcapname</em>]</p> +<P CLASS="Body">If the <EM CLASS="Literal">printcapname</em> + isn't specified, Samba attempts to use one located in the <EM CLASS="Filename">smb.conf</em> + file. If one isn't specified there, Samba will try <EM CLASS="Filename">/etc/printcap</em>. If that fails, the program will generate an error.</p> +</div> +<DIV> +<H3 CLASS="HeadB">rpcclient</h3> +<P CLASS="Body">This is a new client that exercises the RPC (remote procedure call) interfaces of an SMB server. Like <EM CLASS="Emphasis">smbclient</em>, <EM CLASS="Emphasis">rpcclient</em> + started its life as a test program for the Samba developers and will likely stay that way for a while. Its command line is:</p> +<P CLASS="Code">rpcclient //<EM CLASS="Replaceable">server</em>/<EM CLASS="Replaceable">share</em> +</p> +<P CLASS="Body">The command-line options are the same as the Samba 2.0 <EM CLASS="Emphasis">smbclient</em>, and the operations you can try are listed below. </p> +<TABLE> +<CAPTION> +<H4 CLASS="TableLabel"><A NAME="65243"></a> </h4> +<H4 CLASS="TableTitle">rpcclient commands </h4> +</caption> +<TR> +<TH ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellHeading">Command</p> +</th> +<TH ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellHeading">Description</p> +</th> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">regenum keyname</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Registry Enumeration (keys, values)</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">regdeletekey keyname </em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Registry Key Delete</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">regcreatekey keyname [keyvalue]</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Registry Key Create</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">regquerykey keyname</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Registry Key Query</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">regdeleteval valname</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Registry Value Delete</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">regcreateval valname valtype value</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Registry Key Create</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">reggetsec keyname</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Registry Key Security</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">regtestsec keyname</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Test Registry Key Security</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">ntlogin [username] [password]</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">NT Domain Login Test</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">wksinfo</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Workstation Query Info</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">srvinfo</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Server Query Info</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">srvsessions</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">List Sessions on a Server</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">srvshares</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">List shares on a server</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">srvconnections</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">List connections on a server </p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">srvfiles</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">List files on a server</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">lsaquery</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Query Info Policy (domain member or server)</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">lookupsids</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">Resolve names from SIDs</p> +</td> +</tr> +<TR> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody"><EM CLASS="Literal">ntpass</em> +</p> +</td> +<TD ROWSPAN="1" COLSPAN="1"> +<P CLASS="CellBody">NT SAM Password Change</p> +</td> +</tr> +</table> +</div> +<DIV> +<H3 CLASS="HeadB">tcpdump</h3> +<P CLASS="Body">The <EM CLASS="Emphasis">tcpdump</em> + utility, a classic system administration tool, dumps all the packet headers it sees on an interface that match an expression. The version included in the Samba distribution is enhanced to understand the SMB protocol. The <EM CLASS="Emphasis">expression</em> + is a logical expression with "and," "or," and "not," although sometimes it's very simple. For example, <EM CLASS="Literal">host</em> + <EM CLASS="Literal">escrime</em> + would select every packet going to or from <EM CLASS="Literal">escrime</em>. The expression is normally one or more of:</p> +<UL> +<LI CLASS="ListBullet"><EM CLASS="Literal">host</em> + <EM CLASS="Replaceable">name</em> +</li> +<LI CLASS="ListBullet"><EM CLASS="Literal">net network_number</em> +</li> +<LI CLASS="ListBullet"><EM CLASS="Literal">port</em> + <EM CLASS="Replaceable">number</em> +</li> +<LI CLASS="ListBullet"><EM CLASS="Literal">src</em> + <EM CLASS="Replaceable">name </em> +</li> +<LI CLASS="ListBullet"><EM CLASS="Literal">dst</em> + <EM CLASS="Replaceable">name</em> + </li> +</ul> +<P CLASS="Body">The most common options are <EM CLASS="Literal">src</em> + (source), <EM CLASS="Literal">dst</em> + (destination), and <EM CLASS="Literal">port</em>. For example, in the book we used the command: </p> +<P CLASS="Code">tcpdump port not telnet</p> +<P CLASS="Body">This dumps all the packets except telnet; we were logged-in via telnet and wanted to see only the SMB packets. </p> +<P CLASS="Body">Another <EM CLASS="Emphasis">tcpdump</em> + example is selecting traffic between server and either <EM CLASS="Literal">sue</em> + or <EM CLASS="Literal">joe</em>:</p> +<P CLASS="Code">tcpdump host server and \(sue or joe \)</p> +<P CLASS="Body">We recommend using the <EM CLASS="Literal">-s</em> + <EM CLASS="Literal">1500</em> + option so that you capture all of the SMB messages sent, instead of just the header information. </p> +<DIV> +<H4 CLASS="HeadC">Options</h4> +<P CLASS="Body">There are many options, and many other kinds of expressions that can be used with <EM CLASS="Emphasis">tcpdump</em>. See the manual page for details on the advanced options. The most common options are as follows: </p> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-c</em> + <EM CLASS="Replaceable">count</em> +</h4> +<UL> +<LI CLASS="ListVariable">Forces the program to exit after receiving the specified number of packets.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-F</em> + <EM CLASS="Replaceable">file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Reads the expression from the specified file and ignores expressions on the command line.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-i</em> + <EM CLASS="Replaceable">interface</em> +</h4> +<UL> +<LI CLASS="ListVariable">Forces the program to listen on the specified interface.</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-r</em> + <EM CLASS="Replaceable">file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Reads packets from the specified file (captured with <EM CLASS="Literal">-w</em>).</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-s</em> + <EM CLASS="Replaceable">length</em> +</h4> +<UL> +<LI CLASS="ListVariable">Saves the specified number of bytes of data from each packet (rather than 68 bytes).</li> +</ul> +</div> +<DIV> +<H4 CLASS="ListVariableTerm"><EM CLASS="Literal">-w</em> + <EM CLASS="Replaceable">file</em> +</h4> +<UL> +<LI CLASS="ListVariable">Writes the packets to the specified file.</li> +</ul> +</div> +</div> +</div> +</div> +</blockquote> + + +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appc_01.html" TITLE=""> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: Appendix C." BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appe_01.html" TITLE=""> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: Appendix E." BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +C. Samba Configuration Option Quick Reference</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +E. Downloading Samba with CVS</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> + +</html> diff --git a/docs/htmldocs/using_samba/appe_01.html b/docs/htmldocs/using_samba/appe_01.html new file mode 100644 index 0000000000..199fade696 --- /dev/null +++ b/docs/htmldocs/using_samba/appe_01.html @@ -0,0 +1,96 @@ +<HTML> +<HEAD> +<TITLE>[Appendix E] Downloading Samba with CVS</title> +</head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appd_01.html" TITLE=""> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: Appendix D." BORDER="0"></a></td> +<TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Appendix E</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appf_01.html" TITLE=""> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: Appendix F." BORDER="0"></a></td></tr> +</table> + <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="appendix"><A CLASS="title" NAME="appe-58937">Appendix E. Downloading Samba with CVS</a></h1> +<P CLASS="para">This appendix contains information on how to download the latest source version of Samba using the Concurrent Versions System (CVS). CVS is a freely available configuration management tool available from Cyclic Software and is distributed under the GNU General Public License. You can download the latest copy from <A CLASS="systemitem.url" HREF="http://www.cyclic.com/"> +http://www.cyclic.com/</a>.</p><P CLASS="para">CVS works on top of the GNU Revision Control System (RCS). Many Unix systems come preinstalled with RCS. However, if you want to download the latest version of RCS, you can find it at <A CLASS="systemitem.url" HREF="http://ftp.gnu.org/gnu/rcs/">http://ftp.gnu.org/gnu/rcs/</a>.</p><P CLASS="para"> +One of the nicest things about CVS is its ability to handle remote logins. This means that people across the globe on the Internet can download and update various source files for any project that uses a CVS repository. Such is the case with Samba. Once you have RCS and CVS installed on your system, you must first log in to the Samba source server with the following command:</p><PRE CLASS="programlisting"> +cvs -d :pserver:cvs@cvs.samba.org:/cvsroot login</pre><P CLASS="para"> +This tells CVS to connect to the CVS server at <I CLASS="filename"> +cvs.samba.org</i>. Once you are connected, you can download the latest source tree with the following command:</p><PRE CLASS="programlisting"> +cvs -d :pserver:cvs@cvs.samba.org:/cvsroot co samba</pre><P CLASS="para"> +This will download the entire Samba distribution (file by file) into a directory entitled <I CLASS="filename"> +/samba</i>, which it will create on your hard drive. This directory will have the same structure as the Samba source distribution described in <a href="ch02_01.html"><b>Chapter 2, <CITE CLASS="chapter">Installing Samba on a Unix System</cite></b></a>. It includes source and header files, documentation, and sample configuration files to help get you started. After that is completed, you can follow the instructions in <a href="ch02_01.html"><b>Chapter 2</b></a> to configure and compile Samba on your server.</p></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appd_01.html" TITLE=""> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: Appendix D." BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appf_01.html" TITLE=""> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: Appendix F." BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +Appendix D: Summary of Samba Daemons and Commands</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +F. Sample Configuration File</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/appf_01.html b/docs/htmldocs/using_samba/appf_01.html new file mode 100644 index 0000000000..9b70947225 --- /dev/null +++ b/docs/htmldocs/using_samba/appf_01.html @@ -0,0 +1,315 @@ +<HTML> +<HEAD> +<TITLE> +[Appendix F] Sample Configuration File +</title> +<META NAME="DC.title" CONTENT=""> +<META NAME="DC.creator" CONTENT=""> +<META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."> +<META NAME="DC.date" CONTENT="1999-11-08T16:28:53Z"> +<META NAME="DC.type" CONTENT="Text.Monograph"> +<META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"> +<META NAME="DC.source" CONTENT="" SCHEME="ISBN"> +<META NAME="DC.language" CONTENT="en-US"> +<META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"> +</head> + +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> + +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<A HREF="index.html"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</a> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> + +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> + +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appd_01.html" TITLE="D. Downloading Samba with CVS"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: D. Downloading Samba with CVS" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Appendix F</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> + </td></tr></table> + +<hr noshade size=1></center> + +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="appendix"> +<A CLASS="title" NAME="appf-10509"> +F. Sample Configuration File</a></h1><P CLASS="para">This appendix gives an example of a production <I CLASS="filename"> +smb.conf</i> file and looks at how many of the options are used in practice. The following is a slightly disguised version of one we used at a corporation with five Linux servers, five Windows for Workgroups clients and three NT Workstation clients:</p><PRE CLASS="programlisting"> +# smb.conf -- File Server System for: 1 Example.COM BSC & Management Office +[globals] + workgroup = 1EG_BSC + interfaces = 10.10.1.14/24 </pre><P CLASS="para"> +We provide this service on only one of the machine's interfaces. The <CODE CLASS="literal"> +interfaces</code> option sets its address and netmask, where <CODE CLASS="literal"> +/24</code> is the same as using the netmask 255.255.255.0:</p><PRE CLASS="programlisting"> + comment = Samba ver. %v + preexec = csh -c `echo /usr/samba/bin/smbclient \ + -M %m -I %I` &</pre><P CLASS="para"> +We use the <KBD CLASS="command"> +preexec</kbd> command to log information about all connections by machine name (<CODE CLASS="literal">%m</code>) and IP address (<CODE CLASS="literal">%I)</code>:</p><PRE CLASS="programlisting"> + # smbstatus will output various info on current status + status = yes + browseable = yes + printing = bsd + + # the username that will be used for access to services + # specified with 'guest = ok' + guest account = samba </pre><P CLASS="para"> +The default guest account was <CODE CLASS="literal"> +nobody</code>, uid -1, which produced log messages on one of our machines saying "your server is being unfriendly," so we created a specific Samba guest account for browsing and printing:</p><PRE CLASS="programlisting"> + # superuser account - admin privilages to shares, with no + # restrictions + # WARNING - use this with care: files can be modified, + # regardless of file permissions + admin users = root + + # who is NOT allowed to connect to ANY service + invalid users = @wheel, mail, deamon, adt</pre><P CLASS="para"> +Daemons can't use Samba, only people. The <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> option closes a security hole; it prevents intruders from breaking in by pretending to be a daemon process.</p><PRE CLASS="programlisting"> + # hosts that are ALLOWED or DENIED from connecting to ANY service + hosts allow = 10.10.1. + hosts deny = 10.10.1.6 + + # where the lock files will be located + lock directory = /var/lock/samba/locks + + # debug log files + # %m = separate log for each NetBIOS name (each machine) + log file = /var/log/samba/log.%m + + # We send priority 0, 1 and 2 messages to the system logs + syslog = 2 + + # If a WinPopup message is sent to the server, + # redirect it to a user via e-mail + + message command = /bin/mail -s 'message from #% on %m' \ + pkelly < %s; rm %s + +# --------------------------------------------------- +# [globals] Performance Tuning +# --------------------------------------------------- + + # caching algorithm to reduce time doing getwd() calls. + getwd cache = yes + + socket options = TCP_NODELAY + + # tell the server whether the client is present and + # responding in seconds + keep alive = 60 + + # num minutes of inactivity before a connection is + # considered dead + dead time = 30 + + read prediction = yes + share modes = yes + max xmit = 17384 + read size = 512</pre><P CLASS="para"> +The <CODE CLASS="literal"> +share</code> <CODE CLASS="literal"> +modes</code>, <CODE CLASS="literal"> +max</code>, <CODE CLASS="literal"> +xinit</code>, and <CODE CLASS="literal"> +read</code> <CODE CLASS="literal"> +size</code> options are machine-specific (see <a href="appb_01.html"><b>Appendix B, <CITE CLASS="appendix">Samba Performance Tuning</cite></b></a>): </p><PRE CLASS="programlisting"> + # locking is done by the server + locking = yes + + # control whether dos style attributes should be mapped + # to unix execute bits + map hidden = yes + map archive = yes + map system = yes</pre><P CLASS="para"> +The three <CODE CLASS="literal"> +map</code> options will work only on shares with a create mode that includes the execute bits (0111). Our <CODE CLASS="literal"> +homes</code> and <CODE CLASS="literal"> +printers</code> shares won't honor them, but the [<CODE CLASS="literal">www]</code> share will:</p><PRE CLASS="programlisting"> +# --------------------------------------------------------- +# [globals] Security and Domain Logon Services +# --------------------------------------------------------- +# connections are made with UID and GID, not as shares + security = user + +# boolean variable that controls whether passwords +# will be encrypted + encrypt passwords = yes + passwd chat = "*New password:*" %n\r "*New password (again):*" %n\r \ "*Password changed*" + passwd program = /usr/bin/passwd %u + +# Always become the local master browser + domain master = yes + preferred master = yes + os level = 34 + +# For domain logons to work correctly. Samba acts as a +# primary domain controller. + domain logons = yes + +# Logon script to run for user off the server each time +# username (%U) logs in. Set the time, connect to shares, +# virus checks, etc. + logon script = scripts\%U.bat + +[netlogon] + comment = "Domain Logon Services" + path = /u/netlogon + writable = yes + create mode = 444 + guest ok = no + volume = "Network"</pre><P CLASS="para"> +This share, discussed in <a href="ch06_01.html"><b>Chapter 6, <CITE CLASS="chapter">Users, Security, and Domains</cite></b></a>, is required for Samba to work smoothly in a Windows NT domain:</p><PRE CLASS="programlisting"> +# ----------------------------------------------------------- +# [homes] User Home Directories +# ----------------------------------------------------------- +[homes] + comment = "Home Directory for : %u " + path = /u/users/%u</pre><P CLASS="para"> +The password file of the Samba server specifies each person's home directory as <EM CLASS="emphasis"> +/home/</em><CODE CLASS="replaceable"><I>machine_name</i></code><EM CLASS="emphasis">/</em><CODE CLASS="replaceable"><I>person</i></code>, which NFS converts to point to the actual physicl location under <EM CLASS="emphasis"> +/u/users</em>. The <CODE CLASS="literal"> +path</code> option in the <CODE CLASS="literal"> +[homes]</code> share tells Samba the actual (non-NFS) location:</p><PRE CLASS="programlisting"> + guest ok = no + read only = no + create mode = 644 + writable = yes + browseable = no + +# ----------------------------------------------------------- +# [printers] System Printers +# ----------------------------------------------------------- +[printers] + comment = "Printers" + path = /var/spool/lpd/samba + printcap name = /etc/printcap + printable = yes + public = no + writable = no + + lpq command = /usr/bin/lpq -P%p + lprm command = /usr/bin/lprm -P%p %j + lppause command = /usr/sbin/lpc stop %p + lpresume command = /usr/sbin/lpc start %p + + create mode = 0700 + + browseable = no + load printers = yes + +# ----------------------------------------------------------- +# Specific Descriptions: [programs] [data] [retail] +# ----------------------------------------------------------- +[programs] + comment = "Shared Programs %T" + volume = "programs"</pre><P CLASS="para"> +Shared Programs shows up in the Network Neighborhood, and <CODE CLASS="literal"> +programs</code> is the volume name you specify when an installation program wants to know the label of the CD-ROM from which it thinks it's loading:</p><PRE CLASS="programlisting"> + path = /u/programs + public = yes + writeable = yes + printable = no + create mode = 664 +[cdrom] + comment = "Unix CDROM" + path = /u/cdrom + public = no + writeable = no + printable = no + volume = "cdrom" + +[data] + comment = "Data Directories %T" + path = /u/data + public = no + create mode = 770 + writeable = yes + volume = "data" + +[nt4] + comment = "NT4 Server" + path = /u/systems/nt4 + public = yes + create mode = 770 + writeable = yes + volume = "nt4_server" + +[www] + comment = "WWW System" + path = /usr/www/http + public = yes + create mode = 775 + writeable = yes + volume = "www_system"</pre><P CLASS="para"> +The <CODE CLASS="literal"> +[www]</code> share is the directory used on the Unix server to serve web pages. Samba makes the directory available to local PC users so the art department can update web pages.</p></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appd_01.html" TITLE="D. Downloading Samba with CVS"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: D. Downloading Samba with CVS" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> </td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +D. Downloading Samba with CVS</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> + </td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch01_01.html b/docs/htmldocs/using_samba/ch01_01.html new file mode 100644 index 0000000000..0651fa823c --- /dev/null +++ b/docs/htmldocs/using_samba/ch01_01.html @@ -0,0 +1,167 @@ +<HTML> +<HEAD> +<TITLE>[Chapter 1] 1.1 Learning Samba</title> +</head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +</td> +<TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +</td> +<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_02.html" TITLE="1.2 What Can Samba Do For Me?"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.2 What Can Samba Do For Me?" BORDER="0"></a> +</td> +</tr> +</table> +<hr noshade size=1> +</center> +</div> +<blockquote> +<div> +<H1 CLASS="sect1">1. Learning the Samba</h1> +<p>If you are a typical system administrator, then you know what it means to be <i>swamped</i> with work. Your daily routine is filled with endless hardware incompatibility issues, system outages, data backup problems, and a steady stream of angry users. So adding another program to the mix of tools that you have to maintain may sound a bit perplexing. However, if you're determined to reduce the complexity of your work environment, as well as the workload of keeping it running smoothly, Samba may be the tool you've been waiting for.</p> + +<p>A case in point: one of the authors of this book used to look after 70 Unix developers sharing 5 Unix servers. His neighbor administered 20 Windows 3.1 users and 5 OS/2 and Windows NT servers. To put it mildly, the Windows 3.1 administrator was swamped. When he finally left - and the domain controller melted - Samba was brought to the rescue. Our author quickly replaced the Windows NT and OS/2 servers with Samba running on a Unix server, and eventually bought PCs for most of the company developers. However, he did the latter without hiring a new PC administrator; the administrator now manages one centralized Unix application instead of fifty distributed PCs. </p> + +<p>If you know you're facing a problem with your network and you're sure there is a better way, we encourage you to start reading this book. Or, if you've heard about Samba and you want to see what it can do for you, this is also the place to start. We'll get you started on the path to understanding Samba and its potential. Before long, you can provide Unix services to all your Windows machines - all without spending tons of extra time or money. Sound enticing? Great, then let's get started.</p> + +<a name="s1"></a> +<h2 id="ch01-28119">1.1 What is Samba?</h2> + +<p>Samba is a suite of Unix applications that speak the SMB (Server Message Block) protocol. Many operating systems, including Windows and OS/2, use SMB to perform client-server networking. By supporting this protocol, Samba allows Unix servers to get in on the action, communicating with the same networking protocol as Microsoft Windows products. Thus, a Samba-enabled Unix machine can masquerade as a server on your Microsoft network and offer the following services:</p> + +<ul> +<li id="ch01-pgfId-940463"> + +<p>Share one or more filesystems</p> + +</li> +<li id="ch01-pgfId-940464"> + +<p>Share printers installed on both the server and its clients</p> + +</li> +<li id="ch01-pgfId-940465"> + +<p>Assist clients with Network Neighborhood browsing</p> + +</li> +<li id="ch01-pgfId-940489"> + +<p>Authenticate clients logging onto a Windows domain</p> + +</li> +<li id="ch01-pgfId-940472"> + +<p>Provide or assist with WINS name server resolution</p> + +</li> +</ul> + +<p>Samba is the brainchild of Andrew Tridgell, who currently heads the Samba development team from his home of Canberra, Australia. The project was born in 1991 when Andrew created a fileserver program for his local network that supported an odd DEC protocol from Digital Pathworks. Although he didn't know it at the time, that protocol later turned out to be SMB. A few years later, he expanded upon his custom-made SMB server and began distributing it as a product on the Internet under the name SMB Server. However, Andrew couldn't keep that name - it already belonged to another company's product - so he tried the following Unix renaming approach:</p> + +<pre> +grep -i 's.*m.*b' /usr/dict/words </pre> + +<p>And the response was:</p> + +<Pre> +salmonberry samba sawtimber scramble</pre> + +<p>Thus, the name "Samba" was born.<footnote id="ch01-pgfId-946532"> + +<p>Which is a good thing, because our marketing people highly doubt you would have picked up a book called "Using Salmonberry"!</p> + +</footnote></p> + +<p>Today, the Samba suite revolves around a pair of Unix daemons that provide shared resources - or <i>shares</i> - to SMB clients on the network. (Shares are sometimes called s<i>ervices</i> as well.) These daemons are:</p> + +<dl> +<dt>smbd</dt> +<dd> + +<p id="ch01-pgfId-949804">A daemon that allows file and printer sharing on an SMB network and provides authentication and authorization for SMB clients.</p> + +</dd> + +<dt>nmbd</dt> +<dd> + +<p id="ch01-pgfId-949805">A daemon that looks after the Windows Internet Name Service (WINS), and assists with browsing.</p> + +</dd> +</dl> + +<p>Samba is currently maintained and extended by a group of volunteers under the active supervision of Andrew Tridgell. Like the Linux operating system, Samba is considered <i>Open Source software </i>(OSS) by its authors, and is distributed under the GNU General Public License (GPL). Since its inception, development of Samba has been sponsored in part by the Australian National University, where Andrew Tridgell earned his Ph.D.<a href = "#footnote"> [1]</a> + In addition, some development has been sponsored by independent vendors such as Whistle and SGI. It is a true testament to Samba that both commercial and non-commercial entities are prepared to spend money to support an Open Source effort.</p> +<blockquote><a name="footnote"> +<p>[1] At the time of this printing, Andrew had completed his Ph.D. work and had joined San Francisco-based LinuxCare.</p> +</blockquote> +<p>Microsoft has also contributed materially by putting forward its definition of SMB and the Internet-savvy Common Internet File System (CIFS), as a public Request for Comments (RFC), a standards document. The CIFS protocol is Microsoft's renaming of future versions of the SMB protocol that will be used in Windows products - the two terms can be used interchangeably in this book. Hence, you will often see the protocol written as "SMB/CIFS."</p> </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> + +</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_02.html" TITLE="1.2 What Can Samba Do For Me?"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.2 What Can Samba Do For Me?" BORDER="0"></a></td></tr><TR> + +<TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +1.1 Learning Samba</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch01_02.html b/docs/htmldocs/using_samba/ch01_02.html new file mode 100644 index 0000000000..9ccb2dfeee --- /dev/null +++ b/docs/htmldocs/using_samba/ch01_02.html @@ -0,0 +1,212 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 1] 1.2 What Can Samba Do For Me?</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:29:50Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_01.html" TITLE="1.1 What is Samba?"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.1 What is Samba?" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch01_01.html" TITLE="1. Learning the Samba"> +Chapter 1<br> +Learning the Samba</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_03.html" TITLE="1.3 Getting Familiar with a SMB/CIFS Network"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.3 Getting Familiar with a SMB/CIFS Network" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch01-pgfId-937232"> +1.2 What Can Samba Do For Me?</a></h2><P CLASS="para"> +As explained earlier, Samba can help Windows and Unix machines coexist in the same network. However, there are some specific reasons why you might want to set up a Samba server on your network:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-941390"> +</a>You don't want to pay for - or can't afford - a full-fledged Windows NT server, yet you still need the functionality that one provides.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-941391"> +</a>You want to provide a common area for data or user directories in order to transition from a Windows server to a Unix one, or vice versa.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-941394"> +</a>You want to be able to share printers across both Windows and Unix workstations.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-941973"> +</a>You want to be able to access NT files from a Unix server.</p></li></ul><P CLASS="para"> +Let's take a quick tour of Samba in action. Assume that we have the following basic network configuration: a Samba-enabled Unix machine, to which we will assign the name <CODE CLASS="literal"> +hydra</code>, and a pair of Windows clients, to which we will assign the names <CODE CLASS="literal"> +phoenix</code> and <CODE CLASS="literal"> +chimaera</code>, all connected via a local area network (LAN). Let's also assume that <CODE CLASS="literal"> +hydra</code> also has a local inkjet printer connected to it, <CODE CLASS="literal"> +lp</code>, and a disk share named <CODE CLASS="literal"> +network</code> - both of which it can offer to the other two machines. A graphic of this network is shown in <A CLASS="xref" HREF="ch01_02.html#ch01-45964"> +Figure 1.1</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-45964"> +Figure 1.1: A simple network setup with a Samba server</a></h4><IMG CLASS="graphic" SRC="figs/sam.0101.gif" ALT="Figure 1.1"><P CLASS="para"> +In this network, each of the computers listed share the same <I CLASS="firstterm"> +workgroup</i>. A workgroup is simply a group nametag that identifies an arbitrary collection of computers and their resources on an SMB network. There can be several workgroups on the network at any time, but for our basic network example, we'll have only one: the SIMPLE workgroup.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-937316"> +1.2.1 Sharing a Disk Service</a></h3><P CLASS="para">If everything is properly configured, we should be able to see the Samba server, <CODE CLASS="literal"> +hydra</code>, through the Network Neighborhood of the <CODE CLASS="literal"> +phoenix</code> Windows desktop. In fact, <A CLASS="xref" HREF="ch01_02.html#ch01-60493"> +Figure 1.2</a> shows the Network Neighborhood of the <CODE CLASS="literal"> +phoenix</code> computer, including <CODE CLASS="literal"> +hydra</code> and each of the computers that reside in the SIMPLE workgroup. Note the Entire Network icon at the top of the list. As we just mentioned, there can be more than one workgroup on an SMB network at any given time. If a user clicks on the Entire Network icon, he or she will see a list of all the workgroups that currently exist on the network. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-60493"> +Figure 1.2: The Network Neighborhood directory</a></h4><IMG CLASS="graphic" SRC="figs/sam.0102.gif" ALT="Figure 1.2"><P CLASS="para"> +We can take a closer look at the <CODE CLASS="literal"> +hydra</code> server by double-clicking on its icon. This contacts <CODE CLASS="literal"> +hydra</code> itself and requests a list of its <I CLASS="firstterm"> +shares</i> - the file and printer resources - that the machine provides. In this case, there is a printer entitled <CODE CLASS="literal"> +lp</code> and a disk share entitled <CODE CLASS="literal"> +network</code> on the server, as shown in <A CLASS="xref" HREF="ch01_02.html#ch01-76011"> +Figure 1.3</a>. Note that the Windows display shows hostnames in mixed case (Hydra). Case is irrelevant in hostnames, so you may see hydra, Hydra, and HYDRA in various displays or command output, but they all refer to a single system. Thanks to Samba, Windows 98 sees the Unix server as a valid SMB server, and can access the <CODE CLASS="literal"> +network</code> folder as if it were just another system folder. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-76011"> +Figure 1.3: Shares available on the hydra sever as viewed from phoenix</a></h4><IMG CLASS="graphic" SRC="figs/sam.0103.gif" ALT="Figure 1.3"><P CLASS="para"> +One popular feature of Windows 95/98/NT is that you can map a letter-drive to a known network directory using the Map Network Drive option in the Windows Explorer.[<A CLASS="footnote" HREF="#ch01-pgfId-941061">3</a>] Once you do so, your applications can access the folder across the network with a standard drive letter. Hence, you can store data on it, install and run programs from it, and even password-protect it against unwanted visitors. See <A CLASS="xref" HREF="ch01_02.html#ch01-55465"> +Figure 1.4</a> for an example of mapping a letter-drive to a network directory. </p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch01-pgfId-941061">[3]</a> You can also right-click on the shared resource in the Network Neighborhood, and then select the Map Network Drive menu item.</p></div></blockquote><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-55465"> +Figure 1.4: Mapping a network drive to a Windows letter-drive</a></h4><IMG CLASS="graphic" SRC="figs/sam.0104.gif" ALT="Figure 1.4"><P CLASS="para"> +Take a look at the Path: entry in the dialog box of <A CLASS="xref" HREF="ch01_02.html#ch01-55465"> +Figure 1.4</a>. An equivalent way to represent a directory on a network machine is by using two backslashes, followed by the name of the networked machine, another backslash, and the networked directory of the machine, as shown below:</p> + +<PRE><I>\\network-machine\directory</i></pre> + +<P CLASS="para"> +This is known as the <I CLASS="firstterm"> +UNC</i> (Universal Naming Convention) in the Windows world. For example, the dialog box in <A CLASS="xref" HREF="ch01_02.html#ch01-55465"> +Figure 1.4</a> represents the network directory on the <CODE CLASS="literal"> +hydra</code> server as:</p> + +<PRE CLASS="programlisting">\\HYDRA\<CODE CLASS="replaceable"><I>network</i></code></pre><P CLASS="para"> + +If this looks somewhat familiar to you, you're probably thinking of <I CLASS="firstterm"> +uniform resource locators</i> (URLs), which are addresses that web browsers such as Netscape Navigator and Internet Explorer use to resolve machines across the Internet. Be sure not to confuse the two: web browsers typically use forward slashes instead of back slashes, and they precede the initial slashes with the data transfer protocol (i.e., ftp, http) and a colon (:). In reality, URLs and UNCs are two completely separate things.</p><P CLASS="para"> +Once the network drive is set up, Windows and its programs will behave as if the networked directory was a fixed disk. If you have any applications that support multiuser functionality on a network, you can install those programs on the network drive.[<A CLASS="footnote" HREF="#ch01-pgfId-952017">4</a>] <A CLASS="xref" HREF="ch01_02.html#ch01-32686"> +Figure 1.5</a> shows the resulting network drive as it would appear with other storage devices in the Windows 98 client. Note the pipeline attachment in the icon for the G: drive; this indicates that it is a network drive instead of a fixed drive. </p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch01-pgfId-952017">[4]</a> Be warned that many end-user license agreements forbid installing a program on a network such that multiple clients can access it. Check the legal agreements that accompany the product to be absolutely sure.</p></div></blockquote><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-32686"> +Figure 1.5: The Network directory mapped to the client letter-drive G</a></h4><IMG CLASS="graphic" SRC="figs/sam.0105.gif" ALT="Figure 1.5"><P CLASS="para"> +From our Windows NT Workstation machine, <CODE CLASS="literal"> +chimaera</code>, Samba looks almost identical to Windows 98. <A CLASS="xref" HREF="ch01_02.html#ch01-29255"> +Figure 1.6</a> shows the same view of the <CODE CLASS="literal"> +hydra</code> server from the Windows NT 4.0 Network Neighborhood. Setting up the network drive using the Map Network Drive option in Windows NT Workstation 4.0 would have identical results as well. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-29255"> +Figure 1.6: Shares available on hydra (viewed from chimaera) </a></h4><IMG CLASS="graphic" SRC="figs/sam.0106.gif" ALT="Figure 1.6"></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-942088"> +1.2.2 Sharing a Printer</a></h3><P CLASS="para">You probably noticed that the printer <CODE CLASS="literal"> +lp</code> appeared under the available shares for <CODE CLASS="literal"> +hydra</code> in <A CLASS="xref" HREF="ch01_02.html#ch01-76011"> +Figure 1.3</a>. This indicates that the Unix server has a printer that can be shared by the various SMB clients in the workgroup. Data sent to the printer from any of the clients will be spooled on the Unix server and printed in the order it is received.</p><P CLASS="para">Setting up a Samba-enabled printer on the Windows side is even easier than setting up a disk share. By double-clicking on the printer and identifying the manufacturer and model, you can install a driver for this printer on the Windows client. Windows can then properly format any information sent to the network printer and access it as if it were a local printer (we show you how to do this later in the chapter). <A CLASS="xref" HREF="ch01_02.html#ch01-46265"> +Figure 1.7</a> shows the resulting network printer in the Printers window of Windows 98. Again, note the pipeline attachment below the printer, which identifies it as being on a network. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-46265"> +Figure 1.7: A network printer available on hydra (viewed from chimaera)</a></h4><IMG CLASS="graphic" SRC="figs/sam.0107.gif" ALT="Figure 1.7"><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch01-pgfId-937586"> +1.2.2.1 Seeing things from the Unix side</a></h4><P CLASS="para"> +As mentioned earlier, Samba appears in Unix as a set of daemon programs. You can view them with the Unix <CODE CLASS="literal"> +ps</code> and <CODE CLASS="literal"> +netstat</code> commands, you can read any messages they generate through custom debug files or the Unix <CODE CLASS="literal"> +syslog</code> (depending on how Samba is set up), and you can configure it from a single Samba properties file: <i>smb.conf</i>. In addition, if you want to get an idea of what each of the daemons are doing, Samba has a program called +<i>smbstatus</i> that will lay it all on the line. Here is how it works:</p> + +<PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">#</code> smbstatus</b> +</pre><PRE CLASS="programlisting"> +Samba version 2.0.4 +Service uid gid pid machine +---------------------------------------------- +network davecb davecb 7470 phoenix (192.168.220.101) Sun May 16 +network davecb davecb 7589 chimaera (192.168.220.102) Sun May 16 + +Locked files: +Pid DenyMode R/W Oplock Name +-------------------------------------------------- +7589 DENY_NONE RDONLY EXCLUSIVE+BATCH /home/samba/quicken/inet/common/system/help.bmp Sun May 16 21:23:40 1999 +7470 DENY_WRITE RDONLY NONE /home/samba/word/office/findfast.exe Sun May 16 20:51:08 1999 +7589 DENY_WRITE RDONLY EXCLUSIVE+BATCH /home/samba/quicken/lfbmp70n.dll Sun May 16 21:23:39 1999 +7589 DENY_WRITE RDWR EXCLUSIVE+BATCH /home/samba/quicken/inet/qdata/runtime.dat Sun May 16 21:23:41 1999 +7470 DENY_WRITE RDONLY EXCLUSIVE+BATCH /home/samba/word/office/osa.exe Sun May 16 20:51:09 1999 +7589 DENY_WRITE RDONLY NONE /home/samba/quicken/qversion.dll Sun May 16 21:20:33 1999 +7470 DENY_WRITE RDONLY NONE /home/samba/quicken/qversion.dll Sun May 16 20:51:11 1999 + +Share mode memory usage (bytes): + 1043432(99%) free + 4312(0%) used + 832(0%) overhead = 1048576(100%) total</pre><P CLASS="para"> +The Samba status from this output provides three sets of data, each divided into separate sections. The first section tells which systems have connected to the Samba server, identifying each client by its machine name (<CODE CLASS="literal">phoenix</code> and <CODE CLASS="literal">chimaera</code>) and IP address. The second section reports the name and status of the files that are currently in use on a share on the server, including the read/write status and any locks on the files. Finally, Samba reports the amount of memory it has currently allocated to the shares that it administers, including the amount actively used by the shares plus additional overhead. (Note that this is not the same as the total amount of memory that the <EM CLASS="emphasis"> +smbd</em> or <EM CLASS="emphasis"> +nmbd</em> processes are using.)</p><P CLASS="para"> +Don't worry if you don't understand these statistics; they will become easier to understand as you move through the book. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_01.html" TITLE="1.1 What is Samba?"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.1 What is Samba?" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_03.html" TITLE="1.3 Getting Familiar with a SMB/CIFS Network"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.3 Getting Familiar with a SMB/CIFS Network" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +1.1 What is Samba?</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +1.3 Getting Familiar with a SMB/CIFS Network</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch01_03.html b/docs/htmldocs/using_samba/ch01_03.html new file mode 100644 index 0000000000..67a8677530 --- /dev/null +++ b/docs/htmldocs/using_samba/ch01_03.html @@ -0,0 +1,444 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 1] 1.3 Getting Familiar with a SMB/CIFS Network</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:29:52Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_02.html" TITLE="1.2 What Can Samba Do For Me?"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.2 What Can Samba Do For Me?" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch01_01.html" TITLE="1. Learning the Samba"> +Chapter 1<br> +Learning the Samba</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_04.html" TITLE="1.4 Microsoft Implementations"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.4 Microsoft Implementations" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch01-88536"> +1.3 Getting Familiar with a SMB/CIFS Network</a></h2><P CLASS="para">Now that you have had a brief tour of Samba, let's take some time to get familiar with Samba's adopted environment: an SMB/CIFS network. Networking with SMB is significantly different from working with a Unix TCP/IP network, because there are several new concepts to learn and a lot of information to cover. First, we will discuss the basic concepts behind an SMB network, followed by some Microsoft implementations of it, and finally we will show you where a Samba server can and cannot fit into the picture.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-941409"> +1.3.1 Understanding NetBIOS</a></h3><P CLASS="para"> +To begin, let's step back in time. In 1984, IBM authored a simple application programming interface (API) for networking its computers called the <I CLASS="firstterm"> +Network Basic Input/Output System </i>(NetBIOS). The NetBIOS API provided a rudimentary design for an application to connect and share data with other computers.</p><P CLASS="para"> +It's helpful to think of the NetBIOS API as networking extensions to the standard BIOS API calls. With BIOS, each low-level call is confined to the hardware of the local machine and doesn't need any help traveling to its destination. NetBIOS, however, originally had to exchange instructions with computers across IBM PC or Token Ring networks. It therefore required a low-level transport protocol to carry its requests from one computer to the next.</p><P CLASS="para"> +In late 1985, IBM released one such protocol, which it merged with the NetBIOS API to become the <I CLASS="firstterm"> +NetBIOS Extended User Interface</i> (<EM CLASS="emphasis">NetBEUI</em>). NetBEUI was designed for small local area networks (LANs), and it let each machine claim a name (up to 15 characters) that wasn't already in use on the network. By a "small LAN," we mean fewer than 255 nodes on the network - which was considered a practical restriction in 1985!</p><P CLASS="para"> +The NetBEUI protocol was very popular with networking applications, including those running under Windows for Workgroups. Later, implementations of NetBIOS over Novell's IPX networking protocols also emerged, which competed with NetBEUI. However, the networking protocols of choice for the burgeoning Internet community were TCP/IP and UDP/IP, and implementing the NetBIOS APIs over those protocols soon became a necessity.</p><P CLASS="para"> +Recall that TCP/IP uses numbers to represent computer addresses, such as 192.168.220.100, while NetBIOS uses only names. This was a major issue when trying to mesh the two protocols together. In 1987, the Internet Engineering Task Force (IETF) published a series of standardization documents, titled RFC 1001 and 1002, that outlined how NetBIOS would work over a TCP/UDP network. This set of documents still governs each of the implementations that exist today, including those provided by Microsoft with their Windows operating systems as well as the Samba suite.</p><P CLASS="para"> +Since then, the standard this document governs has become known as <I CLASS="firstterm"> +NetBIOS over TCP/IP</i>, or NBT for short. The NBT standard (RFC 1001/1002) currently outlines a trio of services on a network:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-946789"> +</a>A name service</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-946790"> +</a>Two communication services: </p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-952037"> +</a>Datagrams </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-952038"> +</a>Sessions</p></li></ul></li></ul><P CLASS="para"> +The name service solves the name-to-address problem mentioned earlier; it allows each computer to declare a specific name on the network that can be translated to a machine-readable IP address, much like today's DNS on the Internet. The datagram and session services are both secondary communication protocols used to transmit data back and forth from NetBIOS machines across the network.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-945521"> +1.3.2 Getting a Name</a></h3><P CLASS="para">For a human being, getting a name is easy. However, for a machine on a NetBIOS network, it can be a little more complicated. Let's look at a few of the issues.</p><P CLASS="para"> +In the NetBIOS world, when each machine comes online, it wants to claim a name for itself; this is called <I CLASS="firstterm"> +name registration</i>. However, no two machines in the same workgroup should be able to claim the same name; this would cause endless confusion for any machine that wanted to communicate with either machine. There are two different approaches to ensuring that this doesn't happen:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-945120"> +</a>Use a <I CLASS="firstterm"> +NetBIOS Name Server</i> (NBNS) to keep track of which hosts have registered a NetBIOS name. </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-945121"> +</a>Allow each machine on the network to defend its name in the event that another machine attempts to use it.</p></li></ul><P CLASS="para"> +<A CLASS="xref" HREF="ch01_03.html#ch01-86658"> +Figure 1.8</a> illustrates a (failed) name registration, with and without a NetBIOS Name Server. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-86658"> +Figure 1.8: NBNS versus non-NBNS name registration</a></h4><IMG CLASS="graphic" SRC="figs/sam.0108.gif" ALT="Figure 1.8"><P CLASS="para"> +In addition, there must be a way to resolve a NetBIOS name to a specific IP address as mentioned earlier; this is known as <I CLASS="firstterm"> +name resolution</i>. There are two different approaches with NBT here as well:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-945526"> +</a>Have each machine report back its IP address when it "hears" a broadcast request for its NetBIOS name.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-945527"> +</a>Use the NBNS to help resolve NetBIOS names to IP addresses. </p></li></ul><P CLASS="para"> +<A CLASS="xref" HREF="ch01_03.html#ch01-72484"> +Figure 1.9</a> illustrates the two types of name resolution. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-72484"> +Figure 1.9: NBNS versus non-NBNS name resolution</a></h4><IMG CLASS="graphic" SRC="figs/sam.0109.gif" ALT="Figure 1.9"><P CLASS="para"> +As you might expect, having an NBNS on your network can help out tremendously. To see exactly why, let's look at the non-NBNS method.</p><P CLASS="para"> +Here, when a client machine boots, it will broadcast a message declaring that it wishes to register a specified NetBIOS name as its own. If nobody objects to the use of the name after multiple registration attempts, it keeps the name. On the other hand, if another machine on the local subnet is currently using the requested name, it will send a message back to the requesting client that the name is already taken. This is known as <I CLASS="firstterm"> +defending</i> the hostname. This type of system comes in handy when one client has unexpectedly dropped off the network - another can take its name unchallenged - but it does incur an inordinate amount of traffic on the network for something as simple as name registration.</p><P CLASS="para"> +With an NBNS, the same thing occurs, except that the communication is confined to the requesting machine and the NBNS server. No broadcasting occurs when the machine wishes to register the name; the registration message is simply sent directly from the client to NBNS server and the NBNS server replies whether or not the name is already taken. This is known as <I CLASS="firstterm"> +point-to-point communication</i>, and is often beneficial on networks with more than one subnet. This is because routers are often preconfigured to block incoming packets that are broadcast to all machines in the subnet.</p><P CLASS="para"> +The same principles apply to name resolution. Without an NBNS, NetBIOS name resolution would also be done with a broadcast mechanism. All request packets would be sent to each computer in the network, with the hope that one machine that might be affected will respond directly back to the machine that asked. At this point, it's clear that using an NBNS server and point-to-point communication for this purpose is far less taxing on the network than flooding the network with broadcasts for every name resolution request. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-945664"> +1.3.3 Node Types</a></h3><P CLASS="para">How can you tell what strategy each client on your network will use when performing name registration and resolution? Each machine on an NBT network earns one of the following designations, depending on how it handles name registration and resolution: b-node, p-node, m-node, and h-node. The behaviors of each type of node are summarized in <A CLASS="xref" HREF="ch01_03.html#ch01-91681"> +Table 1.1</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch01-91681"> +Table 1.1: NetBIOS Node Types </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Role</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Value</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +b-node</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Uses broadcast registration and resolution only.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +p-node</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Uses point-to-point registration and resolution only.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +m-node</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Uses broadcast for registration. If successful, it notifies the NBNS server of the result. Uses broadcast for resolution; uses NBNS server if broadcast is unsuccessful.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +h-node (hybrid)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Uses NBNS server for registration and resolution; uses broadcast if the NBNS server is unresponsive or inoperative.</p></td></tr></tbody></table><P CLASS="para"> +In the case of Windows clients, you will usually find them listed as <I CLASS="firstterm"> +h-nodes</i> or <I CLASS="firstterm"> +hybrid nodes</i>. Incidentally, h-nodes were invented later by Microsoft, as a more fault-tolerant route, and do not appear in RFC 1001/1002.</p><P CLASS="para"> +You can find out the node type of any Windows machine by typing the command <CODE CLASS="literal"> +ipconfig</code> <CODE CLASS="literal"> +/all</code> and searching for the line that says <CODE CLASS="literal"> +Node Type</code>.</p> + +<PRE CLASS="programlisting"><B CLASS="emphasis.bold">C:\> ipconfig /all</b> +</pre><PRE CLASS="programlisting"> +Windows 98 IP Configuration +... + Node Type . . . . . . . . . . : Hybrid +...</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-945128"> +1.3.4 What's in a Name?</a></h3><P CLASS="para"> +The names NetBIOS uses are quite different from the DNS hostnames you might be familiar with. First, NetBIOS names exist in a flat namespace. In other words, there are no qualifiers such as <i>ora.com</i> or <i>samba.org</i> to section off hostnames; there is only a single unique name to represent each computer. Second, NetBIOS names are allowed to be only 15 characters, may not begin with an asterisk (*), and can consist only of standard alphanumeric characters (a-z, A-Z, 0-9) and the following:</p><PRE CLASS="programlisting"> +! @ # $ % ^ & ( ) - ' { } . ~ </pre><P CLASS="para"> +Although you are allowed to use a period (.) in a NetBIOS name, we recommend against it because those names are not guaranteed to work in future versions of NetBIOS over TCP/IP.</p><P CLASS="para"> +It's not a coincidence that all valid DNS names are also valid NetBIOS names. In fact, the DNS name for a Samba server is often reused as its NetBIOS name. For example, if you had a machine <CODE CLASS="literal"> +phoenix.ora.com</code>, its NetBIOS name would likely be PHOENIX (followed by 8 blanks).</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch01-pgfId-946016"> +1.3.4.1 Resource names and types</a></h4><P CLASS="para"> +With NetBIOS, a machine not only advertises its presence, but also tells others what types of services it offers. For example, <CODE CLASS="literal"> +phoenix</code> can indicate that it's not just a workstation, but is also a file server and can receive WinPopup messages. This is done by adding a 16th byte to the end of the machine (resource) name, called the <I CLASS="firstterm">resource type</i>, and registering the name more than once. See <A CLASS="xref" HREF="ch01_03.html#ch01-74707"> +Figure 1.10</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-74707"> +Figure 1.10: The structure of NetBIOS names</a></h4><IMG CLASS="graphic" SRC="figs/sam.0110.gif" ALT="Figure 1.10"><P CLASS="para"> +The one-byte resource type indicates a unique service the named machine provides. In this book, you will often see the resource type shown in angled brackets (<>) after the NetBIOS name, such as:</p><PRE CLASS="programlisting">PHOENIX<00></pre><P CLASS="para"> +You can see which names are registered for a particular NBT machine using the Windows command-line NBTSTAT utility. Because these services are unique (i.e., there cannot be more than one registered), you will see them listed as type UNIQUE in the output. For example, the following partial output describes the <CODE CLASS="literal"> +hydra</code> server:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold">D:\> NBTSTAT -a hydra</b><B CLASS="emphasis.bold"></b></pre><PRE CLASS="programlisting"> + NetBIOS Remote Machine Name Table + Name Type Status +--------------------------------------------- +HYDRA <00> UNIQUE Registered +HYDRA <03> UNIQUE Registered +HYDRA <20> UNIQUE Registered +...</pre><P CLASS="para"> +This says the server has registered the NetBIOS name <CODE CLASS="literal"> +hydra</code> as a machine (workstation) name, a recipient of WinPopup messages, and a file server. Some possible attributes a name can have are listed in <A CLASS="xref" HREF="ch01_03.html#ch01-11471"> +Table 1.2</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch01-11471"> +Table 1.2: NetBIOS Unique Resource Types </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Named Resource</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Hexidecimal Byte Value</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Standard Workstation Service</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +00</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Messenger Service (WinPopup)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +03</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +RAS Server Service</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +06</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Domain Master Browser Service (associated with primary domain controller)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1B</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Master Browser name</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1D</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +NetDDE Service</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1F</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Fileserver (including printer server)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +20</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +RAS Client Service</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +21</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Network Monitor Agent</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +BE</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Network Monitor Utility</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +BF</p></td></tr></tbody></table><P CLASS="para"> +Note that because DNS names don't have resource types, the designers intentionally made hexidecimal value 20 (an ASCII space) default to the type for a file server.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch01-pgfId-946074"> +1.3.4.2 Group names and types</a></h4><P CLASS="para">SMB also uses the concept of groups, with which machines can register themselves. Earlier, we mentioned that the machines in our example belonged to a <I CLASS="firstterm"> +workgroup</i>, which is a partition of machines on the same network. For example, a business might very easily have an ACCOUNTING and a SALES workgroup, each with different servers and printers. In the Windows world, a workgroup and an SMB group are the same thing.</p><P CLASS="para"> +Continuing our NBTSTAT example, the <CODE CLASS="literal"> +hydra</code> Samba server is also a member of the SIMPLE workgroup (the GROUP attribute hex 00), and will stand for election as a browse master (GROUP attribute 1E). Here is the remainder of the NBTSTAT utility output:</p><PRE CLASS="programlisting"> + NetBIOS Remote Machine Name Table, continued + Name Type Status +--------------------------------------------- +SIMPLE <00> GROUP Registered +SIMPLE <1E> GROUP Registered +..__MSBROWSE__. <01> GROUP Registered</pre><P CLASS="para"> +The possible group attributes a machine can have are illustrated in <A CLASS="xref" HREF="ch01_03.html#ch01-52395"> +Table 1.3</a>. More information is available in <i>Windows NT in a Nutshell</i> by Eric Pearce, also published by O'Reilly. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch01-52395"> +Table 1.3: NetBIOS Group Resource Types </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Named Resource </p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Hexidecimal Byte Value</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Standard Workstation group</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +00</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Logon Server </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1C</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Master Browser name </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1D</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Normal Group name (used in browser elections)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1E</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Internet Group name (administrative)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +20</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +<01><02>__MSBROWSE__<02></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +01</p></td></tr></tbody></table><P CLASS="para"> +The final entry, <CODE CLASS="literal"> +__MSBROWSE__</code>, is used to announce a group to other master browsers. The nonprinting characters in the name show up as dots in a NBTSTAT printout. Don't worry if you don't understand all of the resource or group types. Some of them you will not need with Samba, and others you will pick up as you move through the rest of the chapter. The important thing to remember here is the logistics of the naming mechanism. </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-946130"> +1.3.5 Datagrams and Sessions</a></h3><P CLASS="para"> +<I CLASS="firstterm"> +</i>At this point, let's digress to introduce another responsibility of NBT: to provide connection services between two NetBIOS machines. There are actually two services offered by NetBIOS over TCP/IP: the <I CLASS="firstterm"> +session service</i> and the <I CLASS="firstterm"> +datagram service</i>. Understanding how these two services work is not essential to using Samba, but it does give you an idea of how NBT works and how to troubleshoot Samba when it doesn't work.</p><P CLASS="para"> +The datagram service has no stable connection between one machine and another. Packets of data are simply sent or broadcast from one machine to another, without regard for the order that they arrive at the destination, or even if they arrive at all. The use of datagrams is not as network intensive as sessions, although they can bog down a network if used unwisely (remember broadcast name resolution earlier?) Datagrams, therefore, are used for quickly sending simple blocks of data to one or more machines. The datagram service communicates using the simple primitives shown in <A CLASS="xref" HREF="ch01_03.html#ch01-pgfId-946185"> +Table 1.4</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch01-pgfId-946185"> +Table 1.4: Datagram Primitives </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Primitive</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Description</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Send Datagram</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Send datagram packet to machine or groups of machines.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Send Broadcast Datagram</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Broadcast datagram to any machine waiting with a Receive Broadcast Datagram.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Receive Datagram</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Receive a datagram from a machine.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Receive Broadcast Datagram</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Wait for a broadcast datagram.</p></td></tr></tbody></table><P CLASS="para"> +The session service is more complex. Sessions are a communication method that, in theory, offers the ability to detect problematic or inoperable connections between two NetBIOS applications. It helps to think of an NBT session in terms of a telephone call.[<A CLASS="footnote" HREF="#ch01-pgfId-946249">5</a>] A full-duplex connection is opened between a caller machine and a called machine, and it must remain open throughout the duration of their conversation. Each side knows who the caller and the called machine is, and can communicate with the simple primitives shown in <A CLASS="xref" HREF="ch01_03.html#ch01-pgfId-946256"> +Table 1.5</a>. </p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch01-pgfId-946249">[5]</a> As you can see in RFC 1001, the telephone analogy was strongly evident in the creation of the NBT service.</p></div></blockquote><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch01-pgfId-946256"> +Table 1.5: Session Primitives </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Primitive</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Description</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Call</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Initiate a session with a machine listening under a specified name.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Listen</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Wait for a call from a known caller or any caller.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Hang-up</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Exit a call.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Send</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Send data to the other machine.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Receive</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Receive data from the other machine.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Session Status</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Get information on requested sessions.</p></td></tr></tbody></table><P CLASS="para"> +Sessions are the backbone of resource sharing on an NBT network. They are typically used for establishing stable connections from client machines to disk or printer shares on a server. The client "calls" the server and starts trading information such as which files it wishes to open, which data it wishes to exchange, etc. These calls can last a long time - hours, even days - and all of this occurs within the context of a single connection. If there is an error, the session software (TCP) will retransmit until the data is received properly, unlike the "punt-and-pray" approach of the datagram service (UDP).</p><P CLASS="para"> +In truth, while sessions are supposed to be able to handle problematic communications, they often don't. As you've probably already discovered when using Windows networks, this is a serious detriment to using NBT sessions. If the connection is interrupted for some reason, session information that is open between the two computers can easily become invalidated. If that happens, the only way to regain the session information is for the same two computers to call each other again and start over.</p><P CLASS="para"> +If you want more information on each of these services, we recommend you look at RFC 1001. However, there are two important things to remember here:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-946210"> +</a>Sessions always occur between <EM CLASS="emphasis"> +two</em> NetBIOS machines - no more and no less. If a session service is interrupted, the client is supposed to store sufficient state information for it to re-establish the connection. However, in practice, this is rarely the case.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-946211"> +</a>Datagrams can be broadcast to multiple machines, but they are unreliable. In other words, there is no way for the source to know that the datagrams it sent have indeed arrived at their<I CLASS="firstterm"> +</i> destinations. </p></li></ul></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_02.html" TITLE="1.2 What Can Samba Do For Me?"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.2 What Can Samba Do For Me?" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_04.html" TITLE="1.4 Microsoft Implementations"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.4 Microsoft Implementations" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +1.2 What Can Samba Do For Me?</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +1.4 Microsoft Implementations</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch01_04.html b/docs/htmldocs/using_samba/ch01_04.html new file mode 100644 index 0000000000..15a1943e6e --- /dev/null +++ b/docs/htmldocs/using_samba/ch01_04.html @@ -0,0 +1,277 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 1] 1.4 Microsoft Implementations</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:29:54Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_03.html" TITLE="1.3 Getting Familiar with a SMB/CIFS Network"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.3 Getting Familiar with a SMB/CIFS Network" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch01_01.html" TITLE="1. Learning the Samba"> +Chapter 1<br> +Learning the Samba</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_05.html" TITLE="1.5 An Overview of the Samba Distribution"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.5 An Overview of the Samba Distribution" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch01-43359"> +1.4 Microsoft Implementations</a></h2><P CLASS="para">With that amount of background, we can now talk about some of Microsoft's implementations of the preceding concepts in the CIFS/SMB networking world. And, as you might expect, there are some complex extensions to introduce as well.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-946918"> +1.4.1 Windows Domains</a></h3><P CLASS="para">Recall that a workgroup is a collection of SMB computers that all reside on a subnet and subscribe to the same SMB group. A <I CLASS="firstterm"> +Windows domain</i> goes a step further. It is a workgroup of SMB machines that has one addition: a server acting as a <I CLASS="firstterm"> +domain controller</i>. You must have a domain controller in order to have a Windows domain.[<A CLASS="footnote" HREF="#ch01-pgfId-947021">6</a>] Otherwise, it is only a workgroup. See <A CLASS="xref" HREF="ch01_04.html#ch01-96972"> +Figure 1.11</a>. </p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch01-pgfId-947021">[6]</a> Windows domains are called "Windows NT domains" by Microsoft because they assume that Windows NT machines will take the role of the domain controller. However, because Samba can perform this function as well, we'll simply call them "Windows domains" to avoid confusion.</p></div></blockquote><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-96972"> +Figure 1.11: A simple Windows domain</a></h4><IMG CLASS="graphic" SRC="figs/sam.0111.gif" ALT="Figure 1.11"><P CLASS="para">There are currently two separate protocols used by a domain controller (logon server): one for communicating with Windows 95/98 machines and one for communicating with Windows NT machines. While Samba currently implements the domain controller protocol for Windows 95/98 (which allows it to act as a domain controller for Windows 9<EM CLASS="emphasis"> +x</em> machines), it still does not fully support the protocol for Windows NT computers. However, the Samba team promises that support for the Windows NT domain controller protocol is forthcoming in Samba 2.1.</p><P CLASS="para"> +Why all the difficulty? The protocol that Windows domain controllers use to communicate with their clients and other domain controllers is proprietary and has not been released by Microsoft. This has forced the Samba development team to reverse-engineer the domain controller protocol to see which codes perform specific tasks.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch01-pgfId-946969"> +1.4.1.1 Domain controllers</a></h4><P CLASS="para"> +The domain controller is the nerve center of a Windows domain, much like an NIS server is the nerve center of the Unix network information service. Domain controllers have a variety of responsibilities. One responsibility that you need to be concerned with is <I CLASS="firstterm"> +authentication</i>. Authentication is the process of granting or denying a user access to a shared resource on another network machine, typically through the use of a password.</p><P CLASS="para"> +Each domain controller uses a <I CLASS="firstterm"> +security account manager</i> (SAM) to maintain a list of username-password combinations. The domain controller then forms a central repository of passwords that are tied to usernames (one password per user), which is more efficient than each client machine maintaining hundreds of passwords for every network resource available.</p><P CLASS="para"> +On a Windows domain, when a non-authenticated client requests access to a server's shares, the server will turn around and ask the domain controller whether that user is authenticated. If it is, the server will establish a session connection with the access rights it has for that service and user. If not, the connection is denied. Once a user is authenticated by the domain controller, a special authenticated token will be returned to the client so that the user will not need to relogin to other resources on that domain. At this point, the user is considered "logged in" to the domain itself. See <A CLASS="xref" HREF="ch01_04.html#ch01-49344"> +Figure 1.12</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-49344"> +Figure 1.12: Using a domain controller for authentication</a></h4><IMG CLASS="graphic" SRC="figs/sam.0112.gif" ALT="Figure 1.12"></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch01-pgfId-939079"> +1.4.1.2 Primary and backup domain controllers</a></h4><P CLASS="para">Redundancy is a key idea behind a Windows domain. The domain controller that is currently active on a domain is called the <I CLASS="firstterm"> +primary domain controller</i> (PDC). There can be one or more <I CLASS="firstterm"> +backup domain controllers</i> (BDCs) in the domain as well, which will take over in the event that the primary domain controller fails or becomes inaccessible. BDCs frequently synchronize their SAM data with the primary domain controller so that, if the need arises, any one of them can perform DC services transparently without impacting its clients. Note that BDCs, however, have only read-only copies of the SAM; they can update their data only by synchronizing with a PDC. A server in a Windows domain can use the SAM of any primary or backup domain controller to authenticate a user who attempts to access its resources and logon to the domain.</p><P CLASS="para"> +Note that in many aspects, the behaviors of a Windows workgroup and a Windows domain overlap. This is not accidental since the concept of Windows domains did not evolve until Windows NT 3.5 was introduced, and Windows domains were forced to remain backwards compatible with the workgroups present in Windows for Workgroups 3.1. The key thing to remember here is that a Windows domain is simply a Windows workgroup with one or more domain controllers added.</p><P CLASS="para"> +Samba can function as a primary domain controller for Windows 95/98 machines without any problems. However, Samba 2.0 can act as a primary domain controller only for authentication purposes; it currently cannot assume any other PDC responsibilities. (By the time you read this, Samba 2.1 may be available so you can use Samba as a PDC for NT clients.) Also, because of the closed protocol used by Microsoft to synchronize SAM data, Samba currently cannot serve as a backup domain controller. </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-951817"> +1.4.2 Browsing</a></h3><P CLASS="para">Browsing is a high-level answer to the user question: "What machines are out there on the Windows network?" Note that there is no connection with a World Wide Web browser, apart from the general idea of "discovering what's there." And, like the Web, what's out there can change without warning.</p><P CLASS="para"> +Before browsing, users had to know the name of the specific computer they wanted to connect to on the network, and then manually enter a UNC such as the following into an application or file manager to access resources:</p><PRE CLASS="programlisting"> +\\HYDRA\network\</pre><P CLASS="para"> +With browsing, however, you can examine the contents of a machine using a standard point-and-click GUI - in this case, the Network Neighborhood window in a Windows client.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch01-pgfId-950089"> +1.4.2.1 Levels of browsing</a></h4><P CLASS="para"> +As we hinted at the beginning of the chapter, there are actually two types of browsing that you will encounter in an SMB/CIFS network:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-944661"> +</a>Browsing a list of machines (with shared resources)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-944662"> +</a>Browsing the shared resources of a specific machine</p></li></ul><P CLASS="para">Let's look at the first one. On each Windows workgroup (or domain) subnet, one computer has the responsibility of maintaining a list of the machines that are currently accessible through the network. This computer is called the <I CLASS="firstterm"> +local master browser</i>, and the list that it maintains is called the <I CLASS="firstterm"> +browse list</i>. Machines on a subnet use the browse list in order to cut down on the amount of network traffic generated while browsing. Instead of each computer dynamically polling to determine a list of the currently available machines, the computer can simply query the local master browser to obtain a complete, up-to-date list.</p><P CLASS="para">To browse the actual resources on a machine, a user must connect to the specific machine; this information cannot be obtained from the browse list. Browsing the list of resources on a machine can be done by clicking on the machine's icon when it is presented in the Network Neighborhood in Windows 95/98 or NT. As you saw at the opening of the chapter, the machine will respond with a list of shared resources that can be accessed if that user is successfully authenticated.</p><P CLASS="para"> +Each of the servers on a Windows workgroup is required to announce its presence to the local master browser after it has registered a NetBIOS name, and (theoretically) announce that it is leaving the workgroup when it is shut down. It is the local master browser's responsibility to record what the servers have announced. Note that the local master browser is not necessarily the same machine as a NetBIOS name server (NBNS), which we discussed earlier. </p><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> The Windows Network Neighborhood can behave oddly: until you select a particular machine to browse, the Network Neighborhood window may contain data that is not up-to-date. That means that the Network Neighborhood window can be showing machines that have crashed, or can be missing machines that haven't been noticed yet. Put succinctly, once you've selected a server and connected to it, you can be a lot more confident that the shares and printers really exist on the network.</p></blockquote><P CLASS="para"> +Unlike the roles you've seen earlier, almost any Windows machine (NT Server, NT Workstation, 98, 95, or Windows 3.1 for Workgroups) can act as a local master browser. As with the domain controller, the local master browser can have one or more <I CLASS="firstterm"> +backup browsers</i> on the local subnet that will take over in the event that the local master browser fails or becomes inaccessible. To ensure fluid operation, the local backup browsers will frequently synchronize their browse list with the local master browser. Let's update our Windows domain diagram to include both a local master and local backup browser. The result is shown in <A CLASS="xref" HREF="ch01_04.html#ch01-77521"> +Figure 1.13</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-77521"> +Figure 1.13: A Windows domain with a local master and local backup browser</a></h4><IMG CLASS="graphic" SRC="figs/sam.0113.gif" ALT="Figure 1.13"><P CLASS="para"> +Here is how to calculate the minimum number of backup browsers that will be allocated on a workgroup:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-944330"> +</a>If there are between 1 and 32 Windows NT workstations on the network, or between 1 and 16 Windows 95/98 machines on the network, the local master browser allocates one backup browser in addition to the local master browser.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-950113"> +</a>If the number of Windows NT workstations falls between 33 and 64, or the number of Windows 95/98 workstations falls between 17 and 32, the local master browser allocates two backup browsers.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-944332"> +</a>For each group of 32 NT workstations or 16 Windows 95/98 machines beyond this, the local master browser allocates another backup browser.</p></li></ul><P CLASS="para"> +There is currently no upper limit on the number of backup browsers that can be allocated by the local master browser. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch01-pgfId-946408"> +1.4.2.2 Browsing elections</a></h4><P CLASS="para"> +Browsing is a critical aspect of any Windows workgroup. However, not everything runs perfectly on any network. For example, let's say that the Windows NT Server on the desk of a small company's CEO is the local master browser - that is, until he switches it off while plugging in his massage chair. At this point the Windows NT Workstation in the spare parts department might agree to take over the job. However, that computer is currently running a large, poorly written program that has brought its processor to its knees. The moral: browsing has to be very tolerant of servers coming and going. Because nearly every Windows machine can serve as a browser, there has to be a way of deciding at any time who will take on the job. This decision-making process is called an <I CLASS="firstterm"> +election</i>.</p><P CLASS="para"> +An election algorithm is built into nearly all Windows operating systems such that they can each agree who is going to be a local master browser and who will be local backup browsers. An election can be forced at any time. For example, let's assume that the CEO has finished his massage and reboots his server. As the server comes online, it will announce its presence and an election will take place to see if the PC in the spare parts department should still be the master browser. </p><P CLASS="para"> +When an election is performed, each machine broadcasts via datagrams information about itself. This information includes the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-939575"> +</a>The version of the election protocol used</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-939577"> +</a>The operating system on the machine</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-939576"> +</a>The amount of time the client has been on the network</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-939578"> +</a>The hostname of the client</p></li></ul><P CLASS="para"> +These values determine which operating system has seniority and will fulfill the role of the local master browser. (<a href="ch06_01.html"><b>Chapter 6, <CITE CLASS="chapter">Users, Security, and Domains</cite></b></a>, describes the election process in more detail.) The architecture developed to achieve this is not elegant and has built-in security problems. While a browsing domain can be integrated with domain security, the election algorithm does not take into consideration which computers become browsers. Thus it is possible for any machine running a browser service to register itself as participating in the browsing election, and (after winning) being able to change the browse list. Nevertheless, browsing is a key feature of Windows networking and backwards compatibility requirements will ensure that it is in use for years to come. </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-939834"> +1.4.3 Can a Windows Workgroup Span Multiple Subnets?</a></h3><P CLASS="para">Yes, but most people who have done it have had their share of headaches. Spanning multiple subnets was not part of the initial design of Windows NT 3.5 or Windows for Workgroups. As a result, a Windows domain that spans two or more subnets is, in reality, the "gluing" together of two or more workgroups that share an identical name. The good news is that you can still use a primary domain controller to control authentication across each of the subnets. The bad news is that things are not as simple with browsing.</p><P CLASS="para"> +As mentioned previously, each subnet must have its own local master browser. When a Windows domain spans multiple subnets, a system administrator will have to assign one of the machines as the <I CLASS="firstterm"> +domain master browser</i>. The domain master browser will keep a browse list for the entire Windows domain. This browse list is created by periodically synchronizing the browse lists of each of the local master browsers with the browse list of the domain master browser. After the synchronization, the local master browser and the domain master browser should contain identical entries. See <A CLASS="xref" HREF="ch01_04.html#ch01-52572"> +Figure 1.14</a> for an illustration. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch01-52572"> +Figure 1.14: A workgroup that spans more than one subnet</a></h4><IMG CLASS="graphic" SRC="figs/sam.0114.gif" ALT="Figure 1.14"><P CLASS="para"> +Sound good? Well, it's not quite nirvana for the following reasons:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-947419"> +</a>If it exists, a primary domain controller always plays the role of the domain master browser. By Microsoft design, the two always share the NetBIOS resource type <1B>, and (unfortunately) cannot be separated.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-947420"> +</a>Windows 95/98 machines cannot become <EM CLASS="emphasis"> +or</em> <EM CLASS="emphasis"> +even contact</em> a domain master browser. The Samba group feels that this is a marketing decision from Microsoft that forces customers to have at least one Windows NT workstation (or Samba server) on each subnet of a multi-subnet workgroup.</p></li></ul><P CLASS="para"> +Each subnet's local master browser continues to maintain the browse list for its subnet, for which it becomes authoritative. So if a computer wants to see a list of servers within its own subnet, the local master browser of that subnet will be queried. If a computer wants to see a list of servers outside the subnet, it can still go only as far as the local master browser. This works because, at appointed intervals, the authoritative browse list of a subnet's local master browser is synchronized with the domain master browser, which is synchronized with the local master browser of the other subnets in the domain. This is called <I CLASS="firstterm"> +browse list propagation</i>.</p><P CLASS="para"> +Samba can act as a domain master browser on a Windows domain if required. In addition, it can also act as a local master browser for a Windows subnet, synchronizing its browse list with the domain master browser.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-938926"> +1.4.4 The Windows Internet Name Service (WINS)</a></h3><P CLASS="para"> +The Windows Internet Name Service (WINS) is Microsoft's implementation of a NetBIOS name server (NBNS). As such, WINS inherits much of NetBIOS's characteristics. First, WINS is flat; you can only have machines named <CODE CLASS="literal"> +fred</code> or workgroups like CANADA or USA. In addition, WINS is dynamic: when a client first comes online, it is required to report its hostname, its address, and its workgroup to the local WINS server. This WINS server will retain the information so long as the client periodically refreshes its WINS registration, which indicates that it's still connected to the network. Note that WINS servers are not domain or workgroup specific; they can appear anywhere and serve anyone.</p><P CLASS="para"> +Multiple WINS servers can be set to synchronize with each other after a specified amount of time. This allows entries for machines that come online and offline on the network to propagate from one WINS server to another. While in theory this seems efficient, it can quickly become cumbersome if there are several WINS servers covering a network. Because WINS services can cross multiple subnets (you'll either hardcode the address of a WINS server in each of your clients or obtain it via DHCP), it is often more efficient to have each Windows client, no matter how many Windows domains there are, point themselves to the same WINS server. That way, there will only be one authoritative WINS server with the correct information, instead of several WINS servers continually struggling to synchronize themselves with the most recent changes.</p><P CLASS="para"> +The currently active WINS server is known as the <I CLASS="firstterm"> +primary WINS server</i>. You can also install a secondary WINS server, which will take over in the event that the primary WINS server fails or becomes inaccessible. Note that there is no election to determine which machine becomes a primary or backup WINS server - the choice of WINS servers is static and must be predetermined by the system administrator. Both the primary and any backup WINS servers will synchronize their address databases on a periodic basis.</p><P CLASS="para"> +In the Windows family of operating systems, only an NT Workstation or an NT server can serve as a <I CLASS="firstterm"> +</i>WINS server. Samba can also function as a primary WINS server, but not a secondary WINS server.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-12452"> +1.4.5 What Can Samba Do?</a></h3><P CLASS="para">Whew! Bet you never thought Microsoft networks would be that complex, did you? Now, let's wrap up by showing where Samba can help out. <A CLASS="xref" HREF="ch01_04.html#ch01-pgfId-939957"> +Table 1.6</a> summarizes which roles Samba can and cannot play in a Windows NT Domain or Windows workgroup. As you can see, because many of the NT domain protocols are proprietary and have not been documented by Microsoft, Samba cannot properly synchronize its data with a Microsoft server and cannot act as a backup in most roles. However, with version 2.0.<EM CLASS="emphasis"> +x</em>, Samba does have limited support for the primary domain controller's authentication protocols and is gaining more functionality every day. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch01-pgfId-939957"> +Table 1.6: Samba Roles (as of 2.0.4b) </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Role</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Can Perform?</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +File Server</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Yes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Printer Server</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Yes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Primary Domain Controller</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Yes (Samba 2.1 or higher recommended)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Backup Domain Controller</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +No</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 95/98 Authentication</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Yes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Local Master Browser</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Yes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Local Backup Browser</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +No</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Domain Master Browser</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Yes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Primary WINS Server</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Yes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Secondary WINS Server</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +No </p></td></tr></tbody></table></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_03.html" TITLE="1.3 Getting Familiar with a SMB/CIFS Network"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.3 Getting Familiar with a SMB/CIFS Network" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_05.html" TITLE="1.5 An Overview of the Samba Distribution"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.5 An Overview of the Samba Distribution" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +1.3 Getting Familiar with a SMB/CIFS Network</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +1.5 An Overview of the Samba Distribution</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch01_06.html b/docs/htmldocs/using_samba/ch01_06.html new file mode 100644 index 0000000000..f3b46b2313 --- /dev/null +++ b/docs/htmldocs/using_samba/ch01_06.html @@ -0,0 +1,90 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 1] 1.6 How Can I Get Samba?</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:30:01Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_05.html" TITLE="1.5 An Overview of the Samba Distribution"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.5 An Overview of the Samba Distribution" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch01_01.html" TITLE="1. Learning the Samba"> +Chapter 1<br> +Learning the Samba</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_07.html" TITLE="1.7 What's New in Samba 2.0?"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.7 What's New in Samba 2.0?" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch01-pgfId-946850"> +1.6 How Can I Get Samba?</a></h2><P CLASS="para">Samba is available in both binary and source format from a set of mirror sites across the Internet. The primary home site for Samba is located at <A CLASS="systemitem.url" HREF="http://www.samba.org/">http://www.samba.org/</a>.</p><P CLASS="para"> +However, if you don't want to wait for packets to arrive all the way from Australia, mirror sites for Samba can be found at any of several locations on the Internet. A list of mirrors is given at the primary Samba home page.</p><P CLASS="para"> +In addition, a CD-ROM distribution is available in the back of this book. We strongly encourage you to start with the CD-ROM if this is your first time using Samba. We've included source and binaries up to Samba 2.0.5 with this book. In addition, several of the testing tools that we refer to through the book are conveniently packaged on the CD-ROM.</p></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_05.html" TITLE="1.5 An Overview of the Samba Distribution"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.5 An Overview of the Samba Distribution" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_07.html" TITLE="1.7 What's New in Samba 2.0?"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.7 What's New in Samba 2.0?" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +1.5 An Overview of the Samba Distribution</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +1.7 What's New in Samba 2.0?</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch01_07.html b/docs/htmldocs/using_samba/ch01_07.html new file mode 100644 index 0000000000..a5fd482b03 --- /dev/null +++ b/docs/htmldocs/using_samba/ch01_07.html @@ -0,0 +1,138 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 1] 1.7 What's New in Samba 2.0?</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:30:01Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_06.html" TITLE="1.6 How Can I Get Samba?"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.6 How Can I Get Samba?" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch01_01.html" TITLE="1. Learning the Samba"> +Chapter 1<br> +Learning the Samba</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_08.html" TITLE="1.8 And That's Not All..."> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.8 And That's Not All..." BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch01-40528"> +1.7 What's New in Samba 2.0?</a></h2><P CLASS="para">Samba 2.0 was an eagerly-awaited package. The big additions to Samba 2.0 are more concrete support for NT Domains and the new Samba Web Administration Tool (SWAT), a browser-based utility for configuring Samba. However, there are dozens of other improvements that were introduced in the summer and fall of 1998. </p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-937019"> +1.7.1 NT Domains</a></h3><P CLASS="para"> +Samba's support for NT Domains (starting with version 2.0.<EM CLASS="emphasis"> +x</em>) produced a big improvement: it allows SMB servers to use its authentication mechanisms, which is essential for future NT compatibility, and to support <I CLASS="firstterm"> +NT domain logons</i>. Domain logons allow a user to log in to a Windows NT domain and use all the computers in the domain without logging into them individually. Previous to version 2.0.0, Samba supported Windows 95/98 logon services, but not NT domain logons. Although domain logons support is not complete is Samba 2.0, it is partially implemented.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-937021"> +1.7.2 Ease of Administration</a></h3><P CLASS="para">SWAT, the Samba Web Administration Tool, makes it easy to set up a server and change its configuration, without giving up the simple text-based configuration file. SWAT provides a graphical interface to the resources that Samba shares with its clients. In addition, SWAT saves considerable experimentation and memory work in setting up or changing configurations across the network. You can even create an initial setup with SWAT and then modify the file later by hand, or vice versa. Samba will not complain.</p><P CLASS="para"> +On the compilation side, GNU <I CLASS="filename"> +autoconf</i> is now used to make the task of initial compilation and setup easier so you can get to SWAT quicker.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-937024"> +1.7.3 Performance</a></h3><P CLASS="para"> +There are major performance and scalability increases in Samba: the code has been reorganized and <EM CLASS="emphasis"> +nmbd</em> (the Samba name service daemon) heavily rewritten:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-937026"> +</a>Name/browsing service now supports approximately 35,000 simultaneous clients.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-937027"> +</a>File and print services support 500 concurrent users from a single medium-sized server without noticeable performance degradation.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-937028"> +</a>Linux/Samba on identical hardware now consistently performs better than NT Server. And best of all, Samba is improving.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch01-pgfId-937029"> +</a>Improved "opportunistic" locking allows client machines to cache entire files locally, greatly improving speed without running the risk of accidentally overwriting the cached files.</p></li></ul></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-937030"> +1.7.4 More Features</a></h3><P CLASS="para"> +There are several additional features in Samba 2.0. You can now have multiple Samba aliases on the same machine, each pretending to be a different server, a feature similar to virtual hosts in modern web servers. This allows a host to serve multiple departments and groups, or provide disk shares with normal username/password security while also providing printers to everyone without any security. Printing has been changed to make it easier for Unix System V owners: Samba can now find the available printers automatically, just as it does with Berkeley-style printing. In addition, Samba now has the capability to use multiple code pages, so it can be used with non-European languages, and to use the Secure Sockets Layer protocol (SSL) to encrypt all the data it sends across the Internet, instead of just passwords.[<A CLASS="footnote" HREF="#ch01-pgfId-938280">7</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch01-pgfId-938280">[7]</a> If you reside in the United States, there are some federal rules and regulations dealing with strong cryptography. We'll talk about his later when we set up Samba and SSL in <a href="appa_01.html"><b>Appendix A, <CITE CLASS="appendix"> +Configuring Samba with SSL</cite></b></a>.</p></div></blockquote></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-937035"> +1.7.5 Compatibility Improvements</a></h3><P CLASS="para"> +At the same time as it's becoming more capable, Samba is also becoming more compatible with Windows NT. Samba has always supported Microsoft-style password encryption. It now provides tools and options for changing over to Microsoft encryption, and for keeping the Unix and Microsoft password files synchronized while doing so. Finally, a Samba master browser can be instructed to hunt down and synchronize itself with other SMB servers on different LANs, allowing SMB to work seamlessly across multiple networks. Samba uses a different method of accomplishing this from the Microsoft method, which is undocumented.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch01-pgfId-937039"> +1.7.6 Smbwrapper</a></h3><P CLASS="para"> +Finally, there is an entirely new version of the Unix client called <I CLASS="firstterm"> +smbwrapper</i>. Instead of a kernel module that allows Linux to act as a Samba client, there is now a command-line entry to load the library that provides a complete SMB filesystem on some brands of Unix. Once loaded, the command <CODE CLASS="literal"> +ls</code> <CODE CLASS="literal"> +/smb</code> will list all the machines in your workgroup, and <CODE CLASS="literal"> +cd</code> <CODE CLASS="literal">/smb/</code><CODE CLASS="replaceable"><I>server_name</i></code><CODE CLASS="literal">/</code><CODE CLASS="replaceable"><I>share_name</i></code> will take you to a particular share (shared directory), similar to the Network File System (NFS). As of this writing, <EM CLASS="emphasis"> +smbwrapper</em> currently runs on Linux, Solaris, SunOS 4, IRIX, and OSF/1, and is expected to run on several more operating systems in the near future.</p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_06.html" TITLE="1.6 How Can I Get Samba?"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.6 How Can I Get Samba?" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_08.html" TITLE="1.8 And That's Not All..."> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 1.8 And That's Not All..." BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +1.6 How Can I Get Samba?</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +1.8 And That's Not All...</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch01_08.html b/docs/htmldocs/using_samba/ch01_08.html new file mode 100644 index 0000000000..0ea2d0331c --- /dev/null +++ b/docs/htmldocs/using_samba/ch01_08.html @@ -0,0 +1,89 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 1] 1.8 And That's Not All...</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:30:04Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_07.html" TITLE="1.7 What's New in Samba 2.0?"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.7 What's New in Samba 2.0?" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch01_01.html" TITLE="1. Learning the Samba"> +Chapter 1<br> +Learning the Samba</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch02_01.html" TITLE="2. Installing Samba on a Unix System"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2. Installing Samba on a Unix System" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch01-99818"> +1.8 And That's Not All...</a></h2><P CLASS="para"> +Samba is a wonderful tool with potential for even the smallest SMB/CIFS network. This chapter presented you with a thorough introduction to what Samba is, and more importantly, how it fits into a Windows network. The next series of chapters will help you set up Samba on both the Unix server side, where its two daemons reside, as well as configure the Windows 95, 98, and NT clients to work with Samba. Before long, the aches and pains of your heterogeneous network may seem like a thing of the past. Welcome to the wonderful world of Samba!</p></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_07.html" TITLE="1.7 What's New in Samba 2.0?"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.7 What's New in Samba 2.0?" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch02_01.html" TITLE="2. Installing Samba on a Unix System"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2. Installing Samba on a Unix System" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +1.7 What's New in Samba 2.0?</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +2. Installing Samba on a Unix System</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch02_01.html b/docs/htmldocs/using_samba/ch02_01.html new file mode 100644 index 0000000000..a90a52d8ab --- /dev/null +++ b/docs/htmldocs/using_samba/ch02_01.html @@ -0,0 +1,197 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 2] Installing Samba on a Unix System</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:29:03Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_08.html" TITLE="1.8 And That's Not All..."> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.8 And That's Not All..." BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Chapter 2</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_02.html" TITLE="2.2 Configuring Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.2 Configuring Samba" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="chapter"> +<A CLASS="title" NAME="ch02-46174"> +2. Installing Samba on a Unix System</a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#ch02-85028" TITLE="2.1 Downloading the Samba Distribution"> +Downloading the Samba Distribution</a><br> +<A CLASS="sect1" HREF="ch02_02.html" TITLE="2.2 Configuring Samba"> +Configuring Samba</a><br> +<A CLASS="sect1" HREF="ch02_03.html" TITLE="2.3 Compiling and Installing Samba"> +Compiling and Installing Samba</a><br> +<A CLASS="sect1" HREF="ch02_04.html" TITLE="2.4 A Basic Samba Configuration File"> +A Basic Samba Configuration File</a><br> +<A CLASS="sect1" HREF="ch02_05.html" TITLE="2.5 Starting the Samba Daemons"> +Starting the Samba Daemons</a><br> +<A CLASS="sect1" HREF="ch02_06.html" TITLE="2.6 Testing the Samba Daemons"> +Testing the Samba Daemons</a></p><P> +</p></div><P CLASS="para">Now that you know what Samba can do for you and your users, it's time to get your own network set up. Let's start with the installation of Samba itself on a Unix system. When dancing the samba, one learns by taking small steps. It's just the same when installing Samba; we need to teach it step by step. This chapter will help you to start off on the right foot. </p><P CLASS="para"> +For illustrative purposes, we will be installing the 2.0.4 version of the Samba server on a Linux[<A CLASS="footnote" HREF="#ch02-pgfId-939741">1</a>] system running version 2.0.31 of the kernel. However, the installation steps are the same for all of the platforms that Samba supports. A typical installation will take about an hour to complete, including downloading the source files and compiling them, setting up the configuration files, and testing the server. </p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch02-pgfId-939741">[1]</a> If you haven't heard of Linux yet, then you're in for a treat. Linux is a freely distributed Unix-like operating system that runs on the Intel x86, Motorola PowerPC, and Sun Sparc platforms. The operating system is relatively easy to configure, extremely robust, and is gaining in popularity. You can get more information on the Linux operating system at <a href="http://www.linux.org/"><EM CLASS="emphasis">http://www.linux.org/</a></em>.</p></div></blockquote><P CLASS="para">Here is an overview of the steps:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938543"> +</a>Download the source or binary files.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938544"> +</a>Read the installation documentation.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938545"> +</a>Configure a makefile.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938546"> +</a>Compile the server code.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938547"> +</a>Install the server files.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938548"> +</a>Create a Samba configuration file.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938549"> +</a>Test the configuration file.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938550"> +</a>Start the Samba daemons.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938551"> +</a>Test the Samba daemons.</p></li></ol><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="s1"></a> +<A CLASS="title" NAME="ch02-85028"> +2.1 Downloading the Samba Distribution</a></h2><P CLASS="para">If you want to get started quickly, the CD-ROM packaged with this book contains both the sources and binaries of Samba that were available as this book went to print. The CD is a mirror image of the files and directories on the Samba download server: <EM CLASS="emphasis"> +ftp.samba.org</em>.</p><P CLASS="para"> +On the other hand, if you want to download the latest version, the primary web site for the Samba software is <A CLASS="systemitem.url" HREF="http://www.samba.org">http://www.samba.org</a>. Once connected to this page, you'll see links to several Samba mirror sites across the world, both for the standard Samba web pages and sites devoted exclusively to downloading Samba. For the best performance, choose a site that is closest to your own geographic location.</p><P CLASS="para"> +The standard Samba web sites have Samba documentation and tutorials, mailing list archives, and the latest Samba news, as well as source and binary distributions of Samba. The download sites (sometimes called <EM CLASS="emphasis"> +FTP sites</em>) have only the source and binary distributions. Unless you specifically want an older version of the Samba server or are going to install a binary distribution, download the latest source distribution from the closest mirror site. This distribution is always named:</p><PRE CLASS="programlisting">samba-latest.tar.gz</pre><P CLASS="para"> +If you choose to use the version of Samba that is located on the CD-ROM packaged with this book, you should find the latest Samba distribution in the base directory.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch02-pgfId-938556"> +2.1.1 Binary or Source?</a></h3><P CLASS="para">Precompiled packages are also available for a large number of Unix platforms. These packages contain binaries for each of the Samba executables as well as the standard Samba documentation. Note that while installing a binary distribution can save you a fair amount of trouble and time, there are a couple of issues that you should keep in mind when deciding whether to use the binary or compile the source yourself:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938558"> +</a>The binary packages can lag behind the latest version of the software by one or two (maybe more) minor releases, especially after a series of small changes and for less popular platforms. Compare the release notes for the source and binary packages to make sure that there aren't any new features that you need on your platform. This is especially true of the sources and binaries on the CD-ROM: at the time this book went to print, they were from the latest production release of Samba. However, development is ongoing, so the beta-test versions on the Internet will be newer.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938560"> +</a>If you use a precompiled binary, you will need to ensure that you have the correct libraries required by the executables. On some platforms the executables are statically linked so this isn't an issue, but on modern Unix operating systems (e.g., Linux, SGI Irix, Solaris, HP-UX, etc.), libraries are often dynamically linked. This means that the binary looks for the right version of each library on your system, so you may have to install a new version of a library. The <I CLASS="filename"> +README</i> file or <I CLASS="filename"> +makefile</i> that accompanies the binary distribution should list any special requirements.[<A CLASS="footnote" HREF="#ch02-pgfId-943622">2</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch02-pgfId-943622">[2]</a> This is especially true with programs that use <EM CLASS="emphasis"> +glibc-2.1</em> (which comes standard with Red Hat Linux 6). This library caused quite a consternation in the development community when it was released because it was incompatable with previous versions of <EM CLASS="emphasis">g</em><I CLASS="filename">libc</i>.</p></div></blockquote><P CLASS="para">Many machines with shared libraries come with a nifty tool called <EM CLASS="emphasis">ldd</em>. This tool will tell you which libraries a specific binary requires and which libraries on the system satisfy that requirement. For example, checking the <EM CLASS="emphasis"> +smbd</em> program on our test machine gave us:</p></li></ul><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">$</code> ldd smbd</b> +</pre><PRE CLASS="programlisting"> +libreadline.so.3 => /usr/lib/libreadline.so.3 +libdl.so.2 => /lib/libdl.so.2 +libcrypt.so.1 => /lib/libcrypt.so.1 +libc.so.6 => /lib/libc.so.6 +libtermcap.so.2 => /lib/libtermcap.so.2 +/lib/ld-linux.so.2 => /lib/ld-linux.so.2</pre><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +If there are any incompatibilities between Samba and specific libraries on your machine, the distribution-specific documentation should highlight those.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938567"> +</a>Keep in mind that each binary distribution carries preset values about the target platform, such as default directories and configuration option values. Again, check the documentation and the makefile included in the source directory to see which directives and variables were used when the binary was compiled. In some cases, these will not be appropriate for your situation. </p><P CLASS="para"> +A few configuration items can be reset with command-line options at runtime instead of at compile time. For example, if your binary tries to place any log, lock, or status files in the "wrong" place (for example, in <I CLASS="filename"> +/usr/local</i>), you can override this without recompiling. </p></li></ul><P CLASS="para"> +One point worth mentioning is that the Samba source requires an ANSI C compiler. If you are on a platform with a non-ANSI compiler, such as the <EM CLASS="emphasis"> +cc</em> compiler on SunOS version 4, you'll have to install an ANSI-compliant compiler such as <EM CLASS="emphasis"> +gcc </em>before you do anything else.[<A CLASS="footnote" HREF="#ch02-pgfId-939049">3</a>] If installing a compiler isn't something you want to wrestle with, you can start off with a binary package. However, for the most flexibility and compatibility on your system, we always recommend compiling from the latest source.</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch02-pgfId-939049">[3]</a> <EM CLASS="emphasis"> +gcc</em> binaries are available for almost every modern machine. See <A CLASS="systemitem.url" HREF="http://www.gnu.org/"> +http://www.gnu.org/</a> for a list of sites with <EM CLASS="emphasis"> +gcc</em> and other GNU software.</p></div></blockquote></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch02-pgfId-938574"> +2.1.2 Read the Documentation</a></h3><P CLASS="para">This sounds like an obvious thing to say, but there have probably been times where you have uncompressed a package, blindly typed <CODE CLASS="literal"> +configure</code>, <CODE CLASS="literal"> +make</code>, and <CODE CLASS="literal"> +make</code> <CODE CLASS="literal"> +install</code>, and walked away to get another cup of coffee. We'll be the first to admit that we do that, many more times than we should. It's a bad idea - especially when planning a network with Samba.</p><P CLASS="para"> +Samba 2.0 automatically configures itself prior to compilation. This reduces the likelihood of a machine-specific problem, but there may be an option mentioned in the <I CLASS="filename"> +README</i> file that you end up wishing for after Samba's been installed. With both source and binary packages you'll find a large number of documents in the <I CLASS="filename"> +docs</i> directory, in a variety of formats. The most important files to look at in the distribution are:</p><PRE CLASS="programlisting"> +WHATSNEW.txt +docs/textdocs/UNIX_INSTALL.txt</pre><P CLASS="para"> +These files tell you what features you can expect in your Samba distribution, and will highlight common installation problems that you're likely to face. Be sure to look over both of them before you start the compilation process. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch01_08.html" TITLE="1.8 And That's Not All..."> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 1.8 And That's Not All..." BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_02.html" TITLE="2.2 Configuring Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.2 Configuring Samba" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +1.8 And That's Not All...</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +2.2 Configuring Samba</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch02_02.html b/docs/htmldocs/using_samba/ch02_02.html new file mode 100644 index 0000000000..3556314b43 --- /dev/null +++ b/docs/htmldocs/using_samba/ch02_02.html @@ -0,0 +1,338 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 2] 2.2 Configuring Samba</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:29:05Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_01.html" TITLE="2.1 Downloading the Samba Distribution"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.1 Downloading the Samba Distribution" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch02_01.html" TITLE="2. Installing Samba on a Unix System"> +Chapter 2<br> +Installing Samba on a Unix System</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_03.html" TITLE="2.3 Compiling and Installing Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.3 Compiling and Installing Samba" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch02-28558"> +2.2 Configuring Samba</a></h2><P CLASS="para">The source distribution of Samba 2.0 and above doesn't initially have a makefile. Instead, one is generated through a GNU <I CLASS="filename"> +configure</i> script, which is located in the <I CLASS="filename"> +samba-2.0.x /source/</i> directory. The <I CLASS="firstterm"> +configure</i> script, which must be run as root, takes care of the machine-specific issues of building Samba. However, you still may want to decide on some global options. Global options can be set by passing options on the command-line:</p><PRE CLASS="programlisting"> +# ./configure --with-ssl</pre><P CLASS="para"> +For example, this will configure the Samba makefile with support for the Secure Sockets Layer (SSL) encryption protocol. If you would like a complete list of options, type the following:</p><PRE CLASS="programlisting"> +# ./configure --help</pre><P CLASS="para">Each of these options enable or disable various features. You typically enable a feature by specifying the <CODE CLASS="literal"> +--with-</code><CODE CLASS="replaceable"> +<I> +feature</i></code> option, which will cause the feature to be compiled and installed. Likewise, if you specify a <CODE CLASS="literal"> +--without-</code><CODE CLASS="replaceable"> +<I> +feature</i></code> option, the feature will be disabled. As of Samba 2.0.5, each of the following features is disabled by default:</p><DL CLASS="variablelist"> +<DT CLASS="term"> +<CODE CLASS="literal"> +--with-smbwrapper</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include SMB wrapper support, which allows executables on the Unix side to access SMB/CIFS filesystems as if they were regular Unix filesystems. We recommend using this option. However, at this time this book went to press, there were several incompatibilities between the <I CLASS="filename"> +smbwrapper</i> package and the GNU <I CLASS="filename"> +libc</i> version 2.1, and it would not compile on Red Hat 6.0. Look for more information on these incompatibilities on the Samba home page.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-afs</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support of the Andrew Filesystem from Carnegie Mellon University. If you're going to serve AFS files via Samba, we recommend compiling Samba once first without enabling this feature to ensure that everything runs smoothly. Once that version is working smoothly, recompile Samba with this feature enabled and compare any errors you might receive against the previous setup.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-dfs</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for DFS, a later version of AFS, used by OSF/1 (Digital Unix). Note that this is <EM CLASS="emphasis"> +not</em> the same as Microsoft DFS, which is an entirely different filesystem. Again, we recommend compiling Samba once first without this feature to ensure that everything runs smoothly, then recompile with this feature to compare any errors against the previous setup.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-krb4</code>=<CODE CLASS="replaceable"><I>base-directory</i></code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for Kerberos version 4.0, explicitly specifying the base directory of the distribution. Kerberos is a network security protocol from MIT that uses private key cryptography to provide strong security between nodes. Incidentally, Microsoft has announced that Kerberos 5.0 will be the standard authentication mechanism for Microsoft Windows 2000 (NT 5.0). However, the Kerberos 5.0 authentication mechanisms are quite different from the Kerberos 4.0 security mechanisms. If you have Kerberos version 4 on your system, the Samba team recommends that you upgrade and use the <CODE CLASS="literal"> +--with-krb5</code> option (see the next item). You can find more information on Kerberos at <a href="http://web.mit.edu/kerberos/www"><EM CLASS="emphasis">http://web.mit.edu/kerberos/www</a></em>.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-krb5</code>=<CODE CLASS="replaceable"><I>base-directory</i></code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for Kerberos version 5.0, explicitly specifying the base directory of the distribution. Microsoft has announced that Kerberos 5.0 will be the standard authentication mechanism for Microsoft Windows 2000 (NT 5.0). However, there is no guarantee that Microsoft will not extend Kerberos for their own needs in the future. Currently, Samba's Kerberos support only uses a plaintext password interface and not an encrypted one. You can find more information on Kerberos at its home page: <a href="http://web.mit.edu/kerberos/www"><EM CLASS="emphasis">http://web.mit.edu/kerberos/www</a></em>.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-automount</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for automounter, a feature often used on sites that offer NFS. </p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-smbmount</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include <EM CLASS="emphasis"> +smbmount</em> support, which is for Linux only. This feature wasn't being maintained at the time the book was written, so the Samba team made it an optional feature and provided <EM CLASS="emphasis"> +smbwrapper</em> instead. The <EM CLASS="emphasis"> +smbwrapper</em> feature works on more Unix platforms than <EM CLASS="emphasis"> +smbmount</em>, so you'll usually want to use <CODE CLASS="literal"> +--with-smbwrapper</code> instead of this option.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-pam</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for pluggable authentication modules (PAM), an authentication feature common in the Linux operating system.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-ldap</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for the Lightweight Directory Access Protocol (LDAP). A future version of LDAP will be used in the Windows 2000 (NT 5.0) operating system; this Samba support is experimental. LDAP is a flexible client-server directory protocol that can carry information such as certificates and group memberships.[<A CLASS="footnote" HREF="#ch02-pgfId-943655">4</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch02-pgfId-943655">[4]</a> By <EM CLASS="emphasis"> +directory</em>, we don't mean a directory in a file system, but instead an indexed directory (such as a phone directory). Information is stored and can be easily retrieved in a public LDAP system.</p></div></blockquote></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-nis</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for getting password-file information from NIS (network yellow pages).</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-nisplus</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for obtaining password-file information from NIS+, the successor to NIS.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-ssl</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include experimental support for the Secure Sockets Layer (SSL), which is used to provide encrypted connections from client to server. <a href="appa_01.html"><b>Appendix A, <CITE CLASS="appendix">Configuring Samba with SSL</cite></b></a>, describes setting up Samba with SSL support.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-nisplus-home</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for locating which server contains a particular user's home directory and telling the client to connect to it. Requires <CODE CLASS="literal"> +--with-nis</code> and, usually, <CODE CLASS="literal"> +--with-automounter</code>. </p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-mmap</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include experimental memory mapping code. This is not required for fast locking, which already uses mmap or System V shared memory.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-syslog</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include support for using the SYSLOG utility for logging information generated from the Samba server. There are a couple of Samba configuration options that you can use to enable SYSLOG support; <a href="ch04_01.html"><b>Chapter 4, <CITE CLASS="chapter">Disk Shares </cite></b></a>, discusses these options.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-netatalk</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include experimental support for interoperating with the (Macintosh) Netatalk file server.</p></dd><DT CLASS="term"> +<CODE CLASS="literal"> +--with-quotas</code></dt><DD CLASS="listitem"> +<P CLASS="para"> +Include disk-quota support.</p></dd></dl><P CLASS="para"> +Because each of these options is disabled by default, none of these features are essential to Samba. However, you may want to come back and build a modified version of Samba if you discover that you need one at a later time.</p><P CLASS="para"> +In addition, <A CLASS="xref" HREF="ch02_02.html#ch02-85125"> +Table 2.1</a> shows some other parameters that you can give the <I CLASS="filename"> +configure</i> script if you wish to store parts of the Samba distribution in different places, perhaps to make use of multiple disks or partitions. Note that the defaults sometimes refer to a prefix specified earlier in the table. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch02-85125"> +Table 2.1: Additional Configure Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Meaning</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--prefix</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install architecture-independent files at the base directory specified.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<I CLASS="filename"> +/usr/local/samba</i></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--eprefix</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install architecture-dependent files at the base directory specified.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<I CLASS="filename"> +/usr/local/samba</i></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--bindir</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install user executables in the directory specified.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="replaceable"> +<I> +eprefix</i></code><I CLASS="filename">/bin</i></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--sbindir</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install administrator executables in the directory specified.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="replaceable"> +<I> +eprefix</i></code><I CLASS="filename">/bin</i></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--libexecdir</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install program executables in the directory specified.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="replaceable"> +<I> +eprefix</i></code><I CLASS="filename">/libexec</i></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--datadir</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install read-only architecture independent data in the directory specified.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="replaceable"> +<I> +prefix</i></code><I CLASS="filename">/share</i></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--libdir</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install program libraries in the directory specified.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="replaceable"> +<I> +eprefix</i></code><I CLASS="filename">/lib</i></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--includedir</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install package include files in the directory specified.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="replaceable"> +<I> +prefix</i></code><I CLASS="filename">/include</i></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--infodir</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install additional information files in the directory specified.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="replaceable"> +<I> +prefix</i></code><I CLASS="filename">/info</i></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +--mandir</code>=<CODE CLASS="replaceable"><I>directory</i></code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Install manual pages in the directory specified. </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="replaceable"> +<I> +prefix</i></code><I CLASS="filename">/man</i></p></td></tr></tbody></table><P CLASS="para"> +Again, before running the <I CLASS="filename"> +configure</i> script, it is important that you are the root user on the system. Otherwise, you may get a warning such as:</p><PRE CLASS="programlisting"> +configure: warning: running as non-root will disable some tests</pre><P CLASS="para"> +You don't want any test to be disabled when the Samba makefile is being created; this leaves the potential for errors down the road when compiling or running Samba on your system.</p><P CLASS="para"> +Here is a sample execution of the <I CLASS="filename"> +configure</i> script, which creates a Samba 2.0.4 makefile for the Linux platform. Note that you must run the configure script in the <EM CLASS="emphasis"> +source</em> directory, and that several lines from the middle of the excerpt have been omitted:</p><PRE CLASS="programlisting"> +# cd samba-2.0.4b/source/ +# ./configure | tee mylog + +loading cache ./config.cache +checking for gcc... (cached) gcc +checking whether the C compiler (gcc -O) works... yes +checking whether the C compiler (gcc -O) is a cross-compiler... no +checking whether we are using GNU C... (cached) yes +checking whether gcc accepts -g... (cached) yes +checking for a BSD compatible install... (cached) /usr/bin/install -c + +<EM CLASS="emphasis">...(content omitted)...</em> + +checking configure summary +configure OK +creating ./config.status +creating include/stamp-h +creating Makefile +creating include/config.h</pre><P CLASS="para"> +In general, any message from <I CLASS="filename"> +configure</i> that doesn't begin with the words <CODE CLASS="literal"> +checking</code> or <CODE CLASS="literal"> +creating</code> is an error; it often helps to redirect the output of the configure script to a file so you can quickly search for errors, as we did with the <CODE CLASS="literal"> +tee</code> command above. If there was an error during configuration, more detailed information about it can be found in the <I CLASS="filename"> +config.log</i> file, which is written to the local directory by the <I CLASS="filename"> +configure</i> script.</p><P CLASS="para"> +If the configuration works, you'll see a <CODE CLASS="literal"> +checking</code> <CODE CLASS="literal"> +configure</code> <CODE CLASS="literal"> +summary</code> message followed by a <CODE CLASS="literal"> +configure</code> <CODE CLASS="literal"> +OK</code> message and four or five file creation messages. So far, so good.... Next step: compiling. </p></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_01.html" TITLE="2.1 Downloading the Samba Distribution"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.1 Downloading the Samba Distribution" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_03.html" TITLE="2.3 Compiling and Installing Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.3 Compiling and Installing Samba" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +2.1 Downloading the Samba Distribution</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +2.3 Compiling and Installing Samba</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch02_03.html b/docs/htmldocs/using_samba/ch02_03.html new file mode 100644 index 0000000000..c4313736d8 --- /dev/null +++ b/docs/htmldocs/using_samba/ch02_03.html @@ -0,0 +1,235 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 2] 2.3 Compiling and Installing Samba</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:29:09Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_02.html" TITLE="2.2 Configuring Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.2 Configuring Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch02_01.html" TITLE="2. Installing Samba on a Unix System"> +Chapter 2<br> +Installing Samba on a Unix System</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_04.html" TITLE="2.4 A Basic Samba Configuration File"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.4 A Basic Samba Configuration File" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch02-13217"> +2.3 Compiling and Installing Samba</a></h2><P CLASS="para">At this point you should be ready to build the Samba executables. Compiling is also easy: in the <I CLASS="filename"> +source</i> directory, type <CODE CLASS="literal"> +make</code> on the command line. The <I CLASS="filename"> +make</i> utility will produce a stream of explanatory and success messages, beginning with:</p><PRE CLASS="programlisting"> +Using FLAGS = -O -Iinclude ...</pre><P CLASS="para"> +This build includes compiles for both <EM CLASS="emphasis"> +smbd</em> and <EM CLASS="emphasis"> +nmbd</em>, and ends in a linking command for <I CLASS="filename"> +bin/make_ printerdef</i>. For example, here is a sample make of Samba version 2.0.4 on a Linux server:</p><PRE CLASS="programlisting"><CODE CLASS="literal"># </code>make +Using FLAGS = -O -Iinclude -I./include -I./ubiqx -I./smbwrapper -DSMBLOGFILE="/usr/local/samba/var/log.smb" -DNMBLOGFILE="/usr/local/samba/var/log.nmb" -DCONFIGFILE="/usr/local/samba/lib/smb.conf" -DLMHOSTSFILE="/usr/local/samba/lib/lmhosts" -DSWATDIR="/usr/local/samba/swat" -DSBINDIR="/usr/local/samba/bin" -DLOCKDIR="/usr/local/samba/var/locks" -DSMBRUN="/usr/local/samba/bin/smbrun" -DCODEPAGEDIR="/usr/local/samba/lib/codepages" -DDRIVERFILE="/usr/local/samba/lib/printers.def" -DBINDIR="/usr/local/samba/bin" -DHAVE_INCLUDES_H -DPASSWD_PROGRAM="/bin/passwd" -DSMB_PASSWD_FILE="/usr/local/samba/private/smbpasswd" +Using FLAGS32 = -O -Iinclude -I./include -I./ubiqx -I./smbwrapper -DSMBLOGFILE="/usr/local/samba/var/log.smb" -DNMBLOGFILE="/usr/local/samba/var/log.nmb" -DCONFIGFILE="/usr/local/samba/lib/smb.conf" -DLMHOSTSFILE="/usr/local/samba/lib/lmhosts" -DSWATDIR="/usr/local/samba/swat" -DSBINDIR="/usr/local/samba/bin" -DLOCKDIR="/usr/local/samba/var/locks" -DSMBRUN="/usr/local/samba/bin/smbrun" -DCODEPAGEDIR="/usr/local/samba/lib/codepages" -DDRIVERFILE="/usr/local/samba/lib/printers.def" -DBINDIR="/usr/local/samba/bin" -DHAVE_INCLUDES_H -DPASSWD_PROGRAM="/bin/passwd" -DSMB_PASSWD_FILE="/usr/local/samba/private/smbpasswd" +Using LIBS = -lreadline -ldl -lcrypt -lpam +Compiling smbd/server.c +Compiling smbd/files.c +Compiling smbd/chgpasswd.c + +<EM CLASS="emphasis">...(content omitted)...</em> + +Compiling rpcclient/cmd_samr.c +Compiling rpcclient/cmd_reg.c +Compiling rpcclient/cmd_srvsvc.c +Compiling rpcclient/cmd_netlogon.c +Linking bin/rpcclient +Compiling utils/smbpasswd.c +Linking bin/smbpasswd +Compiling utils/make_smbcodepage.c +Linking bin/make_smbcodepage +Compiling utils/nmblookup.c +Linking bin/nmblookup +Compiling utils/make_printerdef.c +Linking bin/make_printerdef</pre><P CLASS="para"> +If you encounter problems when compiling, check the Samba documentation to see if it is easily fixable. Another possibility is to search or post to the Samba mailing lists, which are given at the end of <a href="ch09_03.html">Chapter 9</a>, and on the Samba home page. Most compilation issues are system specific and almost always easy to overcome.</p><P CLASS="para"> +Now that the files have been compiled, you can install them into the directories you identified with the command:</p><PRE CLASS="programlisting"># <CODE CLASS="userinput"><B>make install</b></code></pre><P CLASS="para"> +If you happen to be upgrading, your old Samba files will be saved with the extension <EM CLASS="emphasis"> + .old</em>, and you can go back to that previous version with the command <CODE CLASS="literal"> +make</code> <CODE CLASS="literal"> +revert</code>. After doing a <CODE CLASS="literal"> +make</code> <CODE CLASS="literal"> +install</code>, you should copy the <EM CLASS="emphasis"> +.old </em>files (if they exist) to a new location or name. Otherwise, the next time you install Samba, the original <EM CLASS="emphasis"> +.old</em> will be overwritten without warning and you could lose your earlier version. If you configured Samba to use the default locations for files, the new files will be installed in the directories listed in <A CLASS="xref" HREF="ch02_03.html#ch02-pgfId-939627"> +Table 2.2</a>. Remember that you need to perform the installation from an account that has write privileges on these target directories; this is typically the root account. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch02-pgfId-939627"> +Table 2.2: Samba Installation Directories </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Directory</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Description</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +/usr/local/samba</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Main tree</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +/usr/local/samba/bin</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Binaries</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +/usr/local/samba/lib</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +smb.conf</em>, <EM CLASS="emphasis"> +lmhosts</em>, configuration files, etc.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +/usr/local/samba/man</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba documentation</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +/usr/local/samba/private</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba encrypted password file</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +/usr/local/samba/swat</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +SWAT files</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +/usr/local/samba/var</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba log files, lock files, browse list info, shared memory files, process ID files</p></td></tr></tbody></table><P CLASS="para"> +Throughout the remainder of the book, we occasionally refer to the location of the main tree as <CODE CLASS="replaceable"> +<I> +samba_dir</i></code>. In most configurations, this is the base directory of the installed Samba package: <I CLASS="filename"> +/usr/local/samba</i>.</p><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> Watch out if you've made <I CLASS="filename"> +/usr</i> a read-only partition. You will want to put the logs, locks, and password files somewhere else.</p></blockquote><P CLASS="para"> +Here is the installation that we performed on our machine. You can see that we used <I CLASS="filename"> +/usr/local/samba</i> as the base directory for the distribution (e.g., <CODE CLASS="replaceable"> +<I> +samba_dir</i></code>):</p><PRE CLASS="programlisting"> +# <CODE CLASS="userinput"><B>make install</b></code> +Using FLAGS = -O -Iinclude -I./include -I./ubiqx -I./smbwrapper -DSMBLOGFILE="/usr/local/samba/var/log.smb" -DNMBLOGFILE="/usr/local/samba/var/log.nmb" -DCONFIGFILE="/usr/local/samba/lib/smb.conf" - + +<I CLASS="lineannotation">...(content omitted)...</i> + +The binaries are installed. You may restore the old binaries +(if there were any) using the command "make revert". You may +uninstall the binaries using the command "make uninstallbin" +or "make uninstall" to uninstall binaries, man pages and shell +scripts. + +<I CLASS="lineannotation">...(content omitted)...</i> + +============================================================ +The SWAT files have been installed. Remember to read the +README for information on enabling and using SWAT. +============================================================</pre><P CLASS="para"> +If the last message is about SWAT, you've successfully installed all the files. Congratulations! You now have Samba on your system!</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch02-pgfId-943188"> +2.3.1 Final Installation Steps</a></h3><P CLASS="para">There are a couple of final steps to perform. Specifically, add the Samba Web Administration Tool (SWAT) to the <I CLASS="filename"> +/etc/services</i> and <I CLASS="filename"> +/etc/inetd.conf</i> configuration files. SWAT runs as a daemon under <EM CLASS="emphasis"> +inetd</em> and provides a forms-based editor in your web browser for creating and modifying SMB configuration files.</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-943198"> +</a>To add SWAT, add the following line to the end of the <I CLASS="filename"> +/etc/services</i> file:</p></li></ol><PRE CLASS="programlisting"> +swat 901/tcp</pre><OL CLASS="orderedlist" START="2"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-938792"> +</a>Add these lines to <I CLASS="filename"> +/etc/inetd.conf.</i> (Check your <I CLASS="filename"> +inetd.conf</i> manual page to see the exact format of the<I CLASS="filename"> + inetd.conf</i> file if it differs from the following example.) Don't forget to change the path to the SWAT binary if you installed it in a different location from the default <I CLASS="filename"> +/usr/local/samba</i>.</p></li></ol><PRE CLASS="programlisting"> +swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat</pre><P CLASS="para"> +And that's pretty much it for the installation. Before you can start up Samba, however, you need to create a configuration file for it. </p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_02.html" TITLE="2.2 Configuring Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.2 Configuring Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_04.html" TITLE="2.4 A Basic Samba Configuration File"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.4 A Basic Samba Configuration File" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +2.2 Configuring Samba</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +2.4 A Basic Samba Configuration File</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch02_04.html b/docs/htmldocs/using_samba/ch02_04.html new file mode 100644 index 0000000000..608a1e2c40 --- /dev/null +++ b/docs/htmldocs/using_samba/ch02_04.html @@ -0,0 +1,186 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 2] 2.4 A Basic Samba Configuration File</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:29:10Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_03.html" TITLE="2.3 Compiling and Installing Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.3 Compiling and Installing Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch02_01.html" TITLE="2. Installing Samba on a Unix System"> +Chapter 2<br> +Installing Samba on a Unix System</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_05.html" TITLE="2.5 Starting the Samba Daemons"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.5 Starting the Samba Daemons" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch02-13464"> +2.4 A Basic Samba Configuration File</a></h2><P CLASS="para"> +The key to configuring Samba is its lone configuration file: <I CLASS="filename"> +smb.conf</i>. This configuration file can be very simple or extremely complex, and the rest of this book is devoted to helping you get deeply personal with this file. For now, however, we'll show you how to set up a single file service, which will allow you to fire up the Samba daemons and see that everything is running as it should be. In later chapters, you will see how to configure Samba for more complicated and interesting tasks. </p><P CLASS="para"> +The installation process does not automatically create an <I CLASS="filename"> +smb.conf</i> configuration file, although several example files are included in the Samba distribution. To test the server software, though, we'll use the following file. It should be named <I CLASS="filename"> +smb.conf</i> and placed in the <EM CLASS="emphasis"> +/usr/local/samba/lib</em> directory.[<A CLASS="footnote" HREF="#ch02-pgfId-943223">5</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch02-pgfId-943223">[5]</a> If you did not compile Samba, but instead downloaded a binary, check with the documentation for the package to find out where it expects the <I CLASS="filename"> +smb.conf</i> file. If Samba came preinstalled with your Unix system, there is probably already an <I CLASS="filename"> +smb.conf</i> file somewhere on your system.</p></div></blockquote><PRE CLASS="programlisting"> +[global] + workgroup = SIMPLE +[test] + comment = For testing only, please + path = /export/samba/test + read only = no + guest ok = yes</pre><P CLASS="para"> +This brief configuration file tells the Samba server to offer the directory <I CLASS="filename"> +/export/samba/test</i> on the server as an SMB/CIFS share called <CODE CLASS="literal">test</code>. The server also becomes part of the named workgroup SIMPLE, which each of the clients must also be a part of. (Use your own workgroup here if you already know what it is.) We'll use the <CODE CLASS="literal"> +[test]</code> share in the next chapter to set up the Windows clients. For now, you can complete the setup by performing the following commands as root on your Unix server:</p><PRE CLASS="programlisting"># <CODE CLASS="userinput"><B>mkdir /export/samba/test</b></code> +# <CODE CLASS="userinput"><B>chmod 777 /export/samba/test</b></code></pre><P CLASS="para"> +We should point out that in terms of system security, this is the worst setup possible. For the moment, however, we only wish to test Samba, so we'll leave security out of the picture. In addition, there are some encrypted password issues that we will encounter with Windows clients later on, so this setup will afford us the least amount of headaches.</p><P CLASS="para"> +If you are using Windows 98 or Windows NT Service Pack 3 or above, you must add the following entry to the <CODE CLASS="literal"> +[global]</code> section of the Samba configuration file: <CODE CLASS="literal"> +encrypt passwords = yes</code>. In addition, you must use the <I CLASS="filename"> +smbpassword</i> program (typically located in <I CLASS="filename"> +/usr/local/samba/bin/</i>) to reenter the username/password combinations of those users on the Unix server who should be able to access shares into Samba's encrypted client database. For example, if you wanted to allow Unix user <CODE CLASS="literal"> +steve</code> to access shares from an SMB client, you could type: <CODE CLASS="literal"> +smbpassword -a steve</code>. The first time a user is added, the program will output an error saying that the encrypted password database does not exist. Don't worry, it will then create the database for you. Make sure that the username/password combinations that you add to the encrypted database match the usernames and passwords that you intend to use on the Windows client side.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch02-pgfId-942383"> +2.4.1 Using SWAT</a></h3><P CLASS="para">With Samba 2.0, creating a configuration file is even easier than writing a configuration file by hand. You can use your browser to connect to <a href="http://localhost:901"><EM CLASS="emphasis">http://localhost:901</em></a>, and log on as the root account, as shown in <A CLASS="xref" HREF="ch02_04.html#ch02-60915"> +Figure 2.1</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch02-60915"> +Figure 2.1: SWAT login</a></h4><IMG CLASS="graphic" SRC="figs/sam.0201.gif" ALT="Figure 2.1"><P CLASS="para"> +After logging in, press the GLOBALS button at the top of the screen. You should see the Global Variables page shown in <A CLASS="xref" HREF="ch02_04.html#ch02-49138"> +Figure 2.2</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch02-49138"> +Figure 2.2: SWAT Global Variables page</a></h4><IMG CLASS="graphic" SRC="figs/sam.0202.gif" ALT="Figure 2.2"><P CLASS="para"> +In this example, set the workgroup field to SIMPLE and the security field to USER. The only other option you need to change from the menu is one determining which system on the LAN resolves NetBIOS addresses; this system is called the <EM CLASS="emphasis"> +WINS server</em>. At the very bottom of the page, set the wins support field to Yes, unless you already have a WINS server on your network. If you do, put the WINS server's IP address in the wins server field instead. Then return to the top and press the Commit Changes button to write the changes out to the <EM CLASS="emphasis"> +smb.conf</em> file. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch02-29175"> +Figure 2.3: SWAT Share Creation screen</a></h4><IMG CLASS="graphic" SRC="figs/sam.0203.gif" ALT="Figure 2.3"><P CLASS="para"> +Next, press the Shares icon. You should see a page similar to <A CLASS="xref" HREF="ch02_04.html#ch02-29175"> +Figure 2.3</a>. Choose Test in the field beside the Choose Share button. You will see the Share Parameters screen, as shown in <A CLASS="xref" HREF="ch02_04.html#ch02-37186"> +Figure 2.4</a>. We added a comment to remind us that this is a test share in the <I CLASS="filename"> +smb.conf</i> file. SWAT has copies of all that information here.</p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch02-37186"> +Figure 2.4: SWAT Share Parameters screen</a></h4><IMG CLASS="graphic" SRC="figs/sam.0204.gif" ALT="Figure 2.4"><P CLASS="para"> +If you press the View button, SWAT shows you the following <I CLASS="filename"> +smb.conf</i> file:</p><PRE CLASS="programlisting"> +# Samba config file created using SWAT +# from localhost (127.0.0.1) +# Date: 1998/11/27 15:42:40 + +# Global parameters + workgroup = SIMPLE +[test] + comment = For testing only, please + path = /export/samba/test + read only = no + guest ok = yes</pre><P CLASS="para"> +Once this configuration file is completed, you can skip the next step because the output of SWAT is guaranteed to be syntactically correct. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch02-pgfId-938862"> +2.4.2 Testing the Configuration File</a></h3><P CLASS="para">If you didn't use SWAT to create your configuration file, you should probably test it to ensure that it is syntactically correct. It may seem silly to run a test program against an eight-line configuration file, but it's good practice for the real ones that we'll be writing later on.</p><P CLASS="para"> +The test parser, <I CLASS="filename"> +testparm</i>, examines an <I CLASS="filename"> +smb.conf</i> file for syntax errors and reports any it finds along with a list of the services enabled on your machine. An example follows; you'll notice that in our haste to get the server running we mistyped <CODE CLASS="literal"> +workgroup</code> as <CODE CLASS="literal"> +workgrp</code> (the output is often lengthy, so we recommend capturing the last parts with the <CODE CLASS="literal"> +tee</code> command):</p><PRE CLASS="programlisting"> +Load smb config files from smb.conf +Unknown parameter encountered: "workgrp" +Ignoring unknown parameter "workgrp" +Processing section "[test]" +Loaded services file OK. +Press enter to see a dump of your service definitions +# Global parameters +[global] + workgroup = WORKGROUP + netbios name = + netbios aliases = + server string = Samba 2.0.5a + interfaces = + bind interfaces only = No + +<I CLASS="lineannotation">...(content omitted)...</i> + +[test] + comment = For testing only, please + path = /export/samba/test + read only = No + guest ok = Yes</pre><P CLASS="para"> +The interesting parts are at the top and bottom. The top of the output will flag any syntax errors that you may have made, and the bottom lists the services that the server thinks it should offer. A word of advice: make sure that you and the server have the same expectations. </p><P CLASS="para"> +If everything looks good, then you are ready to fire up the server daemons! </p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_03.html" TITLE="2.3 Compiling and Installing Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.3 Compiling and Installing Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_05.html" TITLE="2.5 Starting the Samba Daemons"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.5 Starting the Samba Daemons" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +2.3 Compiling and Installing Samba</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +2.5 Starting the Samba Daemons</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch02_05.html b/docs/htmldocs/using_samba/ch02_05.html new file mode 100644 index 0000000000..95d506e5e9 --- /dev/null +++ b/docs/htmldocs/using_samba/ch02_05.html @@ -0,0 +1,195 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 2] 2.5 Starting the Samba Daemons</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:29:11Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_04.html" TITLE="2.4 A Basic Samba Configuration File"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.4 A Basic Samba Configuration File" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch02_01.html" TITLE="2. Installing Samba on a Unix System"> +Chapter 2<br> +Installing Samba on a Unix System</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_06.html" TITLE="2.6 Testing the Samba Daemons"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.6 Testing the Samba Daemons" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch02-29069"> +2.5 Starting the Samba Daemons</a></h2><P CLASS="para"> +There are two Samba processes, <EM CLASS="emphasis"> +smbd</em> and <EM CLASS="emphasis"> +nmbd</em>, that need to be running for Samba to work correctly. There are three ways to start:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-943268"> +</a>By hand</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-943266"> +</a>As stand-alone daemons</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch02-pgfId-947794"> +</a>From <EM CLASS="emphasis"> +inetd</em></p></li></ul><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch02-pgfId-938883"> +2.5.1 Starting the Daemons by Hand</a></h3><P CLASS="para"> +If you're in a hurry, you can start the Samba daemons by hand. As root, simply enter the following commands:</p><PRE CLASS="programlisting"> +#<CODE CLASS="userinput"> <B>/usr/local/samba/bin/smbd -D</b></code> +#<CODE CLASS="userinput"> <B>/usr/local/samba/bin/nmbd -D</b></code></pre><P CLASS="para"> +At this point, Samba will be running on your system and will be ready to accept connections.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch02-pgfId-943275"> +2.5.2 Stand-alone Daemons</a></h3><P CLASS="para"> +To run the Samba processes as stand-alone daemons, you need to add the commands listed in the previous section to your standard Unix startup scripts. This varies depending on whether you have a BSD-style Unix system or a System V Unix.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch02-pgfId-947593"> +2.5.2.1 BSD Unix</a></h4><P CLASS="para"> +WIth a BSD-style Unix, you need to append the following code to the <I CLASS="filename"> +rc.local </i>file, which is typically found in the <I CLASS="filename"> +/etc</i> or <I CLASS="filename"> +/etc/rc.d</i> directories:</p><PRE CLASS="programlisting"> +if [ -x /usr/local/samba/bin/smbd]; then + echo "Starting smbd..." + /usr/local/samba/bin/smbd -D + echo "Starting nmbd..." + /usr/local/samba/bin/nmbd -D +fi</pre><P CLASS="para"> +This code is very simple; it checks to see if the <I CLASS="filename"> +smbd</i> file has execute permissions on it, and if it does, it starts up each of the Samba daemons on system boot.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch02-pgfId-943333"> +2.5.2.2 System V Unix</a></h4><P CLASS="para"> +With System V, things can get a little more complex. System V typically uses scripts to start and stop daemons on the system. Hence, you need to instruct Samba how to operate when it starts and when it stops. You can modify the contents of the <I CLASS="filename"> +/etc/rc.local</i> directory and add something similar to the following program entitled <I CLASS="filename"> +smb</i>:</p><PRE CLASS="programlisting"> +#!/bin/sh + +# Contains the "killproc" function on Red Hat Linux +./etc/rc.d/init.d/functions + +PATH="/usr/local/samba/bin:$PATH" + +case $1 in + 'start') + echo "Starting smbd..." + smbd -D + echo "Starting nmbd..." + nmbd -D + ;; + 'stop') + echo "Stopping smbd and nmbd..." + killproc smbd + killproc nmbd + rm -f /usr/local/samba/var/locks/smbd.pid + rm -f /usr/local/samba/var/locks/nmbd.pid + ;; + *) + echo "usage: smb {start|stop}" + ;; +esac</pre><P CLASS="para"> +With this script, you can start and stop the SMB service with the following commands:</p><PRE CLASS="programlisting"> +# /etc/rc.local/smb start +Starting smbd... +Starting nmbd... +# /etc/rc.local/smb stop +Stopping smbd and nmbd...</pre></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch02-pgfId-943302"> +2.5.3 Starting From Inetd</a></h3><P CLASS="para"> +The <EM CLASS="emphasis"> +inetd</em> daemon is a Unix system's Internet "super daemon." It listens on TCP ports defined in <I CLASS="filename"> +/etc/services</i> and executes the appropriate program for each port, which is defined in <I CLASS="filename"> +/etc/inetd.conf</i>. The advantage of this scheme is that you can have a large number of daemons ready to answer queries, but they don't all have to be running. Instead, the <EM CLASS="emphasis"> +inetd</em> daemon listens in places of all the others. The penalty is a small overhead cost of creating a new daemon process, and the fact that you need to edit two files rather than one to set things up. This is handy if you have only one or two users or your machine has too many daemons already. It's also easier to perform an upgrade without disturbing an existing connection.</p><P CLASS="para"> +If you wish to start from <I CLASS="filename"> +inetd</i>, first open <I CLASS="filename"> +/etc/services</i> in your text editor. If you don't already have them defined, add the following two lines:</p><PRE CLASS="programlisting"> +netbios-ssn 139/tcp +netbios-ns 137/udp</pre><P CLASS="para"> +Next, edit <I CLASS="filename"> +/etc/inetd.conf</i>. Look for the following two lines and add them if they don't exist. If you already have <CODE CLASS="literal"> +smbd</code> and <CODE CLASS="literal"> +nmbd</code> lines in the file, edit them to point at the new <EM CLASS="emphasis"> +smbd</em> and <EM CLASS="emphasis"> +nmbd</em> you've installed. Your brand of Unix may use a slightly different syntax in this file; use the existing entries and the <I CLASS="filename"> +inetd.conf </i><KBD CLASS="command"></kbd>manual page <KBD CLASS="command"></kbd>as a guide:</p><PRE CLASS="programlisting"> +netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd +netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd</pre><P CLASS="para"> +Finally, kill any <EM CLASS="emphasis"> +smbd</em> or <EM CLASS="emphasis"> +nmbd</em> processes and send the <EM CLASS="emphasis"> +inetd</em> process a hangup (HUP) signal. (The <EM CLASS="emphasis"> +inetd</em> daemon rereads its configuration file on a HUP signal.) To do this, use the <CODE CLASS="literal"> +ps</code> command to find its process ID, then signal it with the following command:</p><PRE CLASS="programlisting"> +# <CODE CLASS="userinput"><B>kill -HUP process_id</b></code></pre><P CLASS="para"> +After that, Samba should be up and running. </p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_04.html" TITLE="2.4 A Basic Samba Configuration File"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.4 A Basic Samba Configuration File" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_06.html" TITLE="2.6 Testing the Samba Daemons"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 2.6 Testing the Samba Daemons" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +2.4 A Basic Samba Configuration File</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +2.6 Testing the Samba Daemons</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch02_06.html b/docs/htmldocs/using_samba/ch02_06.html new file mode 100644 index 0000000000..46adba5d3b --- /dev/null +++ b/docs/htmldocs/using_samba/ch02_06.html @@ -0,0 +1,108 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 2] 2.6 Testing the Samba Daemons</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:29:12Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_05.html" TITLE="2.5 Starting the Samba Daemons"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.5 Starting the Samba Daemons" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch02_01.html" TITLE="2. Installing Samba on a Unix System"> +Chapter 2<br> +Installing Samba on a Unix System</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch03_01.html" TITLE="3. Configuring Windows Clients"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 3. Configuring Windows Clients" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch02-67898"> +2.6 Testing the Samba Daemons</a></h2><P CLASS="para">It's hard to believe, but we're nearly done with the Samba server setup. All that's left to do is to make sure that everything is working as we think it should. A convenient way to do this is to use the <I CLASS="filename"> smbclient</i> program to examine what the server is offering to the network. If everything is set up properly, you should be able to do the following:</p><PRE CLASS="programlisting"> +<CODE CLASS="userinput"><B># smbclient -U% -L localhost</b></code> + +Added interface ip=192.168.220.100 bcast=192.168.220.255 nmask=255.255.255.0 +Domain=[SIMPLE] OS=[Unix] Server=[Samba 2.0.5a] + + Sharename Type Comment + --------- ---- ------- + test Disk For testing only, please + IPC$ IPC IPC Service (Samba 2.0.5a) + + Server Comment + --------- ------- + HYDRA Samba 2.0.5a + + Workgroup Master + --------- ------- + SIMPLE HYDRA</pre><P CLASS="para"> +If there is a problem, don't panic! Try to start the daemons manually, and check the system output or the debug files at <I CLASS="filename"> +/usr/local/samba/var/log.smb</i> to see if you can determine what happened. If you think it may be a more serious problem, skip to <a href="ch07_01.html"><b>Chapter 7, <CITE CLASS="chapter"> Printing and Name Resolution</cite></b></a>, for help on troubleshooting the Samba daemons. </p><P CLASS="para"> +If it worked, congratulations! You now have successfully set up the Samba server with a disk share. It's a simple one, but we can use it to set up and test the Windows 95 and NT clients in the next chapter. Then we will start making it more interesting by adding services such as home directories, printers, and security, and seeing how to integrate the server into a larger Windows domain. </p></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_05.html" TITLE="2.5 Starting the Samba Daemons"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.5 Starting the Samba Daemons" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch03_01.html" TITLE="3. Configuring Windows Clients"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 3. Configuring Windows Clients" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +2.5 Starting the Samba Daemons</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +3. Configuring Windows Clients</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch03_01.html b/docs/htmldocs/using_samba/ch03_01.html new file mode 100644 index 0000000000..915befad0f --- /dev/null +++ b/docs/htmldocs/using_samba/ch03_01.html @@ -0,0 +1,277 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 3] Configuring Windows Clients</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:31:14Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_06.html" TITLE="2.6 Testing the Samba Daemons"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.6 Testing the Samba Daemons" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Chapter 3</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_02.html" TITLE="3.2 Setting Up Windows NT 4.0 Computers"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 3.2 Setting Up Windows NT 4.0 Computers" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="chapter"> +<A CLASS="title" NAME="ch03-91548"> +3. Configuring Windows Clients</a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#ch03-55770" TITLE="3.1 Setting Up Windows 95/98 Computers"> +Setting Up Windows 95/98 Computers</a><br> +<A CLASS="sect1" HREF="ch03_02.html" TITLE="3.2 Setting Up Windows NT 4.0 Computers"> +Setting Up Windows NT 4.0 Computers</a><br> +<A CLASS="sect1" HREF="ch03_03.html" TITLE="3.3 An Introduction to SMB/CIFS"> +An Introduction to SMB/CIFS</a></p><P> +</p></div><P CLASS="para">You'll be glad to know that configuring Windows to use your new Samba server is quite simple. SMB is Microsoft's native language for resource sharing on a local area network, so much of the installation and setup on the Windows client side has been taken care of already. The primary issues that we will cover in this chapter involve communication and coordination between Windows and Unix, two completely different operating systems.</p><P CLASS="para"> +Samba uses TCP/IP to talk to its clients on the network. If you aren't already using TCP/IP on your Windows computers, this chapter will show you how to install it. Then you'll need to configure your Windows machines to operate on a TCP/IP network. Once these two requirements have been taken care of, we can show how to access a shared disk on the Samba server.</p><P CLASS="para"> +This chapter is divided into three sections. The first section covers setting up Windows 95/98 computers while the second covers Windows NT 4.0 machines. The final section provides some prerequisite information on how SMB connections are made from Windows clients and servers, which is useful as we move into the later chapters of the book.</p><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="s1"></a> +<A CLASS="title" NAME="ch03-55770"> +3.1 Setting Up Windows 95/98 Computers</a></h2><P CLASS="para">Unfortunately, Windows 95/98 wasn't designed for a PC to have more than one user; that concept is more inherent to a Unix operating system or Windows NT. However, Windows 95/98 does have <EM CLASS="emphasis"> +limited</em> support for multiple users: if you tell it, the operating system will keep a separate profile (desktop layout) and password file for each user. This is a far cry from true multiuser security. In other words, Windows 95/98 won't try to keep one user from destroying the work of another on the local hard drive like Unix, but profiles are a place to start.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-pgfId-941931"> +3.1.1 Accounts and Passwords</a></h3><P CLASS="para">The first thing we need to do is to tell Windows to keep user profiles separate, and to collect usernames and passwords to authenticate anyone trying to access a Samba share. We do so via the Password settings in the Control Panel. If you are not familiar with the Windows Control Panel, you can access it by choosing the Settings menu item from the pop-up menu of the Start button in the lower-left corner of the screen. Alternatively, you'll find it as a folder under the icon in the upper-left corner that represents your computer and is typically labeled My Computer.</p><P CLASS="para"> +After selecting the Passwords icon in the Control Panel, click on the User Profiles tab on the far right. You should see the dialog box shown in <A CLASS="xref" HREF="ch03_01.html#ch03-84319"> +Figure 3.1</a>. Then click the lower of the two radio buttons that starts "Users can customize their preferences...." This causes Windows to store a separate profile for each user, and saves the username and password you provide, which it will use later when it connects to an SMB/CIFS server. Finally, check <EM CLASS="emphasis"> +both</em> the options under the User Profile Settings border, as shown in the figure. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-84319"> +Figure 3.1: The Passwords Properties panel</a></h4><IMG CLASS="graphic" SRC="figs/sam.0301.gif" ALT="Figure 3.1"><P CLASS="para"> +The next step is to select the Change Passwords tab on the left side of the dialog box. In order for Samba to allow you access to its shares, the username and password you give to Windows must match the account and password on the Samba server. If you don't have this tab in your dialog box, don't worry; it's probably because you haven't given yourself a Windows username and password yet. Simply click the OK button at the bottom and respond Yes when Windows asks to reboot. Then, skip down to the section entitled <A CLASS="xref" HREF="ch03_01.html#ch03-57581"> +Section 3.1.1.2, Logging in for the first time</a>.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-941948"> +3.1.1.1 Changing the Windows password</a></h4><P CLASS="para">After selecting the Change Passwords tab, the dialog box in <A CLASS="xref" HREF="ch03_01.html#ch03-26778"> +Figure 3.2</a> will appear.</p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-26778"> +Figure 3.2: The Change Passwords tab</a></h4><IMG CLASS="graphic" SRC="figs/sam.0302.gif" ALT="Figure 3.2"><P CLASS="para"> +Select the Change Windows Password button. The Change Windows Password dialog box should appear, as shown in <A CLASS="xref" HREF="ch03_01.html#ch03-97002"> +Figure 3.3</a>. From here, you can change your password to match the password of the account on the Samba server through which you intend to log in. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-97002"> +Figure 3.3: The Change Windows Password dialog box</a></h4><IMG CLASS="graphic" SRC="figs/sam.0303.gif" ALT="Figure 3.3"></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-57581"> +3.1.1.2 Logging in for the first time</a></h4><P CLASS="para">If you didn't have a Change Passwords tab in the Passwords Properties window, then after Windows has finished rebooting, it will ask you to log in with a username and a password. Give yourself the same username and password that you have on the Samba server. After confirming your new username and password, or if you already have one, Windows should ask you if you want to have a profile, using the dialog shown in <A CLASS="xref" HREF="ch03_01.html#ch03-48947"> +Figure 3.4</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-48947"> +Figure 3.4: Windows Networking profiles</a></h4><IMG CLASS="graphic" SRC="figs/sam.0304.gif" ALT="Figure 3.4"><P CLASS="para"> +Answer Yes, upon which Windows will create a separate profile and password file for you and save a copy of your password in the file. Now when you connect to Samba, Windows will send its password, which will be used to authenticate you for each share. We won't worry about profiles for the moment; we'll cover them in <a href="ch06_01.html"><b>Chapter 6, <CITE CLASS="chapter">Users, Security, and Domains</cite></b></a>. We should point out, however, that there is a small security risk: someone can steal the password file and decrypt the passwords because it's weakly encrypted. Unfortunately, there isn't a solution to this with Windows 95/98. In Windows 2000 (NT 5.0), the password encryption should be replaced with a much better algorithm.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-36280"> +3.1.2 Setting Up the Network</a></h3><P CLASS="para">The next thing we need to do is make sure we have the TCP/IP networking protocol set up correctly. To do this, double-click on the Network icon in the Control Panel. You should see the network configuration dialog box, as shown in <A CLASS="xref" HREF="ch03_01.html#ch03-15320"> +Figure 3.5</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-15320"> +Figure 3.5: The Windows 95/98 Network panel</a></h4><IMG CLASS="graphic" SRC="figs/sam.0305.gif" ALT="Figure 3.5"><P CLASS="para"> +Microsoft networking works by binding specific protocols, such as IPX or TCP/IP, to a specific hardware device, such as an Ethernet card or a dialup connection. By routing a protocol through a hardware device, the machine can act as a client or server for a particular type of network. For Samba, we are interested in binding the TCP/IP protocol through a networking device, making the machine a client for Microsoft networks. Thus, when the dialog box appears, you should see at least the Client for Microsoft Networks component installed on the machine, and hopefully a networking device (preferably an Ethernet card) bound to the TCP/IP protocol. If there is only one networking hardware device, you'll see the TCP/IP protocol listed below that device. If it appears similar to <A CLASS="xref" HREF="ch03_01.html#ch03-15320"> +Figure 3.5</a>, the protocol is bound to the device.</p><P CLASS="para"> +You may also see "File and printer sharing for Microsoft Networks," which is useful. In addition, you might see NetBEUI or Novell Networking, which are standard with Windows installations but undesirable when TCP/IP is running. Remove NetBEUI if you possibly can - it's unnecessary and makes debugging Windows browsing difficult. If you don't have any Novell servers on your network, you can remove Novell (IPX/SPX) as well.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942014"> +3.1.2.1 Adding TCP/IP</a></h4><P CLASS="para">If you don't see TCP/IP listed at all, you'll need to install the protocol. If you already have TCP/IP, skip this section, and continue with the section <A CLASS="xref" HREF="ch03_01.html#ch03-48802"> +Section 3.1.3, Setting Your Name and Workgroup</a>, later in this chapter.</p><P CLASS="para"> +Installing TCP/IP isn't difficult since Microsoft distributes its own version of TCP/IP for free on their installation CD-ROM. You can add the protocol by clicking on the Add button below the component window. Indicate that you wish to add a specific protocol by selecting Protocol and clicking Add... on the following dialog box, which should look similar to <A CLASS="xref" HREF="ch03_01.html#ch03-24245"> +Figure 3.6</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-24245"> +Figure 3.6: Selecting a protocol to install</a></h4><IMG CLASS="graphic" SRC="figs/sam.0306.gif" ALT="Figure 3.6"><P CLASS="para"> +After that, select the protocol TCP/IP from manufacturer Microsoft, as shown in <A CLASS="xref" HREF="ch03_01.html#ch03-50801"> +Figure 3.7</a>, then click OK. After doing so, you will be returned to the network dialog. Click OK there to close the dialog box, upon which Windows will install the necessary components from disk and reboot the machine. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-50801"> +Figure 3.7: Selecting a protocol to install</a></h4><IMG CLASS="graphic" SRC="figs/sam.0307.gif" ALT="Figure 3.7"></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942047"> +3.1.2.2 Configuring TCP/IP</a></h4><P CLASS="para">If you have more than one networking device (for example, both an Ethernet card and a dialup networking modem), each appropriate hardware device should be "linked" to the TCP/IP protocol with an arrow, as shown in <A CLASS="xref" HREF="ch03_01.html#ch03-61576"> +Figure 3.8</a>. Select the TCP/IP protocol linked to the networking device that will be accessing the Samba network. When it is highlighted, click the Properties button. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-61576"> +Figure 3.8: Selecting the correct TCP/IP protocol</a></h4><IMG CLASS="graphic" SRC="figs/sam.0308.gif" ALT="Figure 3.8"><P CLASS="para"> +After doing so, the TCP/IP Properties panel for that device is displayed, as shown in <A CLASS="xref" HREF="ch03_01.html#ch03-73526"> +Figure 3.9</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-73526"> +Figure 3.9: STCP/IP Properties panel</a></h4><IMG CLASS="graphic" SRC="figs/sam.0309.gif" ALT="Figure 3.9"><P CLASS="para"> +There are seven tabs near the top of this panel, and you will need to configure four of them: </p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942078"> +</a>IP address</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942079"> +</a>DNS configuration</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942080"> +</a>WINS configuration</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942081"> +</a>Bindings</p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-948031"> +3.1.2.3 IP Address tab </a></h4><P CLASS="para"> +The IP Address tab is shown in <A CLASS="xref" HREF="ch03_01.html#ch03-73526"> +Figure 3.9</a>. Press the "Specify an IP address" radio button and enter the client's address and subnet mask in the space provided. You or your network manager should have selected an address for the machine. The values should place the computer on the same subnet as the Samba server. For example, if the server's address is 192.168.236.86, and its network mask 255.255.255.0, you might use address 192.168.236.10 (if it is available) for the Windows 98 computer, along with the same netmask as the server. If you already use DHCP on your network to provide IP addresses to Windows machines, select the "Obtain an IP address automatically" button.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942087"> +3.1.2.4 DNS Configuration tab</a></h4><P CLASS="para">Domain Name Service (DNS) is responsible for translating Internet computer names such as <EM CLASS="emphasis"> +hobbes.example.com</em> into machine-readable IP addresses such as 192.168.236.10. There are two ways to accomplish this on a Windows 98 machine: you can specify a server to do the translation for you or you can keep a local list of name/address pairs to refer to. </p><P CLASS="para"> +Networks that are connected to the Internet typically use a server, since the hosts files required would otherwise be huge. For an unconnected LAN, the list of possible hosts is small and well-known and might be kept on a Unix machine in the <EM CLASS="emphasis"> +/etc/hosts</em> file. If you are in doubt as to whether a DNS server is being used, or what its address might be, look at the file <EM CLASS="emphasis"> +/etc/resolv.conf</em> on your Unix servers. Any machine using DNS will have this file, which looks like:</p><PRE CLASS="programlisting"> +#resolv.conf +domain example.com +nameserver 127.0.0.1 +nameserver 192.168.236.20</pre><P CLASS="para"> +In the example shown, the second <CODE CLASS="literal"> +nameserver</code> line in the list contains the IP address of another machine on the local network: 192.168.236.20. It's a good candidate for a DNS server.[<A CLASS="footnote" HREF="#ch03-pgfId-942097">1</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch03-pgfId-942097">[1]</a> We can disqualify the other address because every Unix machine has a localhost address of 127.0.0.1 whether it is connected to a network or not. This address is required for some system tools to operate correctly.</p></div></blockquote><P CLASS="para"> +You must type the correct IP address of one or more DNS servers (note that you <EM CLASS="emphasis"> +cannot</em> use its Internet name, such as <EM CLASS="emphasis"> +dns.oreilly.com</em>) into the appropriate field in <A CLASS="xref" HREF="ch03_01.html#ch03-86883"> +Figure 3.10</a>. Be sure not to use 127.0.0.1 - that will never be the correct DNS server address!</p><P CLASS="para"> +Try to select addresses on your own network. Any name servers listed in <EM CLASS="emphasis"> +/etc/resolv.conf</em> should work, but you'll get better performance by using a server nearby. (If you don't find <EM CLASS="emphasis"> +/etc/resolv.conf</em> files on your Unix machines, just disable DNS until you can find the address of at least one DNS server.) Let's assume you only have one DNS server, and its address is 192.168.236.20. Click the Enable DNS radio button, as shown in <A CLASS="xref" HREF="ch03_01.html#ch03-86883"> +Figure 3.10</a>, and add the server's address to the top DNS Server Search Order field. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-86883"> +Figure 3.10: The DNS Configuration tab</a></h4><IMG CLASS="graphic" SRC="figs/sam.0310.gif" ALT="Figure 3.10"><P CLASS="para"> +Also, provide the name of the Windows 95/98 machine and the Internet domain you're in. You can safely ignore the Domain Suffix Search Order field for anything related to Samba.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942117"> +3.1.2.5 WINS Configuration tab</a></h4><P CLASS="para">WINS is the Windows Internet Name Service, its version of a NetBIOS name server. If you've enabled WINS on Samba, you must tell Windows the Samba server's address. If you are using WINS servers that are entirely Windows NT, enter each of them here as well. The dialog box shown after selecting the WINS Configuration tab is shown in <A CLASS="xref" HREF="ch03_01.html#ch03-95608"> +Figure 3.11</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-95608"> +Figure 3.11: The WINS Configuration tab</a></h4><IMG CLASS="graphic" SRC="figs/sam.0311.gif" ALT="Figure 3.11"><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> Do <EM CLASS="emphasis"> +not</em> mix a Samba WINS server and a Windows NT server as a primary/backup combination in the WINS dialog. Because the two cannot replicate their databases, this will cause name resolution to perform incorrectly.</p></blockquote><P CLASS="para"> +From here, select Enable WINS Resolution and enter the WINS server's address in the space provided, then press Add. Do not enter anything in the Scope ID field.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942134"> +3.1.2.6 Hosts files</a></h4><P CLASS="para">If you do not have either DNS or WINS, and you don't wish to use broadcast resolution, you'll need to provide a table of IP addresses and hostnames, in the standard Unix <I CLASS="filename"> +/etc/hosts</i> format. On a Windows machine, this goes in \WINDOWS\HOSTS under whichever drive you installed Windows on (typically C:\). A sample host file follows:</p><PRE CLASS="programlisting"> +# 127.0.0.1 localhost +192.168.236.1 escrime.example.com escrime +192.168.236.2 riposte.example.com riposte +192.168.236.3 wizzin.example.com wizzin +192.168.236.4 touche.example.com touche +192.168.236.10 hobbes.example.com hobbes</pre><P CLASS="para"> +You can copy this file directly from any of your Unix machines' <EM CLASS="emphasis"> +/etc/hosts</em>; the format is identical. However, <EM CLASS="emphasis"> +you should only use hosts files in Windows as a last resort for name resolution</em>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942143"> +3.1.2.7 Check the bindings</a></h4><P CLASS="para"> +The final tab to look at is Bindings, as shown in <A CLASS="xref" HREF="ch03_01.html#ch03-42906"> +Figure 3.12</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-42906"> +Figure 3.12: The Bindings tab</a></h4><IMG CLASS="graphic" SRC="figs/sam.0312.gif" ALT="Figure 3.12"><P CLASS="para"> +You should have a check beside Client for Microsoft Networks, indicating that it's using TCP/IP. If you have "File and printer sharing for Microsoft Networks" in the dialog, it should also be checked, as shown in the figure. </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-48802"> +3.1.3 Setting Your Name and Workgroup </a></h3><P CLASS="para">Finally, press the OK button in the TCP/IP configuration panel, and you'll be taken back to the Network Configuration screen. Then select the Identification tab, which will take you to the dialog box shown in <A CLASS="xref" HREF="ch03_01.html#ch03-42408"> +Figure 3.13</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-42408"> +Figure 3.13: The Identification tab</a></h4><IMG CLASS="graphic" SRC="figs/sam.0313.gif" ALT="Figure 3.13"><P CLASS="para"> +Here, for the second time, set your machine's name. This time, instead of your DNS hostname and domain, you're setting your NetBIOS name. However, it is best to make this the <EM CLASS="emphasis"> +same</em> as your hostname. Try not to make a spelling mistake: it can be very confusing to configure a machine if TCP thinks it's <CODE CLASS="literal"> +fred</code> and SMB thinks its <CODE CLASS="literal"> +ferd</code> !</p><P CLASS="para"> +You also set your workgroup name here. In our case, it's SIMPLE, but if you used a different one in <a href="ch02_01.html"><b>Chapter 2, <CITE CLASS="chapter">Installing Samba on a Unix System</cite></b></a>, when creating the Samba configuration file, use that here as well. Try to avoid calling it WORKGROUP or you'll be in the same workgroup as every unconfigured (or ill-configured) machine in the world. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-13238"> +3.1.4 Accessing the Samba Server</a></h3><P CLASS="para">Click on the OK button to complete the configuration; you will need to reboot in order for your changes to take effect. </p><P CLASS="para"> +Now for the big moment. Your Samba server is running, and you have set up your Windows 95/98 client to communicate with it. After rebooting, log in and double-click the Network Neighborhood icon on the desktop. You should see your Samba server listed as a member of the workgroup, as shown in <A CLASS="xref" HREF="ch03_01.html#ch03-88553"> +Figure 3.14</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-88553"> +Figure 3.14: Windows Network Neighborhood</a></h4><IMG CLASS="graphic" SRC="figs/sam.0314.gif" ALT="Figure 3.14"><P CLASS="para"> +Double-clicking the server name will show the resources that the server is offering to the network, as shown in <A CLASS="xref" HREF="ch03_01.html#ch03-17463"> +Figure 3.15</a> (in this case a printer and the <EM CLASS="emphasis"> +test </em>directory). </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-17463"> +Figure 3.15: Shares on Server</a></h4><IMG CLASS="graphic" SRC="figs/sam.0315.gif" ALT="Figure 3.15"><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> If you are presented with a dialog requesting the password for a user <CODE CLASS="literal"> +IPC$</code>, then Samba did not accept the password that was sent from the client. In this case, the username and the password that were created on the client side <EM CLASS="emphasis"> +must</em> match the username/password combination on the Samba server. If you are using Windows 98 or Windows NT Service Pack 3 or above, this is probably because the client is sending encrypted passwords instead of plaintext passwords. You can remedy this situation by performing two steps on the Samba server. First, add the following entry to the <CODE CLASS="literal"> +[global]</code> section of your Samba configuration file: <CODE CLASS="literal"> +encrypt password=yes</code>. Second, find the <I CLASS="filename"> +smbpasswd</i> program on the samba server (it is located in <I CLASS="filename"> +/usr/local/samba/bin</i> by default) and use it to add an entry to Samba's encrypted password database. For example, to add user <CODE CLASS="literal"> +steve</code> to Samba's encrypted password database, type <CODE CLASS="replaceable"> +<I> +smbpasswd -a steve</i></code>. The first time you enter this password, the program will output an error message indicating that the password database does not exist; it will then create the database, which is typically stored in <I CLASS="filename"> +/usr/local/samba/private/smbpasswd</i>.</p></blockquote><P CLASS="para"> +If you don't see the server listed, start Windows Explorer (not Internet Explorer!) and select Map Network Drive from the Tools menu. This will give you a dialog box into which you can type the name of your server and the share <CODE CLASS="literal"> +test </code>in the Windows UNC format: <I CLASS="filename">\\</i><CODE CLASS="replaceable"><I>server</i></code><I CLASS="filename">\test</i>, like we did in the first chapter. This should attempt to contact the Samba server and its temporary share. If things still aren't right, go to <a href="ch09_01.html"><b>Chapter 9, <CITE CLASS="chapter">Troubleshooting Samba</cite></b></a>, for troubleshooting assistance. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch02_06.html" TITLE="2.6 Testing the Samba Daemons"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 2.6 Testing the Samba Daemons" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_02.html" TITLE="3.2 Setting Up Windows NT 4.0 Computers"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 3.2 Setting Up Windows NT 4.0 Computers" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +2.6 Testing the Samba Daemons</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +3.2 Setting Up Windows NT 4.0 Computers</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch03_02.html b/docs/htmldocs/using_samba/ch03_02.html new file mode 100644 index 0000000000..fd87daac72 --- /dev/null +++ b/docs/htmldocs/using_samba/ch03_02.html @@ -0,0 +1,260 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 3] 3.2 Setting Up Windows NT 4.0 Computers</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:31:26Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_01.html" TITLE="3.1 Setting Up Windows 95/98 Computers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 3.1 Setting Up Windows 95/98 Computers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch03_01.html" TITLE="3. Configuring Windows Clients"> +Chapter 3<br> +Configuring Windows Clients</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_03.html" TITLE="3.3 An Introduction to SMB/CIFS"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 3.3 An Introduction to SMB/CIFS" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch03-23093"> +3.2 Setting Up Windows NT 4.0 Computers</a></h2><P CLASS="para">Configuring Windows NT is a little different than configuring Windows 95/98. In order to use Samba with Windows NT, you will need both the Workstation service and the TCP/IP protocol. Both come standard with NT, but we'll work through installing and configuring them because they may not be configured correctly.</p><P CLASS="para"> +There are six basic steps:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942212"> +</a>Assign the machine a name.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942213"> +</a>Install the Workstation service.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942214"> +</a>Install the TCP/IP protocol.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942215"> +</a>Set the machine's name and IP address.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-948102"> +</a>Configure the DNS and WINS name services.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-948103"> +</a>Bind the protocol and service together.</p></li></ol><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-pgfId-948104"> +3.2.1 Basic Configuration</a></h3><P CLASS="para">This section presents an outline of the steps to follow for getting Windows NT to cooperate with Samba. If you need more details on Windows NT network administration, refer to Craig Hunt and Robert Bruce Thompsom's <CITE CLASS="citetitle"> +Windows NT TCP/IP Network Administration </cite>(O'Reilly), an excellent guide. You should perform these steps as the "Administrator" user.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942220"> +3.2.1.1 Name the machine</a></h4><P CLASS="para">The first thing you need to do is to give the machine a NetBIOS name. From the Control Panel, double click on the Network icon. This will take you to the Network dialog box for the machine. The first tab in this dialog box should be the Identification tab, as illustrated in <A CLASS="xref" HREF="ch03_02.html#ch03-82592"> +Figure 3.16</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-82592"> +Figure 3.16: Network panel Identification tab</a></h4><IMG CLASS="graphic" SRC="figs/sam.0316.gif" ALT="Figure 3.16"><P CLASS="para"> +Here, you need to identify your machine with a name (we use the name Artish here) and change the default workgroup to the one you specified in the <EM CLASS="emphasis"> +smb.conf</em> file of your Samba server. In this case, the workgroup name is SIMPLE. However, you cannot edit either name here (as you could in Windows 95/98), but instead must use the Change button below the two text fields. Pressing this button raises an Identification Changes dialog box, where you can reset the workgroup and the machine name, as shown in <A CLASS="xref" HREF="ch03_02.html#ch03-67735"> +Figure 3.17</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-67735"> +Figure 3.17: Changing the identification</a></h4><IMG CLASS="graphic" SRC="figs/sam.0317.gif" ALT="Figure 3.17"><P CLASS="para">A word of warning: you will have to set the machine name again later while configuring TCP/IP, so be sure that the two names match. The name you set here is the NetBIOS name. You're allowed to make it different from the TCP/IP hostname, but doing so is usually not a good thing. Don't worry that Windows NT forces the computer name and the workgroup to be all capital letters; it's smart enough to figure out what you mean when it connects to the network.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942248"> +3.2.1.2 Installing the TCP/IP protocol</a></h4><P CLASS="para">Next, select the Protocols tab in the Network dialog box, and look to see if you have the TCP/IP protocol installed, as shown in <A CLASS="xref" HREF="ch03_02.html#ch03-66055"> +Figure 3.18</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-66055"> +Figure 3.18: The Protocols tab</a></h4><IMG CLASS="graphic" SRC="figs/sam.0318.gif" ALT="Figure 3.18"><P CLASS="para"> +If the protocol is not installed, you need to add it. Press the Add button, which will display the Select Network Protocol dialog box shown in <A CLASS="xref" HREF="ch03_02.html#ch03-22321"> +Figure 3.19</a>. Unlike Windows 95/98, you should immediately see the TCP/IP protocol as one of the last protocols listed. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-22321"> +Figure 3.19: Select Network Protocol dialog box</a></h4><IMG CLASS="graphic" SRC="figs/sam.0319.gif" ALT="Figure 3.19"><P CLASS="para"> +Select TCP/IP<EM CLASS="emphasis"> + </em>as the protocol and confirm it. If possible, install only the TCP/IP protocol. You usually do not want NetBEUI installed because this causes the machine to look for services under two different protocols, only one of which is likely in use.[<A CLASS="footnote" HREF="#ch03-pgfId-943371">2</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch03-pgfId-943371">[2]</a> A common occurrence: after looking at the unused protocol for a while, the machine will time out and try the good one. This fruitless searching gives you terrible performance and mysterious delays.</p></div></blockquote></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942278"> +3.2.1.3 Installing the Workstation service</a></h4><P CLASS="para">After installing TCP/IP, press the Services tab in the Network panel and check that you have a Workstation service, as shown at the end of the list in <A CLASS="xref" HREF="ch03_02.html#ch03-97222"> +Figure 3.20</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-97222"> +Figure 3.20: Network Services panel dialog box</a></h4><IMG CLASS="graphic" SRC="figs/sam.0320.gif" ALT="Figure 3.20"><P CLASS="para"> +This service is actually the Microsoft Networking Client, which allows the machine to access SMB services. The Workstation service is mandatory. The service is installed by default on both Windows NT Workstation 4.0 and Server 4.0. If it's not there, you can install it much like TCP/IP. In this case you need to press the Add button and then select Workstation Service, as shown in <A CLASS="xref" HREF="ch03_02.html#ch03-40000"> +Figure 3.21</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-40000"> +Figure 3.21: Select Network Service dialog box </a></h4><IMG CLASS="graphic" SRC="figs/sam.0321.gif" ALT="Figure 3.21"></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-85837"> +3.2.2 Configuring TCP/IP</a></h3><P CLASS="para">After you've installed the Workstation service, return to the Protocols tab and select the TCP/IP Protocol entry in the window. Then click the Properties button below the window. The Microsoft TCP/IP Protocol panel will be displayed. There are five tabs on the Windows NT panel, and (like Windows 95/98) you will need to work on three of them: </p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942313"> +</a>IP address</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942314"> +</a>DNS</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942315"> +</a>WINS address</p></li></ul><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942317"> +3.2.2.1 IP Address tab</a></h4><P CLASS="para">The IP Address tab is shown in <A CLASS="xref" HREF="ch03_02.html#ch03-97098"> +Figure 3.22</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-97098"> +Figure 3.22: Microsoft TCP/IP Properties for Windows NT</a></h4><IMG CLASS="graphic" SRC="figs/sam.0322.gif" ALT="Figure 3.22"><P CLASS="para">Select the "Specify an IP address" radio button and enter the computer's address and subnet mask in the space provided for the proper adapter (Ethernet card). You or your network manager should have selected an address for the client on the same subnet (LAN) as the Samba server. For example, if the server's address is 192.168.236.86 and its network mask 255.255.255.0, you might use the address 192.168.236.10, if it is available, for the NT workstation, along with the same netmask. If you use DHCP on your network, select the "Obtain an IP Address from a DHCP server" button.</p><P CLASS="para"> +If you don't have an IP address to use, and you are on a network by yourself, steal ours, as the 192.168.<EM CLASS="emphasis"> +x.x</em> subnet is specifically reserved by the Internic for LANs. If you're not by yourself, see your system administrator for some available addresses on your network.</p><P CLASS="para"> +The gateway field refers to a machine typically known as a <EM CLASS="emphasis"> +router</em>. If you have routers connecting multiple networks, you should put in the IP address of the one on your subnet.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942339"> +3.2.2.2 DNS tab</a></h4><P CLASS="para">Next we go to the tab for DNS, as shown in <A CLASS="xref" HREF="ch03_02.html#ch03-61878"> +Figure 3.23</a>. This brings up the DNS panel. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-61878"> +Figure 3.23: The DNS panel</a></h4><IMG CLASS="graphic" SRC="figs/sam.0323.gif" ALT="Figure 3.23"><P CLASS="para"> +The Domain Name System (DNS) is responsible for translating human-readable computer names such as <EM CLASS="emphasis"> +atrish.example.com</em> into IP addresses such as 192.168.236.10. There are two ways to accomplish this on a NT machine. First, you can specify a DNS server to do the translation for you, or you can keep a local list of name/address pairs for your workstation to refer to.</p><P CLASS="para"> +For a LAN that's not on the Internet, the list of possible hosts is typically small and well known, and may be kept in a file locally. Networks that are connected to the Internet typically use DNS service since it isn't possible to guess ahead of time what addresses you might be accessing out on the net. If you are in doubt as to whether a DNS server is being used, or what its address might be, look at the file <EM CLASS="emphasis"> +/etc/resolv.conf</em> on your Samba server: any machine using DNS will have this file. It looks like the following:</p><PRE CLASS="programlisting"> +#resolv.conf +domain example.com +nameserver 127.0.0.1 +nameserver 192.168.236.20</pre><P CLASS="para"> +In this example, the first nameserver in the list is 127.0.0.1, which indicates that the Samba server is also a DNS server for this LAN.[<A CLASS="footnote" HREF="#ch03-pgfId-946587">3</a>] In that case, you would use its network IP address (not 127.0.0.1, its localhost address) when filling in the DNS Configuration dialog box. Otherwise, use the other addresses you find in the lines beginning with <CODE CLASS="literal"> +nameserver</code>. Try to select ones on your own network. Any name servers listed in <EM CLASS="emphasis"> +/etc/resolv.conf</em> should work, but you'll get better performance by using a server nearby.</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch03-pgfId-946587">[3]</a> The address 127.0.0.1 is known as the <EM CLASS="emphasis"> +localhost</em> address, and always refers to itself. For example, if you type <CODE CLASS="literal"> +ping 127.0.0.1</code> on a Unix server, you should always get a response, as you're pinging the host itself.</p></div></blockquote><P CLASS="para"> +Finally, enter the machine name once more, making sure that it's the same one listed in the Identification tab of the Network dialog box (before the NetBIOS name). Also, enter the DNS domain on which this machine resides. For example, if your workstation has a domain name such as <EM CLASS="emphasis"> +example.com</em>, enter it here. You can safely ignore the other options.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942365"> +3.2.2.3 WINS Address tab</a></h4><P CLASS="para">If you are not using a DNS server, you still need a way of translating NetBIOS names to addresses and back again. We recommend that you configure both DNS and WINS; NT has a preference for WINS and WINS can use DNS as a fallback if it cannot resolve any machine address. The WINS Address tab is shown in <A CLASS="xref" HREF="ch03_02.html#ch03-20855"> +Figure 3.24</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-20855"> +Figure 3.24: The WINS Address tab</a></h4><IMG CLASS="graphic" SRC="figs/sam.0324.gif" ALT="Figure 3.24"><P CLASS="para"> +If you have a WINS server, enter its address in the space marked Primary WINS Server. If your Samba server is providing WINS service (in other words, you have the line <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +service</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> in the <EM CLASS="emphasis"> +smb.conf</em> file of your Samba server), provide the Samba server's IP address here. Otherwise, provide the address of another WINS server on your network.</p><P CLASS="para"> +You probably noticed that there is a field here for the adaptor; this field must specify the Ethernet adaptor that you're running TCP/IP on so that WINS will provide name service on the correct network. If you have both a LAN and a dialup adaptor, make sure you have the LAN's adaptor here.</p><P CLASS="para"> +Finally, select the "Enable DNS for Windows Resolution" checkbox, so WINS will try DNS as a fallback if it can't find a name. You can safely ignore the other options.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942383"> +3.2.2.4 Hosts files</a></h4><P CLASS="para">If you don't have either DNS or WINS, and you don't wish to use broadcast name resolution, you'll need to provide a table of IP addresses and hosts names, in standard Unix <I CLASS="filename"> +/etc/hosts</i> format. We recommend against this because maintenance of this file on any dynamic network is troublesome, but we will explain it just the same. The Windows host file should appear in the <EM CLASS="emphasis"> +\WINDOWS\HOSTS</em> directory of whatever local drive Windows is installed on. A sample follows:</p><PRE CLASS="programlisting"> +127.0.0.1 localhost +192.168.236.1 escrime escrime.example.com +192.168.236.2 riposte riposte.example.com +192.168.236.3 wizzin wizzin.example.com +192.168.236.4 touche touche.example.com +192.168.236.5 gurgi gurgi.example.com +192.168.236.6 jessiac jessiac.example.com +192.168.236.7 skyline skyline.example.com </pre><P CLASS="para"> +If you wish, you can copy the contents directly from the Samba server's<I CLASS="filename"> + /etc/hosts</i>. The format is identical. This file will then serve the same purpose as the hosts file on the Unix server. Again, <EM CLASS="emphasis"> +hosts</em> files on Windows should only be used as a last resort.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942394"> +3.2.2.5 Bindings</a></h4><P CLASS="para"> +The term <I CLASS="firstterm"> +bindings</i> is a way of saying "connected together at configuration time." It means that the TCP/IP protocol will channel through the Ethernet card (instead of, say, a dialup connection), and is actually connected properly. If you return to the Network dialog box and set the Show field to "all services" and click on all the + buttons in the tree, you should see a display similar to <A CLASS="xref" HREF="ch03_02.html#ch03-83060"> +Figure 3.25</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-83060"> +Figure 3.25: Service bindings</a></h4><IMG CLASS="graphic" SRC="figs/sam.0325.gif" ALT="Figure 3.25"><P CLASS="para"> +This means that the Workstation, Server, and NetBIOS interface services are connected to the WINS client. This is the correct binding for Microsoft TCP/IP. </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-pgfId-942410"> +3.2.3 Connecting to the Samba Server</a></h3><P CLASS="para">You can safely leave the default values for the remainder of the tabs in the Network dialog box. Click on the OK button to complete the configuration. Once the proper files are loaded (if any), you will need to reboot in order for your changes to take effect.</p><P CLASS="para"> +Now for the big moment. Your Samba server is running and you have set up your NT client to communicate with it. After the machine reboots, login and double-click the Network Neighborhood icon on the desktop, and you should see your Samba server listed as a member of the workgroup, as shown in <A CLASS="xref" HREF="ch03_02.html#ch03-50785"> +Figure 3.26</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-50785"> +Figure 3.26: Windows NT Network Neighborhood</a></h4><IMG CLASS="graphic" SRC="figs/sam.0326.gif" ALT="Figure 3.26"><P CLASS="para">Double-clicking the server name will show the resources that the server is offering to the network, as shown in <A CLASS="xref" HREF="ch03_02.html#ch03-89532"> +Figure 3.27</a>. In this case, the test and the default printer are offered to the Window NT workstation. For more information, see the warning under the "Accessing the Samba Server" section, earlier in this chapter. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-89532"> +Figure 3.27: Server's shares</a></h4><IMG CLASS="graphic" SRC="figs/sam.0327.gif" ALT="Figure 3.27"><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> If you are presented with a dialog requesting the password for a user <CODE CLASS="literal"> +IPC$</code>, then Samba did not accept the password that was sent from the client. In this case, the username and the password that were created on the client side <EM CLASS="emphasis"> +must</em> match the username/password combination on the Samba server. If you are using Windows 98 or Windows NT Service Pack 3 or above, this is probably because the client is sending encrypted passwords instead of plaintext passwords. You can remedy this situation by performing two steps on the Samba server. First, add the following entry to the <CODE CLASS="literal"> +[global]</code> section of your Samba configuration file: <CODE CLASS="literal"> +encrypt password=yes</code>. Second, find the <I CLASS="filename"> +smbpasswd</i> program on the samba server (it is located in <I CLASS="filename"> +/usr/local/samba/bin</i> by default) and use it to add an entry to Samba's encrypted password database. For example, to add user <CODE CLASS="literal"> +steve</code> to Samba's encrypted password database, type <CODE CLASS="replaceable"> +<I> +smbpasswd -a steve</i></code>. The first time you enter this password, the program will output an error message indicating that the password database does not exist; it will then create the database, which is typically stored in <I CLASS="filename"> +/usr/local/samba/private/smbpasswd</i>.</p></blockquote><P CLASS="para"> +If you don't see the server listed, don't panic. Start the Windows NT Explorer (not Internet Explorer!) and select Map Network Drive from the Tools menu. A dialog box appears that allows you to type the name of your server and its share directory in Windows format. For example, you would enter <I CLASS="filename"> +\\</i><CODE CLASS="replaceable"><I>server</i></code><I CLASS="filename">\temp</i> if your server happened to be named "server." If things still aren't right, go directly to the section "The Fault Tree" in <a href="ch09_01.html"><b>Chapter 9</b></a>, to see if you can troubleshoot what is wrong with the network.</p><P CLASS="para"> +If it works, congratulations! Try writing to the server and sending data to the network printer. You will be pleasantly surprised how seamlessly everything works! Now that you've finished setting up the Samba server and its clients, we can starting talking about how Samba works and how to configure it to your liking. </p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_01.html" TITLE="3.1 Setting Up Windows 95/98 Computers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 3.1 Setting Up Windows 95/98 Computers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_03.html" TITLE="3.3 An Introduction to SMB/CIFS"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 3.3 An Introduction to SMB/CIFS" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +3.1 Setting Up Windows 95/98 Computers</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +3.3 An Introduction to SMB/CIFS</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch03_03.html b/docs/htmldocs/using_samba/ch03_03.html new file mode 100644 index 0000000000..d3efd007aa --- /dev/null +++ b/docs/htmldocs/using_samba/ch03_03.html @@ -0,0 +1,579 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 3] 3.3 An Introduction to SMB/CIFS</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:31:30Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_02.html" TITLE="3.2 Setting Up Windows NT 4.0 Computers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 3.2 Setting Up Windows NT 4.0 Computers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch03_01.html" TITLE="3. Configuring Windows Clients"> +Chapter 3<br> +Configuring Windows Clients</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch04_01.html" TITLE="4. Disk Shares "> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4. Disk Shares " BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch03-64069"> +3.3 An Introduction to SMB/CIFS</a></h2><P CLASS="para">We'll wrap up this chapter with a short tutorial on SMB/CIFS. SMB/CIFS is the protocol that Windows 95/98 and NT machines use to communicate with the Samba server and each other. At a high level, the SMB protocol suite is relatively simple. It includes commands for all of the file and print operations that you might do on a local disk or printer, such as:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942445"> +</a> Opening and closing a file</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942446"> +</a> Creating and deleting files and directories</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942447"> +</a> Reading and writing a file</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942853"> +</a> Searching for files</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942448"> +</a> Queueing and dequeueing files to a print spool</p></li></ul><P CLASS="para"> +Each of these operations can be encoded into an SMB message and transmitted to and from a server. The original name SMB comes from their data format: these are versions of the standard DOS system-call data structures, or <I CLASS="firstterm"> +Server Message Blocks</i>, redesigned for transmitting to another machine across a network.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-pgfId-942451"> +3.3.1 SMB Format</a></h3><P CLASS="para">Richard Sharpe of the Samba team defines SMB as a "request-response" protocol.[<A CLASS="footnote" HREF="#ch03-pgfId-942928">4</a>] In effect, this means that a client sends an SMB request to a server, and the server sends an SMB response back to the client. Rarely does a server send a message that is not in response to a client.</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch03-pgfId-942928">[4]</a> See <I CLASS="filename"> +<a href="http://anu.samba.org/cifs/docs/what-is-smb.html">http://anu.samba.org/cifs/docs/what-is-smb.html</i></a> for Richard's excellent summary of SMB.</p></div></blockquote><P CLASS="para"> +An SMB message is not as complex as you might think. Let's take a closer look at the internal structure of such a message. It can be broken down into two parts: the <I CLASS="firstterm"> +header</i>, which is a fixed size, and the <I CLASS="firstterm"> +command string</i>, whose size can vary dramatically based on the contents of the message.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942453"> +3.3.1.1 SMB header format</a></h4><P CLASS="para"> +<A CLASS="xref" HREF="ch03_03.html#ch03-31015"> +Table 3.1</a> shows the format of an SMB header. SMB commands are not required to use all the fields in the SMB header. For example, when a client first attempts to connect to a server, it does not yet have a tree identifier (TID) value - one is assigned after it successfully connects - so a null TID (0xFFFF) is placed in its header field. Other fields may be padded with zeros when not used. </p><P CLASS="para"> +The fields of the SMB header are listed in <A CLASS="xref" HREF="ch03_03.html#ch03-31015"> +Table 3.1</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch03-31015"> +Table 3.1: SMB Header Fields </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Field</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Size (bytes)</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Description</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0xFF 'SMB'</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Protocol identifier</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +COM</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Command code, from 0x00 to 0xFF</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +RCLS</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Error class</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +REH</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Reserved</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ERR</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +2</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Error code</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +REB</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Reserved</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +RES</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +14</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Reserved</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +TID</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +2</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Tree identifier; a unique ID for a resource in use by client</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +PID</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +2</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Caller process ID</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +UID</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +2</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +User identifier</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +MID</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +2</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Multiplex identifier; used to route requests inside a process</p></td></tr></tbody></table></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942527"> +3.3.1.2 SMB command format</a></h4><P CLASS="para"> +<I CLASS="firstterm"> +</i>Immediately after the header is a variable number of bytes that constitute an SMB command or reply. Each command, such as Open File (COM field identifier: <CODE CLASS="literal">SMBopen</code>) or Get Print Queue (<CODE CLASS="literal">SMBsplretq</code>), has its own set of parameters and data. Like the SMB header fields, not all of the command fields need to be filled, depending on the specific command. For example, the Get Server Attributes (<CODE CLASS="literal">SMBdskattr</code>) command sets the WCT and BCC fields to zero. The fields of the command segment are shown in <A CLASS="xref" HREF="ch03_03.html#ch03-38178"> +Table 3.2</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch03-38178"> +Table 3.2: SMB Command Contents </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Field</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Size in Bytes</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Description</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +WCT</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<I CLASS="firstterm"> +</i>Word count</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +VWV</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Variable</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameter words (size given by WCT)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +BCC</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +2</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameter byte count</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +DATA</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Variable</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Data (size given by BCC)</p></td></tr></tbody></table><P CLASS="para"> +Don't worry if you don't understand each of these fields; they are not necessary for using Samba at an administrator level. However, they do come in handy when debugging system messages. We will show you some of the more common SMB messages that clients and servers send using a modified version of <I CLASS="filename"> +tcpdump</i> later in this section. (If you would like an SMB sniffer with a graphical interface, try "ethereal," which uses the GTK libraries; see the Samba homepage for more information on this tool.)</p><P CLASS="para"> +If you would like more information on each of the commands for the SMB protocol, see the SMB/CIFS documentation at <a href="ftp://ftp.microsoft.com/developr/drg/CIFS/"><I CLASS="filename">ftp://ftp.microsoft.com/developr/drg/CIFS/</i></a>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942573"> +3.3.1.3 SMB variations</a></h4><P CLASS="para"> +The SMB protocol has been extended with new commands several times since its inception. Each new version is backwards compatible with the previous versions. This makes it quite possible for a LAN to have various clients and servers running different versions of the SMB protocol at once.</p><P CLASS="para"> +<A CLASS="xref" HREF="ch03_03.html#ch03-67366"> +Table 3.3</a> outlines the major versions of the SMB protocol. Within each "dialect" of SMB are many sub-versions that include commands supporting particular releases of major operating systems. The ID string is used by clients and servers to determine what level of the protocol they will speak to each other. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch03-67366"> +Table 3.3: SMB Protocol Dialects </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Protocol Name</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +ID String</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Used By</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Core</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +PC NETWORK PROGRAM 1.0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Core Plus </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +MICROSOFT NETWORKS 1.03 </code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +LAN Manager 1.0 </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +LANMAN1.0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +LAN Manager 2.0 </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +LM1.2X002</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +LAN Manager 2.1 </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +LANMAN2.1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +NT LAN Manager 1.0</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +NT LM 0.12</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows NT 4.0</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba's NT LM 0.12</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +Samba</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Common Internet File System</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +CIFS 1.0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 2000</p></td></tr></tbody></table><P CLASS="para"> +Samba implements the <CODE CLASS="literal"> +NT</code> <CODE CLASS="literal"> +LM</code> <CODE CLASS="literal"> +0.12</code> specification for NT LAN Manager 1.0. It is backwards compatible with all of the other SMB variants. The CIFS specification is, in reality, LAN Manager 0.12 with a few specific additions.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-pgfId-942627"> +3.3.2 SMB Clients and Servers</a></h3><P CLASS="para"> +As mentioned earlier, SMB is a client/server protocol. In the purest sense, this means that a client sends a request to a server, which acts on the request and returns a reply. However, the client/server roles can often be reversed, sometimes within the context of a single SMB session. For example, consider the two Windows 95/98 computers in <A CLASS="xref" HREF="ch03_03.html#ch03-69480"> +Figure 3.28</a>. The computer named WIZZIN shares a printer to the network, and the computer named ESCRIME shares a disk directory. WIZZIN is in the client role when accessing ESCRIME's network drive, and in the server role when printing a job for ESCRIME. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch03-69480"> +Figure 3.28: Two computers that both have resources to share</a></h4><IMG CLASS="graphic" SRC="figs/sam.0328.gif" ALT="Figure 3.28"><P CLASS="para"> +This brings out an important point in Samba terminology:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-server-defined-in-Samba-terminology"> +</a>A <I CLASS="firstterm"> +server</i> is a machine with a resource to share.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-client-defined-in-Samba-terminology"> +</a>A <I CLASS="firstterm"> +client</i> is a machine that wishes to use that resource.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-943256"> +</a>A server can be a client (of another computer's resource) at any given time.</p></li></ul><P CLASS="para"> +Note that there are no implications as to the amount of resources that make up a server, or whether it has a large disk space or fast processor. A server could be an old 486 with a printer attached to it, or it could be an UltraSparc station with a 10 gigabyte disk service.</p><P CLASS="para"> +Microsoft Windows products have both the SMB client and server built in to the operating system. Wndows NT 4.0 uses a newer SMB protocol than Windows for Workgroups, and it offers an enhanced form of network security which will be discussed in <a href="ch06_01.html"><b>Chapter 6</b></a>. In addition, there are a large number of commercial SMB server products available from companies such as Sun, Compaq, SCO, Hewlett-Packard, Syntax, and IBM. Unfortunately, on the client side there are far fewer offerings, limited mainly to Digital Equipment's Pathworks product, and of course, Samba.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-pgfId-942638"> +3.3.3 A Simple SMB Connection</a></h3><P CLASS="para">Before we close this chapter, let's take a look at a simple SMB connection. This is some pretty technical data - which isn't really necessary to administer Samba - so you can skip over it if you like. We present this information largely as a way to help you get familiar with how the SMB protocol negotiates connections with other computers on the network. </p><P CLASS="para"> +There are four steps that the client and server must complete in order to establish a connection to a resource:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942687"> +</a> Establish a virtual connection.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942688"> +</a> Negotiate the protocol variant to speak.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942689"> +</a> Set session parameters.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942690"> +</a> Make a tree connection to a resource.</p></li></ol><P CLASS="para"> +We will examine each of these steps through the eyes of a useful tool that we mentioned earlier: the modified <I CLASS="filename"> +tcpdump</i> that is available from the Samba web site.</p><P CLASS="para"> +You can download this program at <I CLASS="filename"> +samba.org</i> in the <I CLASS="filename"> +samba/ftp/tcpdump-smb</i> directory; the latest version as of this writing is 3.4-5. Use this program as you would use the standard <I CLASS="filename"> +tcpdump</i> application, but add the <CODE CLASS="literal"> +-s 1500</code> switch to ensure that you get the whole packet and not just the first few bytes.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch03-pgfId-942691"> +3.3.3.1 Establishing a virtual connection</a></h4><P CLASS="para">When a user first makes a request to access a network disk or send a print job to a remote printer, NetBIOS takes care of making a connection at the session layer. The result is a bidirectional virtual channel between the client and server. In reality, there are only two messages that the client and server need to establish this connection. This is shown in the following example session request and response, as captured by <I CLASS="filename"> +tcpdump</i> :</p><PRE CLASS="programlisting"> +>>> NBT Packet +NBT Session Request +Flags=0x81000044 +Destination=ESCRIME NameType=0x20 (Server) +Source=WIZZIN NameType=0x00 (Workstation) + +>>> NBT Packet +NBT Session Granted +Flags=0x82000000</pre></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-pgfId-942713"> +3.3.4 Negotiating the Protocol Variant</a></h3><P CLASS="para">At this point, there is an open channel between the client and server. Next, the client sends a message to the server to negotiate an SMB protocol. As mentioned earlier, the client sets its tree identifier (TID) field to zero, since it does not yet know what TID to use. A <EM CLASS="emphasis"> +tree identifier</em> is a number that represents a connection to a share on a server.</p><P CLASS="para"> +The command in the message is <CODE CLASS="literal"> +SMBnegprot</code>, a request to negotiate a protocol variant that will be used for the entire session. Note that the client sends to the server a list of all of the variants that it can speak, not vice versa.</p><P CLASS="para"> +The server responds to the <CODE CLASS="literal"> +SMBnegprot</code> request with an index into the list of variants that the client offered, starting with index 0, or with the value 0xFF if none of the protocol variants are acceptable. Continuing this example, the server responds with the value 5, which indicates that the <CODE CLASS="literal"> +NT</code> <CODE CLASS="literal"> +LM</code> <CODE CLASS="literal"> +0.12</code> dialect will be used for the remainder of the session:</p><PRE CLASS="programlisting"> +>>> NBT Packet +NBT Session Packet +Flags=0x0 +Length=154 + +SMB PACKET: SMBnegprot (REQUEST) +SMB Command = 0x72 +Error class = 0x0 +Error code = 0 +Flags1 = 0x0 +Flags2 = 0x0 +Tree ID = 0 +Proc ID = 5371 +UID = 0 +MID = 385 +Word Count = 0 +Dialect=PC NETWORK PROGRAM 1.0 +Dialect=MICROSOFT NETWORKS 3.0 +Dialect=DOS LM1.2X002 +Dialect=DOS LANMAN2.1 +Dialect=Windows for Workgroups 3.1a +Dialect=NT LM 0.12 + +>>> NBT Packet +NBT Session Packet +Flags=0x0 +Length=69 + +SMB PACKET: SMBnegprot (REPLY) +SMB Command = 0x72 +Error class = 0x0 +Error code = 0 +Flags1 = 0x0 +Flags2 = 0x1 +Tree ID = 0 +Proc ID = 5371 +UID = 0 +MID = 385 +Word Count = 02 +[000] 05 00</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-pgfId-942762"> +3.3.5 Set Session and Login Parameters</a></h3><P CLASS="para">The next step is to transmit session and login parameters for the session. This includes the account name and password (if there is one), the workgroup name, the maximum size of data that can be transferred, and the number of pending requests that may be in the queue at any one time.</p><P CLASS="para"> +In the following example, the Session Setup command presented allows for an additional SMB command to be piggybacked onto it. The letter X at the end of the command name indicates this, and the hexadecimal code of the second command is given in the <CODE CLASS="literal"> +Com2</code> field. In this case the command is <CODE CLASS="literal"> +0x75</code>, which is the Tree Connect and X command. The <CODE CLASS="literal"> +SMBtconX</code> message looks for the name of the resource in the <KBD CLASS="command"> +smb_buf</kbd> buffer. (This is the last field listed in the following request.) In this example, <KBD CLASS="command"> +smb_buf</kbd> contains the string <CODE CLASS="literal"> +\\ESCRIME\PUBLIC</code>, which is the full pathname to a shared directory on node ESCRIME. Using the "and X" commands like this speeds up each transaction, since the server doesn't have to wait on the client to make a second request.</p><P CLASS="para"> +Note that the TID is still zero. The server will provide a TID to the client once the session has been established and a connection has been made to the requested resource. In addition, note that the password is sent in the open. We can change this later using encrypted passwords:</p><PRE CLASS="programlisting"> +>>> NBT Packet +NBT Session Packet +Flags=0x0 +Length=139 + +SMB PACKET: SMBsesssetupX (REQUEST) +SMB Command = 0x73 +Error class = 0x0 +Error code = 0 +Flags1 = 0x10 +Flags2 = 0x0 +Tree ID = 0 +Proc ID = 5371 +UID = 1 +MID = 385 +Word Count = 13 +Com2=0x75 +Res1=0x0 +Off2=106 +MaxBuffer=2920 +MaxMpx=2 +VcNumber=0 +SessionKey=0x1FF2 +CaseInsensitivePasswordLength=1 +CaseSensitivePasswordLength=1 +Res=0x0 +Capabilities=0x1 +Pass1&Pass2&Account&Domain&OS&LanMan= + KRISTIN PARKSTR Windows 4.0 Windows 4.0 +PassLen=2 +Passwd&Path&Device= +smb_bcc=22 +smb_buf[]=\\ESCRIME\PUBLIC</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch03-pgfId-942801"> +3.3.6 Making Connection to a Resource</a></h3><P CLASS="para">For the final step, the server returns a TID to the client, indicating that the user has been authorized access and that the resource is ready to be used. It also sets the <KBD CLASS="command"> +ServiceType</kbd> field to "A" to indicate that this is a file service. Available service types are:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942803"> +</a> "A" for a disk or file</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942804"> +</a> "LPT1" for a spooled output</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942805"> +</a> "COMM" for a direct-connect printer or modem</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch03-pgfId-942806"> +</a> "IPC" for a named pipe</p></li></ul><P CLASS="para"> +The output is:</p><PRE CLASS="programlisting"> +>>> NBT Packet +NBT Session Packet +Flags=0x0 +Length=78 + +SMB PACKET: SMBsesssetupX (REPLY) +SMB Command = 0x73 +Error class = 0x0 +Error code = 0 +Flags1 = 0x80 +Flags2 = 0x1 +Tree ID = 121 +Proc ID = 5371 +UID = 1 +MID = 385 +Word Count = 3 +Com2=0x75 +Off2=68 +Action=0x1 +[000] Unix Samba 1.9.1 +[010] PARKSTR + +SMB PACKET: SMBtconX (REPLY) (CHAINED) +smbvwv[]= +Com2=0xFF +Off2=78 +smbbuf[]= +ServiceType=A:</pre><P CLASS="para"> +Now that a TID has been assigned, the client may issue any sort of command that it would use on a local disk drive. It can open files, read and write to them, delete them, create new files, search for filenames, and so on. </p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_02.html" TITLE="3.2 Setting Up Windows NT 4.0 Computers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 3.2 Setting Up Windows NT 4.0 Computers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch04_01.html" TITLE="4. Disk Shares "> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4. Disk Shares " BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +3.2 Setting Up Windows NT 4.0 Computers</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +4. Disk Shares </td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch04_01.html b/docs/htmldocs/using_samba/ch04_01.html new file mode 100644 index 0000000000..1cc3494d29 --- /dev/null +++ b/docs/htmldocs/using_samba/ch04_01.html @@ -0,0 +1,415 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 4] Disk Shares </title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:31:52Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_03.html" TITLE="3.3 An Introduction to SMB/CIFS"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 3.3 An Introduction to SMB/CIFS" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Chapter 4</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_02.html" TITLE="4.2 Special Sections"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.2 Special Sections" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="chapter"> +<A CLASS="title" NAME="ch04-21486"> +4. Disk Shares </a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#ch04-76968" TITLE="4.1 Learning the Samba Configuration File"> +Learning the Samba Configuration File</a><br> +<A CLASS="sect1" HREF="ch04_02.html" TITLE="4.2 Special Sections"> +Special Sections</a><br> +<A CLASS="sect1" HREF="ch04_03.html" TITLE="4.3 Configuration File Options"> +Configuration File Options</a><br> +<A CLASS="sect1" HREF="ch04_04.html" TITLE="4.4 Server Configuration"> +Server Configuration</a><br> +<A CLASS="sect1" HREF="ch04_05.html" TITLE="4.5 Disk Share Configuration"> +Disk Share Configuration</a><br> +<A CLASS="sect1" HREF="ch04_06.html" TITLE="4.6 Networking Options with Samba"> +Networking Options with Samba</a><br> +<A CLASS="sect1" HREF="ch04_07.html" TITLE="4.7 Virtual Servers"> +Virtual Servers</a><br> +<A CLASS="sect1" HREF="ch04_08.html" TITLE="4.8 Logging Configuration Options"> +Logging Configuration Options</a></p><P> +</p></div><P CLASS="para">In the previous three chapters, we showed you how to install Samba on a Unix server and set up Windows clients to use a simple disk share. This chapter will show you how Samba can assume more productive roles on your network.</p><P CLASS="para"> +Samba's daemons, <EM CLASS="emphasis"> +smbd</em> and <EM CLASS="emphasis"> +nmbd</em>, are controlled through a single ASCII file, <I CLASS="filename"> +smb.conf</i>, that can contain over 200 unique options. These options define how Samba reacts to the network around it, including everything from simple permissions to encrypted connections and NT domains. The next five chapters are designed to help you get familiar with this file and its options. Some of these options you will use and change frequently; others you may never use - it all depends on how much functionality you want Samba to offer its clients.</p><P CLASS="para"> +This chapter introduces the structure of the Samba configuration file and shows you how to use these options to create and modify disk shares. Subsequent chapters will discuss browsing, how to configure users, security, domains, and printers, and a host of other myriad topics that you can implement with Samba on your network.</p><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="s1"></a> +<A CLASS="title" NAME="ch04-76968"> +4.1 Learning the Samba Configuration File</a></h2><P CLASS="para"> +<I CLASS="filename"> +</i>Here is an <I CLASS="filename"> +</i>example of a Samba configuration file. If you have worked with a Windows .INI file, the structure of the <I CLASS="filename"> +smb.conf </i> file should look very familiar: </p><PRE CLASS="programlisting"> +[global] + log level = 1 + max log size = 1000 + socket options = TCP_NODELAY IPTOS_LOWDELAY + guest ok = no +[homes] + browseable = no + map archive = yes +[printers] + path = /usr/tmp + guest ok = yes + printable = yes + min print space = 2000 +[test] + browseable = yes + read only = yes + guest ok = yes + path = /export/samba/test</pre><P CLASS="para"> +Although you may not understand the contents yet, this is a good configuration file to grab if you're in a hurry. (If you're not, we'll create a new one from scratch shortly.) In a nutshell, this configuration file sets up basic debug logging in a default log file not to exceed 1MB, optimizes TCP/IP socket connections between the Samba server and any SMB clients, and allows Samba to create a disk share for each user that has a standard Unix account on the server. In addition, each of the printers registered on the server will be publicly available, as will a single read-only share that maps to the <I CLASS="filename"> +/export/samba/test</i> directory. The last part of this file is similar to the disk share you used to test Samba in <a href="ch02_01.html"><b>Chapter 2, <CITE CLASS="chapter">Installing Samba on a Unix System</cite></b></a>.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-52415"> +4.1.1 Configuration File Structure</a></h3><P CLASS="para"> +<I CLASS="filename"> +</i>Let's take another look at this configuration file, this time from a higher level:</p><PRE CLASS="programlisting"> +[global] + ... +[homes] + ... +[printers] + ... +[test] + ...</pre><P CLASS="para"> +The names inside the square brackets delineate unique sections of the <I CLASS="filename"> +smb.conf</i> file; each section names the <I CLASS="firstterm"> +share</i> (or service) that the section refers to. For example, the <CODE CLASS="literal"> +[test]</code> and <CODE CLASS="literal"> +[homes]</code> sections are each unique disk shares; they contain options that map to specific directories on the Samba server. The <CODE CLASS="literal"> +[printers]</code> share contains options that map to various printers on the server. All the sections defined in the <I CLASS="filename"> +smb.conf</i> file, with the exception of the <CODE CLASS="literal"> +[global]</code> section, will be available as a disk or printer share to clients connecting to the Samba server.</p><P CLASS="para"> +The remaining lines are individual configuration options unique to that share. These options will continue until a new bracketed section is encountered, or until the end of the file is reached. Each configuration option follows a simple format:</p><PRE CLASS="programlisting"><CODE CLASS="replaceable"><I>option</i></code> = <CODE CLASS="replaceable"><I>value</i></code></pre><P CLASS="para"> +Options in the <I CLASS="filename"> +smb.conf</i> file are set by assigning a value to them. We should warn you up front that some of the option names in Samba are poorly chosen. For example, <CODE CLASS="literal"> +read</code> <CODE CLASS="literal"> +only</code> is self-explanatory, and is typical of many recent Samba options. <CODE CLASS="literal"> +public</code> is an older option, and is vague; it now has a less-confusing synonym <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> (may be accessed by guests). We describe some of the more common historical names in this chapter in sections that highlight each major task. In addition, <a href="appc_01.html"><b>Appendix C, <CITE CLASS="appendix">Samba Configuration Option Quick Reference</cite></b></a>, contains an alphabetical index of all the configuration options and their meanings.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-955562"> +4.1.1.1 Whitespaces, quotes, and commas</a></h4><P CLASS="para"> +An important item to remember about configuration options is that all whitespaces in the <CODE CLASS="replaceable"> +<I> +value</i></code> are significant. For example, consider the following option:</p><PRE CLASS="programlisting"> +volume = The Big Bad Hard Drive Number 3543</pre><P CLASS="para"> +Samba strips away the spaces between the final <CODE CLASS="literal"> +e</code> in <CODE CLASS="literal"> +volume</code> and the first <CODE CLASS="literal"> +T</code> in <CODE CLASS="literal"> +The</code>. These whitespaces are insignificant. The rest of the whitespaces are significant and will be recognized and preserved by Samba when reading in the file. Space is not significant in option names (such as <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code>), but we recommend you follow convention and keep spaces between the words of options.</p><P CLASS="para"> +If you feel safer including quotation marks at the beginning and ending of a configuration option's value, you may do so. Samba will ignore these quotation marks when it encounters them. Never use quotation marks around an option itself; Samba will treat this as an error.</p><P CLASS="para"> +Finally, you can use whitespaces to separate a series of values in a list, or you can use commas. These two options are equivalent:</p><PRE CLASS="programlisting"> +netbios aliases = sales, accounting, payroll +netbios aliases = sales accounting payroll</pre><P CLASS="para"> +In some values, however, you must use one form of separation - spaces in some cases, commas in others.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-960466"> +4.1.1.2 Capitalization</a></h4><P CLASS="para">Capitalization is not important in the Samba configuration file except in locations where it would confuse the underlying operating system. For example, let's assume that you included the following option in a share that pointed to <I CLASS="filename"> +/export/samba/simple </i>:</p><PRE CLASS="programlisting"> +PATH = /EXPORT/SAMBA/SIMPLE</pre><P CLASS="para"> +Samba would have no problem with the <CODE CLASS="literal"> +path</code> configuration option appearing entirely in capital letters. However, when it tries to connect to the given directory, it would be unsuccessful because the Unix filesystem in the underlying operating system <EM CLASS="emphasis"> +is</em> case sensitive. Consequently, the path listed would not be found and clients would be unable to connect to the share.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-960474"> +4.1.1.3 Line continuation</a></h4><P CLASS="para"> +You can continue a line in the Samba configuration file using the backslash, as follows:</p><PRE CLASS="programlisting"> +comment = The first share that has the primary copies \ + of the new Teamworks software product.</pre><P CLASS="para"> +Because of the backslash, these two lines will be treated as one line by Samba. The second line begins at the first non-whitespace character that Samba encounters; in this case, the <CODE CLASS="literal"> +o</code> in <CODE CLASS="literal"> +of</code>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-955588"> +4.1.1.4 Comments</a></h4><P CLASS="para"> +You can insert comments in the <I CLASS="filename"> +smb.conf</i> configuration file by preceding a line with either a hash mark (#) or a semicolon (;). Both characters are equivalent. For example, the first three lines in the following example would be considered comments:</p><PRE CLASS="programlisting"> +# This is the printers section. We have given a minimum print +; space of 2000 to prevent some errors that we've seen when +; the spooler runs out of space. + +[printers] + public = yes + min print space = 2000</pre><P CLASS="para"> +Samba will ignore all comment lines in its configuration file; there are no limitations to what can be placed on a comment line after the initial hash mark or semicolon. Note that the line continuation character (<CODE CLASS="literal">\</code>) will <EM CLASS="emphasis"> +not</em> be honored on a commented line. Like the rest of the line, it is ignored.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-955563"> +4.1.1.5 Changes at runtime</a></h4><P CLASS="para">You can modify the <I CLASS="filename"> +smb.conf</i> configuration file and any of its options at any time while the Samba daemons are running. By default, Samba checks the configuration file every 60 seconds for changes. If it finds any, the changes are immediately put into effect. If you don't wish to wait that long, you can force a reload by either sending a SIGHUP signal to the <EM CLASS="emphasis"> +smbd</em> and <EM CLASS="emphasis"> +nmbd</em> processes, or simply restarting the daemons.</p><P CLASS="para"> +For example, if the <EM CLASS="emphasis"> +smbd</em> process was 893, you could force it to reread the configuration file with the following command:</p><PRE CLASS="programlisting"> +<B CLASS="emphasis.bold"><CODE CLASS="literal">#</code> kill -SIGHUP 893</b></pre><P CLASS="para"> +Not all changes will be immediately recognized by clients. For example, changes to a share that is currently in use will not be registered until the client disconnects and reconnects to that share. In addition, server-specific parameters such as the workgroup or NetBIOS name of the server will not register immediately either. This keeps active clients from being suddenly disconnected or encountering unexpected access problems while a session is open.<I CLASS="filename"> +</i> </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-87365"> +4.1.2 Variables</a></h3><P CLASS="para"> +<I CLASS="filename"> +</i>Samba includes a complete set of variables for determining characteristics of the Samba server and the clients to which it connects. Each of these variables begins with a percent sign, followed by a single uppercase or lowercase letter, and can be used only on the right side of a configuration option (e.g., after the equal sign):</p><PRE CLASS="programlisting"> +[pub] + path = /home/ftp/pub/%a </pre><P CLASS="para"> +The <CODE CLASS="literal"> +%a</code> stands for the client machine's architecture (e.g., <CODE CLASS="literal"> +WinNT</code> for Windows NT, <CODE CLASS="literal"> +Win95</code> for Windows 95 or 98, or <CODE CLASS="literal"> +WfWg</code> for Windows for Workgroups). Because of this, Samba will assign a unique path for the <CODE CLASS="literal"> +[pub]</code> share to client machines running Windows NT, a different path for client machines running Windows 95, and another path for Windows for Workgroups. In other words, the paths that each client would see as its share differ according to the client's architecture, as follows:</p><PRE CLASS="programlisting"> +/home/ftp/pub/WinNT +/home/ftp/pub/Win95 +/home/ftp/pub/WfWg</pre><P CLASS="para"> +Using variables in this manner comes in handy if you wish to have different users run custom configurations based on their own unique characteristics or conditions. Samba has 19 variables, as shown in <A CLASS="xref" HREF="ch04_01.html#ch04-10883"> +Table 4.1</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch04-10883"> +Table 4.1: Samba Variables </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Variable</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<B CLASS="emphasis.bold">Client variables</b></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%a</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<I CLASS="filename"> +</i>Client's architecture (e.g., Samba, WfWg, WinNT, Win95, or UNKNOWN)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%I</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Client's IP address (e.g., 192.168.220.100)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal">%m</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Client's NetBIOS name</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%M</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Client's DNS name</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<B CLASS="emphasis.bold">User variables</b></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%g</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Primary group of <CODE CLASS="literal"> +%u</code></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%G</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Primary group of <CODE CLASS="literal"> +%U</code></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%H</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Home directory of <CODE CLASS="literal"> +%u</code></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%u</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current Unix username</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%U</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Requested client username (not always used by Samba)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<B CLASS="emphasis.bold"> +Share variables</b></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%p</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Automounter's path to the share's root directory, if different from <CODE CLASS="literal"> +%P</code></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%P</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current share's root directory</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%S</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current share's name</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<B CLASS="emphasis.bold"> +Server variables</b></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%d</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Current server process ID</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%h</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba server's DNS hostname</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%L</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba server's NetBIOS name</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%N</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Home directory server, from the automount map</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%v</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba version</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<B CLASS="emphasis.bold"> +Miscellaneous variables</b></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%R</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The SMB protocol level that was negotiated</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%T</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The current date and time</p></td></tr></tbody></table><P CLASS="para">Here's another example of using variables: let's say that there are five clients on your network, but one client, <CODE CLASS="literal"> +fred</code>, requires a slightly different <CODE CLASS="literal"> +[homes]</code> configuration loaded when it connects to the Samba server. With Samba, it's simple to attack such a problem: </p><PRE CLASS="programlisting"> +[homes] + ... + include = /usr/local/samba/lib/smb.conf.%m + ...</pre><P CLASS="para"> +The <CODE CLASS="literal"> +include</code> option here causes a separate configuration file for each particular NetBIOS machine (<CODE CLASS="literal">%m</code>) to be read in addition to the current file. If the hostname of the client machine is <CODE CLASS="literal"> +fred</code>, and if a <I CLASS="filename"> +smb.conf.fred</i> file exists in the <CODE CLASS="replaceable"> +<I> +samba_dir</i></code><I CLASS="filename"> +/lib/</i> directory (or whatever directory you've specified for your configuration files), Samba will insert that configuration file into the default one. If any configuration options are restated in <I CLASS="filename"> +smb.conf.fred</i>, those values will override any options previously encountered in that share. Note that we say "previously." If any options are restated in the main configuration file after the <CODE CLASS="literal"> +include</code> option, Samba will honor those restated values for the share in which they are defined.</p><P CLASS="para"> +Here's the important part: if there is no such file, Samba will not generate an error. In fact, it won't do anything at all. This allows you to create only one extra configuration file for <CODE CLASS="literal"> +fred</code> when using this strategy, instead of one for each NetBIOS machine that is on the network.</p><P CLASS="para"> +Machine-specific configuration files can be used both to customize particular clients and to make debugging Samba easier. Consider the latter; if we have one client with a problem, we can use this approach to give it a private log file with a more verbose logging level. This allows us to see what Samba is doing without slowing down all the other clients or overflowing the disk with useless logs. Remember, with large networks you may not always have the option to restart the Samba server to perform debugging!</p><P CLASS="para"> +You can use each of the variables in <A CLASS="xref" HREF="ch04_01.html#ch04-10883"> +Table 4.1</a> to give custom values to a variety of Samba options. We will highlight several of these options as we move through the next few chapters.<I CLASS="filename"> +</i> </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch03_03.html" TITLE="3.3 An Introduction to SMB/CIFS"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 3.3 An Introduction to SMB/CIFS" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_02.html" TITLE="4.2 Special Sections"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.2 Special Sections" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +3.3 An Introduction to SMB/CIFS</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +4.2 Special Sections</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch04_02.html b/docs/htmldocs/using_samba/ch04_02.html new file mode 100644 index 0000000000..d0b554e941 --- /dev/null +++ b/docs/htmldocs/using_samba/ch04_02.html @@ -0,0 +1,211 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 4] 4.2 Special Sections</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:00Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_01.html" TITLE="4.1 Learning the Samba Configuration File"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.1 Learning the Samba Configuration File" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch04_01.html" TITLE="4. Disk Shares "> +Chapter 4<br> +Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_03.html" TITLE="4.3 Configuration File Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.3 Configuration File Options" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch04-81402"> +4.2 Special Sections</a></h2><P CLASS="para"> +<I CLASS="filename"> +</i>Now that we've gotten our feet wet with variables, there are a few special sections of the Samba configuration file that we should talk about. Again, don't worry if you do not understand each and every configuration options listed below; we'll go over each of them over the course of the upcoming chapters.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-943263"> +4.2.1 The [ globals] Section</a></h3><P CLASS="para"> +The <CODE CLASS="literal"> +[globals]</code> section appears in virtually every Samba configuration file, even though it is not mandatory to define one. Any option set in this section of the file will apply to all the other shares, as if the contents of the section were copied into the share itself. There is one catch: other sections can list the same option in their section with a new value; this has the effect of overriding the value specified in the <CODE CLASS="literal"> +[globals]</code> section. </p><P CLASS="para"> +To illustrate this, let's again look at the opening example of the chapter:</p><PRE CLASS="programlisting"> +[global] + log level = 1 + max log size = 1000 + socket options = TCP_NODELAY IPTOS_LOWDELAY + guest ok = no +[homes] + browseable = no + map archive = yes +[printers] + path = /usr/tmp + guest ok = yes + printable = yes + min print space = 2000 +[test] + browseable = yes + read only = yes + guest ok = yes + path = /export/samba/test</pre><P CLASS="para"> +In the previous example, if we were going to connect a client to the <CODE CLASS="literal"> +[test]</code> share, Samba would first read in the <CODE CLASS="literal"> +[globals]</code> section. At that point, it would set the option <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +no</code> as the global default for each share it encounters throughout the configuration file. This includes the <CODE CLASS="literal"> +[homes]</code> and <CODE CLASS="literal"> +[printers]</code> shares. When it reads in the <CODE CLASS="literal"> +[test]</code> share, however, it would then find the configuration option <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code>, and override the default from the <CODE CLASS="literal"> +[globals]</code> section with the value <CODE CLASS="literal"> +yes</code> in the context of the <CODE CLASS="literal"> +[pub]</code> share.</p><P CLASS="para"> +Any option that appears outside of a section (before the first marked section) is also assumed to be a global option.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-942795"> +4.2.2 The [homes] Section</a></h3><P CLASS="para"> +If a client attempts to connect to a share that doesn't appear in the <I CLASS="filename"> +smb.conf</i> file, Samba will search for a <CODE CLASS="literal"> +[homes]</code> share in the configuration file. If one exists, the unidentified share name is assumed to be a Unix username, which is queried in the password database of the Samba server. If that username appears, Samba assumes the client is a Unix user trying to connect to his or her home directory on the server.</p><P CLASS="para"> +For example, assume a client machine is connecting to the Samba server <CODE CLASS="literal"> +hydra</code> for the first time, and tries to connect to a share named [<CODE CLASS="literal">alice]</code>. There is no <CODE CLASS="literal"> +[alice]</code> share defined in the <I CLASS="filename"> +smb.conf</i> file, but there is a <CODE CLASS="literal"> +[homes]</code>, so Samba searches the password database file and finds an <CODE CLASS="literal">alice</code> user account is present on the system. Samba then checks the password provided by the client against user <CODE CLASS="literal">alice</code>'s Unix password - either with the password database file if it's using non-encrypted passwords, or Samba's <I CLASS="filename"> +smbpasswd</i> file if encrypted passwords are in use. If the passwords match, then Samba knows it has guessed right: the user <CODE CLASS="literal">alice</code> is trying to connect to her home directory. Samba will then create a share called <CODE CLASS="literal">[alice]</code> for her.</p><P CLASS="para"> +The process of using the <CODE CLASS="literal"> +[homes]</code> section to create users (and dealing with their passwords) is discussed in more detail in the <a href="ch06_01.html"><b>Chapter 6, <CITE CLASS="chapter">Users, Security, and Domains</cite></b></a>.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-942816"> +4.2.3 The [printers] Section</a></h3><P CLASS="para"> +The third special section is called <CODE CLASS="literal"> +[printers]</code> and is similar to <CODE CLASS="literal"> +[homes]</code>. If a client attempts to connect to a share that isn't in the <I CLASS="filename"> +smb.conf</i> file, and its name can't be found in the password file, Samba will check to see if it is a printer share. Samba does this by reading the printer capabilities file (usually <I CLASS="filename"> +/etc/printcap</i>) to see if the share name appears there.[<A CLASS="footnote" HREF="#ch04-pgfId-960558">1</a>] If it does, Samba creates a share named after the printer.</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch04-pgfId-960558">[1]</a> Depending on your system, this file may not be <EM CLASS="emphasis"> +/etc/printcap</em>. You can use the <EM CLASS="emphasis"> +testparm</em> command that comes with Samba to determine the value of the <CODE CLASS="literal"> +printcap</code> <CODE CLASS="literal"> +name</code> configuration option; this was the default value chosen when Samba was compiled.</p></div></blockquote><P CLASS="para"> +Like <CODE CLASS="literal"> +[homes]</code>, this means you don't have to maintain a share for each of your system printers in the <I CLASS="filename"> +smb.conf</i> file. Instead, Samba honors the Unix printer registry if you request it to, and provides the registered printers to the client machines. There is, however, an obvious limitation: if you have an account named <CODE CLASS="literal"> +fred</code> and a printer named <CODE CLASS="literal"> +fred</code>, Samba will always find the user account first, even if the client really needed to connect to the printer.</p><P CLASS="para"> +The process of setting up the <CODE CLASS="literal"> +[printers]</code> share is discussed in more detail in <a href="ch07_01.html"><b>Chapter 7, <CITE CLASS="chapter">Printing and Name Resolution</cite></b></a>.<I CLASS="filename"> +</i> </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-968226"> +4.2.4 Configuration Options</a></h3><P CLASS="para"> +<I CLASS="filename"> +</i>Options in the Samba configuration files fall into one of two categories: <I CLASS="firstterm"> +global</i> or <I CLASS="firstterm"> +share</i>. Each category dictates where an option can appear in the configuration file.</p><DL CLASS="variablelist"> +<DT CLASS="term"> +Global</dt><DD CLASS="listitem"> +<P CLASS="para">Global options <EM CLASS="emphasis"> +must</em> appear in the <CODE CLASS="literal"> +[global]</code> section and nowhere else. These are options that typically apply to the behavior of the Samba server itself, and not to any of its shares.</p></dd><DT CLASS="term"> +Share</dt><DD CLASS="listitem"> +<P CLASS="para">Share options can appear in specific shares, or they can appear in the <CODE CLASS="literal"> +[global]</code> section. If they appear in the <CODE CLASS="literal"> +[global]</code> section, they will define a default behavior for all shares, unless a share overrides the option with a value of its own.</p></dd></dl><P CLASS="para"> +In addition, the values that a configuration option can take can be divided into four categories. They are as follows:</p><DL CLASS="variablelist"> +<DT CLASS="term"> +Boolean</dt><DD CLASS="listitem"> +<P CLASS="para">These are simply yes or no values, but can be represented by any of the following: <CODE CLASS="literal"> +yes</code>, <CODE CLASS="literal"> +no</code>, <CODE CLASS="literal"> +true</code>, <CODE CLASS="literal"> +false</code>, <CODE CLASS="literal"> +0</code>, <CODE CLASS="literal"> +1</code>. The values are case insensitive: <CODE CLASS="literal"> +YES</code> is the same as <CODE CLASS="literal"> +yes</code>.</p></dd><DT CLASS="term"> +Numerical</dt><DD CLASS="listitem"> +<P CLASS="para">An integer, hexidecimal, or octal number. The standard <CODE CLASS="literal"> +0x</code><EM CLASS="emphasis"> +nn</em> syntax is used for hexadecimal and <CODE CLASS="literal"> +0</code><EM CLASS="emphasis"> +nnn</em> for octal.</p></dd><DT CLASS="term"> +String</dt><DD CLASS="listitem"> +<P CLASS="para"> +A string of case-sensitive characters, such as a filename or a username.</p></dd><DT CLASS="term"> +Enumerated list</dt><DD CLASS="listitem"> +<P CLASS="para"> +A finite list of known values. In effect, a boolean is an enumerated list with only two values.<I CLASS="filename"> +</i> </p></dd></dl></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_01.html" TITLE="4.1 Learning the Samba Configuration File"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.1 Learning the Samba Configuration File" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_03.html" TITLE="4.3 Configuration File Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.3 Configuration File Options" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +4.1 Learning the Samba Configuration File</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +4.3 Configuration File Options</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch04_03.html b/docs/htmldocs/using_samba/ch04_03.html new file mode 100644 index 0000000000..3e5ae73865 --- /dev/null +++ b/docs/htmldocs/using_samba/ch04_03.html @@ -0,0 +1,190 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 4] 4.3 Configuration File Options</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:06Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_02.html" TITLE="4.2 Special Sections"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.2 Special Sections" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch04_01.html" TITLE="4. Disk Shares "> +Chapter 4<br> +Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_04.html" TITLE="4.4 Server Configuration"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.4 Server Configuration" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch04-46076"> +4.3 Configuration File Options</a></h2><P CLASS="para"> +Samba has well over 200 configuration options at its disposal. So let's start off easy by introducing some of the options you can use to modify the configuration file itself. </p><P CLASS="para"> +As we hinted earlier in the chapter, configuration files are by no means static. You can instruct Samba to include or even replace configuration options as it is processing them. The options to do this are summarized in <A CLASS="xref" HREF="ch04_03.html#ch04-94939"> +Table 4.2</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch04-94939"> +Table 4.2: Configuration File Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +config file</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the location of a configuration file to use instead of the current one.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +include</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies an additional segment of configuration options to be included at this point in the configuration file.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +copy</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (name of share)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Allows you to clone the configuration options of another share in the current share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-960146"> +4.3.1 config file</a></h3><P CLASS="para"> +The global <CODE CLASS="literal"> +config</code> <CODE CLASS="literal"> +file</code> option specifies a replacement configuration file that will be loaded when the option is encountered. If the target file exists, the remainder of the current configuration file, as well as the options encounter so far, will be discarded; Samba will configure itself entirely with the options in the new file. The <CODE CLASS="literal"> +config</code> <CODE CLASS="literal"> +file</code> option takes advantage of the variables above, which is useful in the event that you want load a special configuration file based on the machine name or user of the client that it connecting. </p><P CLASS="para"> +For example, the following line instructs Samba to use a configuration file specified by the NetBIOS name of the client connecting, if such a file exists. If it does, options specified in the original configuration file are ignored. The following example attempts to lead a new configuration file based on the client's NetBIOS name: </p><PRE CLASS="programlisting"> +[global] + config file = /usr/local/samba/lib/smb.conf.%m</pre><P CLASS="para"> +If the configuration file specified does not exist, the option is ignored and Samba will continue to configure itself based on the current file.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-960151"> +4.3.2 include</a></h3><P CLASS="para"> +This option, discussed in greater detail earlier, copies the target file into the current configuration file at the point specified, as shown in <A CLASS="xref" HREF="ch04_03.html#ch04-97340"> +Figure 4.1</a>. This option also takes advantage of the variables specified earlier in the chapter, which is useful in the event that you want load configuration options based on the machine name or user of the client that it connecting. You can use this option as follows:</p><PRE CLASS="programlisting"> +[global] + include = /usr/local/samba/lib/smb.conf.%m</pre><P CLASS="para"> +If the configuration file specified does not exist, the option is ignored. Remember that any option specified previously is overridden. In <A CLASS="xref" HREF="ch04_03.html#ch04-97340"> +Figure 4.1</a>, all three options will override their previous values. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch04-97340"> +Figure 4.1: The include option in a Samba configuration file</a></h4><IMG CLASS="graphic" SRC="figs/sam.0401.gif" ALT="Figure 4.1"><P CLASS="para"> +The <CODE CLASS="literal"> +include</code> option cannot understand the variables <CODE CLASS="literal"> +%u</code> (user), <CODE CLASS="literal"> +%p</code> (current share's rout directory), or <CODE CLASS="literal"> +%s</code> (current share) because they are not set at the time the file is read.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-960290"> +4.3.3 copy</a></h3><P CLASS="para"> +The <CODE CLASS="literal"> +copy</code> configuration option allows you to clone the configuration options of the share name that you specify in the current share. The target share must appear earlier in the configuration file than the share that is performing the copy. For example:</p><PRE CLASS="programlisting"> +[template] + writable = yes + browsable = yes + valid users = andy, dave, peter + +[data] + path = /usr/local/samba + copy = template</pre><P CLASS="para"> +Note that any options in the share that invoked the <CODE CLASS="literal"> +copy</code> directive will override those in the cloned share; it does not matter whether they appear before or after the <CODE CLASS="literal"> +copy</code><I CLASS="filename"> +</i> directive.<I CLASS="filename"> +</i> </p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_02.html" TITLE="4.2 Special Sections"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.2 Special Sections" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_04.html" TITLE="4.4 Server Configuration"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.4 Server Configuration" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +4.2 Special Sections</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +4.4 Server Configuration</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch04_04.html b/docs/htmldocs/using_samba/ch04_04.html new file mode 100644 index 0000000000..5eac6db9e5 --- /dev/null +++ b/docs/htmldocs/using_samba/ch04_04.html @@ -0,0 +1,214 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 4] 4.4 Server Configuration</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:07Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_03.html" TITLE="4.3 Configuration File Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.3 Configuration File Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch04_01.html" TITLE="4. Disk Shares "> +Chapter 4<br> +Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_05.html" TITLE="4.5 Disk Share Configuration"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.5 Disk Share Configuration" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch04-71382"> +4.4 Server Configuration</a></h2><P CLASS="para">Now it's time to begin configuring your Samba server. Let's introduce three basic configuration options that can appear in the <CODE CLASS="literal"> +[global]</code> section of your <I CLASS="filename"> +smb.conf</i> file:</p><PRE CLASS="programlisting"> +[global] + # Server configuration parameters + netbios name = HYDRA + server string = Samba %v on (%L) + workgroup = SIMPLE</pre><P CLASS="para"> +This configuration file is pretty simple; it advertises the Samba server on a NBT network under the NetBIOS name <CODE CLASS="literal"> +hydra</code>. In addition, the machine belongs to the workgroup SIMPLE and displays a description to clients that includes the Samba version number as well as the NetBIOS name of the Samba server.</p><P CLASS="para"> +If you had to enter <CODE CLASS="literal"> +encrypt passwords=yes </code>in your earlier configuration file, you should do so here as well.</p><P CLASS="para"> +Go ahead and try this configuration file. Create a file named <I CLASS="filename"> +smb.conf</i> under the <I CLASS="filename"> +/usr/local/samba/lib</i> directory with the text listed above. Then reset the Samba server and use a Windows client to verify the results. Be sure that your Windows clients are in the SIMPLE workgroup as well. After clicking on the Network Neighborhood on a Windows client, you should see a window similar to <A CLASS="xref" HREF="ch04_04.html#ch04-38915"> +Figure 4.2</a>. (In this figure, <CODE CLASS="literal"> +phoenix</code> and <CODE CLASS="literal"> +chimaera</code> are our Windows clients.) </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch04-38915"> +Figure 4.2: Network Neighborhood showing the Samba server</a></h4><IMG CLASS="graphic" SRC="figs/sam.0402.gif" ALT="Figure 4.2"><P CLASS="para"> +You can verify the <CODE CLASS="literal"> +server</code> <CODE CLASS="literal"> +string</code> by listing the details of the Network Neighborhood window (select the Details menu item under the View menu), at which point you should see a window similar to <A CLASS="xref" HREF="ch04_04.html#ch04-50900"> +Figure 4.3</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch04-50900"> +Figure 4.3: Network Neighborhood details listing</a></h4><IMG CLASS="graphic" SRC="figs/sam.0403.gif" ALT="Figure 4.3"><P CLASS="para"> +If you were to click on the Hydra icon, a window should appear that shows the services that it provides. In this case, the window would be completely empty because there are no shares on the server yet.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-961293"> +4.4.1 Server Configuration Options</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="ch04_04.html#ch04-61150">Table 4.3</a> summarizes the server configuration options introduced previously. Note that all three of these options are global in scope; in other words, they must appear in the <CODE CLASS="literal"> +[global]</code> section of the configuration file. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch04-61150"> +Table 4.3: Server Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +netbios name</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the primary NetBIOS name of the Samba server.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Server DNS hostname</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +server string</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a descriptive string for the Samba server.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +Samba %v</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +workgroup</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the NetBIOS group of machines that the server belongs to.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Defined at compile time</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-955762"> +4.4.1.1 netbios name</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +netbios</code> <CODE CLASS="literal"> +name</code> option allows you to set the NetBIOS name of the server. For example:</p><PRE CLASS="programlisting"> +netbios name = YORKVM1</pre><P CLASS="para"> +The default value for this configuration option is the server's hostname; that is, the first part of its complete DNS machine name. For example, a machine with the DNS name <CODE CLASS="literal"> +ruby.ora.com</code> would be given the NetBIOS name <CODE CLASS="literal"> +RUBY</code> by default. While you can use this option to restate the machine's NetBIOS name in the configuration file (as we did previously), it is more commonly used to assign the Samba server a NetBIOS name other than its current DNS name. Remember that the name given must follow the rules for valid NetBIOS machine names as outlines in <a href="ch01_01.html"><b>Chapter 1, <CITE CLASS="chapter">Learning the Samba</cite></b></a>.</p><P CLASS="para"> +Changing the NetBIOS name of the server is not recommended unless you have a good reason. One such reason might be if the hostname of the machine is not unique because the LAN is divided over two or more DNS domains. For example, YORKVM1 is a good NetBIOS candidate for <i>vm1.york.example.com</i> to differentiate it from <EM CLASS="emphasis"> +vm1.falkirk.example.com</em>, which has the same hostname but resides in a different DNS domain.</p><P CLASS="para"> +Another use of this option is for relocating SMB services from a dead or retired machine. For example, if <CODE CLASS="literal"> +SALES</code> is the SMB server for the department, and it suddenly dies, you could immediately reset <CODE CLASS="literal"> +netbios</code> <CODE CLASS="literal"> +name</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +SALES</code> on a backup Samba machine that's taking over for it. Users won't have to change their drive mappings to a different machine; new connections to <CODE CLASS="literal"> +SALES</code> will simply go to the new machine.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-955977"> +4.4.1.2 server string</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +server</code> <CODE CLASS="literal"> +string</code> parameter defines a comment string that will appear next to the server name in both the Network Neighborhood (when shown with the Details menu) and the comment entry of the Microsoft Windows print manager. You can use the standard variables to provide information in the description. For example, our entry earlier was:</p><PRE CLASS="programlisting"> +[global] + server string = Samba %v on (%h)</pre><P CLASS="para"> +The default for this option simply presents the current version of Samba and is equivalent to:</p><PRE CLASS="programlisting"> +server string = Samba %v</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-955973"> +4.4.1.3 workgroup</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +workgroup</code> parameter sets the current workgroup where the Samba server will advertise itself. Clients that wish to access shares on the Samba server should be on the same NetBIOS workgroup. Remember that workgroups are really just NetBIOS group names, and must follow the standard NetBIOS naming conventions outlined in <a href="ch01_01.html"><b>Chapter 1</b></a>. For example:</p><PRE CLASS="programlisting"> +[global] + workgroup = SIMPLE</pre><P CLASS="para"> +The default option for this parameter is set at compile time. If the entry is not changed in the makefile, it will be <CODE CLASS="literal"> +WORKGROUP</code>. Because this tends to be the workgroup name of every unconfigured NetBIOS network, we recommend that you always set your workgroup name in the Samba configuration file.[<A CLASS="footnote" HREF="#ch04-pgfId-962322">2</a>] </p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch04-pgfId-962322">[2]</a> We should also mention that it is an inherently bad idea to have a workgroup that shares the same name as a server.</p></div></blockquote></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_03.html" TITLE="4.3 Configuration File Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.3 Configuration File Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_05.html" TITLE="4.5 Disk Share Configuration"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.5 Disk Share Configuration" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +4.3 Configuration File Options</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +4.5 Disk Share Configuration</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch04_05.html b/docs/htmldocs/using_samba/ch04_05.html new file mode 100644 index 0000000000..ecb8acfebf --- /dev/null +++ b/docs/htmldocs/using_samba/ch04_05.html @@ -0,0 +1,309 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 4] 4.5 Disk Share Configuration</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:13Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_04.html" TITLE="4.4 Server Configuration"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.4 Server Configuration" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch04_01.html" TITLE="4. Disk Shares "> +Chapter 4<br> +Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_06.html" TITLE="4.6 Networking Options with Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.6 Networking Options with Samba" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch04-14274"> +4.5 Disk Share Configuration</a></h2><P CLASS="para">We mentioned in the previous section that there were no disk shares on the <CODE CLASS="literal"> +hydra</code> server. Let's continue with the configuration file and create an empty disk share called [<CODE CLASS="literal">data</code>]. Here are the additions that will do it:</p><PRE CLASS="programlisting"> +[global] + netbios name = HYDRA + server string = Samba %v on (%L) + workgroup = SIMPLE + +[data] + path = /export/samba/data + comment = Data Drive + volume = Sample-Data-Drive + writeable = yes + guest ok = yes</pre><P CLASS="para"> +The <CODE CLASS="literal"> +[data]</code> share is typical for a Samba disk share. The share maps to a directory on the Samba server: <I CLASS="filename"> +/export/samba/data</i>. We've also provided a comment that describes the share as a <CODE CLASS="literal"> +Data</code> <CODE CLASS="literal"> +Drive</code>, as well as a volume name for the share itself.</p><P CLASS="para"> +The share is set to writeable so that users can write data to it; the default with Samba is to create a read-only share. As a result, this option needs to be explicitly set for each disk share you wish to make writeable.</p><P CLASS="para"> +You may have noticed that we set the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> parameter to <CODE CLASS="literal"> +yes</code>. While this isn't very security-conscious, there are some password issues that we need to understand before setting up individual users and authentication. For the moment, this will sidestep those issues and let anyone connect to the share.</p><P CLASS="para"> +Go ahead and make these additions to your configuration file. In addition, create the <I CLASS="filename"> +/export/samba/data</i> directory as root on your Samba machine with the following commands:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">#</code> mkdir /export/samba/data</b><B CLASS="emphasis.bold"> +<CODE CLASS="literal"># </code>chmod 777 /export/samba/data</b></pre><P CLASS="para"> +Now, if you connect to the <CODE CLASS="literal"> +hydra</code> server again (you can do this by clicking on its icon in the Windows Network Neighborhood), you should see a single share listed entitled <CODE CLASS="literal"> +data</code>, as shown in <A CLASS="xref" HREF="ch04_05.html#ch04-13866"> +Figure 4.4</a>. This share should also have read/write access to it. Try creating or copying a file into the share. Or, if you're really feeling adventurous, you can even try mapping a network drive to it! </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch04-13866"> +Figure 4.4: The initial data share on the Samba server</a></h4><IMG CLASS="graphic" SRC="figs/sam.0404.gif" ALT="Figure 4.4"><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-961433"> +4.5.1 Disk Share Configuration Options</a></h3><P CLASS="para">The basic Samba configuration options for disk shares previously introduced are listed in <A CLASS="xref" HREF="ch04_05.html#ch04-82964"> +Table 4.4</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch04-82964"> +Table 4.4: Basic Share Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +path (directory)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the Unix directory that will be provided for a disk share or used for spooling by a printer share</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +/tmp</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +guest ok (public)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, authentication is not needed to access this share</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +comment</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the comment that appears with the share</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +volume</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the volume name: the DOS name of the physical drive</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share name</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +read only</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, allows read only access to a share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +writeable (write ok)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +no</code>, allows read only access to a share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-959473"> +4.5.1.1 path</a></h4><P CLASS="para">This option, which has the synonym <CODE CLASS="literal"> +directory</code>, indicates the pathname at the root of the file or printing share. You can choose any path on the Samba server, so long as the owner of the Samba process that is connecting has read and write access to that directory. If the path is for a printing share, it should point to a temporary directory where files can be written on the server before being spooled to the target printer (<I CLASS="filename">/tmp</i> and <I CLASS="filename"> +/var/spool</i> are popular choices). If this path is for a disk share, the contents of the folder representing the share name on the client will match the content of the directory on the Samba server. For example, if we have the following disk share listed in our configuration file:</p><PRE CLASS="programlisting"> +[network] + path = /export/samba/network + writable = yes +<CODE CLASS="literal"> + guest ok = yes</code></pre><P CLASS="para"> +And the contents of the directory <I CLASS="filename"> +/usr/local/network</i> on the Unix side are:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">$</code> ls -al /export/samba/network</b> +</pre><PRE CLASS="programlisting"> +drwxrwxrwx 9 root nobody 1024 Feb 16 17:17 . +drwxr-xr-x 9 nobody nobody 1024 Feb 16 17:17 .. +drwxr-xr-x 9 nobody nobody 1024 Feb 16 17:17 quicken +drwxr-xr-x 9 nobody nobody 1024 Feb 16 17:17 tax98 +drwxr-xr-x 9 nobody nobody 1024 Feb 16 17:17 taxdocuments</pre><P CLASS="para"> +Then we should see the equivalent of <A CLASS="xref" HREF="ch04_05.html#ch04-88746"> +Figure 4.5</a> on the client side. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch04-88746"> +Figure 4.5: Windows client view of a network filesystem specified by path</a></h4><IMG CLASS="graphic" SRC="figs/sam.0405.gif" ALT="Figure 4.5"></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-943587"> +4.5.1.2 guest ok</a></h4><P CLASS="para"> +This option (which has an older synonym <CODE CLASS="literal"> +public</code>) allows or prohibits guest access to a share. The default value is <CODE CLASS="literal"> +no</code>. If set to <CODE CLASS="literal"> +yes</code>, it means that no username or password will be needed to connect to the share. When a user connects, the access rights will be equivalent to the designated guest user. The default account to which Samba offers the share is <CODE CLASS="literal"> +nobody</code>. However, this can be reset with the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +account</code> configuration option. For example, the following lines allow guest user access to the <CODE CLASS="literal"> +[accounting]</code> share with the permissions of the <EM CLASS="emphasis"> +ftp</em> account:</p><PRE CLASS="programlisting"> +[global] + guest account = ftp +[accounting] + path = /usr/local/account + guest ok = yes</pre><P CLASS="para"> +Note that users can still connect to the share using a valid username/password combination. If successful, they will hold the access rights granted by their own account and not the guest account. If a user attempts to log in and fails, however, he or she will default to the access rights of the guest account. You can mandate that every user who attaches to the share will be using the guest account (and will have the permissions of the guest) by setting the option <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +only</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-943593"> +4.5.1.3 comment</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +comment</code> option allows you to enter a comment that will be sent to the client when it attempts to browse the share. The user can see the comment by listing Details on the share folder under the appropriate computer in the Windows Network Neighborhood, or type the command <CODE CLASS="literal"> +NET</code> <CODE CLASS="literal"> +VIEW</code> at an MS-DOS prompt. For example, here is how you might insert a comment for a <CODE CLASS="literal"> +[network]</code> share:</p><PRE CLASS="programlisting"> +[network] + comment = Network Drive + path = /export/samba/network</pre><P CLASS="para"> +This yields a folder similar to <A CLASS="xref" HREF="ch04_05.html#ch04-34850"> +Figure 4.6</a> on the client side. Note that with the current configuration of Windows, this comment will not be shown once a share is mapped to a Windows network drive. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch04-34850"> +Figure 4.6: Windows client view of a share comment</a></h4><IMG CLASS="graphic" SRC="figs/sam.0406.gif" ALT="Figure 4.6"><P CLASS="para"> +Be sure not to confuse the <CODE CLASS="literal"> +comment</code> option, which documents a Samba server's shares, with the <CODE CLASS="literal"> +server</code> <CODE CLASS="literal"> +string</code> option, which documents the server itself.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-967445"> +4.5.1.4 volume</a></h4><P CLASS="para"> +This option allows you to specify the volume name of the share as reported by SMB. This normally resolves to the name of the share given in the <I CLASS="filename"> +smb.conf</i> file. However, if you wish to name it something else (for whatever reason) you can do so with this option.</p><P CLASS="para"> +For example, an installer program may check the volume name of a CD-ROM to make sure the right CD-ROM is in the drive before attempting to install it. If you copy the contents of the CD-ROM into a network share, and wish to install from there, you can use this option to get around the issue:</p><PRE CLASS="programlisting"> +[network] + comment = Network Drive + volume = ASVP-102-RTYUIKA + path = /home/samba/network</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-952861"> +4.5.1.5 read only and writeable</a></h4><P CLASS="para"> +The options <CODE CLASS="literal"> +read</code> <CODE CLASS="literal"> +only</code> and <CODE CLASS="literal"> +writeable</code> (or <CODE CLASS="literal"> +write</code> <CODE CLASS="literal"> +ok</code>) are really two ways of saying the same thing, but approached from opposite ends. For example, you can set either of the following options in the <CODE CLASS="literal"> +[global]</code> section or in an individual share:</p><PRE CLASS="programlisting"> +read only = yes +writeable = no</pre><P CLASS="para"> +If either option is set as shown, data can be read from a share, but cannot be written to it. You might think you would need this option only if you were creating a read-only share. However, note that this read-only behavior is the <EM CLASS="emphasis"> +default</em> action for shares; if you want to be able to write data to a share, you must explicitly specify one of the following options in the configuration file for each share:</p><PRE CLASS="programlisting"> +read only = no +writeable = yes</pre><P CLASS="para"> +Note that if you specify more than one occurrence of either option, Samba will adhere to the last value it encounters for the share. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_04.html" TITLE="4.4 Server Configuration"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.4 Server Configuration" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_06.html" TITLE="4.6 Networking Options with Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.6 Networking Options with Samba" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +4.4 Server Configuration</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +4.6 Networking Options with Samba</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch04_06.html b/docs/htmldocs/using_samba/ch04_06.html new file mode 100644 index 0000000000..897523cc55 --- /dev/null +++ b/docs/htmldocs/using_samba/ch04_06.html @@ -0,0 +1,414 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 4] 4.6 Networking Options with Samba</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:15Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_05.html" TITLE="4.5 Disk Share Configuration"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.5 Disk Share Configuration" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch04_01.html" TITLE="4. Disk Shares "> +Chapter 4<br> +Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_07.html" TITLE="4.7 Virtual Servers"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.7 Virtual Servers" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch04-86705"> +4.6 Networking Options with Samba</a></h2><P CLASS="para">If you're running Samba on a multi-homed machine (that is, one on multiple subnets), or even if you want to implement a security policy on your own subnet, you should take a close look at the networking configuration options: </p><P CLASS="para"> +For the purposes of this exercise, let's assume that our Samba server is connected to a network with more than one subnet. Specifically, the machine can access both the 192.168.220.* and 134.213.233.* subnets. Here are our additions to the ongoing configuration file for the networking configuration options:</p><PRE CLASS="programlisting"> +[global] + netbios name = HYDRA + server string = Samba %v on (%L) + workgroup = SIMPLE + + # Networking configuration options + hosts allow = 192.168.220. 134.213.233. localhost + hosts deny = 192.168.220.102 + interfaces = 192.168.220.100/255.255.255.0 \ + 134.213.233.110/255.255.255.0 + bind interfaces only = yes + +[data] + path = /home/samba/data + guest ok = yes + comment = Data Drive + volume = Sample-Data-Drive + writeable = yes + </pre><P CLASS="para">Let's first talk about the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> and <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> options. If these options sound familiar, you're probably thinking of the <I CLASS="filename"> +hosts.allow</i> and <I CLASS="filename"> +hosts.deny</i> files that are found in the <I CLASS="filename"> +/etc</i> directories of many Unix systems. The purpose of these options is identical to those files; they provide a means of security by allowing or denying the connections of other hosts based on their IP addresses. Why not just use the <I CLASS="filename"> +hosts.allow</i> and <I CLASS="filename"> +hosts.deny</i> files themselves? Because there may be services on the server that you want others to access without giving them access Samba's disk or printer shares</p><P CLASS="para"> +With the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> option above, we've specified a cropped IP address: 192.168.220. (Note that there is still a third period; it's just missing the fourth number.) This is equivalent to saying: "All hosts on the 192.168.220 subnet." However, we've explicitly specified in a hosts deny line that 192.168.220.102 is not to be allowed access.</p><P CLASS="para"> +You might be wondering: why will 192.168.220.102 be denied even though it is still in the subnet matched by the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> option? Here is how Samba sorts out the rules specified by <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> and <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code>:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-961914"> +</a>If there are no <CODE CLASS="literal"> +allow</code> or <CODE CLASS="literal"> +deny</code> options defined anywhere in <I CLASS="filename"> +smb.conf</i>, Samba will allow connections from any machine allowed by the system itself.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-961915"> +</a>If there are <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> or <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> options defined in the <CODE CLASS="literal"> +[global]</code> section of <I CLASS="filename"> +smb.conf</i>, they will apply to all shares, even if the shares have an overriding option defined.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-961916"> +</a>If there is only a <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> option defined for a share, only the hosts listed will be allowed to use the share. All others will be denied.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-961917"> +</a>If there is only a <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> option defined for a share, any machine which is not on the list will be able to use the share.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-961918"> +</a>If both a <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> and <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> option are defined, a host must appear in the allow list and not appear in the deny list (in any form) in order to access the share. Otherwise, the host will not be allowed.</p><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> Take care that you don't explicitly allow a host to access a share, but then deny access to the entire subnet of which the host is part.</p></blockquote></li></ol><P CLASS="para"> +Let's look at another example of that final item. Consider the following options:</p><PRE CLASS="programlisting"> +hosts allow = 111.222. +hosts deny = 111.222.333.</pre><P CLASS="para"> +In this case, only the hosts that belong to the subnet 111.222.*.* will be allowed access to the Samba shares. However, if a client belongs to the 111.222.333.* subnet, it will be denied access, even though it still matches the qualifications outlined by <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code>. The client must appear on the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> list and <EM CLASS="emphasis"> +must not</em> appear on the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> list in order to gain access to a Samba share. If a computer attempts to access a share to which it is not allowed access, it will receive an error message.</p><P CLASS="para"> +The other two options that we've specified are the <CODE CLASS="literal"> +interfaces</code> and the <CODE CLASS="literal"> +bind</code> <CODE CLASS="literal"> +interface</code> <CODE CLASS="literal"> +only</code> address. Let's look at the <CODE CLASS="literal"> +interfaces</code> option first. Samba, by default, sends data only from the primary network interface, which in our example is the 192.168.220.100 subnet. If we would like it to send data to more than that one interface, we need to specify the complete list with the <CODE CLASS="literal"> +interfaces</code> option. In the previous example, we've bound Samba to interface with both subnets (192.168.220 and 134.213.233) on which the machine is operating by specifying the other network interface address: 134.213.233.100. If you have more than one interface on your computer, you should always set this option as there is no guarantee that the primary interface that Samba chooses will be the right one.</p><P CLASS="para"> +Finally, the <CODE CLASS="literal"> +bind</code> <CODE CLASS="literal"> +interfaces</code> <CODE CLASS="literal"> +only</code> option instructs the <I CLASS="filename"> +nmbd</i> process not to accept any broadcast messages other than those subnets specified with the <CODE CLASS="literal"> +interfaces</code> option. Note that this is different from the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> and <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> options, which prevent machines from making connections to services, but not from receiving broadcast messages. Using the <CODE CLASS="literal"> +bind</code> <CODE CLASS="literal"> +interfaces</code> <CODE CLASS="literal"> +only</code> option is a way to shut out even datagrams from foreign subnets from being received by the Samba server. In addition, it instructs the <EM CLASS="emphasis"> +smbd </em>process to bind to only the interface list given by the <EM CLASS="emphasis"> +interfaces</em> option. This restricts the networks that Samba will serve.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-961674"> +4.6.1 Networking Options</a></h3><P CLASS="para">The networking options we introduced above are summarized in <A CLASS="xref" HREF="ch04_06.html#ch04-32963"> +Table 4.5</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch04-32963"> +Table 4.5: Networking Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +hosts allow (allow hosts)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of hostnames)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the machines that can connect to Samba.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +none</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +hosts deny (deny hosts)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of hostnames)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the machines that cannot connect to Samba.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +none</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +interfaces</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of IP/netmask combinations)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the network interfaces Samba will respond to. Allows correcting defaults.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +system-dependent</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +bind</code></p><P CLASS="para"> +<CODE CLASS="literal"> +interfaces only</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, Samba will bind only to those interfaces specified by the <CODE CLASS="literal"> +interfaces</code> option.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +socket</code></p><P CLASS="para"> +<CODE CLASS="literal"> +address</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (IP address)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets IP address to listen on, for use with multiple virtual interfaces on a server.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +none</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-961754"> +4.6.1.1 hosts allow</a></h4><P CLASS="para">The <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> option (sometimes written as <CODE CLASS="literal"> +allow</code> <CODE CLASS="literal"> +hosts</code>) specifies the machines that have permission to access shares on the Samba server, written as a comma- or space-separated list of names of machines or their IP addresses. You can gain quite a bit of security by simply placing your LAN's subnet address in this option. For example, we specified the following in our example:</p><PRE CLASS="programlisting"> +hosts allow = 192.168.220. localhost</pre><P CLASS="para"> +Note that we placed <CODE CLASS="literal"> +localhost</code> after the subnet address. One of the most common mistakes when attempting to use the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> option is to accidentally disallow the Samba server from communicating with itself. The <I CLASS="filename"> +smbpasswd</i> program will occasionally need to connect to the Samba server as a client in order to change a user's encrypted password. In addition, local browsing propagation requires local host access. If this option is enabled and the localhost address is not specified, the locally-generated packets requesting the change of the encrypted password will be discarded by Samba, and browsing propagation will not work properly. To avoid this, explicitly allow the loopback address (either <CODE CLASS="literal"> +localhost</code> or <CODE CLASS="literal"> +127.0.0.1</code>) to be used.[<A CLASS="footnote" HREF="#ch04-pgfId-965714">3</a>] </p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch04-pgfId-965714">[3]</a> Starting with Samba 2.0.5, <CODE CLASS="literal"> +localhost</code> will automatically be allowed unless it is explicitly denied.</p></div></blockquote><P CLASS="para"> +You can specify any of the following formats for this option: </p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-959824"> +</a>Hostnames, such as <CODE CLASS="literal"> +ftp.example.com</code>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-959825"> +</a>IP addresses, like <CODE CLASS="literal"> +130.63.9.252</code>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-959826"> +</a>Domain names, which can be differentiated from individual hostnames because they start with a dot. For example, <CODE CLASS="literal">.ora.com</code> represents all machines within the <EM CLASS="emphasis"> +ora.com</em> domain.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-959827"> +</a>Netgroups, which start with an at-sign, such as <CODE CLASS="literal"> +@printerhosts</code>. Netgroups are available on systems running yellow pages/NIS or NIS+, but rarely otherwise. If netgroups are supported on your system, there should be a <CODE CLASS="literal"> +netgroups</code> manual page that describes them in more detail.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-959828"> +</a>Subnets, which end with a dot. For example, <CODE CLASS="literal"> +130.63.9.</code> means all the machines whose IP addresses begin with 130.63.9.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-959830"> +</a>The keyword <CODE CLASS="literal"> +ALL</code>, which allows any client access.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch04-pgfId-959831"> +</a>The keyword <CODE CLASS="literal"> +EXCEPT</code> followed by more one or more names, IP addresses, domain names, netgroups, or subnets. For example, you could specify that Samba allow all hosts except those on the 192.168.110 subnet with <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +ALL</code> <CODE CLASS="literal"> +EXCEPT</code> <CODE CLASS="literal"> +192.168.110.</code> (remember the trailing dot).</p></li></ul><P CLASS="para"> +Using the <CODE CLASS="literal"> +ALL</code> keyword is almost always a bad idea, since it means that anyone on any network can browse your files if they guess the name of your server. </p><P CLASS="para"> +Note that there is no default value for the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> configuration option, although the default course of action in the event that neither option is specified is to allow access from all sources. In addition, if you specify this option in the <CODE CLASS="literal"> +[global]</code> section of the configuration file, it will override any <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> options defined shares.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-959836"> +4.6.1.2 hosts deny</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> option (also <CODE CLASS="literal"> +deny</code> <CODE CLASS="literal"> +hosts</code>) specifies machines that do not have permission to access a share, written as a comma- or space-separated list of machine names or their IP addresses. Use the same format as specifying clients as the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> option above. For example, to restrict access to the server from everywhere but <I CLASS="filename"> +example.com</i>, you could write:</p><PRE CLASS="programlisting"> +hosts deny = ALL EXCEPT .example.com</pre><P CLASS="para"> +Like <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code>, there is no default value for the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> configuration option, although the default course of action in the event that neither option is specified is to allow access from all sources. Also, if you specify this option in the <CODE CLASS="literal"> +[global]</code> section of the configuration file, it will override any <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> options defined in shares. If you wish to deny <EM CLASS="emphasis"> +hosts</em> access to specific shares, omit both the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> and <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> options in the <CODE CLASS="literal"> +[global]</code> section of the configuration file.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-958192"> +4.6.1.3 interfaces</a></h4><P CLASS="para">The <CODE CLASS="literal"> +interfaces</code> option outlines the network addresses to which you want the Samba server to recognize and respond. This option is handy if you have a computer that resides on more than one network subnet. If this option is not set, Samba searches for the primary network interface of the server (typically the first Ethernet card) upon startup and configures itself to operate on only that subnet. If the server is configured for more than one subnet and you do not specify this option, Samba will only work on the first subnet it encounters. You must use this option to force Samba to serve the other subnets on your network.</p><P CLASS="para"> +The value of this option is one or more sets of IP address/netmask pairs, such as the following:</p><PRE CLASS="programlisting"> +interfaces = 192.168.220.100/255.255.255.0 192.168.210.30/255.255.255.0</pre><P CLASS="para"> +You can optionally specify a CIDR format bitmask, as follows:</p><PRE CLASS="programlisting"> +interfaces = 192.168.220.100/24 192.168.210.30/24</pre><P CLASS="para"> +The bitmask number specifies the first number of bits that will be turned on in the netmask. For example, the number 24 means that the first 24 (of 32) bits will be activated in the bit mask, which is the same as saying 255.255.255.0. Likewise, 16 would be equal to 255.255.0.0, and 8 would be equal to 255.0.0.0.</p><P CLASS="para"> +This option may not work correctly if you are using DHCP.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-968052"> +4.6.1.4 bind interfaces only</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +bind</code> <CODE CLASS="literal"> +interfaces</code> <CODE CLASS="literal"> +only</code> option can be used to force the <EM CLASS="emphasis"> +smbd</em> and <EM CLASS="emphasis"> +nmbd</em> processes to serve SMB requests to only those addresses specified by the <CODE CLASS="literal"> +interfaces</code> option. The <EM CLASS="emphasis"> +nmbd</em> process normally binds to the all addresses interface (0.0.0.0.) on ports 137 and 138, allowing it to receive broadcasts from anywhere. However, you can override this behavior with the following:</p><PRE CLASS="programlisting"> +bind interfaces only = yes</pre><P CLASS="para"> +This will cause both Samba processes to ignore any packets whose origination address does not match the broadcast address(es) specified by the <CODE CLASS="literal"> +interfaces</code> option, including broadcast packets. With <EM CLASS="emphasis"> +smbd</em>, this option will cause Samba to not serve file requests to subnets other than those listed in the <CODE CLASS="literal"> +interfaces</code> option. You should avoid using this option if you want to allow temporary network connections, such as those created through SLIP or PPP. It's very rare that this option is needed, and it should only be used by experts.</p><P CLASS="para"> +If you set <CODE CLASS="literal"> +bind interfaces only</code> to <CODE CLASS="literal"> +yes</code>, you should add the localhost address (127.0.01) to the "interfaces" list. Otherwise, <EM CLASS="emphasis"> +smbpasswd</em> will be unable to connect to the server using its default mode in order to change a password. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-958204"> +4.6.1.5 socket address</a></h4><P CLASS="para">The <CODE CLASS="literal"> +socket</code> <CODE CLASS="literal"> +address</code> option dictates which of the addresses specified with the <CODE CLASS="literal"> +interfaces</code> parameter Samba should listen on for connections. Samba accepts connections on all addresses specified by default. When used in an <I CLASS="filename"> +smb.conf</i> file, this option will force Samba to listen on only one IP address. For example:</p><PRE CLASS="programlisting"> +interfaces = 192.168.220.100/24 192.168.210.30/24 +socket address = 192.168.210.30</pre><P CLASS="para"> +This option is a programmer's tool and we recommend that you do not use it. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_05.html" TITLE="4.5 Disk Share Configuration"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.5 Disk Share Configuration" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_07.html" TITLE="4.7 Virtual Servers"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.7 Virtual Servers" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +4.5 Disk Share Configuration</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +4.7 Virtual Servers</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch04_07.html b/docs/htmldocs/using_samba/ch04_07.html new file mode 100644 index 0000000000..6f5d495a0b --- /dev/null +++ b/docs/htmldocs/using_samba/ch04_07.html @@ -0,0 +1,151 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 4] 4.7 Virtual Servers</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:17Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_06.html" TITLE="4.6 Networking Options with Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.6 Networking Options with Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch04_01.html" TITLE="4. Disk Shares "> +Chapter 4<br> +Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_08.html" TITLE="4.8 Logging Configuration Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.8 Logging Configuration Options" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch04-16899"> +4.7 Virtual Servers</a></h2><P CLASS="para">Virtual servers are a technique for creating the illusion of multiple NetBIOS servers on the network, when in reality there is only one. The technique is simple to implement: a machine simply registers more than one NetBIOS name in association with its IP address. There are tangible benefits to doing this.</p><P CLASS="para"> +The accounting department, for example, might have an <CODE CLASS="literal"> +accounting</code> server, and clients of it would see just the accounting disks and printers. The marketing department could have their own server, <CODE CLASS="literal"> +marketing</code>, with their own reports, and so on. However, all the services would be provided by one medium-sized Unix workstation (and one relaxed administrator), instead of having one small server and one administrator per department.</p><P CLASS="para"> +Samba will allow a Unix server to use more than one NetBIOS name with the <CODE CLASS="literal"> +netbios</code> <CODE CLASS="literal"> +aliases</code> option. See <A CLASS="xref" HREF="ch04_07.html#ch04-92259"> +Table 4.6</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch04-92259"> +Table 4.6: Virtual Server Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +netbios aliases</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">List of NetBIOS names</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Additional NetBIOS names to respond to, for use with multiple "virtual" Samba servers.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-962377"> +4.7.1 netbios aliases</a></h3><P CLASS="para"> +The <CODE CLASS="literal"> +netbios</code> <CODE CLASS="literal"> +aliases</code> option can be used to give the Samba server more than one NetBIOS name. Each NetBIOS name listed as a value will be displayed in the Network Neighborhood of a browsing machine. When a connection is requested to any machine, however, it will connect to the same Samba server.</p><P CLASS="para"> +This might come in handy, for example, if you're transferring three departments' data to a single Unix server with modern large disks, and are retiring or reallocating the old NT servers. If the three servers are called <CODE CLASS="literal"> +sales</code>, <CODE CLASS="literal"> +accounting</code>, and <CODE CLASS="literal"> +admin</code>, you can have Samba represent all three servers with the following options:</p><PRE CLASS="programlisting"> +[global] + netbios aliases = sales accounting admin + include = /usr/local/samba/lib/smb.conf.%L</pre><P CLASS="para"> +See <A CLASS="xref" HREF="ch04_07.html#ch04-28393"> +Figure 4.7</a> for what the Network Neighborhood would display from a client.When a client attempts to connect to Samba, it will specify the name of the server that it's trying to connect to, which you can access through the <CODE CLASS="literal"> +%L</code> variable. If the requested server is <CODE CLASS="literal"> +sales</code>, Samba will include the <I CLASS="filename"> +/usr/local/samba/lib/smb.conf.sales</i> file. This file might contain global and share declarations exclusively for the sales team, such as the following:</p><PRE CLASS="programlisting"> +[global] + workgroup = SALES + hosts allow = 192.168.10.255 + +[sales1998] + path = /usr/local/samba/sales/sales1998/ +...</pre><P CLASS="para"> +This particular example would set the workgroup to SALES as well, and set the IP address to allow connections only from the SALES subnet (192.168.10). In addition, it would offer shares specific to the sales department. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch04-28393"> +Figure 4.7: Using NetBIOS aliases for a Samba server </a></h4><IMG CLASS="graphic" SRC="figs/sam.0407.gif" ALT="Figure 4.7"></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_06.html" TITLE="4.6 Networking Options with Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.6 Networking Options with Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_08.html" TITLE="4.8 Logging Configuration Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 4.8 Logging Configuration Options" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +4.6 Networking Options with Samba</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +4.8 Logging Configuration Options</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch04_08.html b/docs/htmldocs/using_samba/ch04_08.html new file mode 100644 index 0000000000..7336022e15 --- /dev/null +++ b/docs/htmldocs/using_samba/ch04_08.html @@ -0,0 +1,423 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 4] 4.8 Logging Configuration Options</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:18Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_07.html" TITLE="4.7 Virtual Servers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.7 Virtual Servers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch04_01.html" TITLE="4. Disk Shares "> +Chapter 4<br> +Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch05_01.html" TITLE="5. Browsing and Advanced Disk Shares "> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5. Browsing and Advanced Disk Shares " BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch04-29331"> +4.8 Logging Configuration Options</a></h2><P CLASS="para">Occasionally, we need to find out what Samba is up to. This is especially true when Samba is performing an unexpected action or is not performing at all. To find out this information, we need to check Samba's log files to see exactly why it did what it did.</p><P CLASS="para"> +Samba log files can be as brief or verbose as you like. Here is an example of what a Samba log file looks like:</p><PRE CLASS="programlisting"> +[1999/07/21 13:23:25, 3] smbd/service.c:close_cnum(514) + phoenix (192.168.220.101) closed connection to service IPC$ +[1999/07/21 13:23:25, 3] smbd/connection.c:yield_connection(40) + Yielding connection to IPC$ +[1999/07/21 13:23:25, 3] smbd/process.c:process_smb(615) + Transaction 923 of length 49 +[1999/07/21 13:23:25, 3] smbd/process.c:switch_message(448) + switch message SMBread (pid 467) +[1999/07/21 13:23:25, 3] lib/doscalls.c:dos_ChDir(336) + dos_ChDir to /home/samba +[1999/07/21 13:23:25, 3] smbd/reply.c:reply_read(2199) + read fnum=4207 num=2820 nread=2820 +[1999/07/21 13:23:25, 3] smbd/process.c:process_smb(615) + Transaction 924 of length 55 +[1999/07/21 13:23:25, 3] smbd/process.c:switch_message(448) + switch message SMBreadbraw (pid 467) +[1999/07/21 13:23:25, 3] smbd/reply.c:reply_readbraw(2053) + readbraw fnum=4207 start=130820 max=1276 min=0 nread=1276 +[1999/07/21 13:23:25, 3] smbd/process.c:process_smb(615) + Transaction 925 of length 55 +[1999/07/21 13:23:25, 3] smbd/process.c:switch_message(448) + switch message SMBreadbraw (pid 467) </pre><P CLASS="para"> +Many of these options are of use only to Samba programmers. However, we will go over the meaning of some of these entries in more detail in <a href="ch09_01.html"><b>Chapter 9, <CITE CLASS="chapter">Troubleshooting Samba</cite></b></a>.</p><P CLASS="para"> +Samba contains six options that allow users to describe how and where logging information should be written. Each of these options are global options and cannot appear inside a share definition. Here is an up-to-date configuration file that covers each of the share and logging options that we've seen so far:</p><PRE CLASS="programlisting"> +[global] + netbios name = HYDRA + server string = Samba %v on (%I) + workgroup = SIMPLE + + # Networking configuration options + hosts allow = 192.168.220. 134.213.233. localhost + hosts deny = 192.168.220.102 + interfaces = 192.168.220.100/255.255.255.0 \ + 134.213.233.110/255.255.255.0 + bind interfaces only = yes + + # Debug logging information + log level = 2 + log file = /var/log/samba.log.%m + max log size = 50 + debug timestamp = yes + +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + comment = Data Drive + volume = Sample-Data-Drive + writeable = yes + </pre><P CLASS="para"> + Here, we've added a custom log file that reports information up to debug level 2. This is a relatively light debugging level. The logging level ranges from 1 to 10, where level 1 provides only a small amount of information and level 10 provides a plethora of low-level information. Level 2 will provide us with useful debugging information without wasting disk space on our server. In practice, you should avoid using log levels greater than 3 unless you are programming Samba.</p><P CLASS="para"> +This file is located in the <I CLASS="filename"> +/var/log</i> directory thanks to the <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +file</code> configuration option. However, we can use variable substitution to create log files specifically for individual users or clients, such as with the <CODE CLASS="literal"> +%m</code> variable in the following line:</p><PRE CLASS="programlisting"> +log file = /usr/local/logs/samba.log.%m</pre><P CLASS="para"> +Isolating the log messages can be invaluable in tracking down a network error if you know the problem is coming from a specific machine or user.</p><P CLASS="para"> +We've added another precaution to the log files: no one log file can exceed 50 kilobytes in size, as specified by the <CODE CLASS="literal"> +max</code> <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +size</code> option. If a log file exceeds this size, the contents are moved to a file with the same name but with the suffix <EM CLASS="emphasis"> +.old</em> appended. If the <EM CLASS="emphasis"> +.old</em> file already exists, it is overwritten and its contents are lost. The original file is cleared, waiting to receive new logging information. This prevents the hard drive from being overwhelmed with Samba log files during the life of our daemons.</p><P CLASS="para"> +For convenience, we have decided to leave the debug timestamp in the logs with the <CODE CLASS="literal"> +debug</code> <CODE CLASS="literal"> +timestamp</code> option, which is the default behavior. This will place a timestamp next to each message in the logging file. If we were not interested in this information, we could specify <CODE CLASS="literal"> +no</code> for this option instead.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-97929"> +4.8.1 Using syslog</a></h3><P CLASS="para"> +If you wish to use the system logger (<I CLASS="filename">syslog</i>) in addition to or in place of the standard Samba logging file, Samba provides options for this as well. However, to use <I CLASS="filename"> +syslog</i>, the first thing you will have to do is make sure that Samba was built with the <CODE CLASS="literal"> +configure</code> <CODE CLASS="literal"> +--with-syslog</code> option. See <a href="ch02_01.html"><b>Chapter 2</b></a> for more information on configuring and compiling Samba.</p><P CLASS="para"> +Once that is done, you will need to configure your <I CLASS="filename"> +/etc/syslog.conf</i> to accept logging information from Samba. If there is not already a <CODE CLASS="literal"> +daemon.*</code> entry in the <CODE CLASS="replaceable"> +<I> +/etc/syslog.conf</i></code> file, add the following:</p><PRE CLASS="programlisting"> +daemon.* /var/log/daemon.log</pre><P CLASS="para"> +This specifies that any logging information from system daemons will be stored in the <I CLASS="filename"> +/var/log/daemon.log</i> file. This is where the Samba information will be stored as well. From there, you can specify the following global option in your configuration file:</p><PRE CLASS="programlisting"> +syslog = 2</pre><P CLASS="para"> +This specifies that any logging messages with a level of 1 will be sent to both the <I CLASS="filename"> +syslog</i> and the Samba logging files. (The mappings to <I CLASS="filename"> +syslog</i> priorities are described in the upcoming section "syslog.") Let's assume that we set the regular <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> option above to 4. Any logging messages with a level of 2, 3, or 4 will be sent to the Samba logging files, but not to the <I CLASS="filename"> +syslog</i>. Only level 1 logging messages will be sent to both. If the <CODE CLASS="literal"> +syslog</code> value exceeds the <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> value, nothing will be written to the <I CLASS="filename"> +syslog</i>.</p><P CLASS="para"> +If you want to specify that messages be sent only to <I CLASS="filename"> +syslog</i> - and not to the standard Samba logging files - you can place this option in the configuration file:</p><PRE CLASS="programlisting"> +syslog only = yes</pre><P CLASS="para"> +If this is the case, any logging information above the number specified in the <CODE CLASS="literal"> +syslog</code> option will be discarded, just like the <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> option.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch04-pgfId-961771"> +4.8.2 Logging Configuration Options</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="ch04_08.html#ch04-92838"> +Table 4.7</a> lists each of the logging configuration options that Samba can use. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch04-92838"> +Table 4.7: Global Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +log file</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified filename)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the name and location of the log file that Samba is to use. Uses standard variables.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specified in Samba makefile</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +log level</code></p><P CLASS="para"> +<CODE CLASS="literal"> +(debug level)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical (0-10)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the amount of log/debug messages that are sent to the log file. 0 is none, 3 is considerable.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +max log size</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical (size in KB)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the maximum size of log file. After the log exceeds this size, the file will be renamed to <EM CLASS="emphasis"> +.bak </em>and a new log file started.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +5000</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +debug</code></p><P CLASS="para"> +<CODE CLASS="literal"> +timestamp (timestamp logs)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If no, doesn't timestamp logs, making them easier to read during heavy debugging.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +syslog</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical (0-10)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets level of messages sent to <EM CLASS="emphasis"> +syslog</em>. Those levels below <CODE CLASS="literal"> +syslog level</code> will be sent to the system logger.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +syslog only</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If yes, uses <EM CLASS="emphasis"> +syslog</em> entirely and sends no output to the standard Samba log files.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-log-file-option"> +4.8.2.1 log file</a></h4><P CLASS="para"> +On our server, Samba outputs log information to text files in the <I CLASS="filename"> +var</i> subdirectory of the Samba home directory, as set by the makefile during the build. The <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +file</code> option can be used to reset the name of the log file to another location. For example, to reset the name and location of the Samba log file to <I CLASS="filename"> +/usr/local/logs/samba.log</i>, you could use the following:</p><PRE CLASS="programlisting"> +[global] + log file = /usr/local/logs/samba.log</pre><P CLASS="para"> +You may use variable substitution to create log files specifically for individual users or clients.</p><P CLASS="para"> +You can override the default log file location using the <CODE CLASS="literal"> +-l</code> command-line switch when either daemon is started. However, this does not override the <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +file</code> option. If you do specify this parameter, initial logging information will be sent to the file specified after <CODE CLASS="literal"> +-l</code> (or the default specified in the Samba makefile) until the daemons have processed the <I CLASS="filename"> +smb.conf</i> file and know to redirect it to a new log file.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-953284"> +4.8.2.2 log level</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> option sets the amount of data to be logged. Normally this is left at 0 or 1. However, if you have a specific problem you may want to set it at 3, which provides the most useful debugging information you would need to track down a problem. Levels above 3 provide information that's primarily for the developers to use for chasing internal bugs, and slows down the server considerably. Therefore, we recommend that you avoid setting this option to anything above 3. </p><PRE CLASS="programlisting"> +[global] +log file = /usr/local/logs/samba.log.%m +log level = 3</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-960212"> +4.8.2.3 max log size</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +max</code> <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +size</code> option sets the maximum size, in kilobytes, of the debugging log file that Samba keeps. When the log file exceeds this size, the current log file is renamed to add an <EM CLASS="emphasis"> +.old</em> extension (erasing any previous file with that name) and a new debugging log file is started with the original name. For example:</p><PRE CLASS="programlisting"> +[global] +log file = /usr/local/logs/samba.log.%m +max log size = 1000</pre><P CLASS="para"> +Here, if the size of any log file exceeds one megabyte in size, Samba renames the log file <EM CLASS="emphasis"> +samba.log. </em><CODE CLASS="replaceable"> +<I> +machine-name</i></code><EM CLASS="emphasis"> +.old</em> and a new log file is generated. If there was a file there previously with the <EM CLASS="emphasis"> +.old</em> extension, Samba deletes it. We highly recommend setting this option in your configuration files because debug logging (even at lower levels) can covertly eat away at your available disk space. Using this option protects unwary administrators from suddenly discovering that most of their disk space has been swallowed up by a single Samba log file.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-953294"> +4.8.2.4 debug timestamp or timestamp logs</a></h4><P CLASS="para"> +If you happen to be debugging a network problem and you find that the date-stamp and timestamp information within the Samba log lines gets in the way, you can turn it off by giving either the <CODE CLASS="literal"> +timestamp</code> <CODE CLASS="literal"> +logs</code> or the <CODE CLASS="literal"> +debug</code> <CODE CLASS="literal"> +timestamp</code> option (they're synonymous) a value of <CODE CLASS="literal"> +no</code>. For example, a regular Samba log file presents its output in the following form:</p><PRE CLASS="programlisting"> +12/31/98 12:03:34 hydra (192.168.220.101) connect to server network as user davecb</pre><P CLASS="para"> +With a <CODE CLASS="literal"> +no</code> value for this option, the output would appear without the datestamp or the timestamp:</p><PRE CLASS="programlisting"> +hydra (192.168.220.101) connect to server network as user davecb</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-78696"> +4.8.2.5 syslog</a></h4><P CLASS="para">The <CODE CLASS="literal"> +syslog</code> option causes Samba log messages to be sent to the Unix system logger. The type of log information to be sent is specified as the parameter for this argument. Like the <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> option, it can be a number from 0 to 10. Logging information with a level less than the number specified will be sent to the system logger. However, debug logs equal to or above the <CODE CLASS="literal"> +syslog</code> level, but less than log level, will still be sent to the standard Samba log files. To get around this, use the <CODE CLASS="literal"> +syslog</code> <CODE CLASS="literal"> +only</code> option. For example:</p><PRE CLASS="programlisting"> +[global] + log level = 3 + syslog = 1</pre><P CLASS="para"> +With this, all logging information with a level of 0 would be sent to the standard Samba logs and the system logger, while information with levels 1, 2, and 3 would be sent only to the standard Samba logs. Levels above 3 are not logged at all. Note that all messages sent to the system logger are mapped to a priority level that the <EM CLASS="emphasis"> +syslog</em> process understands, as shown in <A CLASS="xref" HREF="ch04_08.html#ch04-80576"> +Table 4.8</a>. The default level is 1. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch04-80576"> +Table 4.8: Syslog Priority Conversion </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Log Level</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Syslog Priority</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +0</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +LOG_ERR</code></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +LOG_WARNING</code></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +LOG_NOTICE</code></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +LOG_INFO</code></p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +4 and above</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +LOG_DEBUG</code></p></td></tr></tbody></table><P CLASS="para"> +If you wish to use <EM CLASS="emphasis"> +syslog</em>, you will have to run <CODE CLASS="literal"> +configure</code> <CODE CLASS="literal"> +--with-syslog</code> when compiling Samba, and you will need to configure your <I CLASS="filename"> +/etc/syslog.conf</i> to suit. (See the section <A CLASS="xref" HREF="ch04_08.html#ch04-97929"> +Section 4.8.1, Using syslog</a>, earlier in this chapter.)</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch04-pgfId-953338"> +4.8.2.6 syslog only</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +syslog</code> <CODE CLASS="literal"> +only</code> option tells Samba not to use the regular logging files - the system logger only. To enable this, specify the following option in the global ection of the Samba configuration file:</p><PRE CLASS="programlisting"> +[global] + syslog only = yes </pre></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_07.html" TITLE="4.7 Virtual Servers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.7 Virtual Servers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch05_01.html" TITLE="5. Browsing and Advanced Disk Shares "> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5. Browsing and Advanced Disk Shares " BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +4.7 Virtual Servers</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +5. Browsing and Advanced Disk Shares </td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch05_01.html b/docs/htmldocs/using_samba/ch05_01.html new file mode 100644 index 0000000000..d45bd13f32 --- /dev/null +++ b/docs/htmldocs/using_samba/ch05_01.html @@ -0,0 +1,786 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 5] Browsing and Advanced Disk Shares </title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:41Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_08.html" TITLE="4.8 Logging Configuration Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.8 Logging Configuration Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Chapter 5</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_02.html" TITLE="5.2 Filesystem Differences"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5.2 Filesystem Differences" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="chapter"> +<A CLASS="title" NAME="ch05-51347"> +5. Browsing and Advanced Disk Shares </a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#ch05-23763" TITLE="5.1 Browsing"> +Browsing</a><br> +<A CLASS="sect1" HREF="ch05_02.html" TITLE="5.2 Filesystem Differences"> +Filesystem Differences</a><br> +<A CLASS="sect1" HREF="ch05_03.html" TITLE="5.3 File Permissions and Attributes on MS-DOS and Unix"> +File Permissions and Attributes on MS-DOS and Unix</a><br> +<A CLASS="sect1" HREF="ch05_04.html" TITLE="5.4 Name Mangling and Case"> +Name Mangling and Case</a><br> +<A CLASS="sect1" HREF="ch05_05.html" TITLE="5.5 Locks and Oplocks"> +Locks and Oplocks</a></p><P> +</p></div><P CLASS="para">This chapter continues our discussion of disk shares from the previous chapter. Here, we will discuss various differences between the Windows and Unix filesystems - and how Samba works to bridge the gap. There are a surprising number of inconsistencies between a DOS filesystem and a Unix filesystem. In addition, we will talk briefly about name mangling, file locking, and a relatively new feature for Samba: opportunistic locking, or oplocks. However, before we move into that territory, we should first discuss the somewhat arcane topic of browsing with Samba.</p><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="s1"></a> +<A CLASS="title" NAME="ch05-23763"> +5.1 Browsing</a></h2><P CLASS="para"> +Browsing is the ability to examine the servers and shares that are currently available on your network. On a Windows NT 4.0 or 95/98 client, a user can browse network servers through the Network Neighborhood folder. By double-clicking the icon representing the server, the user should be able to see the printer and disk share resources available on that machine as well. (If you have Windows NT 3.<EM CLASS="emphasis"> +x</em>, you can use the Disk-Connect Network Drive menu in the File Manager to display the available shares on a server.) </p><P CLASS="para"> +From the Windows command line, you can also use the <CODE CLASS="literal"> +net</code> <CODE CLASS="literal"> +view</code> option to see which servers are currently on the network. Here is an example of the <CODE CLASS="literal"> +net</code> <CODE CLASS="literal"> +view</code> command in action:</p><PRE CLASS="programlisting">C:\><CODE CLASS="userinput"><B> net view</b></code> +Servers available in workgroup SIMPLE +Server name Remark +---------------------------------------------------------- +\\CHIMAERA Windows NT 4.0 +\\HYDRA Samba 2.0.4 on (hydra) +\\PHOENIX Windows 98</pre><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-962596"> +5.1.1 Preventing Browsing</a></h3><P CLASS="para">You can restrict a share from being in a browse list by using the <CODE CLASS="literal"> +browseable</code> option. This boolean option prevents a share from being seen in the Network Neighborhood at all. For example, to prevent the <CODE CLASS="literal"> +[data]</code> share from the previous chapter from being visible, we could write:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = no + guest ok = yes + comment = Data Drive + volume = Sample-Data-Drive + writeable = yes</pre><P CLASS="para"> +Although you typically don't want to do this to an ordinary disk share, the browseable option is useful in the event that you need to create a share with contents that you do not want others to see, such as a <CODE CLASS="literal"> +[netlogin]</code> share for storing logon scripts for Windows domain control (see <a href="ch06_01.html"><b>Chapter 6, <CITE CLASS="chapter">Users, Security, and Domains</cite></b></a> for more information on logon scripts).</p><P CLASS="para"> +Another example is the <CODE CLASS="literal"> +[homes]</code> share. This share is often marked non-browsable so that a share named <CODE CLASS="literal"> +[homes]</code> won't appear when its machine's resources are browsed. However, if a user <CODE CLASS="literal"> +alice</code> logs on and looks at the machine's shares, an <CODE CLASS="literal"> +[alice]</code> share will appear under the machine. What if we wanted to make sure <CODE CLASS="literal"> +alice</code>'s share appeared to everyone before she logs in? This could be done with the global <CODE CLASS="literal"> +auto</code> <CODE CLASS="literal"> +services</code> option. This option preloads shares into the browse list to ensure that they are always visible: </p><PRE CLASS="programlisting"> +[global] + ... + auto services = alice + ...</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-962409"> +5.1.2 Default Services</a></h3><P CLASS="para"> +In the event that a user cannot successfully connect to a share, you can specify a default share to which they can connect. Since you do not know who will default to this share at any time, you will probably want to set the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> option to <CODE CLASS="literal"> +yes</code> for this share. Specifying a <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +service</code> can be useful when sending the utterly befuddled to a directory of help files. For example:</p><PRE CLASS="programlisting"> +[global] + ... + default service = helpshare + ... + +[helpshare] + path = /home/samba/helpshare/%S + browseable = yes + guest ok = yes + comment = Default Share for Unsuccessful Connections + volume = Sample-Data-Drive + writeable = no</pre><P CLASS="para"> +Note that we used the <CODE CLASS="literal"> +%S</code> variable in the <CODE CLASS="literal"> +path</code> option. If you use the <CODE CLASS="literal"> +%S</code> variable, it will refer to the requested nonexistent share (the original share requested by the user), not the name of the resulting default share. This allows us to create different paths with the names of each server, which can provide more customized help files for users. In addition, any underscores (_) specified in the requested share will be converted to slashes (/) when the <CODE CLASS="literal"> +%S</code> variable is used.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-969505"> +5.1.3 Browsing Elections</a></h3><P CLASS="para">As mentioned in <a href="ch01_01.html"><b>Chapter 1, <CITE CLASS="chapter">Learning the Samba</cite></b></a>, one machine in each subnet always keeps a list of the currently active machines. This list is called the <I CLASS="firstterm"> +browse list</i> and the server that maintains it is called the <I CLASS="firstterm">local master browser</i>. As machines come on and off the network, the local master browser continually updates the information in the browse list and provides it to any machine that requests it.</p><P CLASS="para"> +A computer becomes a local master browser by holding a browsing election on the local subnet. Browsing elections can be called at any time. Samba can rig a browsing election for a variety of outcomes, including always becoming the local master browser of the subnet or never becoming it. For example, the following options, which we've added to the configuration file from <a href="ch04_01.html"><b>Chapter 4, <CITE CLASS="chapter">Disk Shares</cite></b></a>, will ensure that Samba always wins the election for local master browser no matter which machines are also present:</p><PRE CLASS="programlisting"> +[global] + netbios name = HYDRA + server string = Samba %v on (%L) + workgroup = SIMPLE + + # Browsing election options + os level = 34 + local master = yes + + # Networking configuration options + hosts allow = 192.168.220. 134.213.233. localhost + hosts deny = 192.168.220.102 + interfaces = 192.168.220.100/255.255.255.0 \ + 134.213.233.110/255.255.255.0 + + # Debug logging information + log level = 2 + log file = /var/log/samba.log.%m + max log size = 50 + debug timestamp = yes + +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + comment = Data Drive + volume = Sample-Data-Drive + writable = yes</pre><P CLASS="para"> +However, what if we didn't always want to win the election? What if we wanted to yield browsing to a Windows NT Server if present? In order to do that, we need to learn how browsing elections work. As you already know, each machine that takes place in the election must broadcast information about itself. This information includes the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962259"> +</a>The version of the election protocol used</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962260"> +</a>The operating system on the machine</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962261"> +</a>The amount of time the client has been on the network</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962267"> +</a>The hostname of the client</p></li></ul><P CLASS="para"> +Here is how the election is decided. Operating systems are assigned a binary value according to their version, as shown in <A CLASS="xref" HREF="ch05_01.html#ch05-51423"> +Table 5.1</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch05-51423"> +Table 5.1: Operating System Values in an Election </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Operating System</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Value</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Windows NT Server 4.0</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +33</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows NT Server 3.51</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +32</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows NT Workstation 4.0</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +17</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows NT Workstation 3.51</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +16</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 98</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 95</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 3.1 for Workgroups</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1</p></td></tr></tbody></table><P CLASS="para"> +Following that, each computer on the network is assigned a separate value according to its role, as shown in <A CLASS="xref" HREF="ch05_01.html#ch05-pgfId-962213"> +Table 5.2</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch05-pgfId-962213"> +Table 5.2: Computer Role Settings in an Election </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Role</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Value</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Primary Domain Controller</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +128</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +WINS Client</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +32</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Preferred Master Browser</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +8</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Active Master Browser</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +4</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Standby Browser</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +2</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Active Backup Browser</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +1</p></td></tr></tbody></table><P CLASS="para">Elections are decided in the following order:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962245"> +</a>The machine with the highest version of the election protocol will win. (So far, this is meaningless, as all Windows clients have version 1 of the election protocol.)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962246"> +</a>The machine with the highest operating system value wins the election.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962247"> +</a>If there is a tie, the machine with the setting of Preferred Master Browser (role 8) wins the election.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962248"> +</a>If there is still a tie, the client who has been online the longest wins the election.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962282"> +</a>And finally, if there is still a tie, the client name that comes first alphabetically wins.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-969905"> +</a>The machine that is the "runner-up" can become a backup browser.</p></li></ol><P CLASS="para"> +As a result, if you want Samba to take the role of a local master browser, but only if there isn't a Windows NT Server (4.0 or 3.51) on the network, you could change the <CODE CLASS="literal"> +os</code> <CODE CLASS="literal"> +level</code> parameter in the previous example to:</p><PRE CLASS="programlisting"> +os level = 31</pre><P CLASS="para"> +This will cause Samba to immediately lose the election to a Windows NT 4.0 or Windows NT 3.5 Server, both of which have a higher operating systems level. On the other hand, if you wanted to decide the local master browser on the basis of the network role, such as which machine is the primary domain controller, you could set the <CODE CLASS="literal"> +os</code> <CODE CLASS="literal"> +level</code> to match the highest type of operating system on the network and let the election protocol fall down to the next level.</p><P CLASS="para">How can you can tell if a machine is a local master browser? By using the <CODE CLASS="literal"> +nbtstat</code> command. Place the NetBIOS name of the machine you wish to check after the <CODE CLASS="literal"> +-a</code> option:</p><PRE CLASS="programlisting">C:\><CODE CLASS="userinput"><B> nbtstat -a hydra</b></code> + + NetBIOS Remote Machine Name Table + + Name Type Status +---------------------------------------------------------- + HYDRA <00> UNIQUE Registered + HYDRA <03> UNIQUE Registered + HYDRA <20> UNIQUE Registered + ..__MSBROWSE__. <01> GROUP Registered + SIMPLE <00> GROUP Registered + SIMPLE <1D> UNIQUE Registered + SIMPLE <1E> GROUP Registered + + MAC Address = 00-00-00-00-00-00</pre><P CLASS="para"> +The resource entry that you're looking for is the <CODE CLASS="literal"> +..__MSBROWSE__.<01></code>. This indicates that the server is currently acting as the local master browser for the current subnet. In addition, if the machine is a Samba server, you can check the Samba <I CLASS="filename"> +nmbd</i> log file for an entry such as:</p><PRE CLASS="programlisting"> +nmbd/nmbd_become_lmb.c:become_local_master_stage2(406) +***** +Samba name server HYDRA is now a local master browser for +workgroup SIMPLE on subnet 192.168.220.100 +****</pre><P CLASS="para"> +Finally, Windows NT servers serving as primary domain controllers contain a sneak that allows them to assume the role of the local master browser in certain conditions; this is called the <EM CLASS="emphasis"> +preferred</em> <EM CLASS="emphasis"> +master browser</em> bit. Earlier, we mentioned that Samba could set this bit on itself as well. You can enable it with the <CODE CLASS="literal"> +preferred</code> <CODE CLASS="literal"> +master</code> option:</p><PRE CLASS="programlisting"> +# Browsing election options +os level = 33 +local master = yes +preferred master = yes</pre><P CLASS="para"> +If the preferred master bit is set, the machine will force a browsing election at startup. Of course, this is needed only if you set the <CODE CLASS="literal"> +os</code> <CODE CLASS="literal"> +level</code> option to match the Windows NT machine. We recommend that you don't use this option if another machine also has the role of preferred master, such as an NT server. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-962289"> +5.1.4 Domain Master Browser</a></h3><P CLASS="para">In the opening chapter, we mentioned that in order for a Windows workgroup or domain to extend into multiple subnets, one machine would have to take the role of the <I CLASS="firstterm"> +domain master browser</i>. The domain master browser propagates browse lists across each of the subnets in the workgroup. This works because each local master browser periodically synchronizes its browse list with the domain master browser. During this synchronization, the local master browser passes on any server that the domain master browser does not have in its browse list, and vice versa. In a perfect world, each local master browser would eventually have the browse list for the entire domain.</p><P CLASS="para"> +Unlike the local master browser, there is no election to determine which machine assumes the role of the domain master browser. Instead, the administrator has to set it manually. By Microsoft design, however, the domain master browser and the primary domain controller (PDC) both register a resource type of <1B>, so the roles - and the machines - are inseparable. </p><P CLASS="para"> +If you have a Windows NT server on the network acting as a PDC, we recommend that you do not use Samba to become the domain master browser. The reverse is true as well: if Samba is taking on the responsibilities of a PDC, we recommend making it the domain master browser as well. Although it is possible to split the roles with Samba, this is not a good idea. Using two different machines to serve as the PDC and the domain master browser can cause random errors to occur on a Windows workgroup.</p><P CLASS="para"> +Samba can assume the role of a domain master browser for all subnets in the workgroup with the following option:</p><PRE CLASS="programlisting"> +domain master = yes</pre><P CLASS="para"> +You can verify that a Samba machine is in fact the domain master browser by checking the <EM CLASS="emphasis"> +nmbd</em> log file:</p><PRE CLASS="programlisting"> +nmbd/nmbd_become_dmb.c:become_domain_master_stage2(118) +***** +Samba name server HYDRA is now a domain master browser for +workgroup SIMPLE on subnet 192.168.220.100 +*****</pre><P CLASS="para"> +Or you can use the <CODE CLASS="literal">nmblookup</code> command that comes with the Samba distribution to query for a unique <1B> resource type in the workgroup:</p><PRE CLASS="programlisting"># <CODE CLASS="userinput"><B>nmblookup SIMPLE#1B</b></code> +Sending queries to 192.168.220.255 +192.168.220.100 SIMPLE<1b></pre><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-963109"> +5.1.4.1 Multiple subnets</a></h4><P CLASS="para">There are three rules that you must remember when creating a workgroup/domain that spans more than one subnet:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962339"> +</a>You must have either a Windows NT or Samba machine acting as a local master browser on each subnet in the workgroup/domain. (If you have a domain master browser in a subnet, a local master browser is not needed.)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962340"> +</a>You must have a Windows NT Server or a Samba machine acting as a domain master browser somewhere in the workgroup.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-962343"> +</a>Each local master browser must be instructed to synchronize with the domain master browser.</p></li></ul><P CLASS="para"> +Samba has a few other features in this arena in the event that you don't have or want a domain master browser on your network. Consider the subnets shown in <A CLASS="xref" HREF="ch05_01.html#ch05-15706"> +Figure 5.1</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch05-15706"> +Figure 5.1: Multiple subnets with Samba servers</a></h4><IMG CLASS="graphic" SRC="figs/sam.0501.gif" ALT="Figure 5.1"><P CLASS="para"> +First, a Samba server that is a local master browser can use the <CODE CLASS="literal"> +remote</code> <CODE CLASS="literal"> +announce</code> configuration option to make sure that computers in different subnets are sent broadcast announcements about the server. This has the effect of ensuring that the Samba server appears in the browse lists of foreign subnets. To achieve this, however, the directed broadcasts must reach the local master browser on the other subnet. Be aware that many routers do not allow directed broadcasts by default; you may have to change this setting on the router for the directed broadcasts to get through to its subnet.</p><P CLASS="para"> +With the <CODE CLASS="literal"> +remote</code> <CODE CLASS="literal"> +announce</code> option, list the subnets and the workgroup that should receive the broadcast. For example, to ensure that machines in the 192.168.221 and 192.168.222 subnets and SIMPLE workgroup are sent broadcast information from our Samba server, we could specify the following:</p><PRE CLASS="programlisting"> +# Browsing election options +os level = 34 +local master = yes +remote announce = 192.168.221.255/SIMPLE \ + 192.168.222.255/SIMPLE</pre><P CLASS="para"> +In addition, you are allowed to specify the exact address to send broadcasts to if the local master browser on the foreign subnet is guaranteed to always have a fixed IP address.</p><P CLASS="para"> +A Samba local master browser can synchronize its browse list directly with another Samba server acting as a local master browser on a different subnet. For example, let's assume that Samba is configured as a local master browser, and Samba local master browsers exist at 192.168.221.130 and 192.168.222.120. We can use the <CODE CLASS="literal"> +remote</code> <CODE CLASS="literal"> +browse</code> <CODE CLASS="literal"> +sync</code> option to sync directly with the Samba servers, as follows:</p><PRE CLASS="programlisting"> +# Browsing election options +os level = 34 +local master = yes +remote browse sync = 192.168.221.130 192.168.222.120</pre><P CLASS="para"> +In order for this to work, the other Samba machines must also be local master browsers. You can also use directed broadcasts with this option if you do not know specific IP addresses of local master browsers. </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-969941"> +5.1.5 Browsing Options</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="ch05_01.html#ch05-81028">Table 5.3</a> shows 14 options that define how Samba handles browsing tasks. We recommend the defaults for a site that prefers to be easy on its users with respect to locating shares and printers. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch05-81028"> +Table 5.3: Browsing Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +announce as</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +NT</code> or <CODE CLASS="literal"> +Win95</code> or <CODE CLASS="literal"> +WfW</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the operating system that Samba will announce itself as.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +NT</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +announce version</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the version of the operating system that Samba will announce itself as.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +4.2</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +browseable (browsable)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Allows share to be displayed in list of machine resources.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +browse list</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba will provide a browse list on this server.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +auto services (preload)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (share list)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a list of shares that will always appear in the browse list.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +default service (default)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (share name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Names a share (service) that will be provided if the client requests a share not listed in <EM CLASS="emphasis"> +smb.conf.</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +local master</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba will try to become a master browser on the local subnet.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lm announce</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code> or <CODE CLASS="literal"> +no</code> or <CODE CLASS="literal"> +auto</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Enables or disables LAN Manager style host announcements.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +auto</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lm interval</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the frequency in seconds that LAN Manager announcements will be made if activated.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +60</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +preferred master (prefered master)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba will use the preferred master browser bit to attempt to become the local master browser.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +domain master</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba will try to become the main browser master for the workgroup.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +os level</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the operating system level of Samba in an election for local master browser.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +remote browse sync</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of IP addresses)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Lists Samba servers to synchronize browse lists with.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +remote announce</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (IP address/ workgroup pairs)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Lists subnets and workgroups to send directed broadcast packets to, allowing Samba to appear to browse lists.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-959886"> +5.1.5.1 announce as</a></h4><P CLASS="para"> +This global configuration option specifies the type of operating system that Samba will announce to other machines on the network. The default value for this option is <CODE CLASS="literal"> +NT</code>, which represents a Windows NT operating system. Other possible values are <CODE CLASS="literal"> +Win95</code>, which represents a Windows 95 operating system, and <CODE CLASS="literal"> +WfW</code> for a Windows for Workgroup operating system. You can override the default value with the following:</p><PRE CLASS="programlisting"> +[global] + announce as = Win95</pre><P CLASS="para"> +We recommend against changing the default value of this configuration option.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-959896"> +5.1.5.2 announce version</a></h4><P CLASS="para"> +This global option is frequently used with the <CODE CLASS="literal"> +announce</code> <CODE CLASS="literal"> +as</code> configuration option; it specifies the version of the operating system that Samba will announce to other machines on the network. The default value of this options is 4.2, which places itself above the current Windows NT version of 4.0. You can specify a new value with a global entry such as the following:</p><PRE CLASS="programlisting"> +[global] + announce version = 4.3</pre><P CLASS="para"> +We recommend against changing the default value of this configuration option.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-38345"> +5.1.5.3 browseable</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +browseable</code> option (also spelled <CODE CLASS="literal"> +browsable</code>) indicates whether the share referenced should appear in the list of available resources of the machine on which it resides. This option is always set to <CODE CLASS="literal"> +yes</code> by default. If you wish to prevent the share from being seen in a client's browser, you can reset this option to <CODE CLASS="literal"> +no</code>.</p><P CLASS="para"> +Note that this does not prevent someone from accessing the share using other means, such as specifying a UNC location (<CODE CLASS="literal">//server/accounting)</code> in Windows Explorer. It only prevents the share from being listed under the machine's resources when being browsed.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-959474"> +5.1.5.4 browse list</a></h4><P CLASS="para">You should never need to change this parameter from its default value of <CODE CLASS="literal"> +yes</code>. If your Samba server is acting as a local master browser (i.e., it has won the browsing election), you can use the global <CODE CLASS="literal"> +browse</code> <CODE CLASS="literal"> +list</code> option to instruct Samba to provide or withhold its browse list to all clients. By default, Samba always provides a browse list. You can withhold this information by specifying the following:</p><PRE CLASS="programlisting"> +[global] + browse list = no</pre><P CLASS="para"> +If you disable the browse list, clients cannot browse the names of other machines, their services, and other domains currently available on the network. Note that this won't make any particular machine inaccessible; if someone knows a valid machine name/address and a share on that machine, they can still connect to it explicitly using NET USE or by mapping a drive letter to it using Windows Explorer. It simply prevents information in the browse list from being retrieved by any client that requests it.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-957885"> +5.1.5.5 auto services</a></h4><P CLASS="para"> +The global <CODE CLASS="literal"> +auto</code> <CODE CLASS="literal"> +services</code> option, which is also called <CODE CLASS="literal"> +preload</code>, ensures that the specified shares are always visible in the browse list. One common use for this option is to advertise specific user or printer shares that are created by the <CODE CLASS="literal"> +[homes]</code> or <CODE CLASS="literal"> +[printers]</code> shares, but are not otherwise browsable.</p><P CLASS="para"> +This option works best with disk shares. If you wish to force each of your system printers (i.e., those listed in the printer capabilities file) into the browse list using this option, we recommend using the <CODE CLASS="literal"> +load</code> <CODE CLASS="literal"> +printers</code> option instead. Any shares listed with the <CODE CLASS="literal"> +auto</code> <CODE CLASS="literal"> +services</code> option will not be displayed if the <CODE CLASS="literal"> +browse</code> <CODE CLASS="literal"> +list</code> option is set to <CODE CLASS="literal"> +no</code>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-962615"> +5.1.5.6 default service</a></h4><P CLASS="para"> +The global <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +service</code> option (sometimes called <CODE CLASS="literal"> +default</code>) names a "last-ditch" share. If set to an existing share name, and a client requests a nonexistent disk or printer share, Samba will attempt to connect the user to the share specified by this option instead. The option is specified as follows:</p><PRE CLASS="programlisting"> +default service = helpshare</pre><P CLASS="para"> +Note that there are no braces surrounding the share name <CODE CLASS="literal"> +helpshare</code>, even though the definition of the share later in the Samba configuration file will have braces. Also, if you use the <CODE CLASS="literal"> +%S</code> variable in the share specified by this option, it will represent the requested, nonexistent share, not the default service. Any underscores (<CODE CLASS="literal">_</code>) specified in the request share will be converted to slashes (<CODE CLASS="literal">/</code>) when the variable is used.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-957903"> +5.1.5.7 local master</a></h4><P CLASS="para">This global option specifies whether Samba will attempt to become the local master browser for the subnet when it starts up. If this option is set to <CODE CLASS="literal"> +yes</code>, Samba will take place in elections. However, setting this option by itself does not guarantee victory. (Other parameters, such as <CODE CLASS="literal"> +preferred</code> <CODE CLASS="literal"> +master</code> and <CODE CLASS="literal"> +os</code> <CODE CLASS="literal"> +level</code> help Samba win browsing elections.) If this option is set to <CODE CLASS="literal"> +no</code>, Samba will lose all browsing elections, no matter which values are specified by the other configuration options. The default value is <CODE CLASS="literal"> +yes</code>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-957907"> +5.1.5.8 lm announce</a></h4><P CLASS="para"> +The global <CODE CLASS="literal"> +lm</code> <CODE CLASS="literal"> +announce</code> option tells Samba's <EM CLASS="emphasis"> +nmbd</em> whether or not to send LAN Manager host announcements on behalf of the server. These host announcements may be required by older clients, such as IBM's OS/2 operating system. This announcement allows the server to be added to the browse lists of the client. If activated, Samba will announce itself repetitively at the number of seconds specified by the <CODE CLASS="literal"> +lm</code> <CODE CLASS="literal"> +interval</code> option.</p><P CLASS="para"> +This configuration option takes the standard boolean values, <CODE CLASS="literal"> +yes</code> and <CODE CLASS="literal"> +no</code>, which engage or disengage LAN Manager announcements, respectively. In addition, there is a third option, <CODE CLASS="literal"> +auto</code>, which causes <EM CLASS="emphasis"> +nmbd</em> to passively listen for LAN Manager announcements, but not send any of its own initially. If LAN Manager announcements are detected for another machine on the network, <EM CLASS="emphasis"> +nmbd</em> will start sending its own LAN Manager announcements to ensure that it is visible. You can specify the option as follows:</p><PRE CLASS="programlisting"> +[global] + lm announce = yes</pre><P CLASS="para"> +The default value is <CODE CLASS="literal"> +auto</code>. You probably won't need to change this value from its default.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-959967"> +5.1.5.9 lm interval</a></h4><P CLASS="para"> +This option, which is used in conjunction with <CODE CLASS="literal"> +lm</code> <CODE CLASS="literal"> +announce</code>, indicates the number of seconds <EM CLASS="emphasis"> +nmbd</em> will wait before repeatedly broadcasting LAN Manager-style announcements. Remember that LAN Manager announcements must be activated in order for this option to be used. The default value is 60 seconds. If you set this value to 0, Samba will not send any LAN Manager host announcements, no matter what the value of the <CODE CLASS="literal"> +lm</code> <CODE CLASS="literal"> +announce</code> option. You can reset the value of this option as follows:</p><PRE CLASS="programlisting"> +[global] + lm interval = 90</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-959947"> +5.1.5.10 preferred master</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +preferred</code> <CODE CLASS="literal"> +master</code> option requests that Samba set the preferred master bit when participating in an election. This gives the server a higher preferred status in the workgroup than other machines at the same operating system level. If you are configuring your Samba machine to become the local master browser, it is wise to set the following value:</p><PRE CLASS="programlisting"> +[global] + preferred master = yes</pre><P CLASS="para"> +Otherwise, you should leave it set to its default, <CODE CLASS="literal"> +no</code>. If Samba is configured as a preferred master browser, it will force an election when it first comes online.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-957912"> +5.1.5.11 os level</a></h4><P CLASS="para"> +The global <CODE CLASS="literal"> +os</code> <CODE CLASS="literal"> +level</code> option dictates the operating system level at which Samba will masquerade during a browser election. If you wish to have Samba win an election and become the master browser, you can set the level above that of the operating system on your network with the highest current value. The values are shown in Table 5-1. The default level is 0, which means that Samba will lose all elections. If you wish Samba to win all elections, you can reset its value as follows:</p><PRE CLASS="programlisting"> +os level = 34</pre><P CLASS="para"> +This means that the server will vote for itself 34 times each time an election is called, which ensures a victory.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-957960"> +5.1.5.12 domain master</a></h4><P CLASS="para"> +If Samba is the primary domain controller for your workgroup or NT domain, it should also be the domain master browser. The domain master browser is a special machine that has the NetBIOS resource type <1B> and is used to propagate browse lists to and from each of the local master browsers in individual subnets across the domain. To force Samba to become the domain master browser, set the following in the <CODE CLASS="literal"> +[global]</code> section of the <I CLASS="filename"> +smb.conf</i>:</p><PRE CLASS="programlisting"> +[global] + domain master = yes</pre><P CLASS="para"> +If you have a Windows NT server on the network acting as a primary domain controller (PDC), we recommend that you do not use Samba to become the domain master browser. The reverse is true as well: if Samba is taking on the responsibilities of a PDC, we recommend making it the domain master browser. Splitting the PDC and the domain master browser will cause unpredictable errors to occur on the network.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-957965"> +5.1.5.13 remote browse sync</a></h4><P CLASS="para"> +The global <CODE CLASS="literal"> +remote</code> <CODE CLASS="literal"> +browse</code> <CODE CLASS="literal"> +sync</code> option specifies that Samba should synchronize its browse lists with local master browsers in other subnets. However, the synchronization can occur only with other Samba servers, and not with Windows computers. For example, if your Samba server was a master browser on the subnet 192.168.235, and Samba local master browsers existed on other subnets at 192.168.234.92 and 192.168.236.2, you could specify the following:</p><PRE CLASS="programlisting"> +remote browse sync = 192.168.234.92 192.168.236.2 </pre><P CLASS="para"> +The Samba server would then directly contact the other machines on the address list and synchronize browse lists. You can also say:</p><PRE CLASS="programlisting"> +remote browse sync = 192.168.234.255 192.168.236.255</pre><P CLASS="para"> +This forces Samba to broadcast queries to determine the IP addresses of the local master browser on each subnet, with which it will then synchronize browse lists. This only works, however, if your router doesn't block directed broadcast requests ending in 255.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-957971"> +5.1.5.14 remote announce</a></h4><P CLASS="para"> +Samba servers are capable of providing browse lists to foreign subnets with the <CODE CLASS="literal"> +remote</code> <CODE CLASS="literal"> +announce</code> option. This is typically sent to the local master browser of the foreign subnet in question. However, if you do not know the address of the local master browser, you can do the following:</p><PRE CLASS="programlisting"> +[global] + remote announce = 192.168.234.255/ACCOUNTING \ + 192.168.236.255/ACCOUNTING</pre><P CLASS="para"> +With this, Samba will broadcast host announcements to all machines on subnets 192.168.234 and 192.168.236, which will hopefully reach the local master browser of the subnet. You can also specify exact IP addresses, if they are known.</p></div></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch04_08.html" TITLE="4.8 Logging Configuration Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 4.8 Logging Configuration Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_02.html" TITLE="5.2 Filesystem Differences"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5.2 Filesystem Differences" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +4.8 Logging Configuration Options</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +5.2 Filesystem Differences</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch05_02.html b/docs/htmldocs/using_samba/ch05_02.html new file mode 100644 index 0000000000..462e23f3c0 --- /dev/null +++ b/docs/htmldocs/using_samba/ch05_02.html @@ -0,0 +1,429 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 5] 5.2 Filesystem Differences</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:56Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_01.html" TITLE="5.1 Browsing"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.1 Browsing" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch05_01.html" TITLE="5. Browsing and Advanced Disk Shares "> +Chapter 5<br> +Browsing and Advanced Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_03.html" TITLE="5.3 File Permissions and Attributes on MS-DOS and Unix"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5.3 File Permissions and Attributes on MS-DOS and Unix" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch05-34221"> +5.2 Filesystem Differences</a></h2><P CLASS="para">One of the biggest issues for which Samba has to correct is the difference between Unix and non-Unix filesystems. This includes items such as handling symbolic links, hidden files, and dot files. In addition, file permissions can also be a headache if not accounted for properly. This section describes how to use Samba to make up for some of those annoying differences, and even how to add some new functionality of its own.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-963262"> +5.2.1 Hiding and Vetoing Files</a></h3><P CLASS="para">There are some cases when we need to ensure that a user cannot see or access a file at all. Other times, we don't want to keep a user from accessing a file - we just want to hide it when they view the contents of the directory. On Windows systems, an attribute of files allows them to be hidden from a folder listing. With Unix, the traditional way of hiding files in a directory is to precede them with a dot (.). This prevents items such as configuration files or defaults from being seen when performing an ordinary <CODE CLASS="literal"> +ls</code> command. Keeping a user from accessing a file at all, however, involves working with permissions on files and or directories.</p><P CLASS="para"> +The first option we should discuss is the boolean <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +dot</code> <CODE CLASS="literal"> +files</code>. This option does exactly what it says. When set to <CODE CLASS="literal"> +yes</code>, the option treats files beginning with a period (.) as hidden. If set to <CODE CLASS="literal"> +no</code>, those files are always shown. The important thing to remember is that the files are only hidden. If the user has chosen to show all hidden files while browsing (e.g., using the Folder Options menu item under the View menu in Windows 98), they will still be able to see the files, as shown in <A CLASS="xref" HREF="ch05_02.html#ch05-77260"> +Figure 5.2</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch05-77260"> +Figure 5.2: Hidden files in the [data] share</a></h4><IMG CLASS="graphic" SRC="figs/sam.0502.gif" ALT="Figure 5.2"><P CLASS="para"> +Instead of simply hiding files beginning with a dot, you can also specify a string pattern to Samba for files to hide, using the <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +files</code> option. For example, let's assume that we specified the following in our example <CODE CLASS="literal"> +[data]</code> share:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + case sensitive = no + hide files = /*.java/*README*/</pre><P CLASS="para"> +Each entry for this option must begin, end, or be separated from another with a slash (/) character, even if there is only one pattern listed. This convention allows spaces to appear in filenames. In this example, the share directory would appear as shown in <A CLASS="xref" HREF="ch05_02.html#ch05-19743"> +Figure 5.3</a>. Again, note that we have set the Windows 98 option to view hidden files for the window. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch05-19743"> +Figure 5.3: Hiding files based on filename patterns</a></h4><IMG CLASS="graphic" SRC="figs/sam.0503.gif" ALT="Figure 5.3"><P CLASS="para">If we want to prevent users from seeing files at all, we can instead use the <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +files</code> option. This option, which takes the same syntax as the <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +files</code> option, specifies a list of files that should never be seen by the user. For example, let's change the <CODE CLASS="literal"> +[data]</code> share to the following:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + case sensitive = no + veto files = /*.java/*README*/</pre><P CLASS="para"> +The syntax of this option is identical to the <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +files</code> configuration option: each entry must begin, end, or be separated from another with a slash (<CODE CLASS="literal">/</code>) character, even if there is only one pattern listed. By doing so, the files <CODE CLASS="literal"> +hello.java</code> and <CODE CLASS="literal"> +README</code> will simply disappear from the directory, and the user will not be able to access them through SMB. </p><P CLASS="para"> +There is one other question that we need to address. What happens if the user tries to delete a directory that contains vetoed files? This is where the <CODE CLASS="literal"> +delete</code> <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +files</code> option comes in. If this boolean option is set to <CODE CLASS="literal"> +yes</code>, the user is allowed to delete both the regular files and the vetoed files in the directory, and the directory itself will be removed. If the option is set to <CODE CLASS="literal"> +no</code>, the user will not be able to delete the vetoed files, and consequently the directory will not be deleted either. From the user's perspective, the directory will appear to be empty, but cannot be removed.</p><P CLASS="para"> +The <CODE CLASS="literal"> +dont</code> <CODE CLASS="literal"> +descend</code> directive specifies a list of directories whose contents Samba should not allow to be visible. Note that we say <EM CLASS="emphasis"> +contents</em>, not the directory itself. Users will be able to enter a directory marked as such, but they are prohibited from descending the directory tree any farther - they will always see an empty folder. For example, let's use this option with a more basic form of the share that we defined earlier in the chapter:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + case sensitive = no + dont descend = config defaults</pre><P CLASS="para"> +In addition, let's assume that the <I CLASS="filename"> +/home/samba/data</i> directory has the following contents:</p><PRE CLASS="programlisting"> +drwxr-xr-x 6 tom users 1024 Jun 13 09:24 . +drwxr-xr-x 8 root root 1024 Jun 10 17:53 .. +-rw-r--r-- 2 tom users 1024 Jun 9 11:43 README +drwxr-xr-x 3 tom users 1024 Jun 13 09:28 config +drwxr-xr-x 3 tom users 1024 Jun 13 09:28 defaults +drwxr-xr-x 3 tom users 1024 Jun 13 09:28 market</pre><P CLASS="para"> +If the user then connects to the share, he or she would see the directories shown in <A CLASS="xref" HREF="ch05_02.html#ch05-62659"> +Figure 5.4</a>. However, the contents of the <I CLASS="filename"> +/config</i> and <I CLASS="filename"> +/defaults</i> directories would appear empty to the user, even if other folders or files existed in them. In addition, users cannot write any data to the folder (which prevents them from creating a file or folder with the same name as one that is already there but invisible). If a user attempts to do so, he or she will receive an "Access Denied" message. <CODE CLASS="literal"> +dont</code> <CODE CLASS="literal"> +descend</code> is an administrative option, not a security option, and is not a substitute for good file permissions. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch05-62659"> +Figure 5.4: Contents of the [data] share with dont descend </a></h4><IMG CLASS="graphic" SRC="figs/sam.0504.gif" ALT="Figure 5.4"></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-963441"> +5.2.2 Links</a></h3><P CLASS="para">DOS and NT filesystems don't have symbolic links; Windows 95/98/NT systems approximate this with "shortcuts" instead. Therefore, when a client tries to open a symbolic link on a Samba server share, Samba attempts to follow the link to find the real file and let the client open it, as if he or she were on a Unix machine. If you don't want to allow this, set the <CODE CLASS="literal"> +follow</code> <CODE CLASS="literal"> +symlinks</code> option:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + case sensitive = no + follow symlinks = no</pre><P CLASS="para"> +You can test this by creating a directory on the Unix server inside the share as the user that you are logging in with. Enter the following commands:</p><PRE CLASS="programlisting"> +% <CODE CLASS="userinput"><B>mkdir hello; cd hello</b></code> +% <CODE CLASS="userinput"><B>cat "This is a test" >hello.txt</b></code> +% <CODE CLASS="userinput"><B>ln -s hello.txt "Link to hello"</b></code></pre><P CLASS="para"> +This results in the two files shown in the window in <A CLASS="xref" HREF="ch05_02.html#ch05-36377"> +Figure 5.5</a>. Normally, if you click on either one, you will receive a file which has the text "This is a test" inside of it. However, with the <CODE CLASS="literal"> +follow</code> <CODE CLASS="literal"> +symlinks</code> option set to <CODE CLASS="literal"> +no</code>, you should receive an error similar to the dialog in <A CLASS="xref" HREF="ch05_02.html#ch05-36377"> +Figure 5.5</a> if you click on "Link to hello." </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch05-36377"> +Figure 5.5: An error dialog trying to follow symbolic links when forbidden by Samba</a></h4><IMG CLASS="graphic" SRC="figs/sam.0505.gif" ALT="Figure 5.5"><P CLASS="para"> +Finally, let's discuss the <CODE CLASS="literal"> +wide</code> <CODE CLASS="literal"> +links</code> option. This option, if set to <CODE CLASS="literal"> +yes</code>, allows the client user to follow symbolic links that point outside the shared directory tree, including files or directories at the other end of the link. For example, let's assume that we modified the <CODE CLASS="literal"> +[data]</code> share as follows:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + case sensitive = no + follow symlinks = yes + wide links = yes</pre><P CLASS="para"> +As long as the <CODE CLASS="literal"> +follow</code> <CODE CLASS="literal"> +symlinks</code> option is enabled, this will cause Samba to follow all symbolic links outside the current share tree. If we create a file outside the share (for example, in someone's home directory) and then create a link to it in the share as follows:</p><PRE CLASS="programlisting"> +ln -s ~tom/datafile ./datafile</pre><P CLASS="para"> +then you will be able to open the file in Tom's directory as per the target file's permissions.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-963127"> +5.2.3 Filesystem Options</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="ch05_02.html#ch05-48353">Table 5.4</a> shows a breakdown of the options we discussed earlier. We recommend the defaults for most, except those listed in the following descriptions. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch05-48353"> +Table 5.4: Filesystem Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +unix realname</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Provides Unix user's full name to client.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +dont descend</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of directories)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates a list of directories whose contents Samba should make invisible to clients.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +follow symlinks</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +no</code>, Samba will not honor symbolic links.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +getwd cache</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, Samba will use a cache for <CODE CLASS="literal"> +getwd()</code> calls.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +wide links</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, Samba will follow symbolic links outside the share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +hide dot files</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, treats Unix hidden files as hidden files in Windows.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +hide files</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of files)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +List of file patterns to treat as hidden.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +veto files</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of files)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +List of file patterns to never show.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +delete veto files</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, will delete files matched by <CODE CLASS="literal"> +veto files</code> when the directory they reside in is deleted.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958657"> +5.2.3.1 unix realname</a></h4><P CLASS="para"> +Some programs require a full username in order to operate. For example, a Windows email program often needs to associate a username with a given real name. If your system password file contains the real names of users in the GCOS field, the <CODE CLASS="literal"> +unix</code> <CODE CLASS="literal"> +realname</code> option instructs Samba to provide this information to clients. Without it, the name of the user will simply be his or her login ID. For example, if your Unix password file contains the following line:</p><PRE CLASS="programlisting"> +rcollins:/KaBfco47Rer5:500:500:Robert Collins: +/home/rcollins:/bin/ksh</pre><P CLASS="para"> +And the option in the configuration file is:</p><PRE CLASS="programlisting"> +[global] + unix realname = yes</pre><P CLASS="para"> +then the name Robert Collins will be provided to any client that requests the real name of user <CODE CLASS="literal"> +rcollins</code>. You typically don't need to bother with this option.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958929"> +5.2.3.2 dont descend</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +dont</code> <CODE CLASS="literal"> +descend</code> option can be used to specify various directories that should appear empty to the client. Note that the directory itself will still appear. However, Samba will not show any of the contents of the directory to the client user. This is not a good option to use as a security feature (a user could probably find a way around it); it really is meant only as a convenience to keep client users from browsing into directories that might have sensitive files. See our example earlier in this section.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958663"> +5.2.3.3 follow symlinks</a></h4><P CLASS="para">This option, which is discussed in greater detail earlier, controls whether Samba will follow a symbolic link in the Unix operating system to the target, or if it should return an error to the client user. If the option is set to <CODE CLASS="literal"> +yes</code>, the target of the link will be interpreted as the file.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-963512"> +5.2.3.4 getwd cache</a></h4><P CLASS="para"> +This global option specifies whether Samba should use a local cache for the Unix <CODE CLASS="literal"> +getwd()</code> (get current working directory) system call. You can override the default value of <CODE CLASS="literal"> +yes</code> as follows:</p><PRE CLASS="programlisting"> +[global] + getwd cache = no</pre><P CLASS="para"> +Setting this option to <CODE CLASS="literal"> +yes</code> can significantly increase the time it takes to resolve the working directory, especially if the <CODE CLASS="literal"> +wide</code> <CODE CLASS="literal"> +links</code> option is set to <CODE CLASS="literal"> +no</code>. You should normally not need to alter this option.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-960186"> +5.2.3.5 wide links</a></h4><P CLASS="para"> +This option specifies whether the client user can follow symbolic links that point outside the shared directory tree. This includes any files or directories at the other end of the link, as long as the permissions are correct for the user. The default value for this option is <CODE CLASS="literal"> +yes</code>. Note that this option will not be honored if the <CODE CLASS="literal"> +follow</code> <CODE CLASS="literal"> +symlinks</code> options is set to <CODE CLASS="literal"> +no</code>. Setting this option to <CODE CLASS="literal"> +no</code> slows <EM CLASS="emphasis"> +smbd</em> considerably.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958655"> +5.2.3.6 hide files</a></h4><P CLASS="para">The <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +files</code> option provides one or more directory or filename patterns to Samba. Any file matching this pattern will be treated as a hidden file from the perspective of the client. Note that this simply means that the DOS hidden attribute is set, which may or may not mean that the user can actually see it while browsing.</p><P CLASS="para"> +Each entry in the list must begin, end, or be separated from another entry with a slash (<CODE CLASS="literal">/</code>) character, even if there is only one pattern listed. This allows spaces to appear in the list. Asterisks can be used as a wildcard to represent zero or more characters. Questions marks can be used to represent exactly one character. For example:</p><PRE CLASS="programlisting"> +hide files = /.jav*/README.???/</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-963549"> +5.2.3.7 hide dot files</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +dot</code> <CODE CLASS="literal"> +files</code> option hides any files on the server that begin with a dot (.) character, in order to mimic the functionality behind several shell commands that are present on Unix systems. Like <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +files</code>, those files that begin with a dot have the DOS hidden attribute set, which doesn't necessarily guarantee that a client cannot view them. The default value for this option is <CODE CLASS="literal"> +yes</code>. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-963556"> +5.2.3.8 veto files</a></h4><P CLASS="para"> +More stringent than the hidden files state is the state provided by the <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +files</code> configuration option. Samba won't even admit these files exist. You cannot list or open them from the client. In reality, this isn't a trustworthy security option. It is actually a mechanism to keep PC programs from deleting special files, such as ones used to store the resource fork of a Macintosh file on a Unix filesystem. If both Windows and Macs are sharing the same files, this can prevent ill-advised power users from removing files the Mac users need.</p><P CLASS="para"> +The syntax of this option is identical to that of the <CODE CLASS="literal"> +hide</code> <CODE CLASS="literal"> +files</code> configuration option: each entry must begin, end, or be separated from another with a slash (/) character, even if only one pattern is listed. Asterisks can be used as a wildcard to represent zero or more characters. Questions marks can be used to represent exactly one character. For example:</p><PRE CLASS="programlisting"> +veto files = /*config/*default?/</pre><P CLASS="para"> +This option is primarily administrative - not a substitute for good file permissions.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958851"> +5.2.3.9 delete veto files</a></h4><P CLASS="para">This option tells Samba to delete vetoed files when a user attempts to delete the directory in which they reside. The default value is <CODE CLASS="literal"> +no</code>. This means if a user tries to delete a directory that contains a vetoed file, the file (and the directory) will not be deleted. Instead, the directory will remain and appear to be empty from the perspective of the user. If set to <CODE CLASS="literal"> +yes</code>, the directory and the vetoed files will be deleted.</p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_01.html" TITLE="5.1 Browsing"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.1 Browsing" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_03.html" TITLE="5.3 File Permissions and Attributes on MS-DOS and Unix"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5.3 File Permissions and Attributes on MS-DOS and Unix" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +5.1 Browsing</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +5.3 File Permissions and Attributes on MS-DOS and Unix</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch05_03.html b/docs/htmldocs/using_samba/ch05_03.html new file mode 100644 index 0000000000..aaa5648c6c --- /dev/null +++ b/docs/htmldocs/using_samba/ch05_03.html @@ -0,0 +1,426 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 5] 5.3 File Permissions and Attributes on MS-DOS and Unix</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:32:58Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_02.html" TITLE="5.2 Filesystem Differences"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.2 Filesystem Differences" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch05_01.html" TITLE="5. Browsing and Advanced Disk Shares "> +Chapter 5<br> +Browsing and Advanced Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_04.html" TITLE="5.4 Name Mangling and Case"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5.4 Name Mangling and Case" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch05-34062"> +5.3 File Permissions and Attributes on MS-DOS and Unix</a></h2><P CLASS="para">DOS was never intended to be a multiuser, networked operating system. Unix, on the other hand, was designed that way from the start. Consequently, there are inconsistencies and gaps in coverage between the two filesystems that Samba must not only be aware of, but also provide solutions for. One of the biggest gaps is how Unix and DOS handle permissions with files.</p><P CLASS="para"> +Let's take a look at how Unix assigns permissions. All Unix files have read, write, and execute bits for three classifications of users: owner, group, and world. These permissions can be seen at the extreme left-hand side when a <CODE CLASS="literal"> +ls</code> <CODE CLASS="literal"> +-al</code> command is issued in a Unix directory. For example:</p><PRE CLASS="programlisting"> +-rwxr--r-- 1 tom users 2014 Apr 13 14:11 access.conf </pre><P CLASS="para"> +Windows, on the other hand, has four principal bits that it uses with any file: read-only, system, hidden, and archive. You can view these bits by right-clicking on the file and choosing the Properties menu item. You should see a dialog similar to <A CLASS="xref" HREF="ch05_03.html#ch05-76568"> +Figure 5.6</a>.[<A CLASS="footnote" HREF="#ch05-pgfId-964268">1</a>] </p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch05-pgfId-964268">[1]</a> The system checkbox will probably be greyed for your file. Don't worry about that - you should still be able to see when the box is checked and when it isn't.</p></div></blockquote><H4 CLASS="figure"> +<A CLASS="title" NAME="ch05-76568"> +Figure 5.6: DOS and Windows file properties</a></h4><IMG CLASS="graphic" SRC="figs/sam.0506.gif" ALT="Figure 5.6"><P CLASS="para"> +The definition of each of those bits follows:</p><DL CLASS="variablelist"> +<DT CLASS="term">Read-only</dt><DD CLASS="listitem"> +<P CLASS="para"> +The file's contents can be read by a user but cannot be written to. </p></dd><DT CLASS="term">System</dt><DD CLASS="listitem"> +<P CLASS="para"> +This file has a specific purpose required by the operating system.</p></dd><DT CLASS="term">Hidden</dt><DD CLASS="listitem"> +<P CLASS="para"> +This file has been marked to be invisible to the user, unless the operating systems is explicitly set to show it.</p></dd><DT CLASS="term">Archive</dt><DD CLASS="listitem"> +<P CLASS="para"> +This file has been touched since the last DOS backup was performed on it.</p></dd></dl><P CLASS="para"> +Note that there is no bit to specify that a file is executable. DOS and Windows NT filesystems identify executable files by giving them the extensions .EXE, .COM, .CMD, or .BAT.</p><P CLASS="para"> +Consequently, there is no use for any of the three Unix executable bits that are present on a file in a Samba disk share. DOS files, however, have their own attributes that need to be preserved when they are stored in a Unix environment: the archive, system, and hidden bits. Samba can preserve these bits by reusing the executable permission bits of the file on the Unix side - if it is instructed to do so. Mapping these bits, however, has an unfortunate side-effect: if a Windows user stores a file in a Samba share, and you view it on Unix with the <CODE CLASS="literal"> +ls</code> <CODE CLASS="literal"> +-al</code> command, some of the executable bits won't mean what you'd expect them to.</p><P CLASS="para"> +Three Samba options decide whether the bits are mapped: <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +archive</code>, <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +system</code>, and <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +hidden</code>. These options map the archive, system, and hidden attributes to the owner, group, and world execute bits of the file, respectively. You can add these options to the <CODE CLASS="literal"> +[data]</code> share, setting each of their values as follows:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + map archive = yes + map system = yes + map hidden = yes</pre><P CLASS="para"> +After that, try creating a file in the share under Unix - such as <CODE CLASS="literal"> +hello.java</code> - and change the permissions of the file to 755. With these Samba options set, you should be able to check the permissions on the Windows side and see that each of the three values has been checked in the Properties dialog box. What about the read-only attribute? By default, Samba 2.0 sets this whenever a file does not have the Unix owner write permission bit set. In other words, you can set this bit by changing the permissions of the file to 555.</p><P CLASS="para"> +We should warn you that the default value of the <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +archive</code> option is <CODE CLASS="literal"> +yes</code>, while the other two options have a default value of <CODE CLASS="literal"> +no</code>. This is because many programs do not work properly if the archive bit is not stored correctly for DOS and Windows files. The system and hidden attributes, however, are not critical for a program's operation and are left to the discretion of the administrator.</p><P CLASS="para"> +<A CLASS="xref" HREF="ch05_03.html#ch05-56404"> +Figure 5.7</a> summarizes the Unix permission bits and illustrates how Samba maps those bits to DOS attributes. Note that the group read/write and world read/write bits do not directly translate to a DOS attribute, but they still retain their original Unix definitions on the Samba server. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch05-56404"> +Figure 5.7: How Samba and Unix view the permissions of a file</a></h4><IMG CLASS="graphic" SRC="figs/sam.0507.gif" ALT="Figure 5.7"><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-964095"> +5.3.1 Creation masks</a></h3><P CLASS="para"> +Samba has several options to help with file creation masks. File creation masks (or <I CLASS="firstterm"> +umasks</i>) help to define the permissions a file or directory will receive at the time it is created. In Unix, this means that you can control what permissions a file or directory does not have when it is created. For files accessed from Windows, this means you can disable the read-only, archive, system, and hidden attributes of a file as well.</p><P CLASS="para"> +For example, the <CODE CLASS="literal"> +create</code> <CODE CLASS="literal"> +mask</code> option will force the permissions of a file created by a Windows client to be at most 744:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + create mask = 744</pre><P CLASS="para"> +while the <CODE CLASS="literal"> +directory</code> <CODE CLASS="literal"> +mask</code> option shown here will force the permissions of a newly created directory to be at most 755:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + directory mask = 755</pre><P CLASS="para"> +Alternatively, you can also force various bits with the <CODE CLASS="literal"> +force</code> <CODE CLASS="literal"> +create</code> <CODE CLASS="literal"> +mode</code> and <CODE CLASS="literal"> +force</code> <CODE CLASS="literal"> +directory</code> <CODE CLASS="literal"> +mode</code> options. These options will perform a logical OR against the file and directory creation masks, ensuring that those bits that are specified will always be set. You would typically set these options globally in order to ensure that group and world read/write permissions have been set appropriately for new files or directories in each share.</p><P CLASS="para"> +In the same spirit, if you wish to explicitly set the Unix user and group attributes of a file that is created on the Windows side, you can use the <CODE CLASS="literal"> +force</code> <CODE CLASS="literal"> +user</code> and <CODE CLASS="literal"> +force</code> <CODE CLASS="literal"> +group</code> options. For example:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + + create mask = 744 + directory mask = 755 + force user = joe + force group = accounting</pre><P CLASS="para"> +These options actually assign a static Unix user and group to each connection that is made to a share. However, this occurs <EM CLASS="emphasis"> +after</em> the client authenticates; it does not allow free access to a share. These options are frequently used for their side effects of assigning a specific user and group to each new file or directory that is created in a share. Use these options with discretion.</p><P CLASS="para"> +Finally, one of the capabilities of Unix that DOS lacks is the ability to delete a read-only file from a writable directory. In Unix, if a directory is writable, a read-only file in that directory can still be removed. This could permit you to delete files in any of your directories, even if the file was left by someone else.</p><P CLASS="para"> +DOS filesystems are not designed for multiple users, and so its designers decided that read-only means "protected against accidental change, including deletion," rather than "protected against some other user on a single-user machine." So the designers of DOS prohibited removal of a read-only file. Even today, Windows file systems exhibit the same behavior.</p><P CLASS="para"> +Normally, this is harmless. Windows programs don't try to remove read-only files because they know it's a bad idea. However, a number of source-code control programs - which were first written for Unix - run on Windows and require the ability to delete read-only files. Samba permits this behavior with the <CODE CLASS="literal"> +delete</code> <CODE CLASS="literal"> +readonly</code> option. In order to enable this functionality, set the option to <CODE CLASS="literal"> +yes</code>:</p><PRE CLASS="programlisting"> +[data] + path = /home/samba/data + browseable = yes + guest ok = yes + writeable = yes + + create mask = 744 + directory mask = 755 + force user = joe + force group = accounting + delete readonly = yes</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-964323"> +5.3.2 File and Directory Permission Options</a></h3><P CLASS="para">The options for file and directory permissions are summarized in <A CLASS="xref" HREF="ch05_03.html#ch05-96508"> +Table 5.5</a>; each option is then described in detail. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch05-96508"> +Table 5.5: File and Directory Permission Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +map archive</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Preserve DOS archive attribute in user execute bit (0100).</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +map system</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Preserve DOS system attribute in group execute bit (0010).</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +map hidden</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Preserve DOS hidden attribute in world execute bit (0001).</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +create mask (create mode)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numeric</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the maximum permissions for files created by Samba.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0744</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +directory mask (directory mode)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numeric</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the maximum permissions for directories created by Samba.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0755</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +force create mode</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numeric</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Forces the specified permissions (bitwise or) for directories created by Samba.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0000</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +force directory mode</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numeric</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Forces the specified permissions (bitwise or) for directories created by Samba.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0000</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +force group (group)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (group name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the effective group for a user accessing this share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +force user</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (username)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the effective username for a user accessing this share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +delete readonly</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Allows a user to delete a read-only file from a writable directory.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961746"> +5.3.2.1 create mask</a></h4><P CLASS="para"> +The argument for this option is an octal number indicating which permission flags may be set at file creation by a client in a share. The default is 0755, which means the Unix owner can at most read, write, and optionally execute his or her own files, while members of the user's group and others can only read or execute them. If you need to change it for non-executable files, we recommend 0644, or <CODE CLASS="literal"> +rw-r--r--</code>. Keep in mind that the execute bits may be used by the server to map certain DOS file attributes, as described earlier. If you're altering the create mask, those bits have to be part of the create mask as well.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961749"> +5.3.2.2 directory mask</a></h4><P CLASS="para"> +The argument for this option is an octal number indicating which permission flags may be set at directory creation by a client in a share. The default is 0755, which allows everyone on the Unix side to at most read and traverse the directories, but allows only you to modify them. We recommend the mask 0750, removing access by world users.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961751"> +5.3.2.3 force create mode</a></h4><P CLASS="para"> +This option sets the permission bits that Samba will force to be set when a file permission change is made. It's often used to force group permissions, mentioned previously. It can also be used to preset any of the DOS attributes we mentioned: archive (0100), system (0010), or hidden (0001). This option always takes effect after the <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +archive</code>, <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +system </code>, <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +hidden</code>, and <CODE CLASS="literal"> +create</code> <CODE CLASS="literal"> +mask</code> options.</p><P CLASS="para"> +Many Windows applications rename their data files to <EM CLASS="emphasis"> +datafile.bak</em> and create new ones, thus changing their ownership and permissions so that members of the same Unix group can't edit them. Setting <CODE CLASS="literal"> +force create mask = 0660</code> will keep the new file editable by members of the group.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961753"> +5.3.2.4 force directory mode</a></h4><P CLASS="para"> +This option sets the permission bits which Samba will force when a directory permission change is made or a directory is created. It's often used to force group permissions, as mentioned previously. This option defaults to 0000, and can be used just like the <CODE CLASS="literal"> +force</code> <CODE CLASS="literal"> +create</code> <CODE CLASS="literal"> +mode</code> to add group or other permissions if needed. This option always takes effect after the <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +archive</code>, <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +system</code>, <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +hidden</code>, and <CODE CLASS="literal"> +directory</code> <CODE CLASS="literal"> +mask</code> options.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961755"> +5.3.2.5 force group</a></h4><P CLASS="para"> +This option, sometimes called <CODE CLASS="literal"> +group</code>, assigns a static group ID that will be used on all connections to a service after the client has successfully authenticated. This assigns a specific group to each new file or directory created from an SMB client.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961757"> +5.3.2.6 force user</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +force</code> <CODE CLASS="literal"> +user</code> option assigns a static user ID that will be used on all connections to a service after the client has successfully authenticated. This assigns a specific user to each new file or directory created from an SMB client.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961759"> +5.3.2.7 delete readonly</a></h4><P CLASS="para">This option allows a user to delete a directory containing a read-only file. By default, DOS and Windows will not allow such an operation. You probably will want to leave this option turned off unless a program needs this capability; many Windows users would be appalled to find that they'd accidentally deleted a file which they had set read-only. In fact, even the Unix <CODE CLASS="literal"> +rm</code> command will ask users if they really want to override the protection and delete read-only files. It's a good idea to have Samba be at least as cautious. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961826"> +5.3.2.8 map archive</a></h4><P CLASS="para"> +The DOS archive bit is used to flag a file that has been changed since it was last archived (e.g., backed up with the DOS archive program.) Setting the Samba option <CODE CLASS="literal"> +map</code> <CODE CLASS="literal"> +archive</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> causes the DOS archive flag to be mapped to the Unix execute-by-owner (0100) bit. It's best to leave this option on if your Windows users are doing their own backups, or are using programs that require the archive bit. Unix lacks the notion of an archive bit entirely. Backup programs typically keep a file that lists what files were backed up on what date, so comparing file modification dates serves the same purpose.</p><P CLASS="para"> +Setting this option to <CODE CLASS="literal"> +yes</code> causes an occasional surprise on Unix when a user notices that a data file is marked as executable, but rarely causes harm. If a user tries to run it, he or she will normally get a string of error messages as the shell tries to execute the first few lines as commands. The reverse is also possible; an executable Unix program looks like it hasn't been backed up recently on Windows. But again, this is rare, and is usually harmless. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961836"> +5.3.2.9 map system</a></h4><P CLASS="para"> +The DOS system attribute is used to indicate files that are required by the operating system, and should not be deleted, renamed, or moved without special effort. Set this option only if you need to store Windows system files on the Unix file server. Executable Unix programs will appear to be non-removable special Windows files when viewed from Windows clients. This may prove mildly inconvenient if you want to move or remove one. For most sites, however, this is fairly harmless.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-961845"> +5.3.2.10 map hidden</a></h4><P CLASS="para">DOS uses the hidden attribute to indicate that a file should not ordinarily be visible in directory listings. Unix doesn't have such a facility; it's up to individual programs (notably the shell) to decide what to display and what not to display. Normally, you won't have any DOS files that need to be hidden, so the best thing to do is to leave this option turned off.</p><P CLASS="para"> +Setting this option to <CODE CLASS="literal"> +yes</code> causes the server to map the hidden flag onto the executable-by-others bit (0001). This feature can produce a rather startling effect. Any Unix program that is executable by world seems to vanish when you look for it from a Windows client. If this option is not set, however, and a Windows user attempts to mark a file hidden on a Samba share, it will not work - Samba has no place to store the hidden attribute! </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_02.html" TITLE="5.2 Filesystem Differences"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.2 Filesystem Differences" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_04.html" TITLE="5.4 Name Mangling and Case"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5.4 Name Mangling and Case" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +5.2 Filesystem Differences</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +5.4 Name Mangling and Case</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch05_04.html b/docs/htmldocs/using_samba/ch05_04.html new file mode 100644 index 0000000000..e506445c10 --- /dev/null +++ b/docs/htmldocs/using_samba/ch05_04.html @@ -0,0 +1,433 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 5] 5.4 Name Mangling and Case</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:33:01Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_03.html" TITLE="5.3 File Permissions and Attributes on MS-DOS and Unix"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.3 File Permissions and Attributes on MS-DOS and Unix" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch05_01.html" TITLE="5. Browsing and Advanced Disk Shares "> +Chapter 5<br> +Browsing and Advanced Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_05.html" TITLE="5.5 Locks and Oplocks"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5.5 Locks and Oplocks" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch05-30534"> +5.4 Name Mangling and Case</a></h2><P CLASS="para">Back in the days of DOS and Windows 3.1, every filename was limited to eight upper-case characters, followed by a dot, and three more uppercase characters. This was known as the <I CLASS="firstterm"> +8.3 format</i>, and was a huge nuisance. Windows 95/98, Windows NT, and Unix have since relaxed this problem by allowing many more case-sensitive characters to make up a filename. <A CLASS="xref" HREF="ch05_04.html#ch05-24354"> +Table 5.6</a> shows the current naming state of several popular operating systems. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch05-24354"> +Table 5.6: Operating System Filename Limitations </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Operating System</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +File Naming Rules</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +DOS 6.22 or below</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Eight characters followed by a dot followed by a three-letter extension (8.3 format); case insensitive</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 3.1 for Workgroups</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Eight characters followed by a dot followed by a three-letter extension (8.3 format); case insensitive</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 95/98</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +127 characters; case sensitive</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows NT</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +127 characters; case sensitive</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Unix</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +255 characters; case sensitive</p></td></tr></tbody></table><P CLASS="para">Samba still has to remain backwards compatible with network clients who store files only in the 8.3 format, such as Windows for Workgroups. If a user creates a file on a share called <EM CLASS="emphasis"> +antidisestablishmentarianism.txt</em>, a Windows for Workgroups client couldn't tell it apart from another file in the same directory called <EM CLASS="emphasis"> +antidisease.txt</em>. Like Windows 95/98 and Windows NT, Samba has to employ a special methodology of translating a long filename to an 8.3 filename in such a way that similar filenames will not cause collisions. This is called <I CLASS="firstterm"> +name mangling</i>, and Samba deals with this in a manner that is similar, but not identical to, Windows 95 and its successors.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-959448"> +5.4.1 The Samba Mangling Operation</a></h3><P CLASS="para">Here is how Samba mangles a long filename into an 8.3 filename:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-959148"> +</a>If the original filename does not begin with a dot, up to the first five alphanumeric characters that occur before the last dot (if there is one) are converted to uppercase. These characters are used as the first five characters of the 8.3 mangled filename.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-959229"> +</a>If the original filename begins with a dot, the dot is removed and up to the first five alphanumeric characters that occur before the last dot (if there is one) are converted to uppercase. These characters are used as the first five characters of the 8.3 mangled filename.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-959228"> +</a>These characters are immediately followed a special mangling character: by default, a tilde (~), although Samba allows you to change this character.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-959149"> +</a>The base of the long filename before the last period is hashed into a two-character code; parts of the name after the last dot may be used if necessary. This two character code is appended to the 8.3 filename after the mangling character.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch05-pgfId-967828"> +</a>The first three characters after the last dot (if there is one) of the original filename are converted to uppercase and appended onto the mangled name as the extension. If the original filename began with a dot, three underscores (<CODE CLASS="literal">___</code>) are used as the extension instead.</p></li></ul><P CLASS="para"> +Here are some examples:</p><PRE CLASS="programlisting"> +virtuosity.dat VIRTU~F1.DAT +.htaccess HTACC~U0.___ +hello.java HELLO~1F.JAV +team.config.txt TEAMC~04.TXT +antidisestablishmentarianism.txt ANTID~E3.TXT +antidiseast.txt ANTID~9K.TXT</pre><P CLASS="para"> +Using these rules will allow Windows for Workgroups to differentiate the two files on behalf of the poor individual who is forced to see the network through the eyes of that operating system. Note that the same long filename should always hash to the same mangled name with Samba; this doesn't always happen with Windows. The downside of this approach is that there can still be collisions; however, the chances are greatly reduced.</p><P CLASS="para"> +You generally want to use the mangling configuration options with only the oldest clients. We recommend doing this without disrupting other clients by adding an <CODE CLASS="literal"> +include</code> directive to the <I CLASS="filename"> +smb.conf</i> file:</p><PRE CLASS="programlisting"> +[global] + include = /ucsr/local/samba/lib/smb.conf.%m</pre><P CLASS="para"> +This resolves to <I CLASS="filename"> +smb.conf.WfWg</i> when a Window for Workgroups client attaches. Now you can create a file <I CLASS="filename"> +/usr/local/samba/lib/smb.conf.WfWg</i> which might contain these options:</p><PRE CLASS="programlisting"> +[global] + case sensitive = no + default case = upper + preserve case = no + short preserve case = no + mangle case = yes + mangled names= yes</pre><P CLASS="para"> +If you are not using Windows for Workgroups 3.1, then you probably do not need to change any of these options from their defaults.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-959447"> +5.4.1.1 Representing and resolving filenames with Samba</a></h4><P CLASS="para">Another item that we should point out is that there is a difference between how an operating system <EM CLASS="emphasis"> +represents</em> a file and how it <EM CLASS="emphasis"> +resolves</em> it. For example, if you've used Windows 95/98/NT, you have likely run across a file called <I CLASS="filename"> +README.TXT</i>. The file can be represented by the operating system entirely in uppercase letters. However, if you open an MS-DOS prompt and enter the command <CODE CLASS="literal"> +edit</code> <CODE CLASS="literal"> +readme.txt</code>, the all-caps file is loaded into the editing program, even though you typed the name in lowercase letters!</p><P CLASS="para"> +This is because the Windows 95/98/NT family of operating systems resolves files in a case-insensitive manner, even though the files are represented it in a case-sensitive manner. Unix-based operating systems, on the other hand, always resolve files in a case-sensitive manner; if you try to edit <I CLASS="filename"> +README.TXT</i> with the command <CODE CLASS="literal"> +vi</code> <CODE CLASS="literal"> +readme.txt</code>, you will likely be editing the empty buffer of a new file.</p><P CLASS="para"> +Here is how Samba handles case: if the <CODE CLASS="literal"> +preserve</code> <CODE CLASS="literal"> +case</code> is set to <CODE CLASS="literal"> +yes</code>, Samba will always use the case provided by the operating system for representing (not resolving) filenames. If it is set to <CODE CLASS="literal"> +no</code>, it will use the case specified by the <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +case</code> option. The same is true for <CODE CLASS="literal"> +short</code> <CODE CLASS="literal"> +preserve</code> <CODE CLASS="literal"> +case</code>. If this option is set to <CODE CLASS="literal"> +yes</code>, Samba will use the default case of the operating system for representing 8.3 filenames; otherwise it will use the case specified by the <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +case</code> option. Finally, Samba will always resolve filenames in its shares based on the value of the <CODE CLASS="literal"> +case</code> <CODE CLASS="literal"> +sensitive</code> option.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-970053"> +5.4.2 Mangling Options</a></h3><P CLASS="para">Samba allows you to give it more refined instructions on how it should perform name mangling, including those controlling the case sensitivity, the character inserted to form a mangled name, and the ability to manually map filenames from one format to another. These options are shown in <A CLASS="xref" HREF="ch05_04.html#ch05-47431"> +Table 5.7</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch05-47431"> +Table 5.7: Name Mangling Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +case sensitive</code></p><P CLASS="para"> +<CODE CLASS="literal"> +(casesignames)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba will treat filenames as case-sensitive (Windows doesn't).</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +default case</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +(<CODE CLASS="literal">upper</code> or <CODE CLASS="literal"> +lower</code>)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Case to assume as default (only used when preserve case is <CODE CLASS="literal"> +no</code>).</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Lower</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +preserve case</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, keep the case the client supplied (i.e., do not convert to <CODE CLASS="literal"> +default case</code>).</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +short preserve case</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, preserve case of 8.3-format names that the client provides.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +mangle case</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Mangle a name if it is mixed case.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +mangled names</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Mangles long names into 8.3 DOS format.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +mangling char</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (single character)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Gives mangling character.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +~</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +mangled stack</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Number of mangled names to keep on the local mangling stack.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +50</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +mangled map</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of patterns)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Allows mapping of filenames from one format into another.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-960977"> +5.4.2.1 case sensitive</a></h4><P CLASS="para">This share-level option, which has the obtuse synonym <CODE CLASS="literal"> +casesignames</code>, specifies whether Samba should preserve case when resolving filenames in a specific share. The default value for this option is <CODE CLASS="literal"> +no</code>, which is how Windows handles file resolution. If clients are using an operating system that takes advantage of case-sensitive filenames, you can set this configuration option to <CODE CLASS="literal"> +yes</code> as shown here:</p><PRE CLASS="programlisting"> +[accounting] + case sensitive = yes</pre><P CLASS="para"> +Otherwise, we recommend that you leave this option set to its default.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958897"> +5.4.2.2 default case</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +case</code> option is used with <CODE CLASS="literal"> +preserve</code> <CODE CLASS="literal"> +case</code>. This specifies the default case (upper or lower) that Samba will use when it creates a file on one of its shares on behalf of a client. The default case is <CODE CLASS="literal"> +lower</code>, which means that newly created files will use the mixed-case names given to them by the client. If you need to, you can override this global option by specifying the following:</p><PRE CLASS="programlisting"> +[global] + default case = upper</pre><P CLASS="para"> +If you specify this value, the names of newly created files will be translated into uppercase, and cannot be overridden in a program. We recommend that you use the default value unless you are dealing with a Windows for Workgroups or other 8.3 client, in which case it should be <CODE CLASS="literal"> +upper</code>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958899"> +5.4.2.3 preserve case</a></h4><P CLASS="para"> +This option specifies whether a file created by Samba on behalf of the client is created with the case provided by the client operating system, or the case specified by the <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +case</code> configuration option above. The default value is <CODE CLASS="literal"> +yes</code>, which uses the case provided by the client operating system. If it is set to <CODE CLASS="literal"> +no</code>, the value of the <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +case</code> option is used.</p><P CLASS="para"> +Note that this option does not handle 8.3 file requests sent from the client - see the <CODE CLASS="literal"> +short</code> <CODE CLASS="literal"> +preserve</code> <CODE CLASS="literal"> +case</code> option below. You may want to set this option to <CODE CLASS="literal"> +yes</code> if applications that create files on the Samba server are sensitive to the case used when creating the file. If you want to force Samba, for example, to mimic the behavior of a Windows NT filesystem, you can leave this option to its default, <CODE CLASS="literal"> +yes</code>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958901"> +5.4.2.4 short preserve case</a></h4><P CLASS="para"> +This option specifies whether an 8.3 filename created by Samba on behalf of the client is created with the default case of the client operating system, or the case specified by the <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +case</code> configuration option. The default value is <CODE CLASS="literal"> +yes</code>, which uses the case provided by the client operating system. You can let Samba choose the case through the <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +case</code> option by setting it as follows:</p><PRE CLASS="programlisting"> +[global] + short preserve case = no</pre><P CLASS="para"> +If you want to force Samba to mimic the behavior of a Windows NT filesystem, you can leave this option set to its default, <CODE CLASS="literal"> +yes</code>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958984"> +5.4.2.5 mangled names</a></h4><P CLASS="para"> +This share-level option specifies whether Samba will mangle filenames for 8.3 clients in that share. If the option is set to <CODE CLASS="literal"> +no</code>, Samba will not mangle the names and (depending on the client), they will either be invisible or appear truncated to those using 8.3 operating systems. The default value is <CODE CLASS="literal"> +yes</code>. You can override it per share as follows:</p><PRE CLASS="programlisting"> +[data] + mangled names = no</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958903"> +5.4.2.6 mangle case</a></h4><P CLASS="para"> +This option tells Samba whether it should mangle filenames that are not composed entirely of the case specified using the <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +case</code> configuration option. The default for this option is <CODE CLASS="literal"> +no</code>. If you set it to <CODE CLASS="literal"> +yes</code>, you should be sure that all clients will be able to handle the mangled filenames that result. You can override it per share as follows:</p><PRE CLASS="programlisting"> +[data] + mangle case = yes</pre><P CLASS="para"> +We recommend that you leave this option alone unless you have a well-justified need to change it.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958976"> +5.4.2.7 mangling char</a></h4><P CLASS="para"> +This share-level option specifies the mangling character used when Samba mangles filenames into the 8.3 format. The default character used is a tilde (~). You can reset it to whatever character you wish, for instance:</p><PRE CLASS="programlisting"> +[data] + mangling char = #</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-959322"> +5.4.2.8 mangled stack</a></h4><P CLASS="para"> +Samba maintains a local stack of recently mangled 8.3 filenames; this stack can be used to reverse map mangled filenames back to their original state. This is often needed by applications that create and save a file, close it, and need to modify it later. The default number of long filename/mangled filename pairs stored on this stack is 50. However, if you want to cut down on the amount of processor time used to mangle filenames, you can increase the size of the stack to whatever you wish, at the expense of memory and slightly slower file access.</p><PRE CLASS="programlisting"> +[global] + mangled stack = 100</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-959327"> +5.4.2.9 mangled map</a></h4><P CLASS="para"> +If the default behavior of name mangling is not sufficient, you can give Samba further instructions on how to behave using the <CODE CLASS="literal"> +mangled</code> <CODE CLASS="literal"> +map</code> option. This option allows you to specify mapping patterns that can be used before or even in place of name mangling performed by Samba. For example:</p><PRE CLASS="programlisting"> +[data] + mangled map =(*.database *.db) (*.class *.cls)</pre><P CLASS="para"> +Here, Samba is instructed to search each file it encounters for characters that match the first pattern specified in the parenthesis and convert them to the modified second pattern in the parenthesis for display on an 8.3 client. This is useful in the event that name mangling converts the filename incorrectly or to a format that the client cannot understand readily. Patterns are separated by whitespaces. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_03.html" TITLE="5.3 File Permissions and Attributes on MS-DOS and Unix"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.3 File Permissions and Attributes on MS-DOS and Unix" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_05.html" TITLE="5.5 Locks and Oplocks"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 5.5 Locks and Oplocks" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +5.3 File Permissions and Attributes on MS-DOS and Unix</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +5.5 Locks and Oplocks</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch05_05.html b/docs/htmldocs/using_samba/ch05_05.html new file mode 100644 index 0000000000..b0298624f8 --- /dev/null +++ b/docs/htmldocs/using_samba/ch05_05.html @@ -0,0 +1,399 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 5] 5.5 Locks and Oplocks</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:33:03Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_04.html" TITLE="5.4 Name Mangling and Case"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.4 Name Mangling and Case" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch05_01.html" TITLE="5. Browsing and Advanced Disk Shares "> +Chapter 5<br> +Browsing and Advanced Disk Shares </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch06_01.html" TITLE="6. Users, Security, and Domains "> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6. Users, Security, and Domains " BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch05-75933"> +5.5 Locks and Oplocks</a></h2><P CLASS="para">Concurrent writes to a single file are not desirable in any operating system. To prevent this, most operating systems use <I CLASS="firstterm"> +locks</i> to guarantee that only one process can write to a file at a time. Operating systems traditionally lock entire files, although newer ones allow a range of bytes within a file to be locked. If another process attempts to write to a file (or section of one) that is already locked, it will receive an error from the operating system and will wait until the lock is released.</p><P CLASS="para"> +Samba supports the standard DOS and NT filesystem (deny-mode) locking requests, which allow only one process to write to an entire file on a server at a give time, as well as byte-range locking. In addition, Samba supports a new locking mechanism known in the Windows NT world as <I CLASS="firstterm"> +opportunistic locking - </i><EM CLASS="emphasis"> +oplock</em> for short.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-964663"> +5.5.1 Opportunistic Locking</a></h3><P CLASS="para"> +Opportunistic locking allows a client to notify the Samba server that it will not only be the exclusive writer of a file, but will also cache its changes to that file on its own machine (and not on the Samba server) in order to speed up file access for that client. When Samba knows that a file has been opportunistically locked by a client, it marks its version as having an opportunistic lock and waits for the client to complete work on the file, at which point it expects the client to send the final changes back to the Samba server for synchronization.</p><P CLASS="para"> +If a second client requests access to that file before the first client has finished working on it, Samba can send an <I CLASS="firstterm"> +oplock break</i> request to the first client. This tells the client to stop caching its changes and return the current state of the file to the server so that the interrupting client can use it as it sees fit. An opportunistic lock, however, is not a replacement for a standard deny-mode lock. It is not unheard of for the interrupting process to be granted an oplock break only to discover that the original process also has a deny-mode lock on a file as well. <A CLASS="xref" HREF="ch05_05.html#ch05-74304"> +Figure 5.8</a> illustrates this opportunistic locking process. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch05-74304"> +Figure 5.8: Opportunistic locking</a></h4><IMG CLASS="graphic" SRC="figs/sam.0508.gif" ALT="Figure 5.8"><P CLASS="para"> +In terms of locks, we highly recommend using the defaults provided by Samba: standard DOS/Windows deny-mode locks for compatibility and oplocks for the extra performance that local caching allows. If your operating system can take advantage of oplocks, it should provide significant performance improvements. Unless you have a specific reason for changing any of these options, it's best to leave them as they are.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch05-pgfId-969392"> +5.5.2 Unix and Locking</a></h3><P CLASS="para">Windows systems cooperate well to avoid overwriting each other's changes. But if a file stored on a Samba system is accessed by a Unix process, this process won't know a thing about Windows oplocks and could easily ride roughshod over a lock. Some Unix systems have been enhanced to understand the Windows oplocks maintained by Samba. Currently the support exists only in SGI Irix 6.5.2f and later; Linux and FreeBSD should soon follow.</p><P CLASS="para"> +If you have a system that understands oplocks, set <CODE CLASS="literal"> +kernel</code> <CODE CLASS="literal"> +oplocks</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> in the Samba configuration file. That should eliminate conflicts between Unix processes and Windows users. </p><P CLASS="para"> +If your system does not support kernel oplocks, you could end up with corrupted data when somebody runs a Unix process that reads or writes a file that Windows users also access. However, Samba provides a rough protection mechanism in the absence of kernel oplocks: the <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +oplock</code> <CODE CLASS="literal"> +files</code> option. If you can anticipate which Samba files are used by both Windows users and Unix users, set their names in a <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +oplock</code> <CODE CLASS="literal"> +files</code> option. This will suppress the use of oplocks on matching filenames, which will supress client caching, and let the Windows and Unix programs use system locking or update times to detect competition for the same file. A sample option is: </p><PRE CLASS="programlisting"> +veto oplock files = /*.dbm/</pre><P CLASS="para"> +This option allows both Unix processes and Windows users to edit files ending in the suffix <EM CLASS="emphasis"> +.dbm</em>. Note that the syntax of this option is similar to <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +files</code>.</p><P CLASS="para"> +Samba's options for locks and oplocks are given in <A CLASS="xref" HREF="ch05_05.html#ch05-53407"> +Table 5.8</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch05-53407"> +Table 5.8: Locks and Oplocks Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +share modes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, turns on support for DOS-style whole-file locks.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +locking</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, turns on byte-range locks.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +strict locking</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, denies access to an entire file if a byte-range lock exists in it.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +oplocks</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, turn on local caching of files on the client for this share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +kernel oplocks</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, indicates that the kernel supports oplocks.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +fake oplocks</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, tells client the lock was obtained, but doesn't actually lock it.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +blocking locks </code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Allows lock requestor to wait for the lock to be granted.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +veto oplock files</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of filenames)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Does not oplock specified files.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lock directory</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the location where various Samba files, including locks, are stored.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +As specified in Samba makefile</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958552"> +5.5.2.1 share modes</a></h4><P CLASS="para"> +The most primitive locks available to Samba are deny-mode locks, known as <I CLASS="firstterm"> +share modes</i>, which are employed by programs such as text editors to avoid accidental overwriting of files. For reference, the deny-mode locks are listed in <A CLASS="xref" HREF="ch05_05.html#ch05-55885"> +Table 5.9</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch05-55885"> +Table 5.9: SMB Deny-Mode Locks </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Lock</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Description</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +DENY_NONE</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Do not deny any other file requests.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +DENY_ALL</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Deny all open requests on the current file.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +DENY_READ</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Deny any read-only open requests on the current file.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +DENY_WRITE</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Deny any write-only open requests on the current file.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +DENY_DOS</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If opened for reading, others can read but cannot write to the file. If opened for writing, others cannot open the file at all.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +DENY_FCB</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Obsolete.</p></td></tr></tbody></table><P CLASS="para"> +The <CODE CLASS="literal"> +share</code> <CODE CLASS="literal"> +modes</code> parameter, which enforces the use of these locks, is enabled by default. To disable it, use the following command:</p><PRE CLASS="programlisting"> +[accounting] + share modes = no</pre><P CLASS="para"> +We highly recommend against disabling the default locking mechanism unless you have a justifiable reason for doing so. Most Windows and DOS applications rely on these locking mechanisms in order to work correctly, and will complain bitterly if this functionality is taken away.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958557"> +5.5.2.2 locking</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +locking</code> option can be used to tell Samba to engage or disengage server-side byte-range locks on behalf of the client. Samba implements byte-range locks on the server side with normal Unix advisory locks and will consequently prevent other properly-behaved Unix processes from overwriting a locked byte range.</p><P CLASS="para"> +This option can be specified per share as follows:</p><PRE CLASS="programlisting"> +[accounting] + locking = yes</pre><P CLASS="para"> +If the <CODE CLASS="literal"> +locking</code> option is set to <CODE CLASS="literal"> +yes</code>, the requestor will be delayed until the holder of either type of lock releases it (or crashes). If, however, the option is set to <CODE CLASS="literal"> +no</code>, no byte-range locks will be kept for the files, although requests to lock and unlock files will appear to succeed. The option is set to <CODE CLASS="literal"> +yes</code> by default; however, you can turn this option off if you have read-only media.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-959694"> +5.5.2.3 strict locking</a></h4><P CLASS="para"> +This option checks every file access for a byte-range lock on the range of bytes being accessed. This is typically not needed if a client adheres to all the locking mechanisms in place. This option is set to <CODE CLASS="literal"> +no</code> by default; however, you can reset it per share as follows:</p><PRE CLASS="programlisting"> +[accounting] + strict locking = yes</pre><P CLASS="para"> +If this option is set to <CODE CLASS="literal"> +yes</code>, mandatory locks are enforced on any file with byte-range locks.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958563"> +5.5.2.4 blocking locks</a></h4><P CLASS="para"> +Samba also supports <I CLASS="firstterm"> +blocking locks</i>, a minor variant of range locks. Here, if the range of bytes is not available, the client specifies an amount of time that it's willing to wait. The server then caches the lock request, periodically checking to see if the file is available. If it is, it notifies the client; however, if time expires, Samba will tell the client that the request has failed. This strategy prevents the client from continually polling to see if the lock is available.</p><P CLASS="para"> +You can disable this option per share as follows:</p><PRE CLASS="programlisting"> +[accounting] + blocking locks = no</pre><P CLASS="para"> +When set to <CODE CLASS="literal"> +yes</code>, blocking locks will be enforced on the file. If this option is set to <CODE CLASS="literal"> +no</code>, Samba behaves as if normal locking mechanisms are in place on the file. The default is <CODE CLASS="literal"> +yes</code>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958571"> +5.5.2.5 oplocks</a></h4><P CLASS="para"> +This option enables or disables support for oplocks on the client. The option is enabled by default. However, you can disable it with the following command:</p><PRE CLASS="programlisting"> +[data] + oplocks = no</pre><P CLASS="para"> +If you are in an extremely unstable network environment or have many clients that cannot take advantage of opportunistic locking, it may be better to shut this Samba feature off. Oplocks should be disabled if you are accessing the same files from both Unix applications (such as <EM CLASS="emphasis"> +vi</em>) and SMB clients (unless you are lucky enough to have an operating system that supports kernel oplocks as discussed earlier).</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958575"> +5.5.2.6 fake oplocks</a></h4><P CLASS="para"> +Before opportunistic locking was available on Samba, the Samba daemons pretended to allow oplocks via the <CODE CLASS="literal"> +fake</code> <CODE CLASS="literal"> +oplocks</code> option. If this option was enabled, all clients were told that the file is available for opportunistic locking, and never warned of simultaneous access. This option is deprecated now that real oplocks are available on Samba.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958577"> +5.5.2.7 kernel oplocks</a></h4><P CLASS="para"> +If a Unix application separate from Samba tries to update a file that Samba has oplocked to a Windows client, it will likely succeed (depending on the operating system) and both Samba and the client will never be aware of it. However, if the local Unix operating system supports it, Samba can warn it of oplocked files, which can suspend the Unix process, notify the client via Samba to write its copy back, and only then allow the open to complete. Essentially, this means that the operating system kernel on the Samba system has the ability to handle oplocks as well as Samba.</p><P CLASS="para"> +You can enable this behavior with the <CODE CLASS="literal"> +kernel</code> <CODE CLASS="literal"> +oplocks</code> option, as follows:</p><PRE CLASS="programlisting"> +[global] + kernel oplocks = yes</pre><P CLASS="para"> +Samba can automatically detect kernel oplocks and use them if present. At the time of this writing, this feature is supported only by SGI Irix 6.5.2f and later. However, Linux and FreeBSD support are expected in the near future. A system without kernel oplocks will allow the Unix process to update the file, but the client programs will notice the change only at a later time, if at all. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-958581"> +5.5.2.8 veto oplock files</a></h4><P CLASS="para"> +You can provide a list of filenames that are never granted opportunistic locks with the <CODE CLASS="literal"> +veto</code> <CODE CLASS="literal"> +oplock</code> <CODE CLASS="literal"> +files</code> option. This option can be set either globally or on a per-share basis. For example:</p><PRE CLASS="programlisting"> +veto oplock files = /*.bat/*.htm/</pre><P CLASS="para"> +The value of this option is a series of patterns. Each pattern entry must begin, end, or be separated from another with a slash (/) character, even if there is only one pattern listed. Asterisks can be used as a wildcard to represent zero or more characters. Questions marks can be used to represent exactly one character.</p><P CLASS="para"> +We recommend that you disable oplocks on any files that are meant to be updated by Unix or are intended to be shared by several processes simultaneously.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch05-pgfId-960237"> +5.5.2.9 lock directory</a></h4><P CLASS="para"> +This option (sometimes called <CODE CLASS="literal"> +lock</code> <CODE CLASS="literal"> +dir</code>) specifies the location of a directory where Samba will store SMB deny-mode lock files. Samba stores other files in this directory as well, such as browse lists and its shared memory file. If WINS is enabled, the WINS database is written to this directory as well. The default for this option is specified in the Samba makefile; it is typically <I CLASS="filename"> +/usr/local/samba/var/locks</i>. You can override this location as follows:</p><PRE CLASS="programlisting"> +[global] + lock directory = /usr/local/samba/locks</pre><P CLASS="para"> +You typically would not need to override this option, unless you want to move the lock files to a more standardized location, such as <I CLASS="filename"> +/var/spool/locks</i>. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_04.html" TITLE="5.4 Name Mangling and Case"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.4 Name Mangling and Case" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch06_01.html" TITLE="6. Users, Security, and Domains "> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6. Users, Security, and Domains " BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +5.4 Name Mangling and Case</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +6. Users, Security, and Domains </td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch06_01.html b/docs/htmldocs/using_samba/ch06_01.html new file mode 100644 index 0000000000..439e66f394 --- /dev/null +++ b/docs/htmldocs/using_samba/ch06_01.html @@ -0,0 +1,221 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 6] Users, Security, and Domains </title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:33:28Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_05.html" TITLE="5.5 Locks and Oplocks"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.5 Locks and Oplocks" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Chapter 6</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_02.html" TITLE="6.2 Controlling Access to Shares"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.2 Controlling Access to Shares" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="chapter"> +<A CLASS="title" NAME="ch06-88749"> +6. Users, Security, and Domains </a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#ch06-92902" TITLE="6.1 Users and Groups"> +Users and Groups</a><br> +<A CLASS="sect1" HREF="ch06_02.html" TITLE="6.2 Controlling Access to Shares"> +Controlling Access to Shares</a><br> +<A CLASS="sect1" HREF="ch06_03.html" TITLE="6.3 Authentication Security"> +Authentication Security</a><br> +<A CLASS="sect1" HREF="ch06_04.html" TITLE="6.4 Passwords"> +Passwords</a><br> +<A CLASS="sect1" HREF="ch06_05.html" TITLE="6.5 Windows Domains"> +Windows Domains</a><br> +<A CLASS="sect1" HREF="ch06_06.html" TITLE="6.6 Logon Scripts"> +Logon Scripts</a></p><P> +</p></div><P CLASS="para"> +This chapter discusses how to configure users with the Samba server. This topic may seem straightforward at first, but you'll soon discover that there are several ancillary problems that can crop up. One issue that Samba administrators have difficulty with is user authentication - password and security problems are by far the most common support questions on the Samba mailing lists. Learning why various authentication mechanisms work on certain architectures (and don't on others) can save you a tremendous amount of time testing and debugging Samba users in the future.</p><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="s1"></a> +<A CLASS="title" NAME="ch06-92902"> +6.1 Users and Groups</a></h2><P CLASS="para">Before we start, we need to warn you up front that if you are connecting to Samba with a Windows 98 or NT 4.0 Workstation SP3, you need to configure your server for encrypted passwords before you can make a connection; otherwise, the clients will refuse to connect to the Samba server. This is because each of those Windows clients sends encrypted passwords, and Samba needs to be configured to expect and decrypt them. We'll show you how to set up Samba for this task later in the chapter, assuming you haven't already tackled this problem in <a href="ch02_01.html"><b>Chapter 2, <CITE CLASS="chapter">Installing Samba on a Unix System</cite></b></a>.</p><P CLASS="para">Let's start with a single user. The easiest way to set up a client user is to create a Unix account (and home directory) for that individual on the server, and notify Samba of the user's existence. You can do the latter by creating a disk share that maps to the user's home directory in the Samba configuration file, and restricting access to that user with the <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> option. For example:</p><PRE CLASS="programlisting"> +[dave] + path = /home/dave + comment = Dave's home directory + writeable = yes<B CLASS="emphasis.bold"> + valid users = dave</b></pre><P CLASS="para"> +The <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> option lists the users that will be allowed to access the share. In this case, only the user <CODE CLASS="literal"> +dave</code> is allowed to access the share. In the previous chapters, we specified that any user could access a disk share using the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> parameter. Because we don't wish to allow guest access, that option is absent here. We could grant both authenticated users and guest users access to a specific share if we wanted to. The difference between the two typically involves access rights for each of the files. </p><P CLASS="para"> +Remember that you can abbreviate the user's home directory by using the <CODE CLASS="literal"> +%H</code> variable. In addition, you can use the Unix username variable <CODE CLASS="literal"> +%u</code> and/or the client username variable <CODE CLASS="literal"> +%U</code> in your options as well. For example<EM CLASS="emphasis"></em>:</p><PRE CLASS="programlisting"> +[dave] + comment = %U home directory + writeable = yes + valid users = dave + path = %H</pre><P CLASS="para"> +Both of these examples work as long as the Unix user that Samba uses to represent the client has read/write access to the directory referenced by the <CODE CLASS="literal"> +path</code> option. In other words, a client must first pass Samba's security mechanisms (e.g., encrypted passwords, the <CODE CLASS="literal"> +valid users</code> option, etc.) as well as the normal Unix file and directory permissions of its Unix-side user <EM CLASS="emphasis"> +before</em> it can gain read/write access to a share.</p><P CLASS="para"> +With a single user accessing a home directory, access permissions are taken care of when the operating system creates the user account. However, if you're creating a shared directory for group access, there are a few more steps you need to perform. Let's take a stab at a group share for the accounting department in the <EM CLASS="emphasis"> +smb.conf</em> file:</p><PRE CLASS="programlisting"> +[accounting] + comment = Accounting Department Directory + writeable = yes + valid users = @account + path = /home/samba/accounting + create mode = 0660 + directory mode = 0770</pre><P CLASS="para"> +The first thing that you might notice we did differently is to specify <CODE CLASS="literal"> +@account</code> as the valid user instead of one or more individual usernames. This is shorthand for saying that the valid users are represented by the Unix group <CODE CLASS="literal"> +account</code>. These users will need to be added to the group entry <CODE CLASS="literal"> +account</code> in the system group file (<I CLASS="filename">/etc/group</i> or equivalent) to be recognized as part of the group. Once they are, Samba will recognize those users as valid users for the share.</p><P CLASS="para"> +In addition, you will need to create a shared directory that the members of the group can access, which is pointed to by the <CODE CLASS="literal"> +path</code> configuration option. Here are the Unix commands that create the shared directory for the accounting department (assuming <EM CLASS="emphasis"> +/home/samba</em> already exists):</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">#</code> mkdir /home/samba/accounting</b><B CLASS="emphasis.bold"> +<CODE CLASS="literal">#</code> chgrp account /home/samba/accounting</b><B CLASS="emphasis.bold"> +<CODE CLASS="literal">#</code> chmod 770 /home/samba/accounting</b></pre><P CLASS="para"> +There are two other options in this <I CLASS="filename"> +smb.conf</i> example, both of which we saw in the previous chapter. These options are <CODE CLASS="literal"> +create</code> <CODE CLASS="literal"> +mode</code> and <CODE CLASS="literal"> +directory</code> <CODE CLASS="literal"> +mode</code>. These options set the maximum file and directory permissions that a new file or directory can have. In this case, we have denied all world access to the contents of this share. (This is reinforced by the <EM CLASS="emphasis"> +chmod</em> command, shown earlier.).</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-968835"> +6.1.1 The [homes] Share</a></h3><P CLASS="para"> +Let's return to user shares for a moment. If we have several users to set up home directory shares for, we probably want to use the special <CODE CLASS="literal"> +[homes]</code> share that we introduced in <a href="ch05_01.html"><b>Chapter 5, <CITE CLASS="chapter">Browsing and Advanced Disk Shares</cite></b></a>. With the <CODE CLASS="literal"> +[homes]</code> share, all we need to say is: </p><PRE CLASS="programlisting"> +[homes] +<CODE CLASS="literal"> + </code>browsable = no + writable = yes</pre><P CLASS="para"> +The <CODE CLASS="literal"> +[homes]</code> share is a special section of the Samba configuration file. If a user attempts to connect to an ordinary share that doesn't appear in the <I CLASS="filename"> +smb.conf</i> file (such as specifying it with a UNC in Windows Explorer), Samba will search for a <CODE CLASS="literal"> +[homes]</code> share. If one exists, the incoming share name is assumed to be a username and is queried as such in the password database (<I CLASS="filename">/etc/passwd</i> or equivalent) file of the Samba server. If it appears, Samba assumes the client is a Unix user trying to connect to his or her home directory.</p><P CLASS="para"> +As an illustration, let's assume that <CODE CLASS="literal"> +sofia</code> is attempting to connect to a share called [<CODE CLASS="literal">sofia]</code> on the Samba server. There is no share by that name in the configuration file, but a <CODE CLASS="literal"> +[homes]</code> share exists and user <CODE CLASS="literal"> +sofia</code> is present in the password database, so Samba takes the following steps:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957527"> +</a>Samba creates a new disk share called <CODE CLASS="literal"> +[sofia]</code> with the <CODE CLASS="literal"> +path</code> specified in the <CODE CLASS="literal"> +[homes]</code> section. If there is no <CODE CLASS="literal"> +path</code> option specified in <CODE CLASS="literal"> +[homes]</code>, Samba initializes it to her home directory.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957528"> +</a>Samba initializes the new share's options from the defaults in <CODE CLASS="literal"> +[globals]</code>, and any overriding options in <CODE CLASS="literal"> +[homes]</code> with the exception of <CODE CLASS="literal"> +browseable</code>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957529"> +</a>Samba connects <CODE CLASS="literal"> +sofia</code>'s client to that share.</p></li></ol><P CLASS="para"> +The <CODE CLASS="literal"> +[homes]</code> share is a fast, painless way to create shares for your user community without having to duplicate the information from the password database file in the <I CLASS="filename"> +smb.conf</i> file. It does have some peculiarities, however, that we need to point out:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957531"> +</a>The <CODE CLASS="literal"> +[homes]</code> section can represent any account on the machine, which isn't always desirable. For example, it can potentially create a share for <EM CLASS="emphasis"> +root</em>, <EM CLASS="emphasis"> +bin</em>, <EM CLASS="emphasis"> +sys</em>, <EM CLASS="emphasis"> +uucp</em>, and the like. (You can set a global <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> option to protect against this.)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957533"> +</a>The meaning of the <CODE CLASS="literal"> +browseable</code> configuration option is different from other shares; it indicates only that a <CODE CLASS="literal"> +[homes]</code> section won't show up in the local browse list, not that the <CODE CLASS="literal"> +[alice]</code> share won't. When the <CODE CLASS="literal"> +[alice]</code> section is created (after the initial connection), it will use the browsable value from the <CODE CLASS="literal"> +[globals]</code> section for that share, not the value from <CODE CLASS="literal"> +[homes]</code>.</p></li></ul><P CLASS="para"> +As we mentioned, there is no need for a path statement in <CODE CLASS="literal"> +[homes]</code> if the users have Unix home directories in the server's <I CLASS="filename"> +/etc/passwd</i> file. You should ensure that a valid home directory does exist, however, as Samba will not automatically create a home directory for a user, and will refuse a tree connect if the user's directory does not exist or is not accessible. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch05_05.html" TITLE="5.5 Locks and Oplocks"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 5.5 Locks and Oplocks" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_02.html" TITLE="6.2 Controlling Access to Shares"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.2 Controlling Access to Shares" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +5.5 Locks and Oplocks</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +6.2 Controlling Access to Shares</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch06_02.html b/docs/htmldocs/using_samba/ch06_02.html new file mode 100644 index 0000000000..a5b7bf4d52 --- /dev/null +++ b/docs/htmldocs/using_samba/ch06_02.html @@ -0,0 +1,423 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 6] 6.2 Controlling Access to Shares</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:33:37Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_01.html" TITLE="6.1 Users and Groups"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.1 Users and Groups" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch06_01.html" TITLE="6. Users, Security, and Domains "> +Chapter 6<br> +Users, Security, and Domains </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_03.html" TITLE="6.3 Authentication Security"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.3 Authentication Security" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch06-27678"> +6.2 Controlling Access to Shares</a></h2><P CLASS="para">Often you will need to restrict the users who can access a specific share for security reasons. This is very easy to do with Samba since it contains a wealth of options for creating practically any security configuration. Let's introduce a few configurations that you might want to use in your own Samba setup.</p><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> Again, if you are connecting with Windows 98 or NT 4.0 with Service Pack 3 (or above), those clients will send encrypted passwords to the Samba server. If Samba is not configured for this, it will continually refuse the connection. This chapter describes how to set up Samba for encrypted passwords. See the <A CLASS="xref" HREF="ch06_04.html"> +Section 6.4, Passwords</a> section.</p></blockquote><P CLASS="para"> +We've seen what happens when you specify valid users. However, you are also allowed to specify a list of invalid users - users who should never be allowed access to Samba or its shares. This is done with the <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> option. We hinted at one frequent use of this option earlier: a global default with the <CODE CLASS="literal"> +[homes]</code> section to ensure that various system users and superusers cannot be forged for access. For example:</p><PRE CLASS="programlisting"> +[global] + invalid users = root bin daemon adm sync shutdown \ + halt mail news uucp operator gopher + auto services = dave peter bob + +[homes] + browsable = no + writeable = yes</pre><P CLASS="para"> +The <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> option, like <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code>, can take group names as well as usernames. In the event that a user or group appears in both lists, the <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> option takes precedence and the user or group will be denied access to the share.</p><P CLASS="para"> +At the other end of the spectrum, you can explicitly specify users who will be allowed superuser (root) access to a share with the <CODE CLASS="literal"> +admin</code> <CODE CLASS="literal"> +users</code> option. An example follows:</p><PRE CLASS="programlisting"> +[sales] + path = /home/sales + comment = Fiction Corp Sales Data + writeable = yes + valid users = tom dick harry + admin users = mike</pre><P CLASS="para"> +This option takes both group names and usernames. In addition, you can specify NIS netgroups by preceding them with an <CODE CLASS="literal"> +@</code> as well; if the netgroup is not found, Samba will assume that you are referring to a standard Unix group. </p><P CLASS="para"> +Be careful if you assign an entire group administrative privileges to a share. The Samba team highly recommends you avoid using this option, as it essentially gives root access to the specified users or groups for that share.</p><P CLASS="para"> +If you wish to force read-only or read-write access to users who access a share, you can do so with the <CODE CLASS="literal"> +read</code> <CODE CLASS="literal"> +list</code> and <CODE CLASS="literal"> +write</code> <CODE CLASS="literal"> +list</code> options, respectively. These options can be used on a per-share basis to restrict a writable share or grant write access to specific users in a read-only share, respectively. For example:</p><PRE CLASS="programlisting"> +[sales] + path = /home/sales + comment = Fiction Corp Sales Data + read only = yes + write list = tom dick</pre><P CLASS="para"> +The <CODE CLASS="literal"> +write</code> <CODE CLASS="literal"> +list</code> option cannot override Unix permissions. If you've created the share without giving the write-list user write permission on the Unix system, he or she will be denied write access regardless of the setting of <CODE CLASS="literal"> +write</code> <CODE CLASS="literal"> +list</code>.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-968870"> +6.2.1 Guest Access</a></h3><P CLASS="para">As mentioned earlier, you can specify users who have guest access to a share. The options that control guest access are easy to work with. The first option, <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +account</code>, specifies the Unix account that guest users should be assigned when connecting to the Samba server. The default value for this is set during compilation, and is typically <CODE CLASS="literal"> +nobody</code>. However, you may want to reset the guest user to <CODE CLASS="literal"> +ftp</code> if you have trouble accessing various system services. </p><P CLASS="para"> +If you wish to restrict access in a share only to guests - in other words, all clients connect as the guest account when accessing the share - you can use the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +only</code> option in conjunction with the <CODE CLASS="literal"> +guest ok</code> option, as shown in the following example:</p><PRE CLASS="programlisting"> +[sales] + path = /home/sales + comment = Fiction Corp Sales Data + writeable = yes + guest ok = yes + guest account = ftp + guest only = yes</pre><P CLASS="para"> +Make sure you specify <CODE CLASS="literal"> +yes</code> for both <CODE CLASS="literal"> +guest only</code> and <CODE CLASS="literal"> +guest ok</code> in this scenario; otherwise, Samba will not use the guest acount that you specify.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-960007"> +6.2.2 Access Control Options</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="ch06_02.html#ch06-28077">Table 6.1</a> summarizes the options that you can use to control access to shares. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-28077"> +Table 6.1: Share-level Access Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +admin users</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of usernames)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a list of users who can perform operations as root.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +valid users</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of usernames)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a list of users that can connect to a share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +invalid users</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of usernames)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a list of users that will be denied access to a share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +read list</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of usernames)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a list of users that have read-only access to a writable share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +write list</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of usernames)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a list of users that have read-write access to a read-only share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +max connections</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates the maximum number of connections for a share at a given time.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +guest only (only guest)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies that this share allows only guest access.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +guest account</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (name of account)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Names the Unix account that will be used for guest access.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +nobody</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-959222"> +6.2.2.1 admin users</a></h4><P CLASS="para"> +This option specifies a list of users that perform file operations as if they were <CODE CLASS="literal"> +root</code>. This means that they can modify or destroy any other user's work, no matter what the permissions. Any files that they create will have root ownership and will use the default group of the admin user. The <CODE CLASS="literal"> +admin</code> <CODE CLASS="literal"> +users</code> option is used to allow PC users to act as administrators for particular shares. We urge you to avoid this option. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960368"> +6.2.2.2 valid users and invalid users</a></h4><P CLASS="para"> +These two options let you enumerate the users and groups who are granted or denied access to a particular share. You can enter a list of comma-delimited users, or indicate an NIS or Unix group name by prefixing the name with an at-sign (<CODE CLASS="literal">@</code>). </p><P CLASS="para"> +The important rule to remember with these options is that any name or group in the <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> list will <EM CLASS="emphasis"> +always</em> be denied access, even if it is included (in any form) in the <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> list. By default, neither option has a value associated with it. If both options have no value, any user is allowed to access the share.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-959243"> +6.2.2.3 read list and write list</a></h4><P CLASS="para"> +Like the <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> <CODE CLASS="literal"> +and</code> <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> options, this pair of options specifies which users have read-only access to a writeable share and read-write access to a read-only share, respectively. The value of either options is a list of users. <CODE CLASS="literal"> +read</code> <CODE CLASS="literal"> +list</code> overrides any other Samba permissions granted - as well as Unix file permissions on the server system - to deny users write access. <CODE CLASS="literal"> +write</code> <CODE CLASS="literal"> +list</code> overrides other Samba permissions to grant write access, but cannot grant write access if the user lacks write permissions for the file on the Unix system. You can specify NIS or Unix group names by prefixing the name with an at sign (such as <CODE CLASS="literal"> +@users</code>). Neither configuration option has a default value associated with it.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-959253"> +6.2.2.4 max connections</a></h4><P CLASS="para"> +This option specifies the maximum number of client connections that a share can have at any given time. Any connections that are attempted after the maximum is reached will be rejected. The default value is <CODE CLASS="literal"> +0</code>, which means that an unlimited number of connections are allowed. You can override it per share as follows:</p><PRE CLASS="programlisting"> +[accounting] + max connections = 30</pre><P CLASS="para"> +This option is useful in the event that you need to limit the number of users who are accessing a licensed program or piece of data concurrently.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-958842"> +6.2.2.5 guest only</a></h4><P CLASS="para"> +This share-level option (sometimes called <CODE CLASS="literal"> +only</code> <CODE CLASS="literal"> +guest</code>) forces a connection to a share to be performed with the user specified by the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +account</code> option. The share to which this is applied must explicitly specify <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> in order for this option to be recognized by Samba. The default value for this option is <CODE CLASS="literal"> +no</code>. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960637"> +6.2.2.6 guest account</a></h4><P CLASS="para"> +This option specifies the name of account to be used for guest access to shares in Samba. The default for this option varies from system to system, but it is often set to <CODE CLASS="literal"> +nobody</code>. Some default user accounts have trouble connecting as guest users. If that occurs on your system, the Samba team recommends using the ftp account as the guest user. </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-959934"> +6.2.3 Username Options</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="ch06_02.html#ch06-82964">Table 6.2</a> shows two additional options that Samba can use to correct for incompatibilities in usernames between Windows and Unix. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-82964"> +Table 6.2: Username Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +username map</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the name of the username mapping file.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +username level</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates the number of capital letters to use when trying to match a username.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-959982"> +6.2.3.1 username map</a></h4><P CLASS="para">Client usernames on an SMB network can be relatively large (up to 255 characters), while usernames on a Unix network often cannot be larger than eight characters. This means that an individual user may have one username on a client and another (shorter) one on the Samba server. You can get past this issue by<I CLASS="firstterm"> + mapping</i> a free-form client username to a Unix username of eight or fewer characters. It is placed in a standard text file, using a format that we'll describe shortly. You can then specify the pathname to Samba with the global <CODE CLASS="literal"> +username</code> <CODE CLASS="literal"> +map</code> option. Be sure to restrict access to this file; make the root user the file's owner and deny write access to others. Otherwise, an untrusted user who can access the file can easily map their client username to the root user of the Samba server.</p><P CLASS="para"> +You can specify this option as follows:</p><PRE CLASS="programlisting"> +[global] + username map = /etc/samba/usermap.txt</pre><P CLASS="para"> +Each of the entries in the username map file should be listed as follows: the Unix username, followed by an equal sign (<CODE CLASS="literal">=</code>), followed by one or more whitespace-separated SMB client usernames. Note that unless instructed otherwise, (i.e., a guest connection), Samba will expect both the client and the server user to have the same password. You can also map NT groups to one or more specific Unix groups using the <CODE CLASS="literal"> +@</code> sign. Here are some examples:</p><PRE CLASS="programlisting"> +jarwin = JosephArwin +manderso = MarkAnderson +users = @account</pre><P CLASS="para"> +Also, you can use the asterisk to specify a wildcard that matches any free-form client username as an entry in the username map file:</p><PRE CLASS="programlisting"> +nobody = *</pre><P CLASS="para"> +Comments in the file can be specified as lines beginning with (<CODE CLASS="literal">#</code>) and (<CODE CLASS="literal">;</code>).</p><P CLASS="para"> +Note that you can also use this file to redirect one Unix user to another user. Be careful if you do so because Samba and your client may not notify the user that the mapping has been made and Samba may be expecting a different password. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-959994"> +6.2.3.2 username level</a></h4><P CLASS="para">SMB clients (such as Windows) will often send usernames in SMB connection requests entirely in capital letters; in other words, client usernames are not necessarily case sensitive. On a Unix server, however, usernames <EM CLASS="emphasis"> +are</em> case sensitive: the user <CODE CLASS="literal"> +ANDY</code> is different from the user <CODE CLASS="literal"> +andy</code>. By default, Samba attacks this problem by doing the following:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-959996"> +</a>Checking for a user account with the exact name sent by the client</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-969146"> +</a>Testing the username in all lowercase letters</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-969147"> +</a>Testing the username in lowercase letters with only the first letter capitalized</p></li></ol><P CLASS="para"> +If you wish to have Samba attempt more combinations of uppercase and lowercase letters, you can use the <CODE CLASS="literal"> +username</code> <CODE CLASS="literal"> +level</code> global configuration option. This option takes an integer value that specifies how many letters in the username should be capitalized when attempting to connect to a share. You can specify this options as follows:</p><PRE CLASS="programlisting"> +[global] + username level = 3</pre><P CLASS="para"> +In this case, Samba will then attempt all permutations of usernames it can compute having three capital letters. The larger the number, the more computations Samba will have to perform to match the username and the longer the authentication will take. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_01.html" TITLE="6.1 Users and Groups"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.1 Users and Groups" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_03.html" TITLE="6.3 Authentication Security"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.3 Authentication Security" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +6.1 Users and Groups</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +6.3 Authentication Security</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch06_03.html b/docs/htmldocs/using_samba/ch06_03.html new file mode 100644 index 0000000000..a9e1b7ace7 --- /dev/null +++ b/docs/htmldocs/using_samba/ch06_03.html @@ -0,0 +1,384 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 6] 6.3 Authentication Security</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:33:44Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_02.html" TITLE="6.2 Controlling Access to Shares"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.2 Controlling Access to Shares" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch06_01.html" TITLE="6. Users, Security, and Domains "> +Chapter 6<br> +Users, Security, and Domains </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_04.html" TITLE="6.4 Passwords"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.4 Passwords" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch06-88596"> +6.3 Authentication Security</a></h2><P CLASS="para">At this point, we should discuss how Samba authenticates users. Each user who attempts to connect to a share that does not allow guest access must provide a password to make a successful connection. What Samba does with that password - and consequently the strategy Samba will use to handle user authentication - is the arena of the <CODE CLASS="literal"> +security</code> configuration option. There are currently four security levels that Samba supports on its network: <I CLASS="firstterm"> +share</i>, <I CLASS="firstterm"> +user</i>, <I CLASS="firstterm"> +server</i>, and <I CLASS="firstterm"> +domain</i>.</p><DL CLASS="variablelist"> +<DT CLASS="term">Share-level security</dt><DD CLASS="listitem"> +<P CLASS="para"> +Each share in the workgroup has one or more passwords associated with it. Anyone who knows a valid password for the share can access it.</p></dd><DT CLASS="term">User-level security</dt><DD CLASS="listitem"> +<P CLASS="para"> +Each share in the workgroup is configured to allow access from certain users. With each initial tree connection, the Samba server verifies users and their passwords to allow them access to the share.</p></dd><DT CLASS="term"> +Server-level security</dt><DD CLASS="listitem"> +<P CLASS="para"> +This is the same as user-level security, except that the Samba server uses a separate SMB server to validate users and their passwords before granting access to the share.</p></dd><DT CLASS="term">Domain-level security</dt><DD CLASS="listitem"> +<P CLASS="para"> +Samba becomes a member of a Windows domain and uses the domain's primary domain controller (PDC) to perform authentication. Once authenticated, the user is given a special token that allows him or her access to any share with appropriate access rights. With this token, the PDC will not have to revalidate the user's password each time he or she attempts to access another share within the domain.</p></dd></dl><P CLASS="para"> +Each of these security policies can be implemented with the global <CODE CLASS="literal"> +security</code> option, as shown in <A CLASS="xref" HREF="ch06_03.html#ch06-73905"> +Table 6.3</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-73905"> +Table 6.3: Security Option </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +security</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal">domain</code>, <CODE CLASS="literal"> +server</code>, <CODE CLASS="literal"> +share</code>, or <CODE CLASS="literal"> +user</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates the type of security that the Samba server will use.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +user</code> (Samba 2.0) or <CODE CLASS="literal"> +share</code> (Samba 1.9)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-957225"> +6.3.1 Share-level Security</a></h3><P CLASS="para">With share-level security, each share has one or more passwords associated with it. This differs from the other modes of security in that there are no restrictions as to whom can access a share, as long as that individual knows the correct password. Shares often have multiple passwords. For example, one password may grant read-only access, while another may grant read-write access, and so on. Security is maintained as long as unauthorized users do not discover the password for a share to which they shouldn't have access.</p><P CLASS="para">OS/2 and Window 95/98 both support share-level security on their resources. You can set up share-level security with Windows 95/98 by first enabling share-level security using the Access Control tab of the Network Control Panel dialog. Then select the Share-level Access Control radio button (which deselects the user-level access control radio button), as shown in <A CLASS="xref" HREF="ch06_03.html#ch06-33100"> +Figure 6.1</a>, and press the OK button. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch06-33100"> +Figure 6.1: Selecting share-level security on a Windows machine</a></h4><IMG CLASS="graphic" SRC="figs/sam.0601.gif" ALT="Figure 6.1"><P CLASS="para"> +Next, right click on a resource - such as a hard drive or a CD-ROM - and select the Properties menu item. This will bring up the Resource Properties dialog box. Select the Sharing tab at the top of the dialog box and enable the resource as Shared As. From here, you can configure how the shared resource will appear to individual users, as well as assigning whether the resource will appear as read-only, read-write, or a mix, depending on the password that is supplied.</p><P CLASS="para"> +You might be thinking that this security model is not a good fit for Samba - and you would be right. In fact, if you set the <CODE CLASS="literal"> +security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +share</code> option in the Samba configuration file, Samba will still reuse the username/passwords combinations in the system password files to authenticate access. More precisely, Samba will take the following steps when a client requests a connection using share-level security:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957239"> +</a>When a connection is requested, Samba will accept the password and (if sent) the username of the client.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-958140"> +</a>If the share is <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +only</code>, the user is immediately granted access to the share with the rights of the user specified by the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +account</code> parameter; no password checking is performed.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957243"> +</a>For other shares, Samba appends the username to a list of users who are allowed access to the share. It then attempts to validate the password given in association with that username. If successful, Samba grants the user access to the share with the rights assigned to that user. The user will not need to authenticate again unless a <CODE CLASS="literal"> +revalidate</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> option has been set inside the share.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957257"> +</a>If the authentication is unsuccessful, Samba will attempt to validate the password against the list of users it has previously compiled throughout the attempted connections, as well as any specified under the share in the configuration file. If the password does not match any usernames (as specified in the system password file, typically <I CLASS="filename"> +/etc/passwd</i>), the user is not granted access to the share under that username.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-958141"> +</a>However, if the share has a <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> or <CODE CLASS="literal"> +public</code> option set, the user will default to access with the rights of the user specified by the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +account</code> option.</p></li></ol><P CLASS="para"> +You can indicate in the configuration file which users should be initially placed on the share-level security user list by using the <CODE CLASS="literal"> +username</code> configuration option, as shown below:</p><PRE CLASS="programlisting"> +[global] + security = share +[accounting1] + path = /home/samba/accounting1 + guest ok = no + writable = yes + username = davecb, pkelly, andyo</pre><P CLASS="para"> +Here, when a user attempts to connect to a share, Samba will verify the password that was sent against each of the users in its own list, in addition to the passwords of users <CODE CLASS="literal"> +davecb</code>, <CODE CLASS="literal"> +pkelly</code>, and <CODE CLASS="literal"> +andyo</code>. If any of the passwords match, the connection will be verified and the user will be allowed. Otherwise, connection to the specific share will fail.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960345"> +6.3.1.1 Share Level Security Options</a></h4><P CLASS="para"> +<A CLASS="xref" HREF="ch06_03.html#ch06-80998"> +Table 6.4</a> shows the options typically associated with share-level security. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-80998"> +Table 6.4: Share-Level Access Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +only user</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates whether usernames specified by <CODE CLASS="literal"> +username</code> will be the only ones allowed.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +username </code>(user or users)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (list of usernames)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a list of users against which a client's password will be tested. </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960350"> +6.3.1.2 only user</a></h4><P CLASS="para"> +This boolean option indicates whether Samba will allow connections to a share using share-level security based solely on the individuals specified in the <CODE CLASS="literal"> +username</code> option, instead of those users compiled on Samba's internal list. The default value for this option is <CODE CLASS="literal"> +no</code>. You can override it per share as follows:</p><PRE CLASS="programlisting"> +[global] + security = share +[data] + username = andy, peter, valerie + only user = yes</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960355"> +6.3.1.3 username</a></h4><P CLASS="para"> +This option presents a list of users against which Samba will test a connection password to allow access. It is typically used with clients that have share-level security to allow connections to a particular service based solely on a qualifying password - in this case, one that matches a password set up for a specific user:</p><PRE CLASS="programlisting"> +[global] + security = share +[data] + username = andy, peter, terry</pre><P CLASS="para"> +We recommend against using this option unless you are implementing a Samba server with share-level security. </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-957260"> +6.3.2 User-level Security</a></h3><P CLASS="para">The preferred mode of security with Samba is <I CLASS="firstterm"> +user-level security</i>. With this method, each share is assigned specific users that can access it. When a user requests a connection to a share, Samba authenticates by validating the given username and password with the authorized users in the configuration file and the passwords in the password database of the Samba server. As mentioned earlier in the chapter, one way to isolate which users are allowed access to a specific share is by using the <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> option for each share:</p><PRE CLASS="programlisting"> +[global] + security = user +[accounting1] + writable = yes + valid users = bob, joe, sandy</pre><P CLASS="para"> +Each of the users listed will be allowed to connect to the share if the password provided matches the password stored in the system password database on the server. Once the initial authentication succeeds, the user will not need to re-enter a password again to access that share unless the <CODE CLASS="literal"> +revalidate</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> option has been set.</p><P CLASS="para">Passwords can be sent to the Samba server in either an encrypted or a non-encrypted format. If you have both types of systems on your network, you should ensure that the passwords represented by each user are stored both in a traditional account database and Samba's encrypted password database. This way, authorized users can gain access to their shares from any type of client.[<A CLASS="footnote" HREF="#ch06-pgfId-968956">1</a>] However, we recommend that you move your system to encrypted passwords and abandon non-encrypted passwords if security is an issue. The <A CLASS="xref" HREF="ch06_04.html"> +Section 6.4</a> section of this chapter explains how to use encrypted as well as non-encrypted passwords.</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch06-pgfId-968956">[1]</a> Having both encrypted and non-encrypted password clients on your network is another reason why Samba allows you to include (or not include) various options in the Samba configuration file based on the client operating system or machine name variables. </p></div></blockquote></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-957282"> +6.3.3 Server-level Security</a></h3><P CLASS="para">Server-level security is similar to user-level security. However, with server-level security, Samba delegates password authentication to another SMB password server, typically another Samba server or a Windows NT Server acting as a PDC on the network. Note that Samba still maintains its list of shares and their configuration in its <I CLASS="filename"> +smb.conf</i> file. When a client attempts to make a connection to a particular share, Samba validates that the user is indeed authorized to connect to the share. Samba will then attempt to validate the password by contacting the SMB password server through a known protocol and presenting the username and password to the SMB password server. If the password is accepted, a session will be established with the client. See <A CLASS="xref" HREF="ch06_03.html#ch06-89929"> +Figure 6.2</a> for an illustration of this setup. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch06-89929"> +Figure 6.2: A typical system setup using server level security</a></h4><IMG CLASS="graphic" SRC="figs/sam.0602.gif" ALT="Figure 6.2"><P CLASS="para"> +You can configure Samba to use a separate password server under server-level security with the use of the <CODE CLASS="literal"> +password</code> <CODE CLASS="literal"> +server</code> global configuration option, as follows:</p><PRE CLASS="programlisting"> +[global] + security = server + password server = PHOENIX120 HYDRA134</pre><P CLASS="para"> +Note that you can specify more than one machine as the target of the <CODE CLASS="literal"> +password</code> <CODE CLASS="literal"> +server</code>; Samba will move down the list of servers in the event that its first choice is unreachable. The servers identified by the <CODE CLASS="literal"> +password</code> <CODE CLASS="literal"> +server</code> option are given as NetBIOS names, not their DNS names or equivalent IP addresses. Also, if any of the servers reject the given password, the connection will automatically fail - Samba will not attempt another server.</p><P CLASS="para"> +One caveat: when using this option, you will still need an account representing that user on the regular Samba server. This is because the Unix operating system needs a username to perform various I/O operations. The preferable method of handling this is to give the user an account on the Samba server but disable the account's password by replacing it in the system password file (e.g., <I CLASS="filename"> +/etc/passwd </i>) with an asterisk (*).</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-957298"> +6.3.4 Domain-level Security</a></h3><P CLASS="para">Domain-level security is similar to server-level security. However, with domainlevel security, the Samba server is acting as a member of a Windows domain. Recall from Chapter 1 that each domain has a <I CLASS="firstterm"> +domain controller</i>, which is usually a Windows NT server offering password authentication. Including these controllers provides the workgroup with a definitive password server. The domain controllers keep track of users and passwords in their own security authentication module (SAM), and authenticates each user when he or she first logs on and wishes to access another machine's shares.</p><P CLASS="para"> +As mentioned earlier in this chapter, Samba has a similar ability to offer user-level security, but this option is Unix-centric and assumes that the authentication occurs via Unix password files. If the Unix machine is part of a NIS or NIS+ domain, Samba will authenticate the users transparently against a shared password file, in typical Unix fashion. Samba then provides access to the NIS or NIS+ domain from Windows. There is, of course, no relationship between the NIS concept of a domain and the Windows concept of a domain.</p><P CLASS="para">With domain-level security, we now have the option of using the native NT mechanism. This has a number of advantages:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963199"> +</a>It provides far better integration with NT: there are fewer "kludges" in the <I CLASS="filename"> +smb.conf</i> options dealing with domains than with most Windows features. This allows more extensive use of NT management tools, such as the User Manager for Domains tool allowing PC support individuals to treat Samba servers as if they were large NT machines.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963200"> +</a>With the better integration comes protocol and code cleanups, allowing the Samba team to track the evolving NT implementation. NT Service Pack 4 corrects several problems in the protocol, and Samba's better integration makes it easier to track and adapt to these changes.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963202"> +</a>There is less overhead on the PDC because there is one less permanent network connection between it and the Samba server. Unlike the protocol used by the <CODE CLASS="literal"> +security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +server</code> option, the Samba server can make a Remote Procedure Call (RPC) call only when it needs authentication information. It can not keep a connection permanently up just for that.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963203"> +</a>Finally, the NT domain authentication scheme returns the full set of user attributes, not just success or failure. The attributes include a longer, more network-oriented version of the Unix uid, NT groups, and other information. This includes:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963204"> +</a>Username</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963205"> +</a>Full name</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963206"> +</a>Description</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963207"> +</a>Security identifier (a domain-wide extension of the Unix uid)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963208"> +</a>NT group memberships</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963209"> +</a>Logon hours, and whether to force the user to log out immediately</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963210"> +</a>Workstations the user is allowed to use</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963211"> +</a>Account expiration date</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963212"> +</a>Home directory</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963213"> +</a>Login script</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963214"> +</a>Profile</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963215"> +</a>Account type</p></li></ul></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963216"> +</a>The Samba developers used domain-level security in Samba version 2.0.4 to add and delete domain users on Samba servers semi-automatically. In addition, it adds room for other NT-like additions, such as supporting access control lists and changing permissions of files from the client.</p></li></ul><P CLASS="para"> +The advantage to this approach is less administration; there is only one authentication database to keep synchronized. The only local administration required on the Samba server will be creating directories for users to work in and <I CLASS="filename"> +/etc/passwd</i> entries to keep their UIDs and groups in. </p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-963191"> +6.3.4.1 Adding a Samba server to a Windows NT Domain</a></h4><P CLASS="para"> +If you already have an NT domain, you can easily add a Samba server to it. First, you will need to stop the Samba daemons. Then, add the Samba server to the NT domain on the PDC using the "Windows NT Server Manager for Domains" tool. When it asks for the computer type, choose "Windows NT Workstation or Server," and give it the NetBIOS name of the Samba server. This creates the machine account on the NT server.</p><P CLASS="para"> +Next, generate a Microsoft-format machine password using the <I CLASS="filename"> +smbpasswd</i> tool, which is explained in further detail in the next section. For example, if our domain is SIMPLE and the Windows NT PDC is <CODE CLASS="literal"> +beowulf</code>, we could use the following command on the Samba server to accomplish this:</p><PRE CLASS="programlisting"> +<CODE CLASS="literal"> +smbpasswd -j SIMPLE -r beowulf</code></pre><P CLASS="para"> +Finally, add the following options to the <CODE CLASS="literal"> +[global]</code> section of your <I CLASS="filename"> +smb.conf</i> and restart the Samba daemons.</p><PRE CLASS="programlisting"> +[global] + security = domain + domain logins = yes + workgroup = SIMPLE + password server = beowulf</pre><P CLASS="para"> +Samba should now be configured for domain-level security. The <CODE CLASS="literal"> +domain</code> <CODE CLASS="literal"> +logins</code> option is explained in more detail later in this chapter. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_02.html" TITLE="6.2 Controlling Access to Shares"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.2 Controlling Access to Shares" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_04.html" TITLE="6.4 Passwords"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.4 Passwords" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +6.2 Controlling Access to Shares</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +6.4 Passwords</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch06_04.html b/docs/htmldocs/using_samba/ch06_04.html new file mode 100644 index 0000000000..646c6128f4 --- /dev/null +++ b/docs/htmldocs/using_samba/ch06_04.html @@ -0,0 +1,738 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 6] 6.4 Passwords</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:33:50Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_03.html" TITLE="6.3 Authentication Security"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.3 Authentication Security" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch06_01.html" TITLE="6. Users, Security, and Domains "> +Chapter 6<br> +Users, Security, and Domains </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_05.html" TITLE="6.5 Windows Domains"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.5 Windows Domains" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch06-61393"> +6.4 Passwords</a></h2><P CLASS="para">Passwords are a thorny issue with Samba. So much so, in fact, that they are almost always the first major problem that users encounter when they install Samba, and generate by far the most questions sent to Samba support groups. In previous chapters, we've gotten around the need for passwords by placing the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> option in each of our configuration files, which allows connections without authenticating passwords. However, at this point, we need to delve deeper into Samba to discover what is happening on the network.</p><P CLASS="para">Passwords sent from individual clients can be either encrypted or non-encrypted. Encrypted passwords are, of course, more secure. A non-encrypted password can be easily read with a packet sniffing program, such as the modified <EM CLASS="emphasis"> +tcpdump</em> program for Samba that we used in <a href="ch03_01.html"><b>Chapter 3, <CITE CLASS="chapter">Configuring Windows Clients</cite></b></a>. Whether passwords are encrypted depends on the operating system that the client is using to connect to the Samba server. <A CLASS="xref" HREF="ch06_04.html#ch06-75183"> +Table 6.5</a> lists which Windows operating systems encrypt their passwords before sending them to the primary domain controller for authentication. If your client is not Windows, check the system documentation to see if SMB passwords are encrypted. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-75183"> +Table 6.5: Windows Operating Systems with Encrypted Passwords </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Operating System</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Encrypted or Non-encrypted</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +</code>Windows 95</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Non-encrypted</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 95 with SMB Update</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Encrypted</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 98</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Encrypted</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows NT 3.<EM CLASS="emphasis"> +x</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Non-encrypted</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows NT 4.0 before SP<CODE CLASS="literal"> + 3</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Non-encrypted</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows NT 4.0 after SP 3</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Encrypted</p></td></tr></tbody></table><P CLASS="para"> +There are actually two different encryption methods used: one for Windows 95 and 98 clients that reuses Microsoft's LAN Manager encryption style, and a separate one for Windows NT clients and servers. Windows 95 and 98 use an older encryption system inherited from the LAN Manager network software, while Windows NT clients and servers use a newer encryption system.</p><P CLASS="para"> +If encrypted passwords are supported, Samba stores the encrypted passwords in a file called <I CLASS="filename"> +smbpasswd</i>. By default, this file is located in the <I CLASS="filename"> +private</i> directory of the Samba distribution (<I CLASS="filename">/usr/local/samba/private</i>). At the same time, the client stores an encrypted version of a user's password on its own system. The plaintext password is never stored on either system. Each system encrypts the password automatically using a known algorithm when the password is set or changed.</p><P CLASS="para"> +When a client requests a connection to an SMB server that supports encrypted passwords (such as Samba or Windows NT), the two computers undergo the following negotiations:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957427"> +</a>The client attempts to negotiate a protocol with the server.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957428"> +</a>The server responds with a protocol and indicates that it supports encrypted passwords. At this time, it sends back a randomly-generated 8-byte challenge string.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957433"> +</a>The client uses the challenge string as a key to encrypt its already encrypted password using an algorithm predefined by the negotiated protocol. It then sends the result to the server.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957436"> +</a>The server does the same thing with the encrypted password stored in its database. If the results match, the passwords are equivalent and the user is authenticated.</p></li></ol><P CLASS="para"> +Note that even though the original passwords are not involved in the authentication process, you need to be very careful that the encrypted passwords located inside of the <I CLASS="filename"> +smbpasswd</i> file are guarded from unauthorized users. If they are compromised, an unauthorized user can break into the system by replaying the steps of the previous algorithm. The encrypted passwords are just as sensitive as the plaintext passwords - this is known as <I CLASS="firstterm"> +plaintext-equivalent</i> data in the cryptography world. Of course, you should also ensure that the clients safeguard their plaintext-equivalent passwords as well.</p><P CLASS="para"> +You can configure Samba to accept encrypted passwords with the following global additions to <I CLASS="filename"> +smb.conf</i>. Note that we explicitly name the location of the Samba password file:</p><PRE CLASS="programlisting"> +[global] + security = user + encrypt passwords = yes + smb passwd file = /usr/local/samba/private/smbpasswd</pre><P CLASS="para"> +Samba, however, will not accept any users until the <I CLASS="filename"> +smbpasswd</i> file has been initialized.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-959309"> +6.4.1 Disabling encrypted passwords on the client</a></h3><P CLASS="para">While Unix authentication has been in use for decades, including the use of <EM CLASS="emphasis"> +telnet</em> and <EM CLASS="emphasis"> +rlogin</em> access across the Internet, it embodies well-known security risks. Plaintext passwords are sent over the Internet and can be retrieved from TCP packets by malicious snoopers. However, if you feel that your network is secure and you wish to use standard Unix <I CLASS="filename"> +/etc/passwd</i> authentication for all clients, you can do so, but you must disable encrypted passwords on those Windows clients that default to using them. </p><P CLASS="para"> +In order to do this, you must modify the Windows registry by installing two files on each system. Depending on the platform involved, the files are either <I CLASS="filename"> +NT4_PlainPassword.reg</i> or <I CLASS="filename"> +Win95_PlainPassword.reg</i>. You can perform this installation by copying the appropriate <I CLASS="filename"> +.reg</i> files from the Samba distribution's <I CLASS="filename"> +/docs</i> directory to a DOS floppy, and running it from the Run menu item on the client's Start Menu button. Incidentally, the Windows 95 <I CLASS="filename"> +.reg</i> file works fine on Windows 98 as well.</p><P CLASS="para"> +After you reboot the machine, the client will not encrypt its hashed passwords before sending them to the server. This means that the plaintext-equivalent passwords can been seen in the TCP packets that are broadcast across the network. Again, we encourage you not to do this unless you are absolutely sure that your network is secure.</p><P CLASS="para"> +If passwords are not encrypted, you can indicate as much in your Samba configuration file:</p><PRE CLASS="programlisting"> +[global] + security = user + encrypt passwords = no</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-17782"> +6.4.2 The smbpasswd File</a></h3><P CLASS="para"> +<I CLASS="filename"> +</i>Samba stores its encrypted passwords in a file called <I CLASS="filename"> +smbpasswd</i>, which by default resides in the <I CLASS="filename"> +/usr/local/samba/private</i> directory. The <I CLASS="filename"> +smbpasswd</i> file should be guarded as closely as the <I CLASS="filename"> +passwd</i> file; it should be placed in a directory to which only the root user has read/write access. All other users should not be able to read from the directory at all. In addition, the file should have all access closed off to all users except for root.</p><P CLASS="para"> +Before you can use encrypted passwords, you will need to create an entry for each Unix user in the <I CLASS="filename"> +smbpasswd</i> file. The structure of the file is somewhat similar to a Unix <I CLASS="filename"> +passwd</i> file, but has different fields. <A CLASS="xref" HREF="ch06_04.html#ch06-54128"> +Figure 6.3</a> illustrates the layout of the <I CLASS="filename"> +smbpasswd</i> file; the entry shown is actually one line in the file. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch06-54128"> +Figure 6.3: Structure of the smbpasswd file entry (actually one line)</a></h4><IMG CLASS="graphic" SRC="figs/sam.0603.gif" ALT="Figure 6.3"><P CLASS="para"> +Here is a breakdown of the individual fields:</p><DL CLASS="variablelist"> +<DT CLASS="term"> +Username</dt><DD CLASS="listitem"> +<P CLASS="para"> +This is the username of the account. It is taken directly from the system password file.</p></dd><DT CLASS="term"> +UID</dt><DD CLASS="listitem"> +<P CLASS="para"> +This is the user ID of the account. Like the username, it is taken directly from the system password file and must match the user it represents there.</p></dd><DT CLASS="term"> +LAN Manager Password Hash</dt><DD CLASS="listitem"> +<P CLASS="para"> +This is a 32-bit hexadecimal sequence that represents the password Windows 95 and 98 clients will use. It is derived by encrypting the string <CODE CLASS="literal"> +KGS!@#$%</code> with a 56-bit DES algorithm using the user's password (forced to 14 bytes and converted to capital letters) twice repeated as the key. If there is currently no password for this user, the first 11 characters of the hash will consist of the sequence <CODE CLASS="literal"> +NO</code> <CODE CLASS="literal"> +PASSWORD</code> followed by <CODE CLASS="literal"> +X</code> characters for the remainder. Anyone can access the share with no password. On the other hand, if the password has been disabled, it will consist of 32 <CODE CLASS="literal"> +X</code> characters. Samba will not grant access to a user without a password unless the <CODE CLASS="literal"> +null</code> <CODE CLASS="literal"> +passwords</code> option has been set.</p></dd><DT CLASS="term"> +NT Password Hash</dt><DD CLASS="listitem"> +<P CLASS="para"> +This is a 32-bit hexadecimal sequence that represents the password Windows NT clients will use. It is derived by hashing the user's password (represented as a 16-bit little-endian Unicode sequence) with an MD4 hash. The password is not converted to uppercase letters first.</p></dd><DT CLASS="term"> +Account Flags</dt><DD CLASS="listitem"> +<P CLASS="para"> +This field consists of 11 characters between two braces ([]). Any of the following characters can appear in any order; the remaining characters should be spaces:</p><P CLASS="para"> +U</p><P CLASS="para"> +This account is a standard user account.</p><P CLASS="para"> +D</p><P CLASS="para"> +This account is currently disabled and Samba should not allow any logins.</p><P CLASS="para"> +N</p><P CLASS="para"> +This account has no password associated with it.</p><P CLASS="para"> +W</p><P CLASS="para"> +This is a workstation trust account that can be used to configure Samba as a primary domain controller (PDC) when allowing Windows NT machines to join its domain.</p></dd></dl><DL CLASS="variablelist"> +<DT CLASS="term"> +Last Change Time</dt><DD CLASS="listitem"> +<P CLASS="para"> +This code consists of the characters <CODE CLASS="literal"> +LCT-</code> followed by a hexidecimal representation of the amount of seconds since the epoch (midnight on January 1, 1970) that the entry was last changed.</p></dd></dl><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-957988"> +6.4.2.1 Adding entries to smbpasswd</a></h4><P CLASS="para"> +<I CLASS="filename"> +</i>There are a few ways you can add a new entry to the <I CLASS="filename"> +smbpasswd</i> file:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-961684"> +</a>You can use the <I CLASS="firstterm"> +smbpasswd</i> program with the <CODE CLASS="literal"> +-a</code> option to automatically add any user that currently has a standard Unix system account on the server. This program resides in the <I CLASS="filename"> +/usr/local/samba/bin</i> directory.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957867"> +</a>You can use the <I CLASS="firstterm"> +addtosmbpass</i> executable inside the <I CLASS="firstterm"> +/usr/local/samba/bin</i> directory. This is actually a simple <EM CLASS="emphasis"> +awk</em> script that parses a system password file and extracts the username and UID of each entry you wish to add to the SMB password file. It then adds default fields for the remainder of the user's entry, which can be updated using the <I CLASS="filename"> +smbpasswd</i> program later. In order to use this program, you will probably need to edit the first line of the file to correctly point to <EM CLASS="emphasis"> +awk</em> on your system.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957870"> +</a>In the event that the neither of those options work for you, you can create a default entry by hand in the <I CLASS="filename"> +smbpasswd</i> file. The entry should be entirely on one line. Each field should be colon-separated and should look similar to the following:</p></li></ul><PRE CLASS="programlisting"> +dave:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:</pre><P CLASS="para"> +This consists of the username and the UID as specified in the system password file, followed by two sets of exactly 32 <CODE CLASS="literal"> +X</code> characters, followed by the account flags and last change time as it appears above. After you've added this entry, you must use the <I CLASS="firstterm"> +smbpasswd</i> program to change the password for the user.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-958012"> +6.4.2.2 Changing the encrypted password</a></h4><P CLASS="para">If you need to change the encrypted password in the <I CLASS="filename"> +smbpasswd</i> file, you can also use the <I CLASS="filename"> +smbpasswd</i> program. Note that this program shares the same name as the encrypted password file itself, so be sure not to accidentally confuse the password file with the password-changing program.</p><P CLASS="para"> +The <I CLASS="filename"> +smbpasswd</i> program is almost identical to the <I CLASS="filename"> +passwd</i> program that is used to change Unix account passwords. The program simply asks you to enter your old password (unless you're the root user), and duplicate entries of your new password. No password characters are shown on the screen. </p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">#</code> smbpasswd dave</b> +</pre><PRE CLASS="programlisting"> +Old SMB password: +New SMB password: +Retype new SMB password: +Password changed for user dave</pre><P CLASS="para"> +You can look at the <I CLASS="filename"> +smbpasswd</i> file after this command completes to verify that both the LAN Manager and the NT hashes of the passwords have been stored in their respective positions. Once users have encrypted password entries in the database, they should be able to connect to shares using encrypted passwords!<I CLASS="filename"> +</i> </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-97004"> +6.4.3 Password Synchronization</a></h3><P CLASS="para">Having a regular password and an encrypted version of the same password can be troublesome when you need to change both of them. Luckily, Samba affords you a limited ability to keep your passwords synchronized. Samba has a pair of configuration options that can be used to automatically update a user's regular Unix password when the encrypted password is changed on the system. The feature can be activated by specifying the <CODE CLASS="literal"> +unix</code> <CODE CLASS="literal"> +password</code> <CODE CLASS="literal"> +sync</code> global configuration option:</p><PRE CLASS="programlisting"> +[global] + encrypt passwords = yes + smb passwd file = /usr/local/samba/private/smbpasswd + + unix password sync = yes</pre><P CLASS="para"> +With this option enabled, Samba will attempt to change the user's regular password (as <CODE CLASS="literal"> +root</code>) when the encrypted version is changed with <I CLASS="filename"> +smbpasswd</i>. However, there are two other options that have to be set correctly in order for this to work.</p><P CLASS="para"> +The easier of the two is <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +program</code>. This option simply specifies the Unix command used to change a user's standard system password. It is set to <CODE CLASS="literal"> +/bin/passw</code>d <CODE CLASS="literal"> +%u</code> by default. With some Unix systems, this is sufficient and you do not need to change anything. Others, such as Red Hat Linux, use <I CLASS="filename"> +/usr/bin/passwd</i> instead. In addition, you may want to change this to another program or script at some point in the future. For example, let's assume that you want to use a script called <CODE CLASS="literal"> +changepass</code> to change a user's password. Recall that you can use the variable <CODE CLASS="literal"> +%u</code> to represent the current Unix username. So the example becomes:</p><PRE CLASS="programlisting"> +[global] + encrypt passwords = yes + smb passwd file = /usr/local/samba/private/smbpasswd + + unix password sync = yes + passwd program = changepass %u</pre><P CLASS="para"> +Note that this program will be called as the <CODE CLASS="literal"> +root</code> user when the <CODE CLASS="literal"> +unix</code> <CODE CLASS="literal"> +password</code> <CODE CLASS="literal"> +sync</code> option is set to <CODE CLASS="literal"> +yes</code>. This is because Samba does not necessarily have the plaintext old password of the user. </p><P CLASS="para"> +The harder option to configure is <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +chat</code>. The <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +chat</code> option works like a Unix chat script. It specifies a series of strings to send as well as responses to expect from the program specified by the <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +program</code> option. For example, this is what the default <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +chat</code> looks like. The delimiters are the spaces between each groupings of characters:</p><PRE CLASS="programlisting"> +passwd chat = *old*password* %o\n *new*password* %n\n *new*password* %n\n *changed*</pre><P CLASS="para"> +The first grouping represents a response expected from the password-changing program. Note that it can contain wildcards (*), which help to generalize the chat programs to be able to handle a variety of similar outputs. Here, <CODE CLASS="literal"> +*old*password*</code> indicates that Samba is expecting any line from the password program containing the letters <CODE CLASS="literal"> +old</code> followed by the letters <CODE CLASS="literal"> +password</code>, without regard for what comes on either side or between them. Once instructed to, Samba will wait indefinitely for such a match. Is Samba does not receive the expected response, the password will fail.</p><P CLASS="para"> +The second grouping indicates what Samba should send back once the data in the first grouping has been matched. In this case, you see <CODE CLASS="literal"> +%o\n</code>. This response is actually two items: the variable <CODE CLASS="literal"> +%o</code> represents the old password, while the <CODE CLASS="literal"> +\n</code> is a newline character. So, in effect, this will "type" the old password into the standard input of the password changing program, and then "press" Enter.</p><P CLASS="para"> +Following that is another response grouping, followed by data that will be sent back to the password changing program. (In fact, this response/send pattern continues indefinitely in any standard Unix <EM CLASS="emphasis"> +chat</em> script.) The script continues until the final pattern is matched.[<A CLASS="footnote" HREF="#ch06-pgfId-969009">2</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch06-pgfId-969009">[2]</a> This may not work under Red Hat Linux, as the password program typically responds "All authentication tokens updated successfully," instead of "Password changed." We provide a fix for this later in this section.</p></div></blockquote><P CLASS="para"> +You can help match the response strings sent from the password program with the characters listed in <A CLASS="xref" HREF="ch06_04.html#ch06-77246"> +Table 6.6</a>. In addition, you can use the characters listed in <A CLASS="xref" HREF="ch06_04.html#ch06-38512"> +Table 6.7</a> to help formulate your response. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-77246"> +Table 6.6: Password Chat Response Characters </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Character</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +*</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Zero or more occurrences of any character.</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +" "</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Allows you to include matching strings that contain spaces. Asterisks are still considered wildcards even inside of quotes, and you can represent a null response with empty quotes.</p></td></tr></tbody></table><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-38512"> +Table 6.7: Password Chat Send Characters </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Character</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%o</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The user's old password</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%n</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The user's new password</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +\n</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The linefeed character</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +\r</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The carriage-return character</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +\t</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The tab character</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +\s</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +A space</p></td></tr></tbody></table><P CLASS="para"> +For example, you may want to change your password chat to the following entry. This will handle scenarios in which you do not have to enter the old password. In addition, this will also handle the new <CODE CLASS="literal"> +all</code> <CODE CLASS="literal"> +tokens</code> <CODE CLASS="literal"> +updated</code> <CODE CLASS="literal"> +successfully</code> string that Red Hat Linux sends:</p><PRE CLASS="programlisting"> +passwd chat = *new password* %n\n *new password* %n\n *success*</pre><P CLASS="para"> +Again, the default chat should be sufficient for many Unix systems. If it isn't, you can use the <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +chat</code> <CODE CLASS="literal"> +debug</code> global option to set up a new chat script for the password change program. The <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +chat</code> <CODE CLASS="literal"> +debug</code> option logs everything during a password chat. This option is a simple boolean, as shown below:</p><PRE CLASS="programlisting"> +[global] + encrypted passwords = yes + smb passwd file = /usr/local/samba/private/smbpasswd + + unix password sync = yes + passwd chat debug = yes + log level = 100</pre><P CLASS="para"> +After you activate the password chat debug feature, all I/O received by Samba through the password chat will be sent to the Samba logs with a debug level of 100, which is why we entered a new log level option as well. As this can often generate multitudes of error logs, it may be more efficient to use your own script, by setting the <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +program</code> option, in place of <I CLASS="filename"> +/bin/passwd</i> to record what happens during the exchange. Also, make sure to protect your log files with strict file permissions and to delete them as soon as you've grabbed the information you need, because they contain the passwords in plaintext.</p><P CLASS="para"> +The operating system on which Samba is running may have strict requirements for valid passwords in order to make them more impervious to dictionary attacks and the like. Users should be made aware of these restrictions when changing their passwords.</p><P CLASS="para"> +Earlier we said that password synchronization is limited. This is because there is no reverse synchronization of the encrypted <I CLASS="filename"> +smbpasswd</i> file when a standard Unix password is updated by a user. There are various strategies to get around this, including NIS and freely available implementations of the pluggable authentication modules (PAM) standard, but none of them really solve all the problems yet. In the future, when Windows 2000 emerges, we will see more compliance with the Lightweight Directory Access Protocol (LDAP), which promises to make password synchronization a thing of the past. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-958652"> +6.4.4 Password Configuration Options</a></h3><P CLASS="para"> +The options in <A CLASS="xref" HREF="ch06_04.html#ch06-68460"> +Table 6.8</a> will help you work with passwords in Samba. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-68460"> +Table 6.8: Password Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +encrypt passwords</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Turns on encrypted passwords.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +unix password sync </code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba updates the standard Unix password database when a user changes his or her encrypted password.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +passwd chat</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (chat commands)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a sequence of commands that will be sent to the password program.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +See earlier section on this option</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +passwd chat debug</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sends debug logs of the password-change process to the log files with a level of 100.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +passwd program</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (Unix command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the program to be used to change passwords.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +/bin/passwd %u</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +password level</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numeric</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the number of capital letter permutations to attempt when matching a client's password.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +update encrypted</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba updates the encrypted password file when a client connects to a share with a plaintext password.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +null passwords</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba allows access for users with null passwords.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +smb passwd file</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the name of the encrypted password file.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +/usr/local/samba/private/smbpasswd</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +hosts equiv</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the name of a file that contains hosts and users that can connect without using a password.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +use rhosts</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the name of an .<EM CLASS="emphasis"> +rhosts</em> file that allows users to connect without using a password.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-968072"> +6.4.4.1 unix password sync</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +unix</code> <CODE CLASS="literal"> +password</code> <CODE CLASS="literal"> +sync</code> global option allows Samba to update the standard Unix password file when a user changes his or her encrypted password. The encrypted password is stored on a Samba server in the <I CLASS="filename"> +smbpasswd</i> file, which is located in <I CLASS="filename"> +/usr/local/samba/private</i> by default. You can activate this feature as follows:</p><PRE CLASS="programlisting"> +[global] + unix password sync = yes</pre><P CLASS="para"> +If this option is enabled, Samba changes the encrypted password and, in addition, attempts to change the standard Unix password by passing the username and new password to the program specified by the <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +program</code> option (described earlier). Note that Samba does not necessarily have access to the plaintext password for this user, so the password changing program must be invoked as <CODE CLASS="literal"> +root</code>.[<A CLASS="footnote" HREF="#ch06-pgfId-959675">3</a>] If the Unix password change does not succeed, for whatever reason, the SMB password will not be changed either.</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch06-pgfId-959675">[3]</a> This is because the Unix <EM CLASS="emphasis"> +passwd</em> program, which is the usual target for this operation, allows <CODE CLASS="literal"> +root</code> to change a user's password without the security restriction that requests the old password of that user.</p></div></blockquote></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-958684"> +6.4.4.2 encrypt passwords</a></h4><P CLASS="para">The <CODE CLASS="literal"> +encrypt</code> <CODE CLASS="literal"> +passwords</code> global option switches Samba from using plaintext passwords to encrypted passwords for authentication. Encrypted passwords will be expected from clients if the option is set to <CODE CLASS="literal"> +yes</code>:</p><PRE CLASS="programlisting"> +encrypt passwords = yes</pre><P CLASS="para"> +By default, Windows NT 4.0 with Service Pack 3 or above and Windows 98 transmit encrypted passwords over the network. If you are enabling encrypted passwords, you must have a valid <I CLASS="filename"> +smbpasswd</i> file in place and populated with usernames that will authenticate with encrypted passwords. (See the section <A CLASS="xref" HREF="ch06_04.html#ch06-17782"> +Section 6.4.2, The smbpasswd File</a>, earlier in this chapter.) In addition, Samba must know the location of the <I CLASS="filename"> +smbpasswd</i> file; if it is not in the default location (typically <I CLASS="filename"> +/usr/local/samba/private/smbpasswd</i>), you can explicitly name it using the <CODE CLASS="literal"> +smb</code> <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +file</code> option.</p><P CLASS="para"> +If you wish, you can use the <CODE CLASS="literal"> +update</code> <CODE CLASS="literal"> +encrypted</code> to force Samba to update the <I CLASS="filename"> +smbpasswd</i> file with encrypted passwords each time a client connects to a non-encrypted password.</p><P CLASS="para"> +A common strategy to ensure that hosts who need encrypted password authentication indeed receive it is with the <CODE CLASS="literal"> +include</code> option. With this, you can create individual configuration files that will be read in based on OS-type (<CODE CLASS="literal">%a</code>) or client name (<CODE CLASS="literal">%m</code>). These host-specific or OS-specific configuration files can contain an <CODE CLASS="literal"> +encrypted</code> <CODE CLASS="literal"> +passwords</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> option that will activate only when those clients are connecting to the server.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-954367"> +6.4.4.3 passwd program</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +program</code> is used to specify a program on the Unix Samba server that Samba can use to update the standard system password file when the encrypted password file is updated. This option defaults to the standard<EM CLASS="emphasis"> + passwd</em> program, usually located in the <I CLASS="filename"> +/bin</i> directory. The <CODE CLASS="literal"> +%u</code> variable is typically used here as the requesting user when the command is executed. The actual handling of input and output to this program during execution is handled through the <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +chat</code> option. The "Password Synchronization" section, earlier in this chapter, covers this option in detail.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-954372"> +6.4.4.4 passwd chat</a></h4><P CLASS="para"> +This option specifies a series of send/response strings similar to a Unix chat script, which are used to interface with the password-changing program on the Samba server. The "Password Synchronization" section, earlier in this chapter, covers this option in detail.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-954442"> +6.4.4.5 passwd chat debug</a></h4><P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, the <CODE CLASS="literal"> +passwd</code> <CODE CLASS="literal"> +chat</code> <CODE CLASS="literal"> +debug</code> global option logs everything sent or received by Samba during a password chat. All the I/O received by Samba through the password chat is sent to the Samba logs with a debug level of 100; you will need to specify <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +100</code> in order for the information to be recorded. The "Password Synchronization" section<EM CLASS="emphasis"> +,</em> earlier in this chapter, describes this option in more detail. Be aware that if you do set this option, the plaintext passwords will be visible in the debugging logs, which could be a security hazard if they are not properly secured.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-958069"> +6.4.4.6 password level</a></h4><P CLASS="para"> +With SMB, non-encrypted (or plaintext) passwords are sent with capital letters, just like the usernames mentioned previously. Many Unix users, however, choose passwords with both uppercase and lowercase letters. Samba, by default, only attempts to match the password entirely in lowercase letters, and not capitalizing the first letter.</p><P CLASS="para"> +Like <CODE CLASS="literal"> +username</code> <CODE CLASS="literal"> +level</code>, there is a <CODE CLASS="literal"> +password</code> <CODE CLASS="literal"> +level</code> option that can be used to attempt various permutations of the password with capital letters. This option takes an integer value that specifies how many letters in the password should be capitalized when attempting to connect to a share. You can specify this options as follows:</p><PRE CLASS="programlisting"> +[global] + password level = 3</pre><P CLASS="para"> +In this case, Samba will then attempt all permutations of the password it can compute having three capital letters. The larger the number, the more computations Samba will have to perform to match the password, and the longer a connection to a specific share may take. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-954452"> +6.4.4.7 update encrypted</a></h4><P CLASS="para"> +For sites switching over to the encrypted password format, Samba provides an option that should help with the transition. The <CODE CLASS="literal"> +update</code> <CODE CLASS="literal"> +encrypted</code> option allows a site to ease into using encrypted passwords from plaintext passwords. You can activate this option as follows:</p><PRE CLASS="programlisting"> +[global] + update encrypted = yes</pre><P CLASS="para"> +This instructs Samba to create an encrypted version of each user's Unix password in the <I CLASS="filename"> +smbpasswd</i> file each time he or she connects to a share. When this option is enabled, you must have the <CODE CLASS="literal"> +encrypt</code> <CODE CLASS="literal"> +passwords</code> option set to <CODE CLASS="literal"> +no</code> so that the client will pass plaintext passwords to Samba to use to update the files. Once each user has connected at least once, you can set <CODE CLASS="literal"> +encrypted</code> <CODE CLASS="literal"> +passwords</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code>, allowing you to use only the encrypted passwords. The user must already have a valid entry in the <I CLASS="filename"> +smbpasswd</i> file for this option to work.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-958716"> +6.4.4.8 null passwords</a></h4><P CLASS="para"> +This global option tells Samba whether or not to allow access from users that have null passwords (encrypted or non-encrypted) set in their accounts. The default value is <CODE CLASS="literal"> +no</code>. You can override it as follows:</p><PRE CLASS="programlisting"> +null passwords = yes</pre><P CLASS="para"> +We highly recommend against doing so unless you are familiar with the security risks this option can present to your system, including inadvertent access to system users (such as <I CLASS="filename"> +bin</i>) in the system password file who have null passwords set.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-959357"> +6.4.4.9 smb passwd file</a></h4><P CLASS="para">This global option identifies the location of the encrypted password database. By default, it is set to <I CLASS="filename"> +/usr/local/samba/private/smbpasswd</i>. You can override it as follows:</p><PRE CLASS="programlisting"> +[global] + smb passwd file = /etc/smbpasswd</pre><P CLASS="para"> +This location, for example, is common on many Red Hat distributions.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-969088"> +6.4.4.10 hosts equiv</a></h4><P CLASS="para"> +This global option specifies the name of a standard Unix <I CLASS="filename"> +hosts.equiv</i> file that will allow hosts or users to access shares without specifying a password. You can specify the location of such a file as follows:</p><PRE CLASS="programlisting"> +[global] + hosts equiv = /etc/hosts.equiv</pre><P CLASS="para"> +The default value for this option does not specify any <I CLASS="filename"> +hosts.equiv</i> file. Because using such a file is essentially a huge security risk, we highly recommend that you do not use this option unless you are confident in the security of your network.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-959358"> +6.4.4.11 use rhosts</a></h4><P CLASS="para"> +This global option specifies the name of a standard Unix user's <I CLASS="filename"> +.rhosts</i> file that will allow foreign hosts to access shares without specifying a password. You can specify the location of such a file as follows:</p><PRE CLASS="programlisting"> +[global] + use rhosts = /home/dave/.rhosts</pre><P CLASS="para"> +The default value for this option does not specify any <I CLASS="filename"> +.rhosts</i> file. Like the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +equiv</code> option above, using such a file is a security risk. We highly recommend that you do use this option unless you are confident in the security of your network. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_03.html" TITLE="6.3 Authentication Security"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.3 Authentication Security" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_05.html" TITLE="6.5 Windows Domains"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.5 Windows Domains" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +6.3 Authentication Security</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +6.5 Windows Domains</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch06_05.html b/docs/htmldocs/using_samba/ch06_05.html new file mode 100644 index 0000000000..fbf6d245a1 --- /dev/null +++ b/docs/htmldocs/using_samba/ch06_05.html @@ -0,0 +1,333 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 6] 6.5 Windows Domains</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:34:04Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_04.html" TITLE="6.4 Passwords"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.4 Passwords" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch06_01.html" TITLE="6. Users, Security, and Domains "> +Chapter 6<br> +Users, Security, and Domains </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_06.html" TITLE="6.6 Logon Scripts"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.6 Logon Scripts" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch06-23084"> +6.5 Windows Domains</a></h2><P CLASS="para">Now that you are comfortable with users and passwords on a Samba server, we can show you how to set up Samba to become a primary domain controller for Windows 95/98 and NT machines. Why use domains? The answer probably isn't obvious until you look behind the scenes, especially with Windows 95/98.</p><P CLASS="para"> +Recall that with traditional workgroups, Windows 95/98 simply accepts each username and password that you enter when logging on to the system. There are no unauthorized users with Windows 95/98; if a new user logs on, the operating system simply asks for a new password and authenticates the user against that password from then on. The only time that Windows 95/98 attempts to use the password you entered is when connecting to another share.</p><P CLASS="para">Domain logons, on the other hand, are similar to Unix systems. In order to log on to the domain, a valid username and password must be presented at startup, which is then authenticated against the primary domain controller's password database. If the password is invalid, the user is immediately notified and they cannot log on to the domain.</p><P CLASS="para"> +There's more good news: once you have successfully logged on to the domain, you can access any of the shares in the domain to which you have rights without having to reauthenticate yourself. More precisely, the primary domain controller returns a token to the client machine that allows it to access any share without consulting the PDC again. Although you probably won't notice the shift, this can be beneficial in cutting down network traffic. (You can disable this behavior if you wish by using the <CODE CLASS="literal"> +revalidate</code> option.)</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-36822"> +6.5.1 Configuring Samba for Windows Domain Logons</a></h3><P CLASS="para"> +If you wish to allow Samba to act as a domain controller, use the following sections to configure Samba and your clients to allow domain access. </p><P CLASS="para"> +If you would like more information on how to set up domains, see the <I CLASS="filename"> +DOMAINS.TXT</i> file that comes with the Samba distribution.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-962093"> +6.5.1.1 Windows 95/98 clients</a></h4><P CLASS="para">Setting up Samba as a PDC for Windows 95/98 clients is somewhat anticlimactic. All you really need to do on the server side is ensure that:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-962098"> +</a>Samba is the only primary domain controller for the current workgroup.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-963241"> +</a>There is a WINS server available on the network, either a Samba machine or a Windows NT server. (See <a href="ch07_01.html"><b>Chapter 7, <CITE CLASS="chapter">Printing and Name Resolution</cite></b></a>, for more information on WINS.)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-962099"> +</a>Samba is using user-level security (i.e., it doesn't hand off password authentication to anyone else). You do not want to use domain-level security if Samba itself is acting as the PDC.</p></li></ul><P CLASS="para"> +At that point, you can insert the following options into your Samba configuration file:</p><PRE CLASS="programlisting"> +[global] + workgroup = SIMPLE + domain logons = yes + +# Be sure to set user-level security! + + security = user + +# Be sure to become the primary domain controller! + + os level = 34 + local master = yes + preferred master = yes + domain master = yes</pre><P CLASS="para"> +The <CODE CLASS="literal"> +domain</code> <CODE CLASS="literal"> +logons</code> option enables Samba to perform domain authentication on behalf of other clients that request it. The name of the domain will be the same as the workgroup listed in the Samba configuration file, in this case: SIMPLE.</p><P CLASS="para"> +After that, you need to create a non-writable, non-public, non-browesable disk share called <CODE CLASS="literal"> +[netlogon]</code> (it does not matter where this share points to as long as each Windows client can connect to it): </p><PRE CLASS="programlisting"> +[netlogon] + comment = The domain logon service + path = /export/samba/logon + public = no + writeable = no + browsable = no</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-961711"> +6.5.1.2 Windows NT clients</a></h4><P CLASS="para">If you have Window NT clients on your system, there are a few more steps that need to be taken in order for Samba to act as their primary domain controller.</p><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> You will need to use at least Samba 2.1 to ensure that PDC functionality for Windows NT clients is present. Prior to Samba 2.1, only limited user authentication for NT clients was present. At the time this book went to press, Samba 2.0.5 was the latest version, but Samba 2.1 was available through CVS download. Instructions on downloading alpha versions of Samba are given in <a href="appe_01.html"><b>Appendix E, <CITE CLASS="appendix">Downloading Samba with CVS</cite></b></a>.</p></blockquote><P CLASS="para"> +As before, you need to ensure that Samba is a primary domain controller for the current workgroup and is using user-level security. However, you must also ensure that Samba is using encrypted passwords. In other words, alter the <CODE CLASS="literal"> +[global]</code> options the previous example to include the <CODE CLASS="literal"> +encrypted</code> <CODE CLASS="literal"> +passwords</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> option, as shown here: </p><PRE CLASS="programlisting"> +[global] + workgroup = SIMPLE + encrypted passwords = yes + domain logons = yes + + security = user </pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-961829"> +6.5.1.3 Creating trust accounts for NT clients</a></h4><P CLASS="para"> +This step is exclusively for Windows NT clients. All NT clients that connect to a primary domain controller make use of <I CLASS="firstterm"> +trust accounts</i>. These accounts allow a machine to log in to the PDC itself (not one of its shares), which means that the PDC can trust any further connections from users on that client. For all intents and purposes, a trust account is identical to a user account. In fact, we will be using standard Unix user accounts to emulate trust accounts for the Samba server.</p><P CLASS="para"> +The login name of a machine's trust account is the name of the machine with a dollar sign appended to it. For example, if our Windows NT machine is named <CODE CLASS="literal"> +chimaera</code>, the login account would be <CODE CLASS="literal"> +chimaera$</code>. The initial password of the account is simply the name of the machine in lowercase letters. In order to forge the trust account on the Samba server, you need to create a Unix account with the appropriate machine name, as well as an encrypted password entry in the <I CLASS="filename"> +smbpasswd</i> database.</p><P CLASS="para"> +Let's tackle the first part. Here, we only need to modify the <I CLASS="filename"> +/etc/passwd</i> file to support the trust account; there is no need to create a home directory or assign a shell to the "user" because the only part we are interested in is whether a login is permitted. Therefore, we can create a "dummy" account with the following entry:</p><PRE CLASS="programlisting"> +chimaera$:*:1000:900:Trust Account:/dev/null:/dev/null</pre><P CLASS="para"> +Note that we have also disabled the password field by placing a <CODE CLASS="literal"> +*</code> in it. This is because Samba will use the <I CLASS="filename"> +smbpasswd</i> file to contain the password instead, and we don't want anyone to telnet into the machine using that account. In fact, the only value other than the account name that is used here is the UID of the account for the encrypted password database (1000). This number must map to a unique resource ID on the NT server and cannot conflict with any other resource IDs. Hence, no NT user or group should map to this number or a networking error will occur.</p><P CLASS="para"> +Next, add the encrypted password using the <I CLASS="filename"> +smbpasswd</i> command, as follows: </p><PRE CLASS="programlisting"># <CODE CLASS="userinput"><B>smbpasswd -a -m chimaera</b></code> +Added user chimaera$ +Password changed for user chimaera$</pre><P CLASS="para"> +The <CODE CLASS="literal"> +-m</code> option specifies that a machine trust account is being generated. The <I CLASS="filename"> +smbpasswd</i> program will automatically set the initial encrypted password as the NetBIOS name of the machine in lowercase letters; you don't need to enter it. When specifying this option on the command line, do not put a dollar sign after the machine name - it will be appended automatically. Once the encrypted password has been added, Samba is ready to handle domain logins from a NT client.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-961709"> +6.5.2 Configuring Windows Clients for Domain Logons</a></h3><P CLASS="para"> +Once you have Samba configured for domain logons, you need to set up your Windows clients to log on to the domain at startup.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-962166"> +6.5.2.1 Windows 95/98</a></h4><P CLASS="para">With Windows 95/98, this can be done by raising the Network configuration dialog in the Windows Control Panel and selecting the Properties for "Client for Microsoft Networks." At this point, you should see a dialog box similar to <A CLASS="xref" HREF="ch06_05.html#ch06-48609"> +Figure 6.4</a>. Select the "Logon to Windows Domain" checkbox at the top of the dialog box, and enter the workgroup that is listed in the Samba configuration file as the Windows NT domain. Then click on OK and reboot the machine when asked. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch06-48609"> +Figure 6.4: Configuring a Windows 95/98 client for domain logons</a></h4><IMG CLASS="graphic" SRC="figs/sam.0604.gif" ALT="Figure 6.4"><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> If Windows complains that you are already logged into the domain, you probably have an active connection to a share in the workgroup (such as a mapped network drive). Simply disconnect the resource temporarily by right-clicking on its icon and choosing the Disconnect pop-up menu item.</p></blockquote><P CLASS="para"> +When Windows reboots, you should see the standard login dialog with an addition: a field for a domain. The domain name should already be filled in, so simply enter your password and click on the OK button. At this point, Windows should consult the primary domain controller (Samba) to see if the password is correct. (You can check the log files if you want to see this in action.) If it worked, congratulations! You have properly configured Samba to act as a domain controller for Windows 95/98 machines and your client is successfully connected.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-961780"> +6.5.2.2 Windows NT 4.0</a></h4><P CLASS="para">To configure Windows NT for domain logons, open the Network configuration dialog in the Windows NT Control Panel. The first tab that you see should list the identification of the machine.</p><P CLASS="para"> +Press the Change button and you should see the dialog box shown in <A CLASS="xref" HREF="ch06_05.html#ch06-89804"> +Figure 6.5</a>. In this dialog box, you can choose to have the Windows NT client become a member of the domain by selecting the radio button marked Domain in the "Member of" box. Then, type in the domain that you wish the client to login to; it should be the same as the workgroup that you specified in the Samba configuration file. Do not check the box marked "Create a Computer Account in the Domain" - Samba does not currently support this functionality. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch06-89804"> +Figure 6.5: Configuring a Windows NT client for domain logons</a></h4><IMG CLASS="graphic" SRC="figs/sam.0605.gif" ALT="Figure 6.5"><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> Like Windows 95/98, if NT complains that you are already logged in, you probably have an active connection to a share in the workgroup (such as a mapped network drive). Disconnect the resource temporarily by right-clicking on its icon and choosing the Disconnect pop-up menu item.</p></blockquote><P CLASS="para"> +After you press the OK button, Windows should present you with a small dialog box welcoming you to the domain. At this point, you will need to reset the Windows NT machine. Once it comes up again, the machine will automatically present you with a log on screen similar to the one for Windows 95/98 clients. You can now log in using any account that you have already on the Samba server that is configured to accept logins.</p><BLOCKQUOTE CLASS="warning"> +<P CLASS="para"> +<STRONG> +WARNING:</strong> Be sure to select the correct domain in the Windows NT logon dialog box. Once selected, it may take a moment for Windows NT to build the list of available domains.</p></blockquote><P CLASS="para"> +After you enter the password, Windows NT should consult the primary domain controller (Samba) to see if the password is correct. Again, you can check the log files if you want to see this in action. If it worked, you have successfully configured Samba to act as a domain controller for Windows NT machines.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-961353"> +6.5.3 Domain Options</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="ch06_05.html#ch06-53106"> +Table 6.9</a> shows the options that are commonly used in association with domain logons. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-53106"> +Table 6.9: Windows 95/98 Domain Logon Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +domain logons</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Indicates whether Windows domain logons are to be used.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +domain group map</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Name of the file used to map Unix to Windows NT domain groups.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +domain user map</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Name of the file used to map Unix to Windows NT domain users.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +local group map</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Name of the file used to map Unix to Windows NT local groups.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +revalidate</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba forces users to authenticate themselves with each connection to a share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960379"> +6.5.3.1 domain logons</a></h4><P CLASS="para"> +This option configures Samba to accept domain logons as a primary domain controller. When a client successfully logs on to the domain, Samba will return a special token to the client that allows the client to access domain shares without consulting the PDC again for authentication. Note that the Samba machine must be in user-level security (<CODE CLASS="literal">security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +user</code>) and must be the PDC in order for this option to function. In addition, Windows machines will expect a <CODE CLASS="literal"> +[netlogon]</code> share to exist on the Samba server (see the section <A CLASS="xref" HREF="ch06_05.html#ch06-36822"> +Section 6.5.1, Configuring Samba for Windows Domain Logons</a>, earlier in this chapter).</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-966160"> +6.5.3.2 domain group map</a></h4><P CLASS="para"> +This option specifies the location of a mapping file designed to translate Windows NT domain group names to Unix group names. The file should reside on the Samba server. For example:</p><PRE CLASS="programlisting"> +/usr/local/samba/private/groups.mapping</pre><P CLASS="para"> +The file has a simple format:</p><PRE CLASS="programlisting"><CODE CLASS="replaceable"><I>UnixGroup = NTGroup</i></code></pre><P CLASS="para"> +An example is:</p><PRE CLASS="programlisting"> +admin = Administrative</pre><P CLASS="para"> +The specified Unix group should be a valid group in the <I CLASS="filename"> +/etc/group</i> file. The NT group should be the name to which you want the Unix group to map on an NT client. This option will work only with Windows NT clients.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-961959"> +6.5.3.3 domain user map</a></h4><P CLASS="para"> +This option specifies the location of a mapping file designed to translate Unix usernames to Windows NT domain usernames. The file should reside on the Samba server. For example:</p><PRE CLASS="programlisting">/usr/local/samba/private/domainuser.mapping</pre><P CLASS="para">The file has a simple format:</p><PRE CLASS="programlisting"><CODE CLASS="replaceable"><I>UnixUsername</i></code> = [\\<CODE CLASS="replaceable"><I>Domain</i></code>\\]<CODE CLASS="replaceable"><I>NTUserName</i></code></pre><P CLASS="para"> +An example entry is:</p><PRE CLASS="programlisting"> +joe = Joseph Miller</pre><P CLASS="para"> +The Unix name specified should be a valid username in the <I CLASS="filename"> +/etc/passwd</i> file. The NT name should be the username to which you want to Unix username to map on an NT client. This option will work with Windows NT clients only.</p><P CLASS="para"> +If you would like more information on how Windows NT uses domain usernames and local groups, we recommend Eric Pearce's <CITE CLASS="citetitle"> +Windows NT in a Nutshell</cite>, published by O'Reilly.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-961962"> +6.5.3.4 local group map</a></h4><P CLASS="para"> +This option specifies the location of a mapping file designed to translate Windows NT local group names to Unix group names. Local group names include those such as Administrator and Users. The file should reside on the Samba server. For example:</p><PRE CLASS="programlisting">/usr/local/samba/private/localgroup.mapping</pre><P CLASS="para">The file has a simple format:</p><PRE CLASS="programlisting"><CODE CLASS="replaceable"><I>UnixGroup</i></code> = [BUILTIN\]<CODE CLASS="replaceable"><I>NTGroup</i></code></pre><P CLASS="para"> +An example entry is:</p><PRE CLASS="programlisting"> +root = BUILTIN\Administrators</pre><P CLASS="para"> +This option will work with Windows NT clients only. For more information, see Eric Pearce's <CITE CLASS="citetitle"> +Windows NT in a Nutshell</cite> (O'Reilly).</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-962075"> +6.5.3.5 revalidate</a></h4><P CLASS="para"> +This share-level option tells Samba to force users to authenticate with passwords each time they connect to a different share on a machine, no matter what level of security is in place on the Samba server. The default value is <CODE CLASS="literal"> +no</code>, which allows users to be trusted once they successfully authenticate themselves. You can override it as:</p><PRE CLASS="programlisting"> +revalidate = yes</pre><P CLASS="para"> +You can use this option to increase security on your system. However, you should weigh it against the inconvenience of having users revalidate themselves to every share. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_04.html" TITLE="6.4 Passwords"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.4 Passwords" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_06.html" TITLE="6.6 Logon Scripts"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 6.6 Logon Scripts" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +6.4 Passwords</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +6.6 Logon Scripts</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch06_06.html b/docs/htmldocs/using_samba/ch06_06.html new file mode 100644 index 0000000000..f80e4d3746 --- /dev/null +++ b/docs/htmldocs/using_samba/ch06_06.html @@ -0,0 +1,537 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 6] 6.6 Logon Scripts</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:34:19Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_05.html" TITLE="6.5 Windows Domains"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.5 Windows Domains" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch06_01.html" TITLE="6. Users, Security, and Domains "> +Chapter 6<br> +Users, Security, and Domains </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch07_01.html" TITLE="7. Printing and Name Resolution"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 7. Printing and Name Resolution" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch06-38153"> +6.6 Logon Scripts</a></h2><P CLASS="para">Samba supports the execution of Windows logon scripts, which are scripts (.BAT or .CMD) that are executed on the client when a user logs on to a Windows domain. Note that these scripts are stored on the Unix side, but are transported across the network to the client side and executed once a user logs on. These scripts are invaluable for dynamically setting up network configurations for users when they log on. The downside is that because they run on Windows, they must use the Windows network configuration commands.</p><P CLASS="para"> +If you would like more information on NET commands, we recommend the following O'Reilly handbooks: <EM CLASS="emphasis"> +Windows NT in a Nutshell</em>, <EM CLASS="emphasis"> +Windows 95 in a Nutshell</em>, and <EM CLASS="emphasis"> +Windows 98 in a Nutshell.</em></p><P CLASS="para"> +You can instruct Samba to use a logon script with the <CODE CLASS="literal"> +logon</code> <CODE CLASS="literal"> +script</code> option, as follows:</p><PRE CLASS="programlisting"> +[global] + domain logons = yes + security = user + workgroup = SIMPLE + + os level = 34 + local master = yes + preferred master = yes + domain master = yes + logon script = %U.bat + +[netlogon] + comment = The domain logon service + path = /export/samba/logon + public = no + writeable = no + browsable = no</pre><P CLASS="para"> +Note that this example uses the <CODE CLASS="literal"> +%U</code> variable, which will individualize the script based on the user that is logging in. It is common to customize logon scripts based on the user or machine name that is logging onto the domain. These scripts can then be used to configure individual settings for users or clients.</p><P CLASS="para"> +Each logon script should be stored at the base of the <CODE CLASS="literal"> +[netlogon]</code> share. For example, if the base of the <CODE CLASS="literal"> +[netlogon]</code> share is <I CLASS="filename"> +/export/samba/logon</i> and the logon script is <I CLASS="filename"> +jeff.bat</i>, the file should be located at <I CLASS="filename"> +/export/samba/logon/jeff.bat</i>. When a user logs on to a domain that contains a startup script, he or she will see a small dialog that informs them that the script is executing, as well as any output the script generates in an MS-DOS-like box.</p><P CLASS="para"> +One warning: because these scripts are loaded by Windows and executed on the Windows side, they must consist of DOS formatted carriage-return/linefeed characters instead of Unix carriage returns. It's best to use a DOS- or Windows-based editor to create them.</p><P CLASS="para"> +Here is an example of a logon script that sets the current time to match that of the Samba server and maps two network drives, <CODE CLASS="literal"> +h</code> and <CODE CLASS="literal"> +i</code>, to individual shares on the server:</p><PRE CLASS="programlisting"> +# Reset the current time to that shown by the server. +# We must have the "time server = yes" option in the +# smb.conf for this to work. + +echo Setting Current Time... +net time \\hydra /set /yes + +# Here we map network drives to shares on the Samba +# server +echo Mapping Network Drives to Samba Server Hydra... +net use h: \\hydra\data +net use i: \\hydra\network</pre><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-960385"> +6.6.1 Roaming profiles</a></h3><P CLASS="para"> +<I CLASS="firstterm"> +</i>In Windows 95 and NT, each user can have his or her own <I CLASS="firstterm"> +profile</i>. A profile bundles information such as: the appearance of a user's desktop, the applications that appear on the start menus, the background, and other miscellaneous items. If the profile is stored on a local disk, it's called a <I CLASS="firstterm"> +local profile</i>, since it describes what a user's environment is like on one machine. If the profile is stored on a server, on the other hand, the user can download the same profile to any client machine that is connected to the server. The latter is called a <I CLASS="firstterm"> +roaming profile</i> because the user can roam around from machine to machine and still use the same profile. This makes it particularly convenient when someone might be logging in from his or her desk one day and from a portable in the field the next. <A CLASS="xref" HREF="ch06_06.html#ch06-71393"> +Figure 6.6</a> illustrates local and roaming profiles. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch06-71393"> +Figure 6.6: Local profiles versus roaming profiles</a></h4><IMG CLASS="graphic" SRC="figs/sam.0606.gif" ALT="Figure 6.6"><P CLASS="para"> + + +<!-- 2.0.7 amendment begins, davecb --> +<P>Samba will provide roaming profiles if it is configured for domain logons +and you set <CODE CLASS="literal">logon path</CODE> to the user's home +directory and <CODE CLASS="literal">logon home </CODE> to a +subdirectory of the user's home directory used to store profiles. These +options are typically used with one of the user variables, as shown in this +example: +<PRE CLASS="programlisting"> +[global] + domain logons = yes + security = user + workgroup = SIMPLE + os level = 34 + local master = yes + preferred master = yes + domain master = yes + + logon home = \\%N\%U + logon path = \\%N\%U\profile <!-- from the man page --> +</PRE> +<P> Samba versions previous to 2.0.6 allowed Win9X machines to store +profiles in separate shares, but that prevented the clients from setting +their <CODE CLASS="literal">logon path</CODE> so they could get their home +directory mounted by saying "net use /home". This was corrected in +2.0.6.</P> + +<!-- end of profiles modification --> +<!-- WARNING: we never warn anywhere that "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 read the above as being +equivalen to the homes share, just not leiterally [homes]. I expect +the bug will persist. davecb--> + + +Once a user initially logs on, the Windows client will create a <I CLASS="filename"> +user.dat</i> or <I CLASS="filename"> +ntuser.dat</i> file - depending on which operating system the client is running. The client then uploads the contents of the desktop, the Start Menu, the Network Neighborhood, and the programs folders in individual folders in the directory. When the user subsequently logs on, those contents will be downloaded from the server and activated for the client machine with which the user is logging on. When he or she logs off, those contents will be uploaded back on the server until the next time the user connects. If you look at the directory listing of a profile folder, you'll see the following:</p><PRE CLASS="programlisting"> +# ls -al + +total 321 +drwxrwxr-x 9 root simple Jul 21 20:44 . +drwxrwxr-x 4 root simple Jul 22 14:32 .. +drwxrwx--- 3 fred develope Jul 12 07:15 Application Data +drwxrwx--- 3 fred develope Jul 12 07:15 Start Menu +drwxrwx--- 2 fred develope Jul 12 07:15 cookies +drwxrwx--- 2 fred develope Jul 12 07:15 desktop +drwxrwx--- 7 fred develope Jul 12 07:15 history +drwxrwx--- 2 fred develope Jul 12 07:15 nethood +drwxrwx--- 2 fred develope Jul 19 21:05 recent +-rw------- 1 fred develope Jul 21 21:59 user.dat</pre><P CLASS="para"> +The <I CLASS="filename"> +user.dat</i> files are binary configuration files, created automatically by Windows. They can be edited with the Profile Editor on a Windows client, but they can be somewhat tricky to get correct. Samba supports them correctly for all clients up to NT 5.0 beta, but they're still relatively new<I CLASS="firstterm"></i>.</p><P CLASS="para"> +Hints and HOWTOs for handling logon scripts are available in the Samba documentation tree, in both <I CLASS="filename"> +docs/textdocs/DOMAIN.txt</i> and <I CLASS="filename"> +docs/textdocs/PROFILES.txt</i>.<I CLASS="firstterm"> +</i> </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-961462"> +6.6.2 Mandatory profiles</a></h3><P CLASS="para">Users can also have <I CLASS="firstterm"> +mandatory profiles</i>, which are roaming profiles that they cannot change. For example, with a mandatory profile, if a user adds a command to the Start Menu on Tuesday, it will be gone when he or she logs in again on Wednesday. The mandatory profile is simply a <I CLASS="filename"> +user.dat</i> file that has been renamed to <I CLASS="filename"> +user.man</i> and made read-only on the Unix server. It normally contains settings that the administrator wishes to ensure the user always executes. For example, if an administrator wants to create a fixed user configuration, he or she can do the following:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957763"> +</a>Create the read-write directory on the Samba server. </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957764"> +</a>Set the <CODE CLASS="literal"> +logon</code> <CODE CLASS="literal"> +path</code> option in the <EM CLASS="emphasis"> +smb.conf</em> file to point to this directory.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957765"> +</a>Logon as the user from Windows 95/98 to have the client populate the directory. </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957766"> +</a>Rename the resulting <I CLASS="filename"> +user.dat</i> to <I CLASS="filename"> +user.man</i>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch06-pgfId-957767"> +</a>Make the directory and its contents read only.</p></li></ol><P CLASS="para"> +Mandatory profiles are fairly unusual. Roaming profiles, on the other hand, are one of the more desirable features of Windows that Samba can support.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-962637"> +6.6.3 Logon Script Options</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="ch06_06.html#ch06-46661">Table 6.10</a> summarizes the options commonly used in association with Windows domain logon scripts. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-46661"> +Table 6.10: Logon Script Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +logon script</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (DOS path)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Name of DOS/NT batch file</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +logon path</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (UNC server and share name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Location of roaming profile for user</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +\\%N\%U\profile</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +logon drive</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (drive letter)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the logon drive for a home directory (NT only)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +Z</code>:</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +logon home</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (UNC server and share name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies a location for home directories for clients logging on to the domain</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +\\%N\%U</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-962334"> +6.6.3.1 logon script</a></h4><P CLASS="para"> +This option specifies a Windows .BAT or .CMD file with lines ending in carriage-return/line feed that will be executed on the client after a user has logged on to the domain. Each logon script should be stored at the base of a share entitled <CODE CLASS="literal"> +[netlogin]</code> (see the section <A CLASS="xref" HREF="ch06_05.html#ch06-36822"> +Section 6.5.1</a> for details.) This option frequently uses the <CODE CLASS="literal"> +%U</code> or <CODE CLASS="literal"> +%m</code> variables (user or NetBIOS name) to point to an individual script. For example:</p><PRE CLASS="programlisting"> +logon script = %U.bat</pre><P CLASS="para"> +will execute a script based on the username located at the base of the <CODE CLASS="literal"> +[netlogin]</code> share. If the user who is connecting is <CODE CLASS="literal"> +fred</code> and the path of the <CODE CLASS="literal"> +[netlogin]</code> share maps to the directory <I CLASS="filename"> +/export/samba/netlogin</i>, the script should be <I CLASS="filename"> +/export/samba/netlogin/fred.bat</i>. Because these scripts are downloaded to the client and executed on the Windows side, they must consist of DOS formatted carriage-return/linefeed characters instead of Unix carriage returns.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-962671"> +6.6.3.2 logon path</a></h4><P CLASS="para"> +This option provides a location for roaming profiles. When the user logs on, a roaming profile will be downloaded from the server to the client and activated for the user who is logging on. When the user logs off, those contents will be uploaded back on the server until the next time the user connects. </p><P CLASS="para"> +It is often more secure to create a separate share exclusively for storing user profiles:</p><PRE CLASS="programlisting"> +logon path = \\hydra\profile\%U</pre><P CLASS="para"> +For more informaiton on this option, see the section <A CLASS="xref" HREF="ch06_06.html"> +Section 6.6, Logon Scripts</a>, earlier in this chapter.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-962332"> +6.6.3.3 logon drive</a></h4><P CLASS="para"> +This option specifies the drive letter on an NT client to which the home directory specified with the <CODE CLASS="literal"> +logon</code> <CODE CLASS="literal"> +home</code> option will be mapped. Note that this option will work with Windows NT clients only. For example:</p><PRE CLASS="programlisting"> +logon home = I:</pre><P CLASS="para"> +You should always use drive letters that will not conflict with fixed drives on the client machine. The default is Z:, which is a good choice because it is as far away from A:, C:, and D: as possible.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-962319"> +6.6.3.4 logon home </a></h4><P CLASS="para"> +This option specifies the location of a user's home directory for use by the DOS NET commands. For example, to specify a home directory as a share on a Samba server, use the following:</p><PRE CLASS="programlisting"> +logon home = \\hydra\%U</pre><P CLASS="para"> +Note that this works nicely with the <CODE CLASS="literal"> +[homes]</code> service, although you can specify any directory you wish. Home directories can be mapped with a logon script using the following command:</p><PRE CLASS="programlisting"> +NET USE I: /HOME</pre><P CLASS="para"> +In addition, you can use the User Environment Profile under User Properties in the Windows NT User Manager to verify that the home directory has automatically been set. </p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-960476"> +6.6.4 Other Connection Scripts</a></h3><P CLASS="para">After a user successfully makes a connection to any Samba share, you may want the Samba server to execute a program on its side to prepare the share for use. Samba allows scripts to be executed before and after someone connects to a share. You do not need to be using Windows domains to take advantage of the options. <A CLASS="xref" HREF="ch06_06.html#ch06-67528"> +Table 6.11</a> introduces some of the configuration options provided for setting up users. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-67528"> +Table 6.11: Connection Script Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +root preexec</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (Unix command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a command to run as <CODE CLASS="literal"> +root</code>, before connecting to the share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +preexec (exec)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (Unix command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a Unix command to run as the user before connecting to the share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +postexec</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (Unix command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a Unix command to run as the user after disconnecting from the share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +root postexec</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (Unix command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a Unix command to run as <CODE CLASS="literal"> +root</code> after disconnecting from the share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960575"> +6.6.4.1 root preexec</a></h4><P CLASS="para"> +The first form of the logon command is called <CODE CLASS="literal"> +root</code> <CODE CLASS="literal"> +preexec</code>. This option specifies a Unix command as its value that will be run <EM CLASS="emphasis"> +as the root user</em> before any connection to a share is completed. You should use this option specifically for performing actions that require root privilege. For example, <CODE CLASS="literal"> +root</code> <CODE CLASS="literal"> +preexec</code> can be used to mount CD-ROMs for a share that makes them available to the clients, or to create necessary directories. If no <CODE CLASS="literal"> +root</code> <CODE CLASS="literal"> +preexec</code> option is specified, there is no default action. Here is an example of how you can use the command to mount a CD-ROM:</p><PRE CLASS="programlisting"> +[homes] + browseable = no + writeable = yes + root preexec = /etc/mount /dev/cdrom2</pre><P CLASS="para"> +Remember that these commands will be run as the root user. Therefore, in order to ensure security, users should never be able to modify the target of the <CODE CLASS="literal"> +root</code> <CODE CLASS="literal"> +preexec</code> command.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960582"> +6.6.4.2 preexec</a></h4><P CLASS="para"> +The next option run before logon is the <CODE CLASS="literal"> +preexec</code> option, sometimes just called <CODE CLASS="literal"> +exec</code>. This is an ordinary unprivileged command run by Samba as the user specified by the variable <CODE CLASS="literal"> +%u</code>. For example, a common use of this option is to perform logging, such as the following:</p><PRE CLASS="programlisting"> +[homes] +<CODE CLASS="userinput"><B>preexec = echo "%u connected to %S from %m (%I)\" >>/tmp/.log</b></code> </pre><P CLASS="para"> +Be warned that any information the command sends to standard output will not be seen by the user, but is instead thrown away. If you intend to use a <CODE CLASS="literal"> +preexec</code> script, you should ensure that it will run correctly before having Samba invoke it.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960594"> +6.6.4.3 postexec</a></h4><P CLASS="para"> +Once the user disconnects from the share, the command specified with <CODE CLASS="literal"> +postexec</code> is run as the user on the Samba server to do any necessary cleanup. This option is essentially the same as the <CODE CLASS="literal"> +preexec</code> option. Again, remember that the command is run as the user represented by <CODE CLASS="literal"> +%u</code> and any information sent to standard output will be ignored.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960596"> +6.6.4.4 root postexec</a></h4><P CLASS="para"> +Following the <CODE CLASS="literal"> +postexec</code> option, the <CODE CLASS="literal"> +root</code> <CODE CLASS="literal"> +postexec</code> command is run, if one has been specified. Again, this option specifies a Unix command as its value that will be run <EM CLASS="emphasis"> +as the </em><EM CLASS="emphasis">root user</em> before disconnecting from a share. You should use this option specifically for performing actions that require root privilege.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch06-pgfId-960610"> +6.6.5 Working with NIS and NFS</a></h3><P CLASS="para"> +Finally, Samba has the ability to work with NIS and NIS+. If there is more than one file server, and each runs Samba, it may be desirable to have the SMB client connect to the server whose disks actually house the user's home directory. It isn't normally a good idea to ship files across the network once via NFS to a Samba server, only to be sent across the network once again to the client via SMB. (For one thing, it's slow - about 30 percent of normal Samba speed). Therefore, there are a pair of options to tell Samba that NIS knows the name of the right server and indicate in which NIS map the information lives.</p><P CLASS="para"> +<A CLASS="xref" HREF="ch06_06.html#ch06-27466"> +Table 6.12</a> introduces some of the other configuration options specifically for setting up users. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch06-27466"> +Table 6.12: NIS Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +nis homedir</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, use NIS instead of <I CLASS="filename"> +/etc/passwd</i> to look up the path of a user's home directory</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +homedir map</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (NIS map name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the NIS map to use to look up a user's home directory</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch06-pgfId-960612"> +6.6.5.1 nis homedir and homedir map</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +nis</code> <CODE CLASS="literal"> +homedir</code> and <CODE CLASS="literal"> +homedir</code> <CODE CLASS="literal"> +map</code> options are for Samba servers on network sites where Unix home directories are provided using NFS, the automounter, and NIS (Yellow Pages).</p><P CLASS="para"> +The <CODE CLASS="literal"> +nis</code> <CODE CLASS="literal"> +homedir</code> option indicates that the home directory server for the user needs to be looked up in NIS. The <CODE CLASS="literal"> +homedir</code> <CODE CLASS="literal"> +map</code> option tells Samba what NIS map to look in for the server that has the user's home directory. The server needs to be a Samba server, so the client can do an SMB connect to it, and the other Samba servers need to have NIS installed so they can do the lookup.</p><P CLASS="para"> +For example, if user <CODE CLASS="literal"> +joe</code> asks for a share called <CODE CLASS="literal"> +[joe]</code>, and the <CODE CLASS="literal"> +nis</code> <CODE CLASS="literal"> +homedir</code> option is set to <CODE CLASS="literal"> +yes</code>, Samba will look in the file specified by <CODE CLASS="literal"> +homedir</code> <CODE CLASS="literal"> +map</code> for a home directory for <CODE CLASS="literal"> +joe</code>. If it finds one, Samba will return the associated machine name to the client. The client will then try to connect to <EM CLASS="emphasis"> +that</em> machine and get the share from there. Enabling NIS lookups looks like the following:</p><PRE CLASS="programlisting"> +[globals] + nis homedir = yes + homedir map = amd.map</pre></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_05.html" TITLE="6.5 Windows Domains"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.5 Windows Domains" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch07_01.html" TITLE="7. Printing and Name Resolution"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 7. Printing and Name Resolution" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +6.5 Windows Domains</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +7. Printing and Name Resolution</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch07_01.html b/docs/htmldocs/using_samba/ch07_01.html new file mode 100644 index 0000000000..a061c6a94e --- /dev/null +++ b/docs/htmldocs/using_samba/ch07_01.html @@ -0,0 +1,565 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 7] Printing and Name Resolution</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:34:47Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_06.html" TITLE="6.6 Logon Scripts"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.6 Logon Scripts" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Chapter 7</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_02.html" TITLE="7.2 Printing to Windows Client Printers"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 7.2 Printing to Windows Client Printers" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="chapter"> +<A CLASS="title" NAME="ch07-98459"> +7. Printing and Name Resolution</a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#ch07-61388" TITLE="7.1 Sending Print Jobs to Samba"> +Sending Print Jobs to Samba</a><br> +<A CLASS="sect1" HREF="ch07_02.html" TITLE="7.2 Printing to Windows Client Printers"> +Printing to Windows Client Printers</a><br> +<A CLASS="sect1" HREF="ch07_03.html" TITLE="7.3 Name Resolution with Samba"> +Name Resolution with Samba</a></p><P> +</p></div><P CLASS="para">This chapter tackles two Samba topics: setting up printers for use with a Samba server and configuring Samba to use or become a Windows Internet Name Service (WINS) server. Samba allows client machines to send documents to printers connected to the Samba server. In addition, Samba can also assist you with printing Unix documents to a printer on a Windows machine. In the first part of this chapter, we will discuss how to get printers configured to work on either side.</p><P CLASS="para"> +In the second half of the chapter, we will introduce the Windows Internet Name Service, Microsoft's implementation of a NetBIOS Name Server (NBNS). As mentioned in <a href="ch01_01.html"><b>Chapter 1, <CITE CLASS="chapter">Learning the Samba</cite></b></a>, an NBNS allows machines to perform name resolution on a NetBIOS network without having to rely on broadcasts. Instead, each machine knows exactly where the WINS server is and can query it for the IP addresses of other machines on the network.</p><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="s1"></a> +<A CLASS="title" NAME="ch07-61388"> +7.1 Sending Print Jobs to Samba</a></h2><P CLASS="para">A printer attached to the Samba server shows up in the list of shares offered in the Network Neighborhood. If the printer is registered on the client machine and the client has the correct printer driver installed, the client can effortlessly send print jobs to a printer attached to a Samba server. <A CLASS="xref" HREF="ch07_01.html#ch07-35075"> +Figure 7.1</a> shows a Samba printer as it appears in the Network Neighborhood of a Windows client. </p><P CLASS="para">To administer printers with Samba, you should understand the basic process by which printing takes place on a network. Sending a print job to a printer on a Samba server involves four steps:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-948964"> +</a>Opening and authenticating a connection to the printer share</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-948965"> +</a>Copying the file over the network</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-948966"> +</a>Closing the connection</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-948967"> +</a>Printing and deleting the copy of the file </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch07-35075"> +Figure 7.1: A Samba printer in the Network Neighborhood</a></h4><IMG CLASS="graphic" SRC="figs/sam.0701.gif" ALT="Figure 7.1"></li></ol><P CLASS="para"> +When a print job arrives at a Samba server, the print data is temporarily written to disk in the directory specified by the <CODE CLASS="literal"> +path</code> option of the printer share. Samba then executes a Unix print command to send that data file to the printer. The job is printed as the authenticated user of the share. Note that this may be the guest user, depending on how the share is configured.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-951370"> +7.1.1 Print Commands</a></h3><P CLASS="para">In order to print the document, you'll need to tell Samba what the command is to print and delete a file. On Linux, such a command is:</p><PRE CLASS="programlisting"> +lpr -r -P<CODE CLASS="replaceable"><I>printer</i></code> <CODE CLASS="replaceable"><I>file</i></code></pre><P CLASS="para"> +This tells <CODE CLASS="literal"> +lpr</code> to copy the document to a spool area, usually <I CLASS="filename"> +/var/spool</i>, retrieve the name of the printer in the system configuration file (<I CLASS="filename">/etc/printcap</i>), and interpret the rules it finds there to decide how to process the data and which physical device to send it to. Note that because the <CODE CLASS="literal"> +-r</code> option has been listed, the file specified on the command line will be deleted after it has been printed. Of course, the file removed is just a copy stored on the Samba server; the original file on the client is unaffected.</p><P CLASS="para"> +Linux uses a Berkeley (BSD) style of printing. However, the process is similar on System V Unix. Here, printing and deleting becomes a compound command:</p><PRE CLASS="programlisting">lp -d<CODE CLASS="replaceable"><I>printer</i></code> -s <CODE CLASS="replaceable"><I>file</i></code>; rm <CODE CLASS="replaceable"> <I>file</i></code></pre><P CLASS="para"> +With System V, the <I CLASS="filename"> +/etc/printcap</i> file is replaced with different set of configuration files hiding in <I CLASS="filename"> +/usr/spool/lp</i>, and there is no option to delete the file. You have to do it yourself, which is why we have added the <CODE CLASS="literal"> +rm</code> command afterward.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-951469"> +7.1.2 Printing Variables</a></h3><P CLASS="para">Samba provides four variables specifically for use with printing configuration options. They are shown in <A CLASS="xref" HREF="ch07_01.html#ch07-29758"> +Table 7.1</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch07-29758"> +Table 7.1: Printing Variables </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Variable</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%s</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The full pathname of the file on the Samba server to be printed</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%f</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The name of the file itself (without the preceding path) on the Samba server to be printed</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%p</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The name of the Unix printer to use</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%j</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The number of the print job (for use with <CODE CLASS="literal"> +lprm</code>, <CODE CLASS="literal"> +lppause</code>, and <CODE CLASS="literal"> +lpresume</code>)</p></td></tr></tbody></table></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-943749"> +7.1.3 A Minimal Printing Setup</a></h3><P CLASS="para">Let's start with a simple but illustrative printing share. Assuming that you're on a Linux system and you have a printer called <CODE CLASS="literal"> +lp</code> listed in the printer capabilities file, the following addition to your <I CLASS="filename"> +smb.conf</i> file will make the printer accessible through the network:</p><PRE CLASS="programlisting"> +[printer1] + printable = yes + print command = /usr/bin/lpr -r %s + printer = lp + printing = BSD + read only = yes + guest ok = yes</pre><P CLASS="para"> +This configuration allows anyone to send data to the printer, something we may want to change later. For the moment, what's important to understand is that the variable <CODE CLASS="literal"> +%s</code> in the <CODE CLASS="literal"> +print</code> <CODE CLASS="literal"> +command</code> option will be replaced with the name of the file to be printed when Samba executes the command. Changing the <CODE CLASS="literal"> +print command</code> to reflect a different style of Unix machine typically involves only replacing the right side of the <CODE CLASS="literal"> +print</code> <CODE CLASS="literal"> +command</code> option with whatever command you need for your system and changing the target of the <CODE CLASS="literal"> +printing</code> option.</p><P CLASS="para"> +Let's look at the commands for a System V Unix. With variable substitution, the System V Unix command becomes:</p><PRE CLASS="programlisting"> +print command = lp -d%p -s %s; rm %s</pre><P CLASS="para"> +As mentioned earlier, the <CODE CLASS="literal"> +%p</code> variable resolves to the name of the printer, while the <CODE CLASS="literal"> +%s</code> variable resolves to the name of the file. After that, you can change the <CODE CLASS="literal"> +printing</code> option to reflect that you're using a System V architecture:</p><PRE CLASS="programlisting"> +printing = SYSV</pre><P CLASS="para"> +If you are using share-level security, pay special attention to the guest account used by Samba. The typical setting, <CODE CLASS="literal"> +nobody</code>, may not be allowed to print by the operating system. If that's true for your operating system, you should place a <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +account</code> option under the printing share (or even perhaps the global share) specifying an account that can. A popular candidate with the Samba authors is the <CODE CLASS="literal"> +ftp</code> account, which is often preconfigured to be safe for untrusted guest users. You can set it with the following command:</p><PRE CLASS="programlisting"> +guest account = ftp</pre><P CLASS="para"> +Another common printing issue is that clients may need to request the status of a print job sent to the Samba server. Samba will not reject a document from being sent to an already busy printer share. Consequently, Samba needs the ability to communicate not only the status of the current printing job to the client, but also which documents are currently waiting to be printed on that printer. Samba also has to provide the client the ability to pause print jobs, resume print jobs, and remove print jobs from the printing queue. Samba provides options for each of these tasks. As you might expect, they borrow functionality from existing Unix commands. The options are: </p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-956989"> +</a><CODE CLASS="literal"> +lpq command</code></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-956990"> +</a><CODE CLASS="literal"> +lprm command</code></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-956991"> +</a><CODE CLASS="literal"> +lppause command</code></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-956992"> +</a><CODE CLASS="literal"> +lpresume command</code></p></li></ul><P CLASS="para"> +We will cover these options in more detail below. For the most part, however, the value of the <CODE CLASS="literal"> +printing</code> configuration option will determine their values, and you should not need to alter the default values of these options.</p><P CLASS="para"> +Here are a few important items to remember about printing shares:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-951650"> +</a>You must put <CODE CLASS="literal"> +printable</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> in all printer shares (even <CODE CLASS="literal"> +[printers]</code>), so that Samba will know that they are printer shares. If you forget, the shares will not be usable for printing and will instead be treated as disk shares.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-951651"> +</a>If you set the <CODE CLASS="literal"> +path</code> configuration option in the printer section, any files sent to the printer(s) will be copied to the directory you specify instead of to the default location of <I CLASS="filename"> +/tmp</i>. As the amount of disk space allocated to <I CLASS="filename"> +/tmp</i> can be relatively small in some Unix operating systems, many administrators opt to use <I CLASS="filename"> +/var/spool</i> or some other directory instead.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-951652"> +</a>The <CODE CLASS="literal"> +read only</code> option is ignored for printer shares.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-951648"> +</a>If you set <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> in a printer share and Samba is configured for share-level security, it will allow anyone to send data to the printer as the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +account</code> user. </p></li></ul><P CLASS="para"> +Using one or more Samba machines as a print server gives you a great deal of flexibility on your LAN. You can easily partition your available printers, restricting some to members of one department, or you can maintain a bank of printers available to all. In addition, you can restrict a printer to a selected few by adding the trusty <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> option to its share definition:</p><PRE CLASS="programlisting"> +[deskjet] + printable = yes + path = /var/spool/samba/print + valid users = gail sam</pre><P CLASS="para"> +All of the other share accessibility options defined in the previous chapter should work for printing shares as well. Since the printers themselves are accessed through Samba by name, it's also simple to delegate print services among several servers using familiar Unix commands for tasks such as load balancing or maintenance. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-951458"> +7.1.4 The [printers] Share</a></h3><P CLASS="para"> +<a href="ch04_01.html"><b>Chapter 4, <CITE CLASS="chapter">Disk Shares </cite></b></a>, briefly introduced <CODE CLASS="literal"> +[printers]</code>, a special share for automatically creating printing services. Let's review how it works: if you create a share named <CODE CLASS="literal"> +[printers]</code> in the configuration file, Samba will automatically read in your printer capabilities file and create a printing share for each printer that appears in the file. For example, if the Samba server had <CODE CLASS="literal"> +lp</code>, <CODE CLASS="literal"> +pcl</code> and <CODE CLASS="literal"> +ps</code> printers in its printer capabilities file, Samba would provide three printer shares with those names, each configured with the options in the <CODE CLASS="literal"> +[printers]</code> share.</p><P CLASS="para">Recall that Samba obeys following rules when a client requests a share that has not been created through the <I CLASS="filename"> +smb.conf</i> file:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949501"> +</a>If the share name matches a username in the system password file and a <CODE CLASS="literal"> +[homes]</code> share exists, a new share is created with the name of the user and is initialized using the values given in the <CODE CLASS="literal"> +[homes]</code> and <CODE CLASS="literal"> +[global]</code> sections.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949506"> +</a>Otherwise, if the name matches a printer in the system printer capabilities file, and a <CODE CLASS="literal"> +[printers]</code> share exists, a new share is created with the name of the printer and initialized using the values given in the <CODE CLASS="literal"> +[printers]</code> section. (Variables in the <CODE CLASS="literal"> +[global]</code> section do not apply here.) </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949507"> +</a>If neither of those succeed, Samba looks for a <CODE CLASS="literal"> +default</code> <CODE CLASS="literal"> +service</code> share. If none is found, it returns an error.</p></li></ul><P CLASS="para"> +This brings to light an important point: be careful that you do not give a printer the same name as a user. Otherwise, you will end up connecting to a disk share when you may have wanted a printer share instead.</p><P CLASS="para"> +Here is an example <CODE CLASS="literal"> +[printers]</code> share for a Linux (BSD) system. Some of these options are already defaults; however, we have listed them anyway for illustrative purposes:</p><PRE CLASS="programlisting"> +[global] + printing = BSD + print command = /usr/bin/lpr -P%p -r %s + printcap file = /etc/printcap + min print space = 2000 + +[printers] + path = /usr/spool/public + printable = true + guest ok = true + guest account = pcguest </pre><P CLASS="para"> +Here, we've given Samba global options that specify the printing type (BSD), a print command to send data to the printer and remove a temporary file, our default printer capabilities file, and a minimum printing space of 2 megabytes.</p><P CLASS="para"> +In addition, we've created a <CODE CLASS="literal"> +[printers]</code> share for each of the system printers. Our temporary spooling directory is specified by the <CODE CLASS="literal"> +path</code> option: <I CLASS="filename"> +/usr/spool/public</i>. Each of the shares is marked as printable - this is necessary, even in the <CODE CLASS="literal"> +[printers]</code> section. The two <CODE CLASS="literal"> +guest</code> options are useful in the event that Samba is using share-level security: we allow guest access to the printer and we specify the guest user that Samba should use to execute print commands. </p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-943839"> +7.1.5 Test Printing</a></h3><P CLASS="para">Here is how you can test printing from the Samba server. Let's assume the most complex case and use a guest account. First, run the Samba <EM CLASS="emphasis"> +testparm</em> command on your configuration file that contains the print shares, as we did in <a href="ch02_01.html"><b>Chapter 2, <CITE CLASS="chapter">Installing Samba on a Unix System</cite></b></a>. This will tell you if there are any syntactical problems with the configuration file. For example, here is what you would see if you left out the <CODE CLASS="literal"> +path</code> configuration option in the previous example:</p><PRE CLASS="programlisting"> +# testparm +Load smb config files from /usr/local/samba/lib/smb.conf +Processing configuration file "/usr/local/samba/lib/smb.conf" +Processing section "[global]" +Processing section "[homes]" +Processing section "[data]" +Processing section "[printers]" +No path in service printers - using /tmp +Loaded services file OK. +Press enter to see a dump of your service definitions +Global parameters: + load printers: Yes + printcap name: /etc/printcap +Default service parameters: + guest account: ftp + min print space: 0 + print command: lpr -r -P%p %s + lpq command: lpq -P%p + lprm command: lprm -P%p %j +lppause command: + lpresume command: + Service parameters [printers]: + path: /tmp + print ok: Yes + read only: true + public: true </pre><P CLASS="para"> +Second, try the command <CODE CLASS="literal"> +testprns</code> <CODE CLASS="replaceable"> +<I> +printername</i></code>. This is a simple program that verifies that the specified printer is available in your <EM CLASS="emphasis"> +printcap</em> file. If your <EM CLASS="emphasis"> +printcap</em> file is not in the usual place, you can specify its full pathname as the second argument to the <EM CLASS="emphasis"> +testprns</em> command:</p><PRE CLASS="programlisting"> +# testprns lp /etc/printcap +Looking for printer lp in printcap file /etc/printcap +Printer name lp is valid.</pre><P CLASS="para"> +Next, log on as the guest user, go to the spooling directory, and ensure that you can print using the same command that <EM CLASS="emphasis"> +testparm</em> says Samba will use. As mentioned before, this will tell you if you need to change the guest account, as the default account may not be allowed to print.</p><P CLASS="para"> +Finally, print something to the Samba server via <CODE CLASS="literal"> +smbclient</code>, and see if the following actions occur:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-943874"> +</a>The job appears (briefly) in the Samba spool directory specified by the path.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-943875"> +</a>The job shows up in your print systems spool directory.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-943876"> +</a>The job disappears from the spool directory that Samba used.</p></li></ul><P CLASS="para"> +If <EM CLASS="emphasis"> +smbclient</em> cannot print, you can reset the <CODE CLASS="literal"> +print</code> <CODE CLASS="literal"> +command</code> option to collect debugging information:</p><PRE CLASS="programlisting"> +print command = /bin/cat %s >>/tmp/printlog; rm %s</pre><P CLASS="para"> +or:</p><PRE CLASS="programlisting"> +print command = echo "printed %s on %p" >>/tmp/printlog</pre><P CLASS="para"> +A common problem with Samba printer configuration is forgetting to use the full pathnames for commands; simple commands often don't work because the guest account's PATH doesn't include them. Another frequent problem is not having the correct permissions on the spooling directory. </p><P CLASS="para">There is more information on debugging printers in the Samba documentation (<I CLASS="filename">Printing.txt</i>). In addition, the Unix print systems are covered in detail in AEleen Frisch's <EM CLASS="emphasis"> +Essential Systems Administration</em> (published by O'Reilly).</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-943883"> +7.1.6 Setting Up and Testing a Windows Client</a></h3><P CLASS="para">Now that Samba is offering a workable printer, you need to set it up on a Windows client. Look at the Samba server in the Network Neighborhood. It should now show each of the printers that are available. For example, in <A CLASS="xref" HREF="ch07_01.html#ch07-35075"> +Figure 7.1</a>, we saw a printer called <CODE CLASS="literal"> +lp</code>.</p><P CLASS="para"> +Next, you need to have the Windows client recognize the printer. Double-click on the printer icon to get started. If you try to select an uninstalled printer (as you just did), Windows will ask you if it should help configure it for the Windows system. Respond "Yes," which will open the Printer Wizard. </p><P CLASS="para"> +The first thing the wizard will ask is whether you need to print from DOS. Let's assume you don't, so choose No and press the Next button to get to the manufacturer/model window as shown in <A CLASS="xref" HREF="ch07_01.html#ch07-60084"> +Figure 7.2</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch07-60084"> +Figure 7.2: A printer in the Network Neighborhood</a></h4><IMG CLASS="graphic" SRC="figs/sam.0702.gif" ALT="Figure 7.2"><P CLASS="para"> +In this dialog box, you should see a large list of manufacturers and models for almost every printer imaginable. If you don't see your printer on the list, but you know it's a PostScript printer, select Apple as the manufacturer and Apple LaserWriter as the model. This will give you the most basic Postscript printer setup, and arguably one of the most reliable. If you already have any Postscript printers attached, you will be asked about replacing or reusing the existing driver. Be aware that if you replace it with a new one, you may make your other printers fail. Therefore, we recommend you keep using your existing printer drivers as long as they're working properly.</p><P CLASS="para"> +Following that, the Printer Wizard will ask you to name the printer. <A CLASS="xref" HREF="ch07_01.html#ch07-69466"> +Figure 7.3</a> shows this example, where the name has defaulted to our second laserwriter. Here, you rename it from Apple Laserwriter (Copy 2) to "ps on Samba server," so you know where to look for the printouts. In reality, you can name the printer anything you want. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch07-69466"> +Figure 7.3: Printer manufacturers and models</a></h4><IMG CLASS="graphic" SRC="figs/sam.0703.gif" ALT="Figure 7.3"><P CLASS="para"> +Finally, the Printing Wizard asks if it should print a test page. Click on Yes, and you should be presented with the dialog in <A CLASS="xref" HREF="ch07_01.html#ch07-43374"> +Figure 7.4</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch07-43374"> +Figure 7.4: Printing successfully completed</a></h4><IMG CLASS="graphic" SRC="figs/sam.0704.gif" ALT="Figure 7.4"><P CLASS="para"> +If the test printing was unsuccessful, press the No button in <A CLASS="xref" HREF="ch07_01.html#ch07-43374"> +Figure 7.4</a> and the Printing Wizard will walk you through some debugging steps for the client side of the process. If the test printing does work, congratulations! The remote printer will now be available to all your PC applications through the File and Print menu items.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-30008"> +7.1.7 Automatically Setting Up Printer Drivers</a></h3><P CLASS="para">The previous section described how to manually configure a printer driver for your Windows system. As a system administrator, however, you can't always guarantee that users can perform such a process without making mistakes. Luckily, however, you can ask Samba to automatically set up the printer drivers for a specific printer.</p><P CLASS="para"> +Samba has three options that can be used to automatically set up printer drivers for clients who are connecting for the first time. These options are <CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code>, <CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code> <CODE CLASS="literal"> +file</code>, and <CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code> <CODE CLASS="literal"> +location</code>. This section explains how to use these options to allow users to skip over the Manufacturer dialog in the Add Printer Wizard above.</p><P CLASS="para"> +For more information on how to do this, see the <I CLASS="filename"> +PRINTER_DRIVER.TXT</i> file in the Samba distribution documentation.</p><P CLASS="para"> +There are four major steps:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949602"> +</a>Install the drivers for the printer on a Windows client (the printer need not be attached).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949746"> +</a>Create a printer definition file from the information on a Windows machine.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949600"> +</a>Create a <CODE CLASS="literal"> +PRINTER$</code> share where the resulting driver files can be placed.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949601"> +</a>Modify the Samba configuration file accordingly.</p></li></ol><P CLASS="para"> +Let's go over each of the four steps in greater detail.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-949749"> +7.1.7.1 Install the drivers on a windows client</a></h4><P CLASS="para"> +Use Windows 95/98 for this step. It doesn't matter which client you choose, as long as it has the ability to load the appropriate drivers for the printer. In fact, you don't even need to have the printer attached to the machine. All you're interested in here is getting the appropriate driver files into the Windows directory. First, go to the Printers window of My Computer and double-click on the Add Printer icon, as shown in <A CLASS="xref" HREF="ch07_01.html#ch07-52397"> +Figure 7.5</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch07-52397"> +Figure 7.5: The Printers window</a></h4><IMG CLASS="graphic" SRC="figs/sam.0705.gif" ALT="Figure 7.5"><P CLASS="para"> +At this point, you can follow the Add Printer Wizard dialogs through to select the manufacturer and model of the printer in question. If it asks you if you want to print from MS-DOS, answer No. Windows should load the appropriate driver resources from its CD-ROM and ask you if you want to print a test page. Again, respond No and close the Add Printer Wizard dialog.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-949606"> +7.1.7.2 Create a printer definition file</a></h4><P CLASS="para"> +You can create a printer definition file by using the <I CLASS="filename"> +make_ printerdef</i> script in the <I CLASS="filename"> +/usr/local/samba/bin</i> directory. In order to use this script, you need to copy over the following four files from a Windows client:[<A CLASS="footnote" HREF="#ch07-pgfId-951615">1</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch07-pgfId-951615">[1]</a> Older Windows 95 clients may have only the first two files.</p></div></blockquote><TABLE CLASS="simplelist" BORDER="0"> +<TR> +<TD CLASS="member"> +<EM CLASS="emphasis"> +C:\WINDOWS\INF\MSPRINT.INF</em></td></tr><TR> +<TD CLASS="member"> +<EM CLASS="emphasis"> +C:\WINDOWS\INF\MSPRINT2.INF</em></td></tr><TR> +<TD CLASS="member"> +<EM CLASS="emphasis"> +C:\WINDOWS\INF\MSPRINT3.INF</em></td></tr><TR> +<TD CLASS="member"> +<EM CLASS="emphasis"> +C:\WINDOWS\INF\MSPRINT4.INF</em></td></tr></table><P CLASS="para"> +Once you have the four files, you can create a printer definition file using the appropriate printer driver and its .INF file. If the printer driver starts with the letters A-K, use either the <EM CLASS="emphasis"> +MSPRINT.INF</em> file or the <EM CLASS="emphasis"> +MSPRINT3.INF</em> file. If it begins with the letters L-Z, use the <EM CLASS="emphasis"> +MSPRINT2.INF</em> file or the <EM CLASS="emphasis"> +MSPRINT4.INF</em> file. You may need to <EM CLASS="emphasis"> +grep</em> through each of the files to see where your specific driver is. For the following example, we have located our driver in <EM CLASS="emphasis"> +MSPRINT3.INF</em> and created a printer definition file for a HP DeskJet 560C printer:</p><PRE CLASS="programlisting"> +$grep "HP DeskJet 560C Printer" MSPRINT.INF MSPRINT3.INF +MSPRINT3.INF: "HP DeskJet 560C Printer"=DESKJETC.DRV,HP_DeskJet_ ... + +$make_printerdef MSPRINT3.INF "HP DeskJet 560C Printer" >printers.def +FOUND:DESKJETC.DRV +End of section found +CopyFiles: DESKJETC,COLOR_DESKJETC +Datasection: (null) +Datafile: DESKJETC.DRV +Driverfile: DESKJETC.DRV +Helpfile: HPVDJC.HLP +LanguageMonitor: (null) + +Copy the following files to your printer$ share location: +DESKJETC.DRV +HPVCM.HPM +HPVIOL.DLL +HPVMON.DLL +HPVRES.DLL +HPCOLOR.DLL +HPVUI.DLL +HPVDJCC.HLP +color\HPDESK.ICM</pre><P CLASS="para"> +Note the files that the script asks you to copy. You'll need those for the next step.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-949683"> +7.1.7.3 Create a PRINTER$ share</a></h4><P CLASS="para">This part is relatively easy. Create a share called <CODE CLASS="literal"> +[PRINTER$]</code> in your <I CLASS="filename"> +smb.conf</i> that points to an empty directory on the Samba server. Once that is done, copy over the files that the <I CLASS="filename"> +make_ printerdef</i> script requested of you into the location of the <CODE CLASS="literal"> +path</code> configuration option for the <CODE CLASS="literal"> +[PRINTER$]</code> share. For example, you can put the following in your configuration file:</p><PRE CLASS="programlisting"> +[PRINTER$] + path = /usr/local/samba/print + read only = yes + browsable = no + guest ok = yes</pre><P CLASS="para"> +The files requested by the <I CLASS="filename"> +make_ printerdef</i> script are typically located in the <EM CLASS="emphasis"> +C:\WINDOWS\SYSTEM</em> directory, although you can use the following commands to find out exactly where they are:</p><PRE CLASS="programlisting"> +cd C:\WINDOWS +dir <CODE CLASS="replaceable"> +<I> +filename</i></code> /s</pre><P CLASS="para"> +In this case, each of the files needs to be copied to the <I CLASS="filename"> +/usr/local/samba/print</i> directory on the Samba server. In addition, copy the <I CLASS="filename"> +printers.def</i> file that you created over to that share as well. Once you've done that, you're almost ready to go. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-949694"> +7.1.7.4 Modify the Samba configuration file</a></h4><P CLASS="para"> +<I CLASS="filename"> +</i>The last step is to modify the Samba configuration file by adding the following three options: </p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-956995"> +</a><CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-956996"> +</a><CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code> <CODE CLASS="literal"> +file</code></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-956997"> +</a><CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code> <CODE CLASS="literal"> +location</code></p></li></ul><P CLASS="para"> +The <CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code> <CODE CLASS="literal"> +file</code> is a global option that points to the <I CLASS="filename"> +printers.def</i> file; place that option in your <CODE CLASS="literal"> +[global]</code> section. The other options should be set in the printer share for which you wish to automatically configure the drivers. The value for <CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code> should match the string that shows up in the Printer Wizard on the Windows system. The value of the <CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code> <CODE CLASS="literal"> +location</code> is the pathname of the PRINTER$ share you set up, not the Unix pathname on the server. Thus, you could use the following:</p><PRE CLASS="programlisting"> +[global] + printer driver file = /usr/local/samba/print/printers.def +[hpdeskjet] + path = /var/spool/samba/printers + printable = yes + + printer driver = HP DeskJet 560C Printer + printer driver location = \\%L\PRINTER$</pre><P CLASS="para"> +Now you're ready to test it out. At this point, remove the Windows printer that you "set up" in the first step from the list of printers in the Printers window of My Computer. If Samba asks you to delete unneeded files, do so. These files will be replaced shortly on the client, as they now exist on the Samba server.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-949710"> +7.1.7.5 Testing the configuration</a></h4><P CLASS="para"> +Restart the Samba daemons and look for the <CODE CLASS="literal"> +[hpdeskjet]</code> share under the machine name in the Network Neighborhood. At this point, if you click on the printer icon, you should begin the printer setup process and come to the dialog shown in <A CLASS="xref" HREF="ch07_01.html#ch07-60108"> +Figure 7.6</a>.</p><P CLASS="para"> +This is different from the dialog you saw earlier when setting up a printer. Essentially, the dialog is asking if you wish to accept the driver that is "already installed" - in other words, offered by Samba. Go ahead and keep the existing driver, and press the Next button. At this point, you can give the printer a name and print out a test page. If it works, the setup should be complete. You should be able to repeat the process now from any Windows client. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch07-60108"> +Figure 7.6: Automatically configuring the printer driver</a></h4><IMG CLASS="graphic" SRC="figs/sam.0706.gif" ALT="Figure 7.6"></div></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch06_06.html" TITLE="6.6 Logon Scripts"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 6.6 Logon Scripts" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_02.html" TITLE="7.2 Printing to Windows Client Printers"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 7.2 Printing to Windows Client Printers" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +6.6 Logon Scripts</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +7.2 Printing to Windows Client Printers</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch07_02.html b/docs/htmldocs/using_samba/ch07_02.html new file mode 100644 index 0000000000..c9a9010e97 --- /dev/null +++ b/docs/htmldocs/using_samba/ch07_02.html @@ -0,0 +1,757 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 7] 7.2 Printing to Windows Client Printers</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:34:58Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_01.html" TITLE="7.1 Sending Print Jobs to Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 7.1 Sending Print Jobs to Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch07_01.html" TITLE="7. Printing and Name Resolution"> +Chapter 7<br> +Printing and Name Resolution</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_03.html" TITLE="7.3 Name Resolution with Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 7.3 Name Resolution with Samba" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch07-31526"> +7.2 Printing to Windows Client Printers</a></h2><P CLASS="para">If you have printers connected to clients running Windows 95/98 or NT 4.0, those printers can also be accessed from Samba. Samba comes equipped with a tool called <EM CLASS="emphasis"> +smbprint</em> that can be used to spool print jobs to Windows-based printers. In order to use this, however, you need to set up the printer as a shared resource on the client machine. If you haven't already done this, you can reset this from the Printers window, reached from the Start button, as shown in <A CLASS="xref" HREF="ch07_02.html#ch07-32814"> +Figure 7.7</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch07-32814"> +Figure 7.7: The Printers window</a></h4><IMG CLASS="graphic" SRC="figs/sam.0707.gif" ALT="Figure 7.7"><P CLASS="para"> +Select a printer that's locally connected (for example, ours is the Canon printer), press the right mouse button to bring up a menu, and select Sharing. This will give you the Sharing tab of the Printer Properties frame, as shown in <A CLASS="xref" HREF="ch07_02.html#ch07-92021"> +Figure 7.8</a>. If you want it available to everybody on your LAN as the Windows guest user, enter a blank password. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch07-92021"> +Figure 7.8: The Sharing tab of the printer</a></h4><IMG CLASS="graphic" SRC="figs/sam.0708.gif" ALT="Figure 7.8"><P CLASS="para"> +Once you've got this working, you can add your printer to the list of standard printers and Samba can make it available to all the other PCs in the workgroup. To make installation on Unix easier, the Samba distribution provides two sample scripts: <I CLASS="filename"> +smbprint</i> and <I CLASS="filename"> +smbprint.sysv</i>. The first works with BSD-style printers; the second is designed for System V printers.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-949813"> +7.2.1 BSD printers</a></h3><P CLASS="para">There are two steps you need to have a BSD Unix recognize a remote printer:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949817"> +</a>Place an entry for the printer in the <I CLASS="filename"> +/etc/printcap</i> file (or equivalent).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949818"> +</a>Place a configuration file in the <I CLASS="filename"> +/var/spool</i> directory for the printer.</p></li></ol><P CLASS="para"> +First, edit your <I CLASS="filename"> +/etc/printcap</i> file and add an entry for the remote printer. Note that the input filter (<CODE CLASS="literal">if</code>) entry needs to point to the <EM CLASS="emphasis"> +smbprint</em> program if the machine is on Windows 95/98. The following set of lines will accomplish on a Linux machine, for example:</p><PRE CLASS="programlisting"> +laserjet:\ + :sd=/var/spool/lpd/laser:\ <CODE CLASS="replaceable"> +<I> +# spool directory</i></code> + :mx#0:\ <CODE CLASS="replaceable"> +<I> +# maximum file size (none)</i></code> + :sh:\ <CODE CLASS="replaceable"> +<I> +# surpress burst header (no)</i></code> + :if=/usr/local/samba/bin/smbprint: <CODE CLASS="replaceable"> +<I> +# text filter</i></code></pre><P CLASS="para"> +After that, you need to create a configuration file in the spool directory that you specified with the <CODE CLASS="literal"> +sd</code> parameter above. (You may need to create that directory.) The file must have the name <EM CLASS="emphasis"> +.config</em> and should contain the following information: </p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-954773"> +</a>The NetBIOS name of the Windows machine with the printer</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-954774"> +</a>The service name that represents the printer</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-954775"> +</a>The password used to access that service</p></li></ul><P CLASS="para"> +The last two parameters were set up in the Sharing dialog for the requested resource on the Windows machine. In this case, the <EM CLASS="emphasis"> +.config</em> file would have three lines:</p><PRE CLASS="programlisting"> +server = phoenix +service = CANON +password = ""</pre><P CLASS="para"> +After you've done that, reset the Samba server machine and try printing to it using any standard Unix program.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-949855"> +7.2.2 System V printers</a></h3><P CLASS="para">Sending print jobs from a System V Unix system is a little easier. Here, you need to get obtain the <I CLASS="filename"> +smbprint.sysv</i> script in the <I CLASS="filename"> +/usr/local/samba/examples/printing</i> directory and do the following:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949865"> +</a>Change the <CODE CLASS="literal"> +server</code>, <CODE CLASS="literal"> +service</code>, and <CODE CLASS="literal"> +password</code> parameters in the script to match the NetBIOS machine, its shared printer service, and its password, respectively. For example, the following entries would be correct for the service in the previous example:</p></li></ol><PRE CLASS="programlisting"> +server = phoenix +service = CANON +password = ""</pre><OL CLASS="orderedlist" START="2"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-949876"> +</a>Run the following commands, which create a reference for the printer in the printer capabilities file. Note that the new Unix printer entry <CODE CLASS="literal">canon_printer</code> is named:</p></li></ol><PRE CLASS="programlisting"> +# lpadmin -p canon_printer -v /dev/null -i ./smbprint.sysv +# enable canon_printer +# accept canon_printer</pre><P CLASS="para"> +After you've done that, restart the Samba daemons and try printing to it using any standard Unix program. You should now be able to send data to a printer on a Windows client across the network.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-950287"> +7.2.3 Samba Printing Options</a></h3><P CLASS="para"> +<A CLASS="xref" HREF="ch07_02.html#ch07-19361">Table 7.2</a> summarizes the Samba printing options. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch07-19361"> +Table 7.2: Printing Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +printing</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +bsd</code>, <CODE CLASS="literal"> +sysv</code>, <CODE CLASS="literal"> +hpux</code>, <CODE CLASS="literal"> +aix</code>, <CODE CLASS="literal"> +qnx</code>, <CODE CLASS="literal"> +plp</code>, <CODE CLASS="literal"> +softq</code>, or <CODE CLASS="literal"> +lprng</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the print system type for your Unix system.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +System dependent</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +printable (print ok)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Marks a share as a printing share.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +printer (printer name)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (Unix printer name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the name of the printer to be shown to clients.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +System dependent</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +printer driver</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (printer driver name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the driver name that should be used by the client to send data to the printer.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +printer driver file</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the name of the printer driver file.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +printer driver location</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (network pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the pathname of the share for the printer driver file.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lpq cache time</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numeric (time in seconds)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the amount of time in seconds that Samba will cache the lpq status.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +10</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +postscript</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Treats all print jobs sent as postscript by prepending <CODE CLASS="literal"> +%!</code> at the beginning of each file.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +load printers</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Automatically loads each of the printers in the <EM CLASS="emphasis"> +printcap</em> file as printing shares.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +print command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (shell command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the Unix command to perform printing.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +See below</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lpq command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (shell command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the Unix command to return the status of the printing queue.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +See below</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lprm command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (shell command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the Unix command to remove a job from the printing queue.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +See below</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lppause command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (shell command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the Unix command to pause a job on the printing queue.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +See below</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lpresume command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (shell command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the Unix command to resume a paused job on the printing queue.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +See below</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +printcap name</code></p><P CLASS="para"> +<CODE CLASS="literal"> +(printcap)</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the location of the printer capabilities file.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +System dependent</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +min print space</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numeric (size in kilobytes)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the minimum amount of disk free space that must be present to print.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +queuepause command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (shell command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the Unix command to pause a queue.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +See below</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +queueresume command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (shell command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the Unix command to resume a queue.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +See below</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950502"> +7.2.3.1 printing</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +printing</code> configuration option tells Samba a little about your Unix printing system, in this case which printing parser to use. With Unix, there are several different families of commands to control printing and print statusing. Samba supports seven different types, as shown in <A CLASS="xref" HREF="ch07_02.html#ch07-28758"> +Table 7.3</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch07-28758"> +Table 7.3: Printing Types </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Variable</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +BSD</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Berkeley Unix system</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +SYSV</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +System V</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +AIX</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +AIX Operating System (IBM)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +HPUX</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Hewlett-Packard Unix </p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +QNX</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +QNX Realtime Operating System (QNX)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +LPRNG</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +LPR Next Generation (Powell)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +SOFTQ</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +SOFTQ system</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +PLP</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Portable Line Printer (Powell)</p></td></tr></tbody></table><P CLASS="para"> +The value for this optio.n will be one of these seven options. For example:</p><PRE CLASS="programlisting"> +printing = SYSV</pre><P CLASS="para"> +The default value of this option is system dependent and is configured when Samba is first compiled. For most systems, the <I CLASS="filename"> +configure</i> script will automatically detect the printing system to be used and configure it properly in the Samba makefile. However, if your system is a PLP, LPRNG, or QNX printing system, you will need to explicitly specify this in the makefile or the printing share.</p><P CLASS="para"> +The most common system types are BSD and SYSV. Each of the printers on a BSD Unix server are described in the printer capabilities file - normally <I CLASS="filename"> +/etc/printcap</i>.</p><P CLASS="para"> +Setting the <CODE CLASS="literal"> +printing</code> configuration option automatically sets at least three other printing options for the service in question: <CODE CLASS="literal"> +print</code> <CODE CLASS="literal"> +command</code>, <CODE CLASS="literal"> +lpq</code> <CODE CLASS="literal"> +command</code>, and <CODE CLASS="literal"> +lprm</code> <CODE CLASS="literal"> +command</code>. If you are running Samba on a system that doesn't support any of these printing styles, simply set the commands for each of these manually.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950507"> +7.2.3.2 printable</a></h4><P CLASS="para"> +The printable option must be set to <CODE CLASS="literal"> +yes</code> in order to flag a share as a printing service. If this option is not set, the share will be treated as a disk share instead. You can set the option as follows:</p><PRE CLASS="programlisting"> +[printer1] + printable = yes</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950511"> +7.2.3.3 printer</a></h4><P CLASS="para">The option, sometimes called <CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +name</code>, specifies the name of the printer on the server to which the share points. This option has no default and should be set explicitly in the configuration file, even though Unix systems themselves often recognize a default name such as <CODE CLASS="literal"> +lp</code> for a printer. For example:</p><PRE CLASS="programlisting"> +[deskjet] + printer = hpdkjet1</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950515"> +7.2.3.4 printer driver</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +printer</code> <CODE CLASS="literal"> +driver</code> option sets the string that Samba uses to tell Windows what the printer is. If this option is set correctly, the Windows Printer Wizard will already know what the printer is, making installation easier for end users by giving them one less dialog to worry about. The string given should match the string that shows up in the Printer Wizard, as shown in <A CLASS="xref" HREF="ch07_02.html#ch07-46183"> +Figure 7.9</a>. For example, an Apple LaserWriter typically uses <CODE CLASS="literal"> +Apple</code> <CODE CLASS="literal">LaserWriter</code>; a Hewlett Packard Deskjet 560C uses <CODE CLASS="literal"> +HP</code> <CODE CLASS="literal"> +DeskJet</code> <CODE CLASS="literal"> +560C</code> <CODE CLASS="literal"> +Printer</code>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch07-46183"> +Figure 7.9: The Add Printer Wizard dialog box in Windows 98</a></h4><IMG CLASS="graphic" SRC="figs/sam.0709.gif" ALT="Figure 7.9"><P CLASS="para"> +Automatically configuring printer drivers with Samba is explained in greater detail in the section <A CLASS="xref" HREF="ch07_01.html#ch07-30008"> +Section 7.1.7, Automatically Setting Up Printer Drivers</a>, earlier in this chapter.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-954814"> +7.2.3.5 printer driver file</a></h4><P CLASS="para"> +This global option gives the location of the Windows 95/98 printer driver definition file, which is needed to give printer drivers to clients using a Samba printer. The default value of this option is <I CLASS="filename"> +/usr/local/samba/lib/printers.def</i>. You can override this default as shown below:</p><PRE CLASS="programlisting"> +[deskjet] + printer driver file = /var/printers/printers.def</pre><P CLASS="para"> +This option is explained in greater detail in the section <A CLASS="xref" HREF="ch07_01.html#ch07-30008"> +Section 7.1.7</a>, earlier in this chapter.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950552"> +7.2.3.6 printer driver location</a></h4><P CLASS="para"> +This option specifies a specific share that contains Windows 95 and 98 printer driver and definition files. There is no default parameter for this value. You can specify the location as a network pathname. A frequent approach is to use a share on your own machine, as shown here:</p><PRE CLASS="programlisting"> +[deskjet] + printer driver location = \\%L\PRINTER$</pre><P CLASS="para"> +This option is also explained in greater detail in the section <A CLASS="xref" HREF="ch07_01.html#ch07-30008"> +Section 7.1.7</a>, earlier in this chapter. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950560"> +7.2.3.7 lpq cache time</a></h4><P CLASS="para">The global <CODE CLASS="literal"> +lpq</code> <CODE CLASS="literal"> +cache</code> <CODE CLASS="literal"> +time</code> option allows you to set the number of seconds that Samba will remember the current printer status. After this time elapses, Samba will issue an <EM CLASS="emphasis"> +lpq</em> command (or whatever command you specify with the <CODE CLASS="literal"> +lpq</code> <CODE CLASS="literal"> +command</code> option) to get a more up-to-date status. This defaults to 10 seconds, but can be increased if your <CODE CLASS="literal"> +lpq</code> <CODE CLASS="literal"> +command</code> takes an unusually long time to run or you have lots of clients. The following example resets the time to 30 seconds:</p><PRE CLASS="programlisting"> +[deskjet] + lpq cache time = 30</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950564"> +7.2.3.8 postscript</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +postscript</code> option forces the printer to treat all data sent to it as Postscript. It does this by prepending the characters <CODE CLASS="literal"> +%!</code> at the beginning of the first line of each job. It is normally used with PCs that insert a <CODE CLASS="literal"> +^D</code> (control-D or end-of-file mark) in front of the first line of a PostScript file. It will not, obviously, turn a non-PostScript printer into a PostScript one. The default value of this options is <CODE CLASS="literal"> +no</code>. You can override it as follows:</p><PRE CLASS="programlisting">[deskjet] + postscript = yes</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950568"> +7.2.3.9 print command, lpq command, lprm command, lppause command, lpresume command</a></h4><P CLASS="para">These options tell Samba which Unix commands used to control and send data to the printer. The Unix commands involved are: <EM CLASS="emphasis"> +lpr</em> (send to Line PRinter), <EM CLASS="emphasis"> +lpq</em> (List Printer Queue), <EM CLASS="emphasis"> +lprm</em> (Line printer ReMove), and optionally <EM CLASS="emphasis"> +lppause</em> and <EM CLASS="emphasis"> +lpresume</em>. Samba provides an option named after each of these commands, in case you need to override any of the system defaults. For example, consider:</p><PRE CLASS="programlisting"> +lpq command = /usr/ucb/lpq %p</pre><P CLASS="para"> +This would set the <CODE CLASS="literal"> +lpq command</code> to use <I CLASS="filename"> +/usr/ucb/lpq</i>. Similarly:</p><PRE CLASS="programlisting"> +lprm command = /usr/local/lprm -P%p %j</pre><P CLASS="para"> +would set the Samba printer remove command to <I CLASS="filename"> +/usr/local/lprm</i>, and provide it the print job number using the <CODE CLASS="literal"> +%j</code> variable.</p><P CLASS="para"> +The default values for each of these options are dependent on the value of the <CODE CLASS="literal"> +printing</code> option. <A CLASS="xref" HREF="ch07_02.html#ch07-82964"> +Table 7.4</a> shows the default commands for each of the printing options. The most popular printing system is BSD. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch07-82964"> +Table 7.4: Default Commands for Various Printing Commands </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +BSD, AIX, PLP, LPRNG</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +SYSV, HPUX</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +QNX</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +SOFTQ</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +print command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lpr -r -P%p %s</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal">lp -c -d%p %s; rm %s</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lp -r -P%p %s</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lp -d%p -s %s; rm %s</code></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lpq command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lpq -P%p</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lpstat -o%p</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lpq -P%p</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lpstat -o%p</code></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lprm command</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lprm -P%p %j</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +cancel %p-%j</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +cancel %p-%j</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +cancel %p-%j</code></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lppause command</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lp -i %p-%j -H hold </code>(SYSV only)</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +None</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +None</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +None</td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lpresume command</code></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +lp -i %p-%j -H resume</code>(SYSV only)</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +None</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +None</td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<CODE CLASS="literal"> +qstat -s -j%j -r</code> +</td></tr></tbody></table><P CLASS="para"> +It is typically not necessary to reset these options in Samba, with the possible exception of <CODE CLASS="literal"> +print</code> <CODE CLASS="literal"> +command</code>. This option may need to be explicitly set if your printing system doesn't have a <CODE CLASS="literal"> +-r</code> (remove after printing) option on the printing command. For example: </p><PRE CLASS="programlisting"> +/usr/local/lpr -P%p %s; /bin/rm %s</pre><P CLASS="para"> +With a bit of judicious programming, these <I CLASS="filename"> +smb.conf</i> options can also used for debugging:</p><PRE CLASS="programlisting"> +print command = cat %s >>/tmp/printlog; lpr -r -P%p %s</pre><P CLASS="para"> +For example, this configuration can verify that files are actually being delivered to the Samba server. If they are, their contents will show up in the <I CLASS="filename"> +/tmp/printlog</i> file.</p><P CLASS="para"> +After BSD, the next most popular kind of printing system is SYSV (or System V) printing, plus some SYSV variants for IBM's AIX and Hewlett-Packard's HP-UX. These system do not have an <I CLASS="filename"> +/etc/printcap</i> file. Instead, the <CODE CLASS="literal"> +printcap</code> <CODE CLASS="literal"> +file</code> option can be set to an appropriate <EM CLASS="emphasis"> +lpstat</em> command for the system. This tells Samba to get a list of printers from the <EM CLASS="emphasis"> +lpstat</em> command. Alternatively, you can set the global configuration option <CODE CLASS="literal"> +printcap</code> <CODE CLASS="literal"> +name</code> to the name of a dummy <I CLASS="filename"> +printcap</i> file you provide. In the latter case, the file must contain a series of lines such as:</p><PRE CLASS="programlisting"> +lp|print1|My Printer 1 +print2|My Printer 2 +print3|My Printer 3</pre><P CLASS="para"> +Each line names a printer, and provides aliases for it. In this example, the first printer is called <CODE CLASS="literal"> +lp</code>, <CODE CLASS="literal"> +print1</code>, or <CODE CLASS="literal"> +My</code> <CODE CLASS="literal"> +Printer</code> <CODE CLASS="literal"> +1</code>, whichever the user prefers to use. The first name will be used in place of <CODE CLASS="literal"> +%p</code> in any command Samba executes for that printer.</p><P CLASS="para"> +Two additional printer types are also supported by Samba: LPRNG (LPR New Generation) and PLP (Public Line Printer). These are public domain and Open Source printing systems, and are used by many sites to overcome problems with vendor-supplied software. In addition, the SOFTQ and QNX realtime operating systems are supported by Samba.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950650"> +7.2.3.10 load printers</a></h4><P CLASS="para">The <CODE CLASS="literal"> +load</code> <CODE CLASS="literal"> +printers</code> option tells Samba to create shares for all known printer names and load those shares into the browse list. Samba will create and list a printer share for each printer name in <I CLASS="filename"> +/etc/printcap</i> (or system equivalent). For example, if your <I CLASS="filename"> +printcap</i> file looks like this:[<A CLASS="footnote" HREF="#ch07-pgfId-950654">2</a>]</p><BLOCKQUOTE CLASS="footnote"> +<DIV CLASS="footnote"> +<P CLASS="para"> +<A CLASS="footnote" NAME="ch07-pgfId-950654">[2]</a> We have placed annotated comments off to the side in case you've never dealt with this file before.</p></div></blockquote><PRE CLASS="programlisting"> +lp:\ + :sd=/var/spool/lpd/lp:\ <CODE CLASS="replaceable"> +<I> +# spool directory</i></code> + :mx#0:\ <CODE CLASS="replaceable"> +<I> +# maximum file size (none)</i></code> + :sh:\ <CODE CLASS="replaceable"> +<I> +# surpress burst header (no)</i></code> + :lp=/dev/lp1:\ <CODE CLASS="replaceable"> +<I> +# device name for output</i></code> + :if=/var/spool/lpd/lp/filter: <CODE CLASS="replaceable"> +<I> +# text filter</i></code> + +laser:\ + :sd=/var/spool/lpd/laser:\ <CODE CLASS="replaceable"> +<I> +# spool directory</i></code> + :mx#0:\ <CODE CLASS="replaceable"> +<I> +# maximum file size (none)</i></code> + :sh:\ <CODE CLASS="replaceable"> +<I> +# surpress burst header (no)</i></code> + :lp=/dev/laser:\ <CODE CLASS="replaceable"> +<I> +# device name for output</i></code> + :if=/var/spool/lpd/lp/filter: <CODE CLASS="replaceable"> +<I> +# text filter</i></code></pre><P CLASS="para"> +and you specify:</p><PRE CLASS="programlisting"> +load printers = yes</pre><P CLASS="para"> +the shares <CODE CLASS="literal"> +[lp]</code> and <CODE CLASS="literal"> +[laser]</code> will automatically be created as valid print shares when Samba is started. Both shares will borrow the configuration options specified in the <CODE CLASS="literal"> +[printers]</code> section to configure themselves, and will be available in the browse list for the Samba server.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950671"> +7.2.3.11 printcap name</a></h4><P CLASS="para"> +If the <CODE CLASS="literal"> +printcap</code> <CODE CLASS="literal"> +name</code> option (also called <CODE CLASS="literal"> +printcap</code>) appears in a printing share, Samba will use the file specified as the system printer capabilities file. This is normally <I CLASS="filename"> +/etc/printcap</i>. However, you can reset it to a file consisting of only the printers you want to share over the network. The value must be a fully-qualified filename of a printer capabilities file on the server:</p><PRE CLASS="programlisting"> +[deskjet] + printcap name = /usr/local/printcap</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950678"> +7.2.3.12 min print space</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +min</code> <CODE CLASS="literal"> +print</code> <CODE CLASS="literal"> +space</code> option sets the amount of spool space that must be available on the disk before printing is allowed. Setting it to zero (the default) turns the check off; setting it to any other number sets the amount of free space in kilobytes required. This option helps avoid having print jobs fill up the remaining disk space on the server, which may cause other processes to fail:</p><PRE CLASS="programlisting"> +[deskjet] + min print space = 4000</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950682"> +7.2.3.13 queuepause command</a></h4><P CLASS="para"> +This configuration option specifies a command that tells Samba how to pause a print queue entirely, as opposed to a single job on the queue. The default value depends on the printing type chosen. You should not need to alter this option.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-950684"> +7.2.3.14 queueresume command</a></h4><P CLASS="para"> +This configuration option specifies a command that tells Samba how to resume a paused print queue, as opposed to resuming a single job on the print queue. The default value depends on the printing type chosen. You should not need to alter this option. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_01.html" TITLE="7.1 Sending Print Jobs to Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 7.1 Sending Print Jobs to Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_03.html" TITLE="7.3 Name Resolution with Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 7.3 Name Resolution with Samba" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +7.1 Sending Print Jobs to Samba</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +7.3 Name Resolution with Samba</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch07_03.html b/docs/htmldocs/using_samba/ch07_03.html new file mode 100644 index 0000000000..56a531681c --- /dev/null +++ b/docs/htmldocs/using_samba/ch07_03.html @@ -0,0 +1,404 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 7] 7.3 Name Resolution with Samba</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:35:08Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_02.html" TITLE="7.2 Printing to Windows Client Printers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 7.2 Printing to Windows Client Printers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch07_01.html" TITLE="7. Printing and Name Resolution"> +Chapter 7<br> +Printing and Name Resolution</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch08_01.html" TITLE="8. Additional Samba Information "> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8. Additional Samba Information " BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch07-12219"> +7.3 Name Resolution with Samba</a></h2><P CLASS="para">Before NetBIOS Name Servers (NBNS) came about, name resolution worked entirely by broadcast. If you needed a machine's address, you simply broadcast its name across the network and, in theory, the machine itself would reply. This approach is still possible: anyone looking for a machine named <CODE CLASS="literal"> +fred</code> can still broadcast a query and find out if it exists and what its IP address is. (We use this capability to troubleshoot Samba name services with the <CODE CLASS="literal"> +nmblookup</code> command in <a href="ch09_01.html"><b>Chapter 9, <CITE CLASS="chapter">Troubleshooting Samba</cite></b></a>.)</p><P CLASS="para"> +As you saw in the first chapter, however, broadcasting - whether it be browsing or name registration and resolution - does not pass easily across multiple subnets. In addition, many broadcasts tend to bog down networks. To solve this problem, Microsoft now provides the Windows Internet Naming Service (WINS), a cross-subnet NBNS, which Samba supports. With it, an administrator can designate a single machine to act as a WINS server, and can then provide each client that requires name resolution the address of the WINS server. Consequently, name registration and resolution requests can be directed to a single machine from any point on the network, instead of broadcast.</p><P CLASS="para"> +WINS and broadcasting are not the only means of name resolution, however. There are actually four mechanisms that can be used with Samba:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-950848"> +</a>WINS</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-950856"> +</a>Broadcasting</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-950851"> +</a>Unix <I CLASS="filename"> +/etc/hosts</i> or NIS/NIS+ matches</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch07-pgfId-951953"> +</a><EM CLASS="emphasis"> +LMHOSTS</em> file</p></li></ul><P CLASS="para"> +Samba can use any or all of these name resolution methods in the order that you specify in the Samba configuration file using the <CODE CLASS="literal"> +name</code> <CODE CLASS="literal"> +resolve</code> <CODE CLASS="literal"> +order</code> parameter. However, before delving into configuration options, let's discuss the one that you've probably not encountered before: the <I CLASS="filename"> +LMHOSTS</i> file.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-949950"> +7.3.1 The LMHOSTS File</a></h3><P CLASS="para"> +<I CLASS="filename"> +LMHOSTS</i> is the standard LAN Manager <EM CLASS="emphasis"> +hosts</em> file used to resolve names into IP addresses on the system. It is the NBT equivalent of the <I CLASS="filename"> +/etc/hosts</i> file that is standard on all Unix systems. By default, the file is usually stored as <I CLASS="filename"> +/usr/local/samba/lib/LMHOSTS</i> and shares a format similar to <I CLASS="filename"> +/etc/hosts</i>. For example:</p><PRE CLASS="programlisting"> +192.168.220.100 hydra +192.168.220.101 phoenix</pre><P CLASS="para"> +The only difference is that the names on the right side of the entries are NetBIOS names instead of DNS names. Because they are NetBIOS names, you can assign resource types to them as well:</p><PRE CLASS="programlisting"> +192.168.220.100 hydra#20 +192.168.220.100 simple#1b +192.168.220.101 phoenix#20</pre><P CLASS="para"> +Here, we've assigned the <CODE CLASS="literal"> +hydra</code> machine to be the primary domain controller of the <CODE CLASS="literal"> +SIMPLE</code> domain, as indicated by the resource type <1B> assigned to the name after <CODE CLASS="literal"> +hydra</code>'s IP address in the second line. The other two are standard workstations.</p><P CLASS="para"> +If you wish to place an <EM CLASS="emphasis"> +LMHOSTS</em> file somewhere other than the default location, you will need to notify the <EM CLASS="emphasis"> +nmbd</em> process upon start up, as follows:</p><PRE CLASS="programlisting"> +nmbd -H /etc/samba/lmhosts -D</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-951120"> +7.3.2 Setting Up Samba to Use Another WINS Server</a></h3><P CLASS="para">You can set up Samba to use a WINS server somewhere else on the network by simply pointing it to the IP address of the WINS server. This is done with the global <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +server</code> configuration option, as shown here:</p><PRE CLASS="programlisting"> +[global] + wins server = 192.168.200.122</pre><P CLASS="para"> +With this option enabled, Samba will direct all WINS requests to the server at 192.168.200.122. Note that because the request is directed at a single machine, we don't have to worry about any of the problems inherent to broadcasting. However, though you have specified an IP address for a WINS server in the configuration file, Samba will not necessarily use the WINS server before other forms of name resolution. The order in which Samba attempts various name-resolution techniques is given with the <CODE CLASS="literal"> +name</code> <CODE CLASS="literal"> +resolve</code> <CODE CLASS="literal"> +order</code> configuration option, which we will discuss shortly.</p><P CLASS="para"> +If you have a Samba server on a subnet that still uses broadcasting and the Samba server knows the correct location of a WINS server on another subnet, you can configure the Samba server to forward any name resolution requests with the <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +proxy</code> option:</p><PRE CLASS="programlisting"> +[global] + wins server = 192.168.200.12 + wins proxy = yes</pre><P CLASS="para"> +Use this only in situations where the WINS server resides on another subnet. Otherwise, the broadcast will reach the WINS server regardless of any proxying.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-83429"> +7.3.3 Setting Up Samba as a WINS Server</a></h3><P CLASS="para">You can set up Samba as a WINS server by setting two global options in the configuration file, as shown below:</p><PRE CLASS="programlisting"> +[global] + wins support = yes + name resolve order = wins lmhosts hosts bcast</pre><P CLASS="para"> +The <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +support</code> option turns Samba into a WINS server. Believe it or not, that's all you need to do! Samba handles the rest of the details behind the scenes, leaving you a relaxed administrator. The <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +support=yes</code> and the <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +server</code> option are mutually exclusive; you cannot simultaneously offer Samba as the WINS server and point to another system as the server.</p><P CLASS="para"> +If Samba is acting as a WINS server, you should probably get familiar with the <CODE CLASS="literal"> +name</code> <CODE CLASS="literal"> +resolve</code> <CODE CLASS="literal"> +order</code> option mentioned earlier. This option tells Samba the order of methods in which it tries to resolve a NetBIOS name. It can take up to four values:</p><DL CLASS="variablelist"> +<DT CLASS="term"> +lmhosts</dt><DD CLASS="listitem"> +<P CLASS="para"> +Uses a LAN Manager <EM CLASS="emphasis"> +LMHOSTS</em> file</p></dd><DT CLASS="term"> +hosts</dt><DD CLASS="listitem"> +<P CLASS="para"> +Uses the standard name resolution methods of the Unix system, <EM CLASS="emphasis"> +/etc/hosts</em>, DNS, NIS, or a combination (as configured for the system)</p></dd><DT CLASS="term"> +wins</dt><DD CLASS="listitem"> +<P CLASS="para"> +Uses the WINS server</p></dd><DT CLASS="term"> +bcast</dt><DD CLASS="listitem"> +<P CLASS="para"> +Uses a broadcast method</p></dd></dl><P CLASS="para"> +The order in which you specify them in the value is the order in which Samba will attempt name resolution when acting as a WINS server. For example, let's look at the value specified previously:</p><PRE CLASS="programlisting"> +name resolve order = wins lmhosts hosts bcast</pre><P CLASS="para"> +This means that Samba will attempt to use its WINS entries first for name resolution, followed by the LAN Manager <EM CLASS="emphasis"> +LMHOSTS</em> file on its system. Next, the hosts value causes it to use Unix name resolution methods. The word <CODE CLASS="literal"> +hosts</code> may be misleading; it covers not only the <I CLASS="filename"> +/etc/hosts</i> file, but also the use of DNS or NIS (as configured on the Unix host). Finally, if those three do not work, it will use a broadcast to try to locate the correct machine.</p><P CLASS="para"> +Finally, you can instruct a Samba server that is acting as a WINS server to check with the system's DNS server if a requested host cannot be found in its WINS database. With a typical Linux system, for example, you can find the IP address of the DNS server by searching the <I CLASS="filename"> +/etc/resolv.conf</i> file. In it, you might see an entry such as the following:</p><PRE CLASS="programlisting"> +nameserver 127.0.0.1 +nameserver 192.168.200.192</pre><P CLASS="para"> +This tells us that a DNS server is located at 192.168.220.192. (The 127.0.0.1 is the localhost address and is never a valid DNS server address.) </p><P CLASS="para"> +Use the global <CODE CLASS="literal"> +dns</code> <CODE CLASS="literal"> +proxy</code> option to alert Samba to use the configured DNS server:</p><PRE CLASS="programlisting"> +[global] + wins support = yes + name resolve order = wins lmhosts hosts bcast + dns proxy = yes</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch07-pgfId-949952"> +7.3.4 Name Resolution Configuration Options</a></h3><P CLASS="para">Samba's WINS options are shown in <A CLASS="xref" HREF="ch07_03.html#ch07-82331"> +Table 7.5</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch07-82331"> +Table 7.5: WINS Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +wins support</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, Samba will act as a WINS server.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +wins server</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (IP address or DNS name)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Identifies a WINS server for Samba to use for name registration and resolution.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +wins proxy</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Allows Samba to act as a proxy to a WINS server on another subnet.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +dns proxy</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If set to <CODE CLASS="literal"> +yes</code>, a Samba WINS server will search DNS if it cannot find a name in WINS.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +name resolve order</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lmhosts</code>, <CODE CLASS="literal"> +hosts</code>, <CODE CLASS="literal"> +wins</code>, or <CODE CLASS="literal"> +bcast</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies an order of the methods used to resolve NetBIOS names.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +lmhosts hosts wins bcast</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +max ttl</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the maximum time-to-live in seconds for a requested NetBIOS names.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +259200</code> (3 days)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +max wins ttl</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the maximum time-to-live in seconds for NetBIOS names given out by Samba as a WINS server.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +518400</code> (6 days)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +min wins ttl</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the minimum time-to-live in seconds for NetBIOS names given out by Samba as a WINS server.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +21600</code> (6 hours)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-946762"> +7.3.4.1 wins support</a></h4><P CLASS="para"> +Samba will provide WINS name service to all machines in the network if you set the following in the <CODE CLASS="literal"> +[global]</code> section of the <I CLASS="filename"> +smb.conf</i> file:</p><PRE CLASS="programlisting"> +[global] + wins support = yes</pre><P CLASS="para"> +The default value is <CODE CLASS="literal"> +no</code>, which is typically used to allow another Windows NT server to become a WINS server. If you do enable this option, remember that a Samba WINS server currently cannot exchange data with any backup WINS servers. If activated, this option is mutually exclusive with the <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +server</code> parameter; you cannot set both to <CODE CLASS="literal"> +yes</code> at the same time or Samba will flag an error.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-946766"> +7.3.4.2 wins server</a></h4><P CLASS="para"> +Samba will use an existing WINS server on the network if you specify the <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +server</code> global option in your configuration file. The value of this option is either the IP address or DNS name (not NetBIOS name) of the WINS server. For example:</p><PRE CLASS="programlisting"> +[global] + wins server = 192.168.220.110</pre><P CLASS="para"> +or:</p><PRE CLASS="programlisting"> +[global] + wins server = wins.example.com</pre><P CLASS="para"> +In order for this option to work, the <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +support</code> option must be set to <CODE CLASS="literal"> +no</code> (the default). Otherwise, Samba will report an error. You can specify only one WINS server using this option.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-947973"> +7.3.4.3 wins proxy</a></h4><P CLASS="para"> +This option allows Samba to act as a proxy to another WINS server, and thus relay name registration and resolution requests from itself to the real WINS server, often outside the current subnet. The WINS server can be indicated through the <CODE CLASS="literal"> +wins</code> <CODE CLASS="literal"> +server</code> option. The proxy will then return the WINS response back to the client. You can enable this option by specifying the following in the <CODE CLASS="literal"> +[global]</code> section:</p><PRE CLASS="programlisting"> +[global] + wins proxy = yes</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-946778"> +7.3.4.4 dns proxy</a></h4><P CLASS="para"> +If you want the domain name service (DNS) to be used if a name isn't found in WINS, you can set the following option:</p><PRE CLASS="programlisting"> +[global] + dns proxy = yes</pre><P CLASS="para"> +This will cause <I CLASS="filename"> +nmbd</i> to query for machine names using the server's standard domain name service. You may wish to deactivate this option if you do not have a permanent connection to your DNS server. Despite this option, we recommend using a WINS server. If you don't already have any WINS servers on your network, make one Samba machine a WINS server. Do not, however, make two Samba machines WINS servers (one primary and one backup) as they currently cannot exchange WINS databases.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-949945"> +7.3.4.5 name resolve order</a></h4><P CLASS="para"> +The global <CODE CLASS="literal"> +name</code> <CODE CLASS="literal"> +resolve</code> <CODE CLASS="literal"> +order</code> option specifies the order of services that Samba will use in attempting name resolution. The default order is to use the <EM CLASS="emphasis"> +LMHOSTS</em> file, followed by standard Unix name resolution methods (some combination of <I CLASS="filename"> +/etc/hosts</i>, DNS, and NIS), then query a WINS server, and finally use broadcasting to determine the address of a NetBIOS name. You can override this option by specifying something like the following:</p><PRE CLASS="programlisting"> +[global] + name resolve order = lmhosts wins hosts bcast</pre><P CLASS="para"> +This causes resolution to use the <EM CLASS="emphasis"> +LMHOSTS</em> file first, followed by a query to a WINS server, the system password file, and finally broadcasting. You need not use all four options if you don't want to. This option is covered in more detail in the section <A CLASS="xref" HREF="ch07_03.html#ch07-83429"> +Section 7.3.3, Setting Up Samba as a WINS Server</a>, earlier in this chapter.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-949986"> +7.3.4.6 max ttl</a></h4><P CLASS="para"> +This option gives the maximum time to live (TTL) during which a NetBIOS name registered with the Samba server will remain active. You should never need to alter this value.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-949988"> +7.3.4.7 max wins ttl</a></h4><P CLASS="para"> +This option give the maximum time to live (TTL) during which a NetBIOS name resolved from a WINS server will remain active. You should never need to change this value from its default.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch07-pgfId-949990"> +7.3.4.8 min wins ttl</a></h4><P CLASS="para"> +This option give the minimum time to live (TTL) during which a NetBIOS name resolved from a WINS server will remain active. You should never need to alter this value from its default. </p></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_02.html" TITLE="7.2 Printing to Windows Client Printers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 7.2 Printing to Windows Client Printers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch08_01.html" TITLE="8. Additional Samba Information "> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8. Additional Samba Information " BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +7.2 Printing to Windows Client Printers</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +8. Additional Samba Information </td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch08_01.html b/docs/htmldocs/using_samba/ch08_01.html new file mode 100644 index 0000000000..a6767271b6 --- /dev/null +++ b/docs/htmldocs/using_samba/ch08_01.html @@ -0,0 +1,267 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 8] Additional Samba Information </title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:35:49Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_03.html" TITLE="7.3 Name Resolution with Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 7.3 Name Resolution with Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Chapter 8</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_02.html" TITLE="8.2 Magic Scripts"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.2 Magic Scripts" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="chapter"> +<A CLASS="title" NAME="ch08-74589"> +8. Additional Samba Information </a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#ch08-56646" TITLE="8.1 Supporting Programmers"> +Supporting Programmers</a><br> +<A CLASS="sect1" HREF="ch08_02.html" TITLE="8.2 Magic Scripts"> +Magic Scripts</a><br> +<A CLASS="sect1" HREF="ch08_03.html" TITLE="8.3 Internationalization"> +Internationalization</a><br> +<A CLASS="sect1" HREF="ch08_04.html" TITLE="8.4 WinPopup Messages"> +WinPopup Messages</a><br> +<A CLASS="sect1" HREF="ch08_05.html" TITLE="8.5 Recently Added Options"> +Recently Added Options</a><br> +<A CLASS="sect1" HREF="ch08_06.html" TITLE="8.6 Miscellaneous Options"> +Miscellaneous Options</a><br> +<A CLASS="sect1" HREF="ch08_07.html" TITLE="8.7 Backups with smbtar"> +Backups with smbtar</a></p><P> +</p></div><P CLASS="para"> +This chapter wraps up our coverage of the <I CLASS="filename"> +smb.conf</i> configuration file with some miscellaneous options that can perform a variety of tasks. We will talk briefly about options for supporting programmers, internationalization, messages, and common Windows bugs. For the most part, you will use these options only in isolated circumstances. We also cover performing automated backups with the <I CLASS="filename"> +smbtar</i> command at the end of this chapter. So without further ado, let's jump into our first subject: options to help programmers.</p><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="s1"></a> +<A CLASS="title" NAME="ch08-56646"> +8.1 Supporting Programmers</a></h2><P CLASS="para">If you have programmers accessing your Samba server, you'll want to be aware of the special options listed in <A CLASS="xref" HREF="ch08_01.html#ch08-73167"> +Table 8.1</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-73167"> +Table 8.1: Programming Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +time server</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, <EM CLASS="emphasis"> +nmbd</em> announces itself as a SMB time service to Windows clients.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +time offset</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical (number of minutes)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Adds a specified number of minutes to the reported time.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +dos filetimes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Allows non-owners of a file to change its time if they can write to it.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +dos filetime</code></p><P CLASS="para"> +<CODE CLASS="literal"> +resolution</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Causes file times to be rounded to the next even second.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +fake directory create times</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets directory times to avoid a MS <EM CLASS="emphasis"> +nmake</em> bug.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-958487"> +8.1.1 Time Synchronization</a></h3><P CLASS="para">Time synchronization can be very important to programmers. Consider the following options:</p><PRE CLASS="programlisting"> +time service = yes +dos filetimes = yes +fake directory create times = yes +dos filetime resolution = yes +delete readonly = yes</pre><P CLASS="para"> +If you set these options, Samba shares will provide the kind of compatible file times that Visual C++, <EM CLASS="emphasis"> +nmake</em>, and other Microsoft programming tools require. Otherwise, PC <EM CLASS="emphasis"> +make</em> programs will tend to think that all the files in a directory need to be recompiled every time. Obviously, this is not the behavior you want.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch08-pgfId-958495"> +8.1.1.1 time server</a></h4><P CLASS="para"> +If your Samba server has an accurate clock, or if it's a client of one of the Unix network time servers, you can instruct it to advertise itself as an SMB time server by setting the <CODE CLASS="literal"> +time</code> <CODE CLASS="literal"> +server</code> option as follows:</p><PRE CLASS="programlisting"> +[global] + time service = yes</pre><P CLASS="para"> +The client will still have to request the correct time with the following DOS command, substituting the Samba server name in at the appropriate point:</p><PRE CLASS="programlisting"> +C:\NET TIME \\<CODE CLASS="replaceable"><I>server</i></code> /YES /SET</pre><P CLASS="para"> +This command can be placed in a Windows logon script (see <a href="ch06_01.html"><b>Chapter 6, <CITE CLASS="chapter">Users, Security, and Domains </cite></b></a>).</p><P CLASS="para"> +By default, the <CODE CLASS="literal"> +time</code> <CODE CLASS="literal"> +server</code> option is normally set to <CODE CLASS="literal"> +no</code>. If you turn this service on, you can use the command above to keep the client clocks from drifting. Time synchronization is important to clients using programs such as <EM CLASS="emphasis"> +make</em>, which compile based on the last time the file was changed. Incorrectly synchronized times can cause such programs to either remake all files in a directory, which wastes time, or not recompile a source file that was just modified because of a slight clock drift.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch08-pgfId-958501"> +8.1.1.2 time offset</a></h4><P CLASS="para"> +To deal with clients that don't process daylight savings time properly, Samba provides the <CODE CLASS="literal"> +time</code> <CODE CLASS="literal"> +offset</code> option. If set, it adds the specified number of minutes to the current time. This is handy if you're in Newfoundland and Windows doesn't know about the 30-minute time difference there:</p><PRE CLASS="programlisting"> +[global] + time offset = 30</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch08-pgfId-958505"> +8.1.1.3 dos filetimes</a></h4><P CLASS="para"> +Traditionally, only the root user and the owner of a file can change its last-modified date on a Unix system. The share-level <CODE CLASS="literal"> +dos</code> <CODE CLASS="literal"> +filetimes</code> option allows the Samba server to mimic the characteristics of a DOS/Windows machine: any user can change the last modified date on a file in that share if he or she has write permission to it. In order to do this, Samba uses its root privileges to modify the timestamp on the file. </p><P CLASS="para"> +By default, this option is disabled. Setting this option to <CODE CLASS="literal"> +yes</code> is often necessary to allow PC <EM CLASS="emphasis"> +make</em> programs to work properly. Without it, they cannot change the last-modified date themselves. This often results in the program thinking <EM CLASS="emphasis"> +all</em> files need recompiling when they really don't. </p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch08-pgfId-958509"> +8.1.1.4 dos filetime resolution</a></h4><P CLASS="para"> +<CODE CLASS="literal"> +dos</code> <CODE CLASS="literal"> +filetime</code> <CODE CLASS="literal"> +resolution</code> is share-level option. If set to <CODE CLASS="literal"> +yes</code>, Samba will arrange to have the file times rounded to the closest two-second boundary. This option exists primarily to satisfy a quirk in Windows that prevents Visual C++ from correctly recognizing that a file has not changed. You can enable it as follows:</p><PRE CLASS="programlisting"> +[data] + dos filetime resolution = yes</pre><P CLASS="para"> +We recommend using this option only if you are using Microsoft Visual C++ on a Samba share that supports opportunistic locking.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch08-pgfId-958515"> +8.1.1.5 fake directory create times</a></h4><P CLASS="para"> +The <CODE CLASS="literal"> +fake</code> <CODE CLASS="literal"> +directory</code> <CODE CLASS="literal"> +create</code> <CODE CLASS="literal"> +times</code> option exists to keep PC <EM CLASS="emphasis"> +make</em> programs sane. VFAT and NTFS filesystems record the creation date of a specific directory while Unix does not. Without this option, Samba takes the earliest recorded date it has for the directory (often the last-modified date of a file) and returns it to the client. If this is not sufficient, set the following option under a share definition:</p><PRE CLASS="programlisting"> +[data] + fake directory create times = yes</pre><P CLASS="para"> +If set, Samba will adjust the directory create time it reports to the hardcoded value January 1st, 1980. This is primarily used to convince the Visual C++ <EM CLASS="emphasis"> +nmake</em> program that any object files in its build directories are indeed younger than the creation date of the directory itself and need to be recompiled.</p></div></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch07_03.html" TITLE="7.3 Name Resolution with Samba"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 7.3 Name Resolution with Samba" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_02.html" TITLE="8.2 Magic Scripts"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.2 Magic Scripts" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172">7.3 Name Resolution with Samba</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +8.2 Magic Scripts</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch08_02.html b/docs/htmldocs/using_samba/ch08_02.html new file mode 100644 index 0000000000..54b2480071 --- /dev/null +++ b/docs/htmldocs/using_samba/ch08_02.html @@ -0,0 +1,156 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 8] 8.2 Magic Scripts</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:35:51Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_01.html" TITLE="8.1 Supporting Programmers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.1 Supporting Programmers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch08_01.html" TITLE="8. Additional Samba Information "> +Chapter 8<br> +Additional Samba Information </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_03.html" TITLE="8.3 Internationalization"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.3 Internationalization" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch08-79987"> +8.2 Magic Scripts</a></h2><P CLASS="para">The following options deal with <I CLASS="firstterm"> +magic scripts</i> on the Samba server. Magic scripts are a method of running programs on Unix and redirecting the output back to the SMB client. These are essentially an experimental hack. However, some users and their programs still rely on these two options for their programs to function correctly. Magic scripts are not widely trusted and their use is highly discouraged by the Samba team. See <A CLASS="xref" HREF="ch08_02.html#ch08-33693"> +Table 8.2</a> for more information. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-33693"> +Table 8.2: Networking Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +magic script</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">string (fully-qualified filename)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the name of a file to be executed by Samba, as the logged-on user, when closed.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +magic output</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified filename)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a file to log output from the magic file.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<EM CLASS="emphasis"> +scriptname.out</em></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr></tbody></table><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-958578"> +8.2.1 magic script</a></h3><P CLASS="para"> +If the <CODE CLASS="literal"> +magic</code> <CODE CLASS="literal"> +script</code> option is set to a filename and the client creates a file by that name in that share, Samba will run the file as soon as the user has opened and closed it. For example, let's assume that the following option was created in the share <CODE CLASS="literal"> +[accounting]</code>:</p><PRE CLASS="programlisting"> +[accounting] + magic script = tally.sh</pre><P CLASS="para"> +Samba continually monitors the files in that share. If one by the name of <EM CLASS="emphasis"> +tally.sh</em> is closed (after being opened) by a user, Samba will execute the contents of that file locally. The file will be passed to the shell to execute; it must therefore be a legal Unix shell script. This means that it must have newline characters as line endings instead of Windows CR/LFs. In addition, it helps if you use the <CODE CLASS="literal"> +#!</code> directive at the beginning of the file to indicate under which shell the script should run.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-958584"> +8.2.2 magic output</a></h3><P CLASS="para"> +This option specifies an output file that the script specified by the <CODE CLASS="literal"> +magic</code> <CODE CLASS="literal"> +script</code> option will send output to. You must specify a filename in a writable directory:</p><PRE CLASS="programlisting"> +[accounting] + magic script = tally.sh + magic output = /var/log/magicoutput</pre><P CLASS="para"> +If this option is omitted, the default output file is the name of the script (as stated in the <CODE CLASS="literal"> +magic</code> <CODE CLASS="literal"> +script</code> option) with the extension <EM CLASS="emphasis"> +.out</em> appended onto it. </p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_01.html" TITLE="8.1 Supporting Programmers"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.1 Supporting Programmers" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_03.html" TITLE="8.3 Internationalization"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.3 Internationalization" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +8.1 Supporting Programmers</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +8.3 Internationalization</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch08_03.html b/docs/htmldocs/using_samba/ch08_03.html new file mode 100644 index 0000000000..9e2f60c432 --- /dev/null +++ b/docs/htmldocs/using_samba/ch08_03.html @@ -0,0 +1,472 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 8] 8.3 Internationalization</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:35:51Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_02.html" TITLE="8.2 Magic Scripts"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.2 Magic Scripts" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch08_01.html" TITLE="8. Additional Samba Information "> +Chapter 8<br> +Additional Samba Information </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_04.html" TITLE="8.4 WinPopup Messages"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.4 WinPopup Messages" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch08-91233"> +8.3 Internationalization</a></h2><P CLASS="para">Samba has a limited ability to speak foreign tongues: if you need to deal with characters that aren't in standard ASCII, some options that can help you are shown in <A CLASS="xref" HREF="ch08_03.html#ch08-40870"> +Table 8.3</a>. Otherwise, you can skip over this section. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-40870"> +Table 8.3: Networking Configuration Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +client code page</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Described in this section</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a code page to expect from clients</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +850</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +character set</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Described in this section</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Translates code pages into alternate UNIX character sets</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +coding system</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Described in this section</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Translates code page 932 into an Asian character set</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +valid chars</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (set of characters)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Obsolete: formerly added individual characters to a code page, and had to be used after setting client code page</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-17721"> +8.3.1 client code page</a></h3><P CLASS="para"> +The character sets on Windows platforms hark back to the original concept of a <EM CLASS="emphasis"> +code page</em>. These code pages are used by DOS and Windows clients to determine rules for mapping lowercase letters to uppercase letters. Samba can be instructed to use a variety of code pages through the use of the global <CODE CLASS="literal"> +client</code> <CODE CLASS="literal"> +code</code> <CODE CLASS="literal"> +page</code> option in order to match the corresponding code page in use on the client. This option loads a code-page definition file, and can take the values specified in <A CLASS="xref" HREF="ch08_03.html#ch08-20815"> +Table 8.4</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-20815"> +Table 8.4: Valid Code Pages with Samba 2.0 </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Code Page</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +437</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">MS-DOS Latin (United States)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +737</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Windows 95 Greek</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +850</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +MS-DOS Latin 1 (Western European)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +852</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +MS-DOS Latin 2 (Eastern European)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +861</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +MS-DOS Icelandic</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +866</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +MS-DOS Cyrillic (Russian)</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +932</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +MS-DOS Japanese Shift-JIS</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +936</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +MS-DOS Simplified Chinese</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +949</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +MS-DOS Korean Hangul</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +950</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +MS-DOS Traditional Chinese</p></td></tr></tbody></table><P CLASS="para"> +You can set the client code page as follows:</p><PRE CLASS="programlisting"> +[global] + client code page = 852</pre><P CLASS="para"> +The default value of this option is 850. You can use the <EM CLASS="emphasis"> +make_smbcodepage</em> tool that comes with Samba (by default in <I CLASS="filename"> +/usr/local/samba/bin</i>) to create your own SMB code pages, in the event that those listed earlier are not sufficient.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-965812"> +8.3.2 character set</a></h3><P CLASS="para"> +The global <CODE CLASS="literal"> +character</code> <CODE CLASS="literal"> +set</code> option can be used to convert filenames offered through a DOS code page (see the previous section, <A CLASS="xref" HREF="ch08_03.html#ch08-17721"> +Section 8.3.1, client code page</a>) to equivalents that can be represented by Unix character sets other than those in the United States. For example, if you want to convert the Western European MS-DOS character set on the client to a Western European Unix character set on the server, you can use the following in your configuration file:</p><PRE CLASS="programlisting"> +[global] + client code page = 850 + character set = ISO8859-1</pre><P CLASS="para"> +Note that you must include a <CODE CLASS="literal"> +client</code> <CODE CLASS="literal"> +code</code> <CODE CLASS="literal"> +page</code> option to specify the character set from which you are converting. The valid character sets (and their matching code pages) that Samba 2.0 accepts are listed in <A CLASS="xref" HREF="ch08_03.html#ch08-14126"> +Table 8.5</a>: </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-14126"> +Table 8.5: Valid Character Sets with Samba 2.0 </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Character Set</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Matching Code Page</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ISO8859-1</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +850</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Western European Unix</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ISO8859-2</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +852</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Eastern European Unix</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ISO8859-5</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +866</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Russian Cyrillic Unix</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +KOI8-R</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +866</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Alternate Russian Cyrillic Unix</p></td></tr></tbody></table><P CLASS="para"> +Normally, the <CODE CLASS="literal"> +character</code> <CODE CLASS="literal"> +set</code> option is disabled completely.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-958761"> +8.3.3 coding system</a></h3><P CLASS="para"> +The <CODE CLASS="literal"> +coding</code> <CODE CLASS="literal"> +system</code> option is similar to the <CODE CLASS="literal"> +character</code> <CODE CLASS="literal"> +set</code> option. However, its purpose is to determine how to convert a Japanese Shift JIS code page into an appropriate Unix character set. In order to use this option, the <CODE CLASS="literal"> +client</code> <CODE CLASS="literal"> +code</code> <CODE CLASS="literal"> +page</code> option described previously must be set to page 932. The valid coding systems that Samba 2.0 accepts are listed in <A CLASS="xref" HREF="ch08_03.html#ch08-57476"> +Table 8.6</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-57476"> +Table 8.6: Valid Coding System Parameters with Samba 2.0 </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Character Set</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +SJIS</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Standard Shift JIS</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +JIS8</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Eight-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J8BB</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Eight-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J8BH</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Eight-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J8@B</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Eight-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J8@J</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Eight-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J8@H</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Eight-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +JIS7</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Seven-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J7BB</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Seven-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J7BH</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Seven-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J7@B</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Seven-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J7@J</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Seven-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +J7@H</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Seven-bit JIS codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +JUNET</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +JUNET codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +JUBB</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +JUNET codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +JUBH</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +JUNET codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +JU@B</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +JUNET codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +JU@J</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +JUNET codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +JU@H</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +JUNET codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +EUC</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +EUC codes</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +HEX</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Three-byte hexidecimal code</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +CAP</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Three-byte hexidecimal code (Columbia Appletalk Program)</p></td></tr></tbody></table></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-958865"> +8.3.4 valid chars</a></h3><P CLASS="para"> +The <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +chars</code> option is an older Samba feature that will add individual characters to a code page. However, this option is being phased out in favor of more modern coding systems. You can use this option as follows:</p><PRE CLASS="programlisting"> +valid chars = Î +valid chars = 0450:0420 0x0A20:0x0A00 +valid chars = A:a</pre><P CLASS="para"> +Each of the characters in the list specified should be separated by spaces. If there is a colon between two characters or their numerical equivalents, the data to the left of the colon is considered an uppercase character, while the data to the right is considered the lowercase character. You can represent characters both by literals (if you can type them) and by octal, hexidecimal, or decimal Unicode equivalents.</p><P CLASS="para"> +We recommend against using this option. Instead, go with one of the standard code pages listed earlier in this section. If you do use this option, however, it must be listed after the <CODE CLASS="literal"> +client</code> <CODE CLASS="literal"> +code</code> <CODE CLASS="literal"> +page</code> to which you wish to add the character. Otherwise, the characters will not be added.</p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_02.html" TITLE="8.2 Magic Scripts"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.2 Magic Scripts" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_04.html" TITLE="8.4 WinPopup Messages"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.4 WinPopup Messages" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172">8.2 Magic Scripts</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +8.4 WinPopup Messages</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch08_04.html b/docs/htmldocs/using_samba/ch08_04.html new file mode 100644 index 0000000000..d45ce31474 --- /dev/null +++ b/docs/htmldocs/using_samba/ch08_04.html @@ -0,0 +1,168 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 8] 8.4 WinPopup Messages</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:35:55Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_03.html" TITLE="8.3 Internationalization"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.3 Internationalization" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch08_01.html" TITLE="8. Additional Samba Information "> +Chapter 8<br> +Additional Samba Information </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_05.html" TITLE="8.5 Recently Added Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.5 Recently Added Options" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch08-82569"> +8.4 WinPopup Messages</a></h2><P CLASS="para">You can use the WinPopup tool (<I CLASS="filename">WINPOPUP.EXE</i>) in Windows to send messages to users, machines, or entire workgroups on the network. This tool is provided with Windows 95 OSR2 and comes standard with Windows 98. With either Windows 95 or 98, however, you need to be running WinPopup to receive and send WinPopup messages. With Windows NT, you can still receive messages without starting such a tool; they will automatically appear in a small dialog box on the screen when received. The WinPopup application is shown in <A CLASS="xref" HREF="ch08_04.html#ch08-66444"> +Figure 8.1</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch08-66444"> +Figure 8.1: The WinPopup application</a></h4><IMG CLASS="graphic" SRC="figs/sam.0801.gif" ALT="Figure 8.1"><P CLASS="para"> +Samba has a single WinPopup messaging option, <CODE CLASS="literal"> +message</code> <CODE CLASS="literal"> +command</code>, as shown in <A CLASS="xref" HREF="ch08_04.html#ch08-18671"> +Table 8.7</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-18671"> +Table 8.7: WinPopup Configuration Option </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameter</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +message command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">string (fully-qualified pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a command to run on Unix when a WinPopup message is received.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-958949"> +8.4.1 message command</a></h3><P CLASS="para"> +Samba's <CODE CLASS="literal"> +message</code> <CODE CLASS="literal"> +command</code> option sets the path to a program that will run on the server when a Windows popup message arrives at the server. The command will be executed using the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +account</code> user. What to do with one of these is questionable since it's probably for the Samba administrator, and Samba doesn't know his or her name. If you know there's a human using the console, the Samba team once suggested the following:</p><PRE CLASS="programlisting"> +[global] + message command = /bin/csh -c 'xedit %s; rm %s' &</pre><P CLASS="para"> +Note the use of variables here. The <CODE CLASS="literal"> +%s</code> variable will become the file that the message is in. This file should be deleted when the command is finished with it; otherwise, there will be a buildup of pop-up files collecting on the Samba server. In addition, the command must fork its own process (note the & after the command); otherwise the client may suspend and wait for notification that the command was sent successfully before continuing.</p><P CLASS="para"> +In addition to the standard variables, <A CLASS="xref" HREF="ch08_04.html#ch08-29758"> +Table 8.8</a> shows the three unique variables that you can use in a <CODE CLASS="literal"> +message</code> <CODE CLASS="literal"> +command</code>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-29758"> +Table 8.8: Message Command Variables </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Variable</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%s</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The name of the file in which the message resides</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%</code>f</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The name of the client that sent the message</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +%t</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +The name of the machine that is the destination of the message </p></td></tr></tbody></table></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_03.html" TITLE="8.3 Internationalization"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.3 Internationalization" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_05.html" TITLE="8.5 Recently Added Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.5 Recently Added Options" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +8.3 Internationalization</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +8.5 Recently Added Options</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch08_05.html b/docs/htmldocs/using_samba/ch08_05.html new file mode 100644 index 0000000000..90fa20a8cd --- /dev/null +++ b/docs/htmldocs/using_samba/ch08_05.html @@ -0,0 +1,396 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 8] 8.5 Recently Added Options</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:35:55Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_04.html" TITLE="8.4 WinPopup Messages"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.4 WinPopup Messages" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch08_01.html" TITLE="8. Additional Samba Information "> +Chapter 8<br> +Additional Samba Information </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_06.html" TITLE="8.6 Miscellaneous Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.6 Miscellaneous Options" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch08-pgfId-958954"> + +<!-- 2.0.7 amendments begin, davecb --> 8.5 Recently Added +Options</a></h2><P CLASS="para">Samba has several options that appeared +around the time of Samba 2.0, but either were not entirely supported or were +in the process of being developed. With Samba 2.0.7, several more were +introduced. We will give you a brief overview of their workings in this +section. These options are shown in <A CLASS="xref" +HREF="ch08_05.html#ch08-72538"> +<!-- end of first addition --> + +Table 8.9</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-72538"> +Table 8.9: Recently Added Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> + +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +change notify timeout</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical (number of seconds)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the interval between checks when a client asks to wait for a change in a specified directory.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +60</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr> + +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +machine password timeout</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical (number of seconds)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the renewal interval for NT domain machine passwords.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +604,800</code> (1 week)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +stat cache</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, Samba will cache recent name mappings.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +stat cache size</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the size of the stat cache.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +50</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr> + +<!-- 2.0.7 table insertions begin --> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +utmp</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Turns on logging of Samba users in the utmp file. Requires --with-utmp. </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr> + +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +utmp dir</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the directory where Samba expects to find the utmp/utmpx file.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +None</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr> + +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +inherit permissions</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the permissions of newly created directories to the same as their parent.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr> + +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +write cache size</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical (bytes)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the size of a write cache (buffer) used for oplocked files.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Share</p></td></tr> + +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +source environment</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (pathname)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets a file to read environment variable from.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +None</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr> + +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +min password length</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical (number of characters)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the minimum length of a new password which Samba will try to update the password file with .</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +5</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr> + + +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +netbios scope</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the NetBIOS scope.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +None</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr> +<!-- end of 2.0.7 insertions--> +</tbody></table> + +<DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-959050"> +8.5.1 change notify timeout</a></h3><P CLASS="para"> +The <CODE CLASS="literal"> +change</code> <CODE CLASS="literal"> +notify</code> <CODE CLASS="literal"> +timeout</code> global option emulates a Windows NT SMB feature called <I CLASS="firstterm"> +change notification</i>. This allows a client to request that a Windows NT server periodically monitor a specific directory on a share for any changes. If any changes occur, the server will notify the client.</p><P CLASS="para"> +As of version 2.0, Samba will perform this function for its clients. However, performing these checks too often can slow the server down considerably. This option sets the time period that Samba should wait between such checks. The default is one minute (60 seconds); however, you can use this option to specify an alternate time that Samba should wait between performing checks:</p><PRE CLASS="programlisting"> +[global] + change notify timeout = 30</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-959054"> +8.5.2 machine password timeout</a></h3><P CLASS="para"> +The <CODE CLASS="literal"> +machine</code> <CODE CLASS="literal"> +password</code> <CODE CLASS="literal"> +timeout</code> global option sets a retention period for NT domain machine passwords. The default is currently set to the same time period that Windows NT 4.0 uses: 604,800 seconds (one week). Samba will periodically attempt to change the <I CLASS="firstterm"> +machine account password</i>, which is a password used specifically by another server to report changes to it. This option specifies the number of seconds that Samba should wait before attempting to change that password. The following example changes it to a single day, by specifying the following:</p><PRE CLASS="programlisting"> +[global] + machine password timeout = 86400</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-959058"> +8.5.3 stat cache</a></h3><P CLASS="para"> +The <CODE CLASS="literal"> +stat</code> <CODE CLASS="literal"> +cache</code> global option turns on caching of recent case-insensitive name mappings. The default is <CODE CLASS="literal"> +yes</code>. The Samba team recommends that you never change this parameter.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-959060"> +8.5.4 stat cache size</a></h3><P CLASS="para">The <CODE CLASS="literal"> +stat</code> <CODE CLASS="literal"> +cache</code> <CODE CLASS="literal"> +size</code> global option sets the size of the cache entries to be used for the <CODE CLASS="literal"> +stat</code> <CODE CLASS="literal"> +cache</code> option. The default here is 50. Again, the Samba team recommends that you never change this parameter.</p> + +=== + +<H3 CLASS="sect2"> <A CLASS="title" NAME="ch08-pgfId-959060-add1"> +8.5.5 utmp</a></h3> +<P CLASS="para">If you specified <CODE CLASS="literal"> +--with-utmp </CODE> when configuring, this option will turn on utmp logging +of users: they will appear in the utmp file and you will be able to see if +they are on with <I>last(1)</I>. It defaults to <CODE +CLASS="literal">no</code>.</p> + +<H3 CLASS="sect2"> <A CLASS="title" NAME="ch08-pgfId-959060-add2"> +8.5.6 utmp dir</a></h3> +<P CLASS="para"> +If <CODE CLASS="literal">utmp</CODE> is set, the utmp dir option will change the directory Samba +looks in for the utmp files. If it is not set, the default system +location will be used.</p> + +<H3 CLASS="sect2"> <A CLASS="title" NAME="ch08-pgfId-959060-add3"> +8.5.7 inherit permissions</a></h3> +<P CLASS="para"> +This option causes new files and directories to be created with +the same permissions as the directory they're in. For example, +subdirectories will inherit setgid bits from their parents. +This option will override the <CODE CLASS="literal">create +mask, directory mask, force create mode</CODE> and <CODE CLASS="literal"> +force directory mode</CODE> options, but not the <CODE CLASS="literal"> +map archive, map hidden</CODE> and <CODE CLASS="literal">map system</CODE> +options. It will never set the <CODE CLASS="literal">setuid</CODE> bit. +This option defaults to off.</p> + +<H3 CLASS="sect2"> <A CLASS="title" NAME="ch08-pgfId-959060-add4"> +8.5.8 write cache size</a></h3> +<P CLASS="para">The <CODE CLASS="literal">write cache size</code> +share option sets the size of a cache used by Samba while +writing oplocked files. The files will be written in <I>cachesize</I> +blocks, so you can tune Samba's write size to the optimum size for +your filesystem or RAID disk array.</p> + +<p>The caching applies to the first 10 files opened with oplocks if set, +and defaults to zero (off) initially.</p> + +<p>As with all caching schemes, data that hasn't been written +will be lost if the system crashes.</p> + +<H3 CLASS="sect2"> <A CLASS="title" NAME="ch08-pgfId-959060-add5"> +8.5.9 source environment</a></h3> +<P CLASS="para"> +This options specifies a file of environment variables that Samba +will read on startup. <!-- and when else? When an smb.conf is read? +when a child server process is started? --> The variables set in this +files can then be used in smb.conf files as $%<I>name</I>. For example, +HOME=/home/sofia in the environment file could be used in a smb.conf +file as "path = "$HOME"</p> + +<p>If the pathname begins with a "|" (pipe) symbol, Samba will attempt +to run it and read its standard output.</p> + +<H3 CLASS="sect2"> <A CLASS="title" NAME="ch08-pgfId-959060-add6"> +8.5.10 min password length</a></h3> +<P CLASS="para">This option sets the minimum length, in characters, +of a plain text password that Samba will accept when performing UNIX +password changing. This is used to tell Samba about system-defined +minimums, so it can return an appropriate error to the client.</p> + + +<H3 CLASS="sect2"> <A CLASS="title" NAME="ch08-pgfId-959060-add1"> +8.5.11 netbios scope</a></h3> +<P CLASS="para"> +This sets the NetBIOS scope that Samba will operate under: Samba +will not communicate with any machine with a different scope. +This should not be set unless every machine on your LAN also sets +this value. It was a predecessor to workgroups, and the Samba +team recommends against using it.</p> + +<!-- end of 2.0.7 additions. --> + +<div></div></div></blockquote> + +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_04.html" TITLE="8.4 WinPopup Messages"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.4 WinPopup Messages" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_06.html" TITLE="8.6 Miscellaneous Options"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.6 Miscellaneous Options" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +8.4 WinPopup Messages</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +8.6 Miscellaneous Options</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch08_06.html b/docs/htmldocs/using_samba/ch08_06.html new file mode 100644 index 0000000000..97e4e3c976 --- /dev/null +++ b/docs/htmldocs/using_samba/ch08_06.html @@ -0,0 +1,509 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 8] 8.6 Miscellaneous Options</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:35:56Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_05.html" TITLE="8.5 Recently Added Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.5 Recently Added Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch08_01.html" TITLE="8. Additional Samba Information "> +Chapter 8<br> +Additional Samba Information </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_07.html" TITLE="8.7 Backups with smbtar"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.7 Backups with smbtar" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch08-70923"> +8.6 Miscellaneous Options</a></h2><P CLASS="para">Many Samba options are present to deal with operating system issues on either Unix or Windows. The options shown in <A CLASS="xref" HREF="ch08_06.html#ch08-83566"> +Table 8.10</a> deal specifically with some of these known problems. We usually don't change these and we recommend the same to you. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-83566"> +Table 8.10: Miscellaneous Options </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Option</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Parameters</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Function</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Default</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Scope</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +deadtime</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">numerical (number of minutes)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the number of minutes of inactivity before a connection should be terminated.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +0</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +dfree command</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Used to provide a command that returns disk free space in a format recognized by Samba.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +fstype</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +NTFS</code>, <CODE CLASS="literal"> +FAT</code>, or <CODE CLASS="literal"> +Samba</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the filesystem type reported by the server to the client.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +NTFS</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +keep alive</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +seconds</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the number of seconds between checks for an inoperative client.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +0 (none)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +max disk size</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical (size in MB)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the largest disk size to return to a client, some of which have limits. Does not affect actual operations on the disk.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +0 (infinity)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +max mux</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the maximum number of simultaneous SMB operations that clients may make.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +50</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +max open files</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Limits number of open files to be below Unix limits.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +10,000</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +max xmit</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +numerical</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Specifies the maximum packet size that Samba will send.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +65,535</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +nt pipe support</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Turns off an experimental NT feature, for benchmarking or in case of an error.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +nt smb support</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Turns off an experimental NT feature, for benchmarking or in case of an error.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +ole locking compatib-ility</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Remaps out-of-range lock requests used on Windows to fit in allowable range on Unix. Turning it off causes Unix lock errors.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +panic action</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +command</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Program to run if Samba server fails; for debugging.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +set directory</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, allows VMS clients to issue <CODE CLASS="literal"> +set</code> <CODE CLASS="literal"> +dir</code> commands.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +smbrun</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +string (fully-qualified command)</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Sets the command Samba uses as a wrapper for shell commands.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +None</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +status</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, allows Samba to monitor status for <CODE CLASS="literal"> +smbstatus</code> command.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +yes</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +strict sync</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +no</code>, ignores Windows applications requests to perform a sync-to-disk.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +sync always</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, forces all client writes to be committed to disk before returning from the call.</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +strip dot</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +boolean</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +If <CODE CLASS="literal"> +yes</code>, strips trailing dots from Unix filenames. </p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<CODE CLASS="literal"> +no</code></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Global</p></td></tr></tbody></table><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960795"> +8.6.1 deadtime</a></h3><P CLASS="para"> +This global option sets the number of minutes that Samba will wait for an inactive client before closing its session with the Samba server. A client is considered inactive when it has no open files and there is no data being sent from it. The default value for this option is 0, which means that Samba never closes any connections no matter how long they have been inactive. You can override it as follows:</p><PRE CLASS="programlisting"> +[global] + deadtime = 10</pre><P CLASS="para"> +This tells Samba to terminate any inactive client sessions after 10 minutes. For most networks, setting this option as such will work because reconnections from the client are generally performed transparently to the user.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960118"> +8.6.2 dfree command</a></h3><P CLASS="para">This global option is used on systems that incorrectly determine the free space left on the disk. So far, the only confirmed system that needs this option set is Ultrix. There is no default value for this option, which means that Samba already knows how to compute the free disk space on its own and the results are considered reliable. You can override it as follows:</p><PRE CLASS="programlisting"> +[global] + dfree command = /usr/local/bin/dfree</pre><P CLASS="para"> +This option should point to a script that should return the total disk space in a block, and the number of available blocks. The Samba documentation recommends the following as a usable script:</p><PRE CLASS="programlisting"> +#!/bin/sh +df $1 | tail -1 | awk '{print $2" "$4}'</pre><P CLASS="para"> +On System V machines, the following will work:</p><PRE CLASS="programlisting"> +#!/bin/sh +/usr/bin/df $1 | tail -1 | awk '{print $3" "$5}'</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960122"> +8.6.3 fstype</a></h3><P CLASS="para"> +This share-level option sets the type of filesystem that Samba reports when queried by the client. There are three strings that can be used as a value to this configuration option, as listed in <A CLASS="xref" HREF="ch08_06.html#ch08-80519"> +Table 8.11</a>. </p><br> +<TABLE CLASS="table" BORDER="1" CELLPADDING="3"> +<CAPTION CLASS="table"> +<A CLASS="title" NAME="ch08-80519"> +Table 8.11: Filesystem Types </a></caption><THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Variable</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Definition</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +NTFS</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para">Microsoft Windows NT filesystem</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +FAT</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +DOS FAT filesystem</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Samba filesystem</p></td></tr></tbody></table><P CLASS="para"> +The default value for this option is <CODE CLASS="literal"> +NTFS</code>, which represents a Windows NT filesystem. There probably isn't a need to specify any other type of filesystem. However, if you need to, you can override it per share as follows:</p><PRE CLASS="programlisting"> +[data] + fstype = FAT</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960124"> +8.6.4 keep alive</a></h3><P CLASS="para">This global option specifies the number of seconds that Samba waits between sending NetBIOS <EM CLASS="emphasis"> +keep-alive packets</em>. These packets are used to ping a client to detect whether it is still alive and on the network. The default value for this option is <CODE CLASS="literal"> +0</code>, which means that Samba will not send any such packets at all. You can override it as follows:</p><PRE CLASS="programlisting"> +[global] + keep alive = 10</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960128"> +8.6.5 max disk size</a></h3><P CLASS="para">This global option specifies an illusory limit, in megabytes, for each of the shares that Samba is using. You would typically set this option to prevent clients with older operating systems from incorrectly processing large disk spaces, such as those over one gigabyte.</p><P CLASS="para"> +The default value for this option is <CODE CLASS="literal"> +0</code>, which means there is no upper limit at all. You can override it as follows:</p><PRE CLASS="programlisting"> +[global] + max disk size = 1000</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960130"> +8.6.6 max mux</a></h3><P CLASS="para">This global option specifies the maximum number of concurrent SMB operations that Samba allows. The default value for this option is <CODE CLASS="literal"> +50</code>. You can override it as follows:</p><PRE CLASS="programlisting"> +[global] + max mux = 100</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960132"> +8.6.7 max open files</a></h3><P CLASS="para">This global option specifies the maximum number of open files that Samba should allow at any given time for all processes. This value must be equal to or less than the amount allowed by the operating system, which varies from system to system. The default value for this option is <CODE CLASS="literal"> +10,000</code>. You can override it as follows:</p><PRE CLASS="programlisting"> +[global] + max open files = 8000</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960136"> +8.6.8 max xmit</a></h3><P CLASS="para">This global option sets the maximum size of packets that Samba exchanges with a client. In some cases, setting a smaller maximum packet size can increase performance, especially with Windows for Workgroups. The default value for this option is <CODE CLASS="literal"> +65535</code>. You can override it as follows:</p><PRE CLASS="programlisting"> +[global] + max xmit = 4096</pre><P CLASS="para"> + +The section <a href="appb_02.html#b226"><b>Section B.2.2.6, The TCP receive window</b></a> in <a href="appb_01.html"><b>Appendix B,<CITE CLASS="appendix"> +Samba Performance Tuning</cite></b></a>, + +shows some uses for this option.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960138"> +8.6.9 nt pipe support</a></h3><P CLASS="para">This global option is used by developers to allow or disallow Windows NT clients the ability to make connections to the NT SMB-specific IPC$ pipes. As a user, you should never need to override the default:</p><PRE CLASS="programlisting"> +[global] + nt pipe support = yes</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960140"> +8.6.10 nt smb support</a></h3><P CLASS="para">This global option is used by developers to negotiate NT-specific SMB options with Windows NT clients. The Samba team has discovered that slightly better performance comes from setting this value to <CODE CLASS="literal"> +no</code>. However, as a user, you should probably not override the default:</p><PRE CLASS="programlisting"> +[global] + nt smb support = yes</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960178"> +8.6.11 ole locking compatibility</a></h3><P CLASS="para"> +This global option turns off Samba's internal byte-range locking manipulation in files, which gives compatibility with Object Linking and Embedding (OLE) applications that use high byte-range locks as a method of interprocess communication. The default value for this option is <CODE CLASS="literal"> +yes</code>. If you trust your Unix locking mechanisms, you can override it as follows:</p><PRE CLASS="programlisting"> +[global] + ole locking compatibility = no</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960182"> +8.6.12 panic action</a></h3><P CLASS="para">This global option specifies a command to execute in the event that Samba itself encounters a fatal error when loading or running. There is no default value for this option. You can specify an action as follows:</p><PRE CLASS="programlisting"> +[global] + panic action = /bin/csh -c + 'xedit < "Samba has shutdown unexpectedly!'</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960190"> +8.6.13 set directory</a></h3><P CLASS="para"> +This boolean share-level option allows Digital Pathworks clients to use the <CODE CLASS="literal"> +setdir</code> command to change directories on the server. If you are not using the Digital Pathworks client, you should not need to alter this option. The default value for this option is <CODE CLASS="literal"> +no</code>. You can override it per share as follows:</p><PRE CLASS="programlisting"> +[data] + set directory = yes</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960192"> +8.6.14 smbrun</a></h3><P CLASS="para"> +This option sets the location of the <EM CLASS="emphasis"> +smbrun</em> executable, which Samba uses as a wrapper to run shell commands. The default value for this option is automatically configured by Samba when it is compiled. If you did not install Samba to the standard directory, you can specify where the binary is as follows:</p><PRE CLASS="programlisting"> +[global] + smbrun = /usr/local/bin/smbrun</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960194"> +8.6.15 status</a></h3><P CLASS="para"> +This global option indicates whether Samba should log all active connections to a status file. This file is used only by the <EM CLASS="emphasis"> +smbstatus</em> command. If you have no intentions of using this command, you can set this option to <CODE CLASS="literal"> +no</code>, which can result in a small increase of speed on the server. The default value for this option is <CODE CLASS="literal"> +yes</code>. You can override it as follows:</p><PRE CLASS="programlisting"> +[global] + status = no</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960196"> +8.6.16 strict sync</a></h3><P CLASS="para"> +This share-level option determines whether Samba honors all requests to perform a disk sync when requested to do so by a client. Many clients request a disk sync when they are really just trying to flush data to their own open files. As a result, this can substantially slow a Samba server down. The default value for this option is <CODE CLASS="literal"> +no</code>. You can override it as follows:</p><PRE CLASS="programlisting"> +[data] + strict sync = yes</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960202"> +8.6.17 sync always</a></h3><P CLASS="para"> +This share-level option decides whether every write to disk should be followed by a disk synchronization before the write call returns control to the client. Even if the value of this option is <CODE CLASS="literal"> +no</code>, clients can request a disk synchronization; see the <CODE CLASS="literal"> +strict</code> <CODE CLASS="literal"> +sync</code> option above. The default value for this option is <CODE CLASS="literal"> +no</code>. You can override it per share as follows:</p><PRE CLASS="programlisting"> +[data] + sync always = yes</pre></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch08-pgfId-960204"> +8.6.18 strip dot</a></h3><P CLASS="para"> +This global option determines whether to remove the trailing dot from Unix filenames that are formatted with a dot at the end. The default value for this option is <CODE CLASS="literal"> +no</code>. You can override it per share as follows:</p><PRE CLASS="programlisting"> +[global] + strip dot = yes</pre><P CLASS="para"> +This option is now considered obsolete; the user should use the <CODE CLASS="literal"> +mangled</code> <CODE CLASS="literal"> +map</code> option insead. </p></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_05.html" TITLE="8.5 Recently Added Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.5 Recently Added Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_07.html" TITLE="8.7 Backups with smbtar"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 8.7 Backups with smbtar" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +8.5 Recently Added Options</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +8.7 Backups with smbtar</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch08_07.html b/docs/htmldocs/using_samba/ch08_07.html new file mode 100644 index 0000000000..c0aa083702 --- /dev/null +++ b/docs/htmldocs/using_samba/ch08_07.html @@ -0,0 +1,143 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 8] 8.7 Backups with smbtar</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:36:02Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_06.html" TITLE="8.6 Miscellaneous Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.6 Miscellaneous Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch08_01.html" TITLE="8. Additional Samba Information "> +Chapter 8<br> +Additional Samba Information </a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch09_01.html" TITLE="9. Troubleshooting Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 9. Troubleshooting Samba" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch08-74829"> +8.7 Backups with smbtar</a></h2><P CLASS="para">Our final topic in this chapter is the <I CLASS="filename"> +smbtar</i> tool. One common problem with modem PCs is that floppies and even CD-ROMs are often too small to use for backups. However, buying one tape drive per machine would also be silly. Consequently, many sites don't back up their PCs at all. Instead, they reinstall them using floppy disks and CD-ROMs when they fail.</p><P CLASS="para"> +Thankfully, Samba provides us with another option: you can back up PCs' data using the <I CLASS="filename"> +smbtar</i> tool. This can be done on a regular basis if you keep user data on your Samba system, or only occasionally, to save the local applications and configuration files and thus make repairs and reinstallations quicker.</p><P CLASS="para"> +To back up PCs from a Unix server, you need to do three things:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch08-pgfId-961555"> +</a>Ensure that File and Printer Sharing is installed on the PC and is bound to the TCP/IP protocol.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch08-pgfId-961564"> +</a>Explicitly share a disk on the PC so it can be read from the server.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch08-pgfId-961567"> +</a>Set up the backup scripts on the server.</p></li></ol><P CLASS="para"> +We'll use Windows 95/98 to illustrate the first two steps. Go to the Networking icon in the Control Panel window, and check that File and Printer Sharing for Microsoft Networks is currently listed in the top window, as shown in <A CLASS="xref" HREF="ch08_07.html#ch08-18303"> +Figure 8.2</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch08-18303"> +Figure 8.2: The Networking window</a></h4><IMG CLASS="graphic" SRC="figs/sam.0802.gif" ALT="Figure 8.2"><P CLASS="para"> +If "File and printer sharing for Microsoft Networks" isn't installed, you can install it by clicking on the Add button on the Network panel. After pressing it, you will be asked what service to add. Select Service and move forward, and you will be asked for a vendor and a service to install. Finally, select "File and printer sharing for Microsoft Networks," and click on Done to install the service.</p><P CLASS="para"> +Once you've installed "File and printer sharing for Microsoft Networks," return to the Network panel and select the TCP/IP protocol that is tied to your Samba network adapter. Then, click on the Properties button and choose the Bindings tab at the top. You should see a dialog box similar to <A CLASS="xref" HREF="ch08_07.html#ch08-41042"> +Figure 8.3</a>. Here, you'll need to verify that the "File and Printer Sharing" checkbox is checked, giving it access to TCP/IP. At this point you can share disks with other machines on the net. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch08-41042"> +Figure 8.3: TCP/IP Bindings</a></h4><IMG CLASS="graphic" SRC="figs/sam.0803.gif" ALT="Figure 8.3"><P CLASS="para"> +The next step is to share the disk you want to back up with the tape server. Go to My Computer and select, for example, the My Documents directory. Then right-click on the icon and select its Properties. This should yield the dialog box in <A CLASS="xref" HREF="ch08_07.html#ch08-64918"> +Figure 8.4</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch08-64918"> +Figure 8.4: My Documents Properties</a></h4><IMG CLASS="graphic" SRC="figs/sam.0804.gif" ALT="Figure 8.4"><P CLASS="para"> +Select the Sharing tab and turn file sharing on. You now have the choice to share the disk as read-only, read-write (Full), or either, each with separate password. This is the Windows 95/98 version, so it provides only share-level security. In this example, we made it read/write and set a password, as shown in <A CLASS="xref" HREF="ch08_07.html#ch08-29192"> +Figure 8.5</a>. When you enter the password and click on OK, you'll be prompted to re-enter it. After that, you have finished the second step. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch08-29192"> +Figure 8.5: MyFiles Properties as shared</a></h4><IMG CLASS="graphic" SRC="figs/sam.0805.gif" ALT="Figure 8.5"><P CLASS="para"> +Finally, the last step is to set up a backup script on the tape server, using the <I CLASS="filename"> +smbtar</i> program. The simplest script might contain only a single line and would be something like the following:</p><PRE CLASS="programlisting"> +smbtar -s client -t /dev/rst0 -x "My Documents" -p <CODE CLASS="replaceable"><I>password</i></code></pre><P CLASS="para"> +This unconditionally backs up the <EM CLASS="emphasis"> +//client/My Documents</em> share to the device <I CLASS="filename"> +/dev/rst0</i>. Of course, this is excessively simple and quite insecure. What you will want to do will depend on your existing backup scheme. </p><P CLASS="para"> +However, to whet your appetite, here are some possibilities of what <I CLASS="filename"> +smbtar</i> can do:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch08-pgfId-961280"> +</a>Back up files incrementally using the DOS archive bit (the <CODE CLASS="literal"> +-i</code> option). This requires the client share to be accessed read-write so the bit can be cleared by <I CLASS="filename"> +smbtar</i></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch08-pgfId-961281"> +</a>Back up only files that have changed since a specified date (using the <CODE CLASS="literal"> +-N</code> <CODE CLASS="replaceable"> +<I> +filename </i></code>option)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch08-pgfId-961282"> +</a>Back up entire PC drives, by sharing all of C: or D:, for example, and backing that up</p></li></ul><P CLASS="para"> +Except for the first example, each of these can be done with the PC sharing set to read-only, reducing the security risk of having passwords in scripts and passing them on the command line. </p></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_06.html" TITLE="8.6 Miscellaneous Options"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.6 Miscellaneous Options" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="chapter" HREF="ch09_01.html" TITLE="9. Troubleshooting Samba"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 9. Troubleshooting Samba" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +8.6 Miscellaneous Options</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +9. Troubleshooting Samba</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch09_01.html b/docs/htmldocs/using_samba/ch09_01.html new file mode 100644 index 0000000000..8dc0e80bc5 --- /dev/null +++ b/docs/htmldocs/using_samba/ch09_01.html @@ -0,0 +1,397 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 9] Troubleshooting Samba</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:36:14Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_07.html" TITLE="8.7 Backups with smbtar"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.7 Backups with smbtar" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +Chapter 9</font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_02.html" TITLE="9.2 The Fault Tree"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 9.2 The Fault Tree" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div class="samplechapter"> +<H1 CLASS="chapter"> +<A CLASS="title" NAME="ch09-80975"> +9. Troubleshooting Samba</a></h1><DIV CLASS="htmltoc"> +<P> +<B> +Contents:</b><br> +<A CLASS="sect1" HREF="#ch09-36385" TITLE="9.1 The Tool Bag"> +The Tool Bag</a><br> +<A CLASS="sect1" HREF="ch09_02.html" TITLE="9.2 The Fault Tree"> +The Fault Tree</a><br> +<A CLASS="sect1" HREF="ch09_03.html" TITLE="9.3 Extra Resources"> +Extra Resources</a></p><P> +</p></div><P CLASS="para">Samba is extremely robust. Once you've got everything set up the way you want, you'll probably forget that it is running. When trouble occurs, it's typically during installation or when you're trying to add something new to the server. Fortunately, there are a wide variety of resources that you can use to diagnose these troubles. While we can't describe in detail the solution to every problem that you might encounter, you should be able to get a good start at a resolution by following the advice given in this chapter.</p><P CLASS="para"> +The first section of the chapter lists the tool bag, a collection of tools available for troubleshooting Samba; the second section is a detailed how-to, and the last section lists extra resources you may need to track down particularly stubborn problems.</p><DIV CLASS="sect1"> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="s1"></a> +<A CLASS="title" NAME="ch09-36385"> +9.1 The Tool Bag</a></h2><P CLASS="para">Sometimes Unix seems to be made up of a handful of applications and tools. There are tools to troubleshoot tools. And of course, there are several ways to accomplish the same task. When you are trying to solve a problem related to Samba, a good plan of attack is to check the following:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-944982"> +</a>Samba logs </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-944983"> +</a>Fault tree </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-944984"> +</a>Unix utilities </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-944985"> +</a>Samba test utilities </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-944986"> +</a>Documentation and FAQs </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-944987"> +</a>Searchable archives </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-944988"> +</a>Samba newsgroups</p></li></ol><P CLASS="para"> +Let's go over each of these one by one in the following sections.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-950956"> +9.1.1 Samba Logs</a></h3><P CLASS="para">Your first line of attack should always be to check the log files. The Samba log files can help diagnose the vast majority of the problems that beginning to intermediate Samba administrators are likely to face. Samba is quite flexible when it comes to logging. You can set up the server to log as little or as much as you want. Substitution variables that allow you to isolate individual logs for each machine, share, or combination thereof.</p><P CLASS="para"> +By default, logs are placed in <CODE CLASS="replaceable"> +<I> +samba_directory</i></code><EM CLASS="emphasis"> +/var/smbd.log</em> and <CODE CLASS="replaceable"> +<I> +samba_directory</i></code><EM CLASS="emphasis"> +/var/nmbd.log</em>, where <CODE CLASS="literal"> +samba_directory</code> is the location where Samba was installed (typically, <I CLASS="filename"> +/usr/local/samba</i>). As we mentioned in <a href=ch04_01.html><b>Chapter 4, <CITE CLASS="chapter">Disk Shares</cite></b></a>, you can override the location and name using the <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +file</code> configuration option in <I CLASS="filename"> +smb.conf</i>. This option accepts all of the substitution variables mentioned in <a href="ch02_01.html"><b>Chapter 2, <CITE CLASS="chapter">Installing Samba on a Unix System</cite></b></a>, so you could easily have the server keep a separate log for each connecting client by specifying the following in the <CODE CLASS="literal"> +[global]</code> section of <I CLASS="filename"> +smb.conf</i>:</p><PRE CLASS="programlisting"> +log file = %m.log</pre><P CLASS="para"> +Alternatively, you can specify a log directory to use with the <CODE CLASS="literal"> +-l</code> flag on the command line. For example:</p><PRE CLASS="programlisting"> +smbd -l /usr/local/var/samba</pre><P CLASS="para"> +Another useful trick is to have the server keep a log for each service (share) that is offered, especially if you suspect a particular share is causing trouble. Use the <CODE CLASS="literal"> +%S</code> variable to set this up in the <CODE CLASS="literal"> +[global]</code> section of the configuration file:</p><PRE CLASS="programlisting"> +log file = %S.log</pre><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-28969"> +9.1.1.1 Log levels</a></h4><P CLASS="para">The level of logging that Samba uses can be set in the <I CLASS="filename"> +smb.conf</i> file using the global <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> or <CODE CLASS="literal"> +debug</code> <CODE CLASS="literal"> +level</code> option; they are equivalent. The logging level is an integer which ranges from 0 (no logging), and increases the logging to voluminous by <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +3</code>. For example, let's assume that we are going to use a Windows client to browse a directory on a Samba server. For a small amount of log information, you can use <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +1</code>, which instructs Samba to show only cursory information, in this case only the connection itself: </p><PRE CLASS="programlisting"> +105/25/98 22:02:11 server (192.168.236.86) connect to service public as user pcguest (uid=503,gid=100) (pid 3377) </pre><P CLASS="para"> +Higher debug levels produce more detailed information. Usually you won't need any more than level 3; this is more than adequate for most Samba administrators. Levels above 3 are for use by the developers and dump enormous amounts of cryptic information.</p><P CLASS="para"> +Here is example output at levels 2 and 3 for the same operation. Don't worry if you don't understand the intricacies of an SMB connection; the point is simply to show you what types of information are shown at the different logging levels: </p><PRE CLASS="programlisting"> + /* Level 2 */ +Got SIGHUP +Processing section "[homes]" +Processing section "[public]" +Processing section "[temp]" +Allowed connection from 192.168.236.86 (192.168.236.86) to IPC$ +Allowed connection from 192.168.236.86 (192.168.236.86) to IPC/ + + +/* Level 3 */ +05/25/98 22:15:09 Transaction 63 of length 67 +switch message SMBtconX (pid 3377) +Allowed connection from 192.168.236.86 (192.168.236.86) to IPC$ +ACCEPTED: guest account and guest ok +found free connection number 105 +Connect path is /tmp +chdir to /tmp +chdir to / +05/25/98 22:15:09 server (192.168.236.86) connect to service IPC$ as user pcguest (uid=503,gid=100) (pid 3377) +05/25/98 22:15:09 tconX service=ipc$ user=pcguest cnum=105 +05/25/98 22:15:09 Transaction 64 of length 99 +switch message SMBtrans (pid 3377) +chdir to /tmp +trans <\PIPE\LANMAN> data=0 params=19 setup=0 +Got API command 0 of form <WrLeh> <B13BWz> (tdscnt=0,tpscnt=19,mdrcnt=4096,mprcnt=8) +Doing RNetShareEnum +RNetShareEnum gave 4 entries of 4 (1 4096 126 4096) +05/25/98 22:15:11 Transaction 65 of length 99 +switch message SMBtrans (pid 3377) +chdir to / +chdir to /tmp +trans <\PIPE\LANMAN> data=0 params=19 setup=0 +Got API command 0 of form <WrLeh> <B13BWz> (tdscnt=0,tpscnt=19,mdrcnt=4096,mprcnt=8) +Doing RNetShareEnum +RNetShareEnum gave 4 entries of 4 (1 4096 126 4096) +05/25/98 22:15:11 Transaction 66 of length 95 +switch message SMBtrans2 (pid 3377) +chdir to / +chdir to /pcdisk/public +call_trans2findfirst: dirtype = 0, maxentries = 6, close_after_first=0, close_if_end = 0 requires_resume_key = 0 level = 260, max_data_bytes = 2432 +unix_clean_name [./DESKTOP.INI] +unix_clean_name [desktop.ini] +unix_clean_name [./] +creating new dirptr 1 for path ./, expect_close = 1 +05/25/98 22:15:11 Transaction 67 of length 53 +switch message SMBgetatr (pid 3377) +chdir to / + +[...]</pre><P CLASS="para"> +We cut off this listing after the first packet because it runs on for many pages. However, you should be aware that log levels above 3 will quickly fill your disk with megabytes of excruciating detail concerning Samba internal operations. Log level 3 is extremely useful for following exactly what the server is doing, and most of the time it will be obvious where an error is occurring by glancing through the log file.</p><P CLASS="para"> +A word of warning: using a high log level (3 or above) will <EM CLASS="emphasis"> +seriously</em> slow down the Samba server. Remember that every log message generated causes a write to disk (an inherently slow operation) and log levels greater than 2 produce massive amounts of data. Essentially, you should turn on logging level 3 only when you're actively tracking a problem in the Samba server.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-946537">9.1.1.2 Activating and deactivating logging</a></h4><P CLASS="para">To turn logging on and off, set the appropriate level in the <CODE CLASS="literal"> +[global]</code> section of <I CLASS="filename"> +smb.conf</i>. Then, you can either restart Samba, or force the current daemon to reprocess the configuration file. You also can send the <EM CLASS="emphasis"> +smbd</em> process a SIGUSR1 signal to increase its log level by one while it's running, and a SIGUSR2 signal to decrease it by one:</p><PRE CLASS="programlisting"> +# Increase the logging level by 1 +kill -SIGUSR1 1234 + +# Decrease the logging level by 1 +kill -SIGUSR2 1234</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-34448"> +9.1.1.3 Logging by individual client machines or users</a></h4><P CLASS="para">An effective way to diagnose problems without hampering other users is to assign different log levels for different machines in <CODE CLASS="literal"> +[global]</code> section of the <I CLASS="filename"> +smb.conf</i> file. We can do this by building on the strategy we presented earlier:</p><PRE CLASS="programlisting"> +[global] + log level = 0 + log file = /usr/local/samba/lib/log.%m + include = /usr/local/samba/lib/smb.conf.%m</pre><P CLASS="para"> +These options instruct Samba to use unique configuration and log files for each client that connects. Now all you have to do is create an <I CLASS="filename"> +smb.conf</i> file for a specific client machine with a <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +3</code> entry in it (the others will pick up the default log level of 0) and use that log file to track down the problem.</p><P CLASS="para"> +Similarly, if only particular users are experiencing a problem, and it travels from machine to machine with them, you can isolate logging to a specific user by adding the following to the <I CLASS="filename"> +smb.conf</i> file:</p><PRE CLASS="programlisting"> +[global] + log level = 0 + log file = /usr/local/samba/lib/log.%u + include = /usr/local/samba/lib/smb.conf.%u</pre><P CLASS="para"> +Then you can create a unique <I CLASS="filename"> +smb.conf</i> file for each user (e.g., <I CLASS="filename"> +/usr/local/samba/lib/smb.conf.tim</i>) files containing the configuration option <CODE CLASS="literal"> +log</code> <CODE CLASS="literal"> +level</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +3</code> and only those users will get more detailed logging.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-945079">9.1.2 Samba Test Utilities</a></h3><P CLASS="para">A rigorous set of tests that exercise the major parts of Samba are described in various files in the <EM CLASS="emphasis"> +/docs/textdocs</em> directory of the Samba distribution kit, starting with <EM CLASS="emphasis"> +DIAGNOSIS.TXT.</em> The fault tree in this chapter is a more detailed version of the basic tests suggested by the Samba team, but covers only installation and reconfiguration diagnosis, like <EM CLASS="emphasis"> +DIAGNOSIS.TXT.</em> The other files in the <EM CLASS="emphasis"> +/docs</em> subdirectoryies address specific problems (such as Windows NT clients) and instruct you how to troubleshoot items not included in this book. If the fault tree doesn't suffice, be sure to look at <EM CLASS="emphasis"> +DIAGNOSIS.TXT</em> and its friends.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-945083"> +9.1.3 Unix Utilities</a></h3><P CLASS="para">Sometimes it's useful to use a tool outside of the Samba suite to examine what's happening inside the server. Unix has always been a "kitchen-sink" operating system. Two diagnostic tools can be of particular help in debugging Samba troubles: <EM CLASS="emphasis"> +trace</em> and <EM CLASS="emphasis"> +tcpdump</em>.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-945085"> +9.1.3.1 Using trace</a></h4><P CLASS="para"> +The <EM CLASS="emphasis"> +trace</em> command masquerades under several different names, depending on the operating system that you are using. On Linux it will be <EM CLASS="emphasis"> +strace</em>, on Solaris you'll use <EM CLASS="emphasis"> +truss</em>, and SGI will have <EM CLASS="emphasis"> +padc</em> and <EM CLASS="emphasis"> +par</em>. All have essentially the same function, which is to display each operating system function call as it is executed. This allows you to follow the execution of a program, such as the Samba server, and will often pinpoint the exact call that is causing the difficulty.</p><P CLASS="para"> +One problem that <EM CLASS="emphasis"> +trace</em> can highlight is the location of an incorrect version of a dynamically linked library. This can happen if you've downloaded prebuilt binaries of Samba. You'll typically see the offending call at the end of the <EM CLASS="emphasis"> +trace</em>, just before the program terminates.</p><P CLASS="para"> +A sample <CODE CLASS="literal"> +strace</code> output for the Linux operating system follows. This is a small section of a larger file created during the opening of a directory on the Samba server. Each line is a system-call name, and includes its parameters and the return value. If there was an error, the error value (e.g., <CODE CLASS="literal"> +ENOENT</code>) and its explanation are also shown. You can look up the parameter types and the errors that can occur in the appropriate <CODE CLASS="literal"> +trace</code> manual page for the operating system that you are using.</p><PRE CLASS="programlisting"> +chdir("/pcdisk/public") = 0 +stat("mini/desktop.ini", 0xbffff7ec) = -1 ENOENT (No such file or directory) +stat("mini", {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0 +stat("mini/desktop.ini", 0xbffff7ec) = -1 ENOENT (No such file or directory) +open("mini", O_RDONLY) = 5 +fcntl(5, F_SETFD, FD_CLOEXEC) = 0 +fstat(5, {st_mode=S_IFDIR|0755, st_size=1024, ...}) = 0 +lseek(5, 0, SEEK_CUR) = 0 +SYS_141(0x5, 0xbfffdbbc, 0xedc, 0xbfffdbbc, 0x80ba708) = 196 +lseek(5, 0, SEEK_CUR) = 1024 +SYS_141(0x5, 0xbfffdbbc, 0xedc, 0xbfffdbbc, 0x80ba708) = 0 +close(5) = 0 +stat("mini/desktop.ini", 0xbffff86c) = -1 ENOENT (No such file or directory) +write(3, "\0\0\0#\377SMB\10\1\0\2\0\200\1\0"..., 39) = 39 +SYS_142(0xff, 0xbffffc3c, 0, 0, 0xbffffc08) = 1 +read(3, "\0\0\0?", 4) = 4 +read(3, "\377SMBu\0\0\0\0\0\0\0\0\0\0\0\0"..., 63) = 63 +time(NULL) = 896143871</pre><P CLASS="para"> +This example shows several <CODE CLASS="literal"> +stat</code> calls failing to find the files they were expecting. You don't have to be a expert to see that the file <EM CLASS="emphasis"> +desktop.ini</em> is missing from that directory. In fact, many difficult problems can be identified by looking for obvious, repeatable errors with <EM CLASS="emphasis"> +trace</em>. Often, you need not look farther than the last message before a crash.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-945114"> +9.1.3.2 Using tcpdump</a></h4><P CLASS="para"> +The <EM CLASS="emphasis"> +tcpdump</em> program, written by Van Jacobson, Craig Leres, and Steven McCanne, and extended by Andrew Tridgell, allows you to monitor network traffic in real time. A variety of output formats are available and you can filter the output to look at only a particular type of traffic. The <EM CLASS="emphasis"> +tcpdump</em> program lets you examine all conversations between client and server, including SMB and NMB broadcast messages. While its troubleshooting capabilities lie mainly at the OSI network layer, you can still use its output to get a general idea of what the server and client are attempting to accomplish.</p><P CLASS="para"> +A sample <EM CLASS="emphasis"> +tcpdump</em> log follows. In this instance, the client has requested a directory listing and the server has responded appropriately, giving the directory names <CODE CLASS="literal"> +homes</code>, <CODE CLASS="literal"> +public</code>, <CODE CLASS="literal"> +IPC$</code>, and <CODE CLASS="literal"> +temp</code> (we've added a few explanations on the right):</p><PRE CLASS="programlisting">$<CODE CLASS="userinput"><B> tcpdump -v -s 255 -i eth0 port not telnet</b></code> +SMB PACKET: SMBtrans (REQUEST) <CODE CLASS="replaceable"> +<I> +Request packet</i></code> +SMB Command = 0x25 <CODE CLASS="replaceable"> +<I> +Request was ls or dir</i></code>. + +[000] 01 00 00 10 .... + + +>>> NBT Packet <CODE CLASS="replaceable"> +<I> +Outer frame of SMB packe</i></code>t +NBT Session Packet +Flags=0x0 +Length=226 +[lines skipped] + +SMB PACKET: SMBtrans (REPLY) <CODE CLASS="replaceable"> +<I> +Beginning of a reply to request </i></code> +SMB Command = 0x25 <CODE CLASS="replaceable"> +<I> +Command was an ls or dir</i></code> +Error class = 0x0 +Error code = 0 <CODE CLASS="replaceable"> +<I> +No errors</i></code> +Flags1 = 0x80 +Flags2 = 0x1 +Tree ID = 105 +Proc ID = 6075 +UID = 100 +MID = 30337 +Word Count = 10 +TotParamCnt=8 +TotDataCnt=163 +Res1=0 +ParamCnt=8 +ParamOff=55 +Res2=0 +DataCnt=163 +DataOff=63 +Res3=0 +Lsetup=0 +Param Data: (8 bytes) +[000] 00 00 00 00 05 00 05 00 ........ + +Data Data: (135 bytes) <CODE CLASS="replaceable"> +<I> + Actual directory contents:</i></code> +[000] 68 6F 6D 65 73 00 00 00 00 00 00 00 00 00 00 00 homes... ........ +[010] 64 00 00 00 70 75 62 6C 69 63 00 00 00 00 00 00 d...publ ic...... +[020] 00 00 00 00 75 00 00 00 74 65 6D 70 00 00 00 00 ....u... temp.... +[030] 00 00 00 00 00 00 00 00 76 00 00 00 49 50 43 24 ........ v...IPC$ +[040] 00 00 00 00 00 00 00 00 00 00 03 00 77 00 00 00 ........ ....w... +[050] 64 6F 6E 68 61 6D 00 00 00 00 00 00 00 00 00 00 donham.. ........ +[060] 92 00 00 00 48 6F 6D 65 20 44 69 72 65 63 74 6F ....Home Directo +[070] 72 69 65 73 00 00 00 49 50 43 20 53 65 72 76 69 ries...I PC Servi +[080] 63 65 20 28 53 61 6D ce (Sam</pre><P CLASS="para"> +This is more of the same debugging session as with the +<i>trace</i> command; the listing of a directory. The options we used were <CODE CLASS="literal"> +-v</code> (verbose), <CODE CLASS="literal"> +-i</code> <CODE CLASS="literal"> +eth0</code> to tell <EM CLASS="emphasis"> +tcpdump</em> the interface to listen on (an Ethernet port), and <CODE CLASS="literal"> +-s</code> <CODE CLASS="literal"> +255</code> to tell it to save the first 255 bytes of each packet instead of the default: the first 68. The option <CODE CLASS="literal"> +port</code> <CODE CLASS="literal"> +not</code> <CODE CLASS="literal"> +telnet</code> is used to avoid screens of telnet traffic, since we were logged in to the server remotely. The <EM CLASS="emphasis"> +tcpdump</em> program actually has quite a number of options to filter just the traffic you want to look at. If you've used <EM CLASS="emphasis"> +snoop</em> or <EM CLASS="emphasis"> +etherdump</em>, they'll look vaguely familiar.</p><P CLASS="para"> +You can download the modified <EM CLASS="emphasis"> +tcpdump</em> from the Samba FTP server at <I CLASS="filename"> +<a href="ftp://samba.anu.edu.au/pub/samba/tcpdump-smb">ftp://samba.anu.edu.au/pub/samba/tcpdump-smb</i></a>. Other versions don't include support for the SMB protocol; if you don't see output such as that shown in the example, you'll need to<EM CLASS="emphasis"> +</em> use the SMB-enabled version.</p></div></div></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch08_07.html" TITLE="8.7 Backups with smbtar"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 8.7 Backups with smbtar" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_02.html" TITLE="9.2 The Fault Tree"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 9.2 The Fault Tree" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172">8.7 Backups with smbtar</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +9.2 The Fault Tree</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch09_02.html b/docs/htmldocs/using_samba/ch09_02.html new file mode 100644 index 0000000000..e4c740fe27 --- /dev/null +++ b/docs/htmldocs/using_samba/ch09_02.html @@ -0,0 +1,1772 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 9] 9.2 The Fault Tree</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:36:27Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_01.html" TITLE="9.1 The Tool Bag"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 9.1 The Tool Bag" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch09_01.html" TITLE="9. Troubleshooting Samba"> +Chapter 9<br> +Troubleshooting Samba</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_03.html" TITLE="9.3 Extra Resources"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 9.3 Extra Resources" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch09-29538"> +9.2 The Fault Tree</a></h2><P CLASS="para">The fault tree is for diagnosing and fixing problems that occur when you're installing and reconfiguring Samba. It's an expanded form of a trouble and diagnostic document that is part of the Samba distribution.</p><P CLASS="para">Before you set out to troubleshoot any part of the Samba suite, you should know the following information:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945178"> +</a> Your client IP address (we use 192.168.236.10) </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945179"> +</a> Your server IP address (we use 192.168.236.86) </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945180"> +</a> The netmask for your network (typically 255.255.255.0)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945181"> +</a> Whether the machines are all on the same subnet (ours are)</p></li></ul><P CLASS="para"> +For clarity, we've renamed the server in the following examples to <EM CLASS="emphasis"> +server.example.com</em>, and the client machine to <EM CLASS="emphasis"> +client.example.com</em>.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-945183"> +9.2.1 How to use the fault tree</a></h3><P CLASS="para">Start the tests here, without skipping forward; it won't take long (about five minutes) and may actually save you time backtracking. Whenever a test succeeds, you will be given a section name and page number to which you can safely skip.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-953555"> +9.2.2 Troubleshooting Low-level IP </a></h3><P CLASS="para">The first series of tests is that of the low-level services that Samba needs in order to run. The tests in this section will verify that:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945191"> +</a> The IP software works</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945192"> +</a> The Ethernet hardware works</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945193"> +</a> Basic name service is in place</p></li></ul><P CLASS="para"> +Subsequent sections will add TCP software, the Samba daemons <EM CLASS="emphasis"> +smbd</em> and <EM CLASS="emphasis"> +nmbd</em>, host-based access control, authentication and per-user access control, file services, and browsing. The tests are described in considerable detail in order to make them understandable by both technically oriented end users and experienced systems and network administrators.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-945197"> +9.2.2.1 Testing the networking software with ping </a></h4><P CLASS="para"> +The first command to enter on both the server and the client is <CODE CLASS="literal"> +ping 127.0.0.1</code>. This is the <I CLASS="firstterm"> +loopback</i> <EM CLASS="emphasis"> +address</em> and testing it will indicate whether any networking support is functioning at all. On Unix, you can use <CODE CLASS="literal"> +ping</code> <CODE CLASS="literal"> +127.0.0.1</code> with the statistics option and interrupt it after a few lines. On Sun workstations, the command is typically <CODE CLASS="literal"> +/usr/etc/ping</code> <CODE CLASS="literal"> +-s</code> <CODE CLASS="literal"> +127.0.0.1</code>; on Linux, just <CODE CLASS="literal"> +ping</code> <CODE CLASS="literal"> +127.0.0.1</code>. On Windows clients, run <CODE CLASS="literal"> +ping</code> <CODE CLASS="literal"> +127.0.0.1</code> in an MS-DOS window and it will stop by itself after four lines.</p><P CLASS="para"> +Here is an example on a Linux server:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server%</code> ping 127.0.0.1 </b> +</pre><PRE CLASS="programlisting"> +PING localhost: 56 data bytes 64 bytes from localhost (127.0.0.1): +icmp-seq=0. time=1. ms 64 bytes from localhost (127.0.0.1): +icmp-seq=1. time=0. ms 64 bytes from localhost (127.0.0.1): +icmp-seq=2. time=1. ms ^C +----127.0.0.1 PING Statistics---- +3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) +min/avg/max = 0/0/1 </pre><P CLASS="para"> +If you get "ping: no answer from..." or "100% packet loss," you have no IP networking at all installed on the machine. The address <CODE CLASS="literal"> +127.0.0.1</code> is the internal loopback address and doesn't depend on the computer being physically connected to a network. If this test fails, you have a serious local problem. TCP/IP either isn't installed or is seriously misconfigured. See your operating system documentation if it is a Unix server. If it is a Windows client, follow the instructions in <a href="ch03_01.html"><b>Chapter 3, <CITE CLASS="chapter">Configuring Windows Clients</cite></b></a>, to install networking support.</p><P CLASS="para"> +If <EM CLASS="emphasis"> +you're</em> the network manager, some good references are Craig Hunt's <EM CLASS="emphasis"> +TCP/IP Network Administration</em>, Chapter 11, and Craig Hunt & Robert Bruce Thompson's new book, <EM CLASS="emphasis"> +Windows NT TCP/IP Network Administration, </em>both published by O'Reilly.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-20350"> +9.2.2.2 Testing local name services with ping </a></h4><P CLASS="para">Next, try to ping <CODE CLASS="literal"> +localhost</code> on the Samba server. <CODE CLASS="literal"> +localhost</code> is the conventional hostname for the 127.0.0.1 loopback, and it should resolve to that address. After typing <CODE CLASS="literal"> +ping</code> <CODE CLASS="literal"> +localhost</code>, you should see output similar to the following:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server%</code> ping localhost </b> +</pre><PRE CLASS="programlisting"> +PING localhost: 56 data bytes 64 bytes from localhost (127.0.0.1): +icmp-seq=0. time=0. ms 64 bytes from localhost (127.0.0.1): +icmp-seq=1. time=0. ms 64 bytes from localhost (127.0.0.1): +icmp-seq=2. time=0. ms ^C</pre><P CLASS="para"> +If this succeeds, try the same test on the client. Otherwise:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-951025"> +</a>If you get "unknown host: localhost," there is a problem resolving the host name localhost into a valid IP address. (This may be as simple as a missing entry in a local <EM CLASS="emphasis"> +hosts</em> file.) From here, skip down to the section <A CLASS="xref" HREF="ch09_02.html#ch09-23768"> +Section 9.2.8, Troubleshooting Name Services</a>. </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946775"> +</a>If you get "ping: no answer," or "100% packet loss," but pinging 127.0.0.1 worked, then name services is resolving to an address, but it isn't the correct one. Check the file or database (typically <I CLASS="filename"> +/etc/hosts</i> on a Unix system) that the name service is using to resolve addresses to ensure that the entry is corrected.</p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-946776"> +9.2.2.3 Testing the networking hardware with ping </a></h4><P CLASS="para">Next, ping the server's network IP address from itself. This should get you exactly the same results as pinging 127.0.0.1:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server%</code> ping 192.168.236.86 </b> +</pre><PRE CLASS="programlisting"> +PING 192.168.236.86: 56 data bytes 64 bytes from 192.168.236.86 (192.168.236.86): +icmp-seq=0. time=1. ms 64 bytes from 192.168.236.86 (192.168.236.86): +icmp-seq=1. time=0. ms 64 bytes from 192.168.236.86 (192.168.236.86): +icmp-seq=2. time=1. ms ^C +----192.168.236.86 PING Statistics---- +3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) +min/avg/max = 0/0/1</pre><P CLASS="para"> +If this works on the server, repeat it for the client. Otherwise:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945243"> +</a>If <CODE CLASS="literal"> +ping</code> <CODE CLASS="replaceable"> +<I> +network_ip</i></code> fails on either the server or client, but ping 127.0.0.1 works on that machine, you have a TCP/IP problem that is specific to the Ethernet network interface card on the computer. Check with the documentation for the network card or the host operating system to determine how to correctly configure it. However, be aware that on some operating systems, the <EM CLASS="emphasis"> +ping</em> command appears to work even if the network is disconnected, so this test doesn't always diagnose all hardware problems. </p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-84079"> +9.2.2.4 Testing connections with ping</a></h4><P CLASS="para">Now, ping the server by name (instead of its IP address), once from the server and once from the client. This is the general test for working network hardware:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server%</code> ping server </b> +</pre><PRE CLASS="programlisting"> +PING server.example.com: 56 data bytes 64 bytes from server.example.com (192.168.236.86): +icmp-seq=0. time=1. ms 64 bytes from server.example.com (192.168.236.86): +icmp-seq=1. time=0. ms 64 bytes from server.example.com (192.168.236.86): +icmp-seq=2. time=1. ms ^C +----server.example.com PING Statistics---- +3 packets transmitted, 3 packets received, 0% packet loss round-trip (ms) +min/avg/max = 0/0/1</pre><P CLASS="para"> +On Microsoft Windows, a ping of the server would look like <A CLASS="xref" HREF="ch09_02.html#ch09-91668"> +Figure 9.1</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch09-91668"> +Figure 9.1: Pinging the Samba server from a Windows client</a></h4><IMG CLASS="graphic" SRC="figs/sam.0901.gif" ALT="Figure 9.1"><P CLASS="para"> +If successful, this test tells us five things:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946836"> +</a>The hostname (e.g., "server") is being found by your local nameserver.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946837"> +</a>The hostname has been expanded to the full name (e.g., <A CLASS="email" HREF="mailto:server.example.com" TITLE="server.example.com"> +server.example.com</a>).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945264"> +</a>Its address is being returned (192.168.236.86).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945265"> +</a>The client has sent the Samba server four 56-byte UDP/IP packets.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945266"> +</a>The Samba server has replied to all four packets.</p></li></ol><P CLASS="para"> +If this test isn't successful, there can be one of several things wrong with the network:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945267"> +</a>First, if you get "ping: no answer," or "100% packet loss," you're not connecting to the network, the other machine isn't connecting, or one of the addresses is incorrect. Check the addresses that the <CODE CLASS="literal"> +ping</code> command reports on each machine, and ensure that they match the ones you set up initially.</p><P CLASS="para"> +If not, there is at least one mismatched address between the two machines. Try entering the command <CODE CLASS="literal"> +arp</code> <CODE CLASS="literal"> +-a</code>, and see if there is an entry for the other machine. The <CODE CLASS="literal"> +arp</code> command stands for the Address Resolution Protocol. The <CODE CLASS="literal"> +arp</code> <CODE CLASS="literal"> +-a</code> command lists all the addresses known on the local machine. Here are some things to try:</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946854"> +</a>If you receive a message like "192.168.236.86 at (incomplete)," the Ethernet address of 192.168.236.86 is unknown. This indicates a complete lack of connectivity, and you're likely having a problem at the very bottom of the TCP/IP Network Administration protocol stack, at the Ethernet-interface layer. This is discussed in Chapters 5 and 6 of <CITE CLASS="citetitle"> +TCP/IP Network Administration </cite>(O'Reilly).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945274"> +</a>If you receive a response similar to "server (192.168.236.86) at 8:0:20:12:7c:94," then the server has been reached at some time, or another machine is answering on its behalf. However, this means that <EM CLASS="emphasis"> +ping</em> should have worked: you may have an intermittent networking or ARP problem.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945275"> +</a>If the IP address from ARP doesn't match the addresses you expected, investigate and correct the addresses manually.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945284"> +</a>If each machine can ping itself but not another, something is wrong on the network between them.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945287"> +</a>If you get "ping: network unreachable" or "ICMP Host Unreachable," then you're not receiving an answer and there is likely more than one network involved.</p><P CLASS="para"> +In principle, you shouldn't try to troubleshoot SMB clients and servers on different networks. Try to test a server and client on the same network. The three tests that follow assume you might be testing between two networks:</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-951057"> +</a>First, perform the tests for no answer described earlier in this section. If this doesn't identify the problem, the remaining possibilities are the following: an address is wrong, your netmask is wrong, a network is down, or just possibly you've been stopped by a firewall.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-951077"> +</a>Check both the address and the netmasks on source and destination machines to see if something is obviously wrong. Assuming both machines really are on the same network, they both should have the same netmasks and <EM CLASS="emphasis"> +ping</em> should report the correct addresses. If the addresses are wrong, you'll need to correct them. If they're right, the programs may be confused by an incorrect netmask. See <A CLASS="xref" HREF="ch09_02.html#ch09-21203"> +Section 9.2.9.1, Netmasks</a>, later in this chapter.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945300"> +</a>If the commands are still reporting that the network is unreachable and neither of the previous two conditions is in error, one network really may be unreachable from the other. This, too, is a network manager issue.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946936"> +</a>If you get "ICMP Administratively Prohibited," you've struck a firewall of some sort or a misconfigured router. You will need to speak to your network security officer.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946938"> +</a>If you get "ICMP Host redirect," and <EM CLASS="emphasis"> +ping</em> reports packets getting through, this is generally harmless: you're simply being rerouted over the network.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945305"> +</a>If you get a host redirect and no <EM CLASS="emphasis"> +ping</em> responses, you are being redirected, but no one is responding. Treat this just like the "Network unreachable" response and check your addresses and netmasks.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945308"> +</a>If you get "ICMP Host Unreachable from gateway <EM CLASS="emphasis"> +gateway_name</em>," ping packets are being routed to another network, but the other machine isn't responding and the router is reporting the problem on its behalf. Again, treat this like a "Network unreachable" response and start checking addresses and netmasks.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946955"> +</a>If you get "ping: unknown host <EM CLASS="emphasis"> +hostname</em>," your machine's name is not known. This tends to indicate a name-service problem, which didn't affect <CODE CLASS="literal"> +localhost</code>. Have a look at <A CLASS="xref" HREF="ch09_02.html#ch09-23768"> +Section 9.2.8</a>, later in this chapter.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946959"> +</a>If you get a partial success, with some pings failing but others succeeding, you either have an intermittent problem between the machines or an overloaded network. Ping for longer, and see if more than about 3 percent of the packets fail. If so, check it with your network manager: a problem may just be starting. However, if only a few fail, or if you happen to know some massive network program is running, don't worry unduly. Ping's ICMP (and UDP) are designed to drop occasional packets.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945319"> +</a>If you get a response like "smtsvr.antares.net is alive" when you actually pinged <EM CLASS="emphasis"> +client.example.com</em>, you're either using someone else's address or the machine has multiple names and addresses. If the address is wrong, name service is clearly the culprit; you'll need to change the address in the name service database to refer to the right machine. This is discussed in <A CLASS="xref" HREF="ch09_02.html#ch09-23768"> +Section 9.2.8</a>, later in this chapter.</p><P CLASS="para"> +Server machines are often <EM CLASS="emphasis"> +multihomed</em> : connected to more than one network, with different names on each net. If you are getting a response from an unexpected name on a multihomed server, look at the address and see if it's on your network (see the section <A CLASS="xref" HREF="ch09_02.html#ch09-21203"> +Section 9.2.9.1</a>, later in this chapter). If so, you should use that address, rather than one on a different network, for both performance and reliability reasons.</p><P CLASS="para"> +Servers may also have multiple names for a single Ethernet address, especially if they are web servers. This is harmless, if otherwise startling. You probably will want to use the official (and permanent) name, rather than an alias which may change.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945333"> +</a>If everything works, but the IP address reported is 127.0.0.1, you have a name service error. This typically occurs when a operating system installation program generates an <I CLASS="filename"> +/etc/hosts</i> line similar to <CODE CLASS="literal"> +127.0.0.1</code> <CODE CLASS="literal"> +localhost</code> <EM CLASS="emphasis"> +hostnamedomainname</em>. The localhost line should say <CODE CLASS="literal"> +127.0.0.1</code> <CODE CLASS="literal"> +localhost</code> or <CODE CLASS="literal"> +127.0.0.1</code> <CODE CLASS="literal"> +localhost</code> <CODE CLASS="literal"> +loghost</code>. Correct it, lest it cause failures to negotiate who is the master browse list holder and who is the master browser. It can, also cause (ambiguous) errors in later tests.</p></li></ul><P CLASS="para"> +If this worked from the server, repeat it from the client.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-945336">9.2.3 Troubleshooting TCP</a></h3><P CLASS="para">Now that you've tested IP, UDP, and a name service with <EM CLASS="emphasis"> +ping</em>, it's time to test TCP. <EM CLASS="emphasis"> +ping</em> and browsing use ICMP and UDP; file and print services (shares) use TCP. Both depend on IP as a lower layer and all four depend on name services. Testing TCP is most conveniently done using the FTP (file transfer protocol) program.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-78512"> +9.2.3.1 Testing TCP with FTP </a></h4><P CLASS="para"> +Try connecting via FTP, once from the server to itself, and once from the client to the server: </p><PRE CLASS="programlisting"> +server% <CODE CLASS="userinput"><B>ftp server</b></code> +Connected to server.example.com. +220 server.example.com FTP server (Version 6.2/OpenBSD/Linux-0.10) ready. + Name (server:davecb): +331 Password required for davecb. +Password: +230 User davecb logged in. + ftp><CODE CLASS="userinput"><B> quit </b></code> +221 Goodbye. </pre><P CLASS="para"> +If this worked, skip to the section <A CLASS="xref" HREF="ch09_02.html#ch09-88968"> +Section 9.2.4, Troubleshooting Server Daemons</a>. Otherwise:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945357"> +</a>If you received the message "server: unknown host," then nameservice has failed. Go back to the corresponding <EM CLASS="emphasis"> +ping</em> step, <A CLASS="xref" HREF="ch09_02.html#ch09-20350"> +Section 9.2.2.2, Testing local name services with ping </a>, and rerun those tests to see why name lookup failed.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945362"> +</a>If you received "ftp: connect: Connection refused," the machine isn't running an FTP daemon. This is mildly unusual on Unix servers. Optionally, you might try this test by connecting to the machine using telnet instead of FTP; the messages are very similar and telnet uses TCP as well.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945364"> +</a>If there was a long pause, then "ftp: connect: Connection timed out," the machine isn't reachable. Return to the section <A CLASS="xref" HREF="ch09_02.html#ch09-84079"> +Section 9.2.2.4, Testing connections with ping</a>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945369"> +</a>If you received "530 Logon Incorrect," you connected successfully, but you've just found a different problem. You likely provided an incorrect username or password. Try again, making sure you use your username from the Unix server and type your password correctly.</p></li></ul></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-88968"> +9.2.4 Troubleshooting Server Daemons</a></h3><P CLASS="para">Once you've confirmed that TCP networking is working properly, the next step is to make sure the daemons are running on the server. This takes three separate tests because no single one of the following will decisively prove that they're working correctly.</p><P CLASS="para"> +To be sure they're running, you need to find out if:</p><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945374"> +</a>The daemon has started</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945375"> +</a>The daemons are registered or bound to a TCP/IP port by the operating system</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945376"> +</a>They're actually paying attention</p></li></ol><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-947020"> +9.2.4.1 Before you start</a></h4><P CLASS="para"> +First, check the logs. If you've started the daemons, the message "smbd version <EM CLASS="emphasis"> +some_number</em> started" should appear. If it doesn't, you will need to restart the Samba daemons.</p><P CLASS="para"> +If the daemon reports that it has indeed started, look out for "bind failed on port 139 socket_addr=0 (Address already in use)". This means another daemon has been started on port 139 (<EM CLASS="emphasis">smbd</em>). Also, <EM CLASS="emphasis"> +nmbd</em> will report a similar failure if it cannot bind to port 137. Either you've started them twice, or the <EM CLASS="emphasis"> +inetd</em> server has tried to provide a daemon for you. If it's the latter, we'll diagnose that in a moment.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-49239"> +9.2.4.2 Looking for daemon processes with ps</a></h4><P CLASS="para"> +Next, you need to see if the daemons have been started. Use the <CODE CLASS="literal"> +ps</code> command on the server with the <CODE CLASS="literal"> +long</code> option for your machine type (commonly <CODE CLASS="literal"> +ps</code> <CODE CLASS="literal"> +ax</code> or <CODE CLASS="literal"> +ps</code> <CODE CLASS="literal"> +-ef</code>), and see if you have either <EM CLASS="emphasis"> +smbd</em> and <EM CLASS="emphasis"> +nmbd</em> already running. This often looks like the following:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server%</code> ps ax</b> +</pre><PRE CLASS="programlisting"> + PID TTY STAT TIME COMMAND + 1 ? S 0:03 init [2] + 2 ? SW 0:00 (kflushd) +<EM CLASS="emphasis"> +(...many lines of processes...)</em> + 234 ? S 0:14 nmbd -D3 + 237 ? S 0:11 smbd -D3 +<EM CLASS="emphasis"> +(...more lines, possibly including more smbd lines...) </em></pre><P CLASS="para"> +This example illustrates that <EM CLASS="emphasis"> +smbd</em> and <EM CLASS="emphasis"> +nmbd</em> have already started as stand-alone daemons (the <CODE CLASS="literal"> +-D</code> option) at log level 3.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-945392"> +9.2.4.3 Looking for daemons bound to ports</a></h4><P CLASS="para"> +Next, the daemons have to be registered with the operating system so they can get access to TCP/IP ports. The <CODE CLASS="literal"> +netstat</code> command will tell you if this has been done. Run the command <CODE CLASS="literal"> +netstat</code> <CODE CLASS="literal"> +-a</code> on the server, and look for lines mentioning <CODE CLASS="literal"> +netbios</code>, <CODE CLASS="literal"> +137</code> or <CODE CLASS="literal"> +139</code>:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server%</code> netstat -a </b> +</pre><PRE CLASS="programlisting"> +Active Internet connections (including servers) +Proto Recv-Q Send-Q Local Address Foreign Address (state) +udp 0 0 *.netbios- *.* +tcp 0 0 *.netbios- *.* LISTEN +tcp 8370 8760 server.netbios- client.1439 +ESTABLISHED </pre><P CLASS="para"> +or:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server%</code> netstat -a </b> +</pre><PRE CLASS="programlisting"> +Active Internet connections (including servers) +Proto Recv-Q Send-Q Local Address Foreign Address (state) +udp 0 0 *.137 *.* +tcp 0 0 *.139 *.* LISTEN +tcp 8370 8760 server.139 client.1439 ESTABLISHED </pre><P CLASS="para"> +Among many similar lines, there should be at least one UDP line for <CODE CLASS="literal"> +*.netbios-</code> or <CODE CLASS="literal"> +*.137</code>. This indicates that the <EM CLASS="emphasis"> +nmbd</em> server is registered and (we hope) is waiting to answer requests. There should also be at least one TCP line mentioning <CODE CLASS="literal"> +*.netbios-</code> or <CODE CLASS="literal"> +*.139</code>, and it will probably be in the LISTENING state. This means that <EM CLASS="emphasis"> +smbd</em> is up and listening for connections.</p><P CLASS="para"> +There may be other TCP lines indicating connections from <EM CLASS="emphasis"> +smbd</em> to clients, one for each client. These are usually in the ESTABLISHED state. If there are <EM CLASS="emphasis"> +smbd</em> lines in the ESTABLISHED state, <EM CLASS="emphasis"> +smbd</em> is definitely running. If there is only one line in the LISTENING state, we're not sure yet. If both of the lines is missing, a daemon has not succeeded in starting, so it's time to check the logs and then go back to <a href="ch02_01.html"><b>Chapter 2</b></a>.</p><P CLASS="para"> +If there is a line for each client, it may be coming either from a Samba daemon or from the master IP daemon, <EM CLASS="emphasis"> +inetd</em>. It's quite possible that your <EM CLASS="emphasis"> +inetd</em> startup file contains lines that start Samba daemons without your realizing it; for instance, the lines may have been placed there if you installed Samba as part of a Linux distribution. The daemons started by <EM CLASS="emphasis"> +inetd</em> prevent ours from running. This problem typically produces log messages such as "bind failed on port 139 socket_addr=0 (Address already in use)."</p><P CLASS="para"> +Check your <I CLASS="filename"> +/etc/inetd.conf</i> ; unless you're intentionally starting the daemons from there, there <EM CLASS="emphasis"> +must not</em> be any <CODE CLASS="literal"> +netbios-ns</code> (udp port 137) or <CODE CLASS="literal"> +netbios-ssn</code> (tcp port 139) servers mentioned there. <EM CLASS="emphasis"> +inetd</em> is a daemon that provides numerous services, controlled by entries in <EM CLASS="emphasis"> +/etc/inetd.conf</em>. If your system is providing an SMB daemon via <EM CLASS="emphasis"> +inetd</em>, there will be lines like the following in the file:</p><PRE CLASS="programlisting"> +netbios-ssn stream tcp nowait root /usr/local/samba/bin/smbd smbd +netbios-ns dgram udp wait root /usr/local/samba/bin/nmbd nmbd</pre></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-945425"> +9.2.4.4 Checking smbd with telnet</a></h4><P CLASS="para"> +Ironically, the easiest way to test that the <EM CLASS="emphasis"> +smbd</em> server is actually working is to send it a meaningless message and see if it rejects it. Try something like the following:</p><PRE CLASS="programlisting"><CODE CLASS="userinput"><B>echo hello | telnet localhost 139</b></code></pre><P CLASS="para"> +This sends an erroneous but harmless message to <EM CLASS="emphasis"> +smbd</em>. The <CODE CLASS="literal"> +hello</code> message is important. Don't try telneting to the port and typing just anything; you'll probably just hang your process. <CODE CLASS="literal"> +hello</code>, however, is generally a harmless message.</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server%</code> echo "hello" | telnet localhost 139 </b> +</pre><PRE CLASS="programlisting"> +Trying +Trying 192.168.236.86 ... +Connected to localhost. Escape character is '^]'. +Connection closed by foreign host. </pre><P CLASS="para"> +If you get a "Connected" message followed by a "Connection closed" message, the test was a success. You have an <EM CLASS="emphasis"> +smbd</em> daemon listening on the port and rejecting improper connection messages. On the other hand, if you get "telnet: connect: Connection refused," there is probably no daemon present. Check the logs and go back to <a href="ch01_01.html"><b>Chapter 2</b></a>.</p><P CLASS="para"> +Regrettably, there isn't an easy test for <EM CLASS="emphasis"> +nmbd</em>. If the <CODE CLASS="literal"> +telnet</code> test and the <CODE CLASS="literal"> +netstat</code> test both say that there is an <EM CLASS="emphasis"> +smbd</em> running, there is a good chance that <CODE CLASS="literal"> +netstat</code> will also be correct about <EM CLASS="emphasis"> +nmbd</em> running.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-67494"> +9.2.4.5 Testing daemons with testparm</a></h4><P CLASS="para">Once you know there's a daemon, you should always run <CODE CLASS="literal"> +testparm</code>, in hopes of getting:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server%</code> testparm </b> +</pre><PRE CLASS="programlisting"> +Load smb config files from /opt/samba/lib/smb.conf +Processing section "[homes]" +Processing section "[printers]" ... +Processing section "[tmp]" +Loaded services file OK. ... </pre><P CLASS="para"> +The <CODE CLASS="literal"> +testparm</code> program normally reports processing a series of sections, and responds with "Loaded services file OK" if it succeeds. If not, it will report one or more of the following messages, which will also appear in the logs as noted:</p><DL CLASS="variablelist"> +<DT CLASS="term"> +<EM CLASS="emphasis"> +"Allow/Deny connection from account (n) to service"</em></dt><DD CLASS="listitem"> +<P CLASS="para"> +A <EM CLASS="emphasis"> +testparm</em>-only message produced if you have valid/invalid user options set in your <EM CLASS="emphasis"> +smb.conf</em>. You will want to make sure that you are on the valid user list, and that root, bin, etc., are on the invalid user list. If you don't, you will not be able to connect, or folks who shouldn't <EM CLASS="emphasis"> +will</em> be able to.</p></dd><DT CLASS="term"> +<EM CLASS="emphasis"> +"Warning: You have some share names that are longer than eight chars"</em></dt><DD CLASS="listitem"> +<P CLASS="para"> +For anyone using Windows for Workgroups and older clients. They will fail to connect to shares with long names, producing an overflow message that sounds confusingly like a memory overflow.</p></dd><DT CLASS="term"> +"Warning: [name] service MUST be printable!"</dt><DD CLASS="listitem"> +<P CLASS="para"> +A printer share lacks a <CODE CLASS="literal"> +printable</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> option.</p></dd><DT CLASS="term"> +"No path in service name using [name]"</dt><DD CLASS="listitem"> +<P CLASS="para"> +A file share doesn't know which directory to provide to the user, or a print share doesn't know which directory to use for spooling. If no path is specified, the service will try to run with a path of <EM CLASS="emphasis"> +/tmp</em>, which may not be what you want.</p></dd><DT CLASS="term"> +"Note: Servicename is flagged unavailable"</dt><DD CLASS="listitem"> +<P CLASS="para"> +Just a reminder that you have used the <CODE CLASS="literal"> +available</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +no</code> option in a share.</p></dd><DT CLASS="term"> +"Can't find include file [name]" </dt><DD CLASS="listitem"> +<P CLASS="para"> +A configuration file referred to by an <CODE CLASS="literal"> +include</code> option did not exist. If you were including the file unconditionally, this is an error and probably a serious one: the share will not have the configuration you intended. If you were including it based one of the <CODE CLASS="literal"> +%</code> variables, such as <CODE CLASS="literal"> +%a</code> (architecture), you will need to decide if, for example, a missing Windows for Workgroups configuration file is a problem. It often isn't.</p></dd><DT CLASS="term"> +"Can't copy service name, unable to copy to itself"</dt><DD CLASS="listitem"> +<P CLASS="para"> +You tried to copy a <I CLASS="filename"> +smb.conf</i> section into itself.</p></dd><DT CLASS="term"> +"Unable to copy service - source not found: [name]"</dt><DD CLASS="listitem"> +<P CLASS="para"> +Indicates a missing or misspelled section in a <CODE CLASS="literal"> +copy</code> <CODE CLASS="literal"> +=</code> option.</p></dd><DT CLASS="term"> +"Ignoring unknown parameter name" </dt><DD CLASS="listitem"> +<P CLASS="para"> +Typically indicates an obsolete, misspelled or unsupported option.</p></dd><DT CLASS="term"> +"Global parameter name found in service section" </dt><DD CLASS="listitem"> +<P CLASS="para"> +Indicates a global-only parameter has been used in an individual share. Samba will ignore the parameter.</p></dd></dl><P CLASS="para"> +After the <CODE CLASS="literal"> +testparm</code> test, repeat it with (exactly) three parameters: the name of your <I CLASS="filename"> +smb.conf</i> file, the name of your client, and its IP address:</p><PRE CLASS="programlisting">testparm <CODE CLASS="replaceable"><I>samba_directory</i></code>/lib/smb.conf client 192.168.236.10</pre><P CLASS="para"> +This will run one more test that checks the host name and address against <CODE CLASS="literal"> +host</code> <CODE CLASS="literal"> +allow</code> and <CODE CLASS="literal"> +host</code> <CODE CLASS="literal"> +deny</code> options and may produce the "Allow/Deny connection from account account_name" to service message for the client machine. This message indicates you have valid/invalid host options in your <I CLASS="filename"> +smb.conf</i>, and they prohibit access from the client machine. Entering <CODE CLASS="literal"> +testparm</code> <CODE CLASS="literal"> +/usr/local/lib/experimental.conf</code> is also an effective way to test an experimental <I CLASS="filename"> +smb.conf</i> file before putting it into production.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-945478">9.2.5 Troubleshooting SMB Connections</a></h3><P CLASS="para">Now that you know the servers are up, you need to make sure that they're running properly. We start with the <I CLASS="filename"> +smb.conf</i> file in the <CODE CLASS="replaceable"> +<I> +samba_directory</i></code><I CLASS="filename"> +/lib</i> directory.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-67928"> +9.2.5.1 A minimal smb.conf file</a></h4><P CLASS="para"> +In the following tests, we assume you have a <CODE CLASS="literal"> +[temp]</code> share suitable for testing, plus at least one account. An <I CLASS="filename"> +smb.conf</i> file that includes just these is:</p><PRE CLASS="programlisting"> +[global] + workgroup = <CODE CLASS="replaceable"> +<I> +EXAMPLE</i></code> + security = user + browsable = yes + local master = yes +[homes] + guest ok = no + browseble = no +[temp] + path = /tmp + public = yes </pre><P CLASS="para"> +A word of warning: the <CODE CLASS="literal"> +public</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> option in the <CODE CLASS="literal"> +[temp]</code> share is just for testing. You probably don't want people without accounts to be able to store things on your Samba server, so you should comment it out when you're done.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-40595"> +9.2.5.2 Testing locally with smbclient</a></h4><P CLASS="para">The first test is to ensure the server can list its own services (shares). Run the command <CODE CLASS="literal"> +smbclient</code> with a <CODE CLASS="literal"> +-L</code> option of <CODE CLASS="literal"> +localhost</code> to connect to itself, and a <CODE CLASS="literal"> +-U</code> option of just <CODE CLASS="literal"> +%</code> to specify the guest user. You should see the following: </p><PRE CLASS="programlisting">server% <CODE CLASS="userinput"><B>smbclient -L localhost -U% </b></code> +Server time is Wed May 27 17:57:40 1998 Timezone is UTC-4.0 +Server=[localhost] +User=[davecb] +Workgroup=[EXAMPLE] +Domain=[EXAMPLE] + Sharename Type Comment + --------- ----- ---------- + temp Disk + IPC$ IPC IPC Service (Samba 1.9.18) + homes Disk Home directories +This machine does not have a browse list </pre><P CLASS="para"> +If you received this output, move on to the next test, <A CLASS="xref" HREF="ch09_02.html#ch09-77154"> +Section 9.2.5.3, Testing connections with smbclient</a>. On the other hand, if you receive an error, check the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-950443"> +</a>If you get "Get_hostbyname: unknown host localhost," either you've spelled its name wrong or there actually is a problem (which should have been seen back in <A CLASS="xref" HREF="ch09_02.html#ch09-20350"> +Section 9.2.2.2</a>) In the latter case, move on to "Troubleshooting Name Services."</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945526"> +</a>If you get "Connect error: Connection refused," the server machine was found, but it wasn't running an <EM CLASS="emphasis"> +nmbd</em> daemon. Skip back to <A CLASS="xref" HREF="ch09_02.html#ch09-88968"> +Section 9.2.4</a>, and retest the daemons.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945531"> +</a>If you get the message "Your server software is being unfriendly," the initial session request packet got a garbage response from the server. The server may have crashed or started improperly. The common causes of this can be discovered by scanning the logs for:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945533"> +</a>Invalid command-line parameters to <EM CLASS="emphasis"> +smbd</em>; see the <EM CLASS="emphasis"> +smbd</em> manual page.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945534"> +</a>A fatal problem with the <I CLASS="filename"> +smb.conf</i> file that prevents the startup of <EM CLASS="emphasis"> +smbd</em>. Always check your changes, as was done in the section <A CLASS="xref" HREF="ch09_02.html#ch09-67494"> +Section 9.2.4.5, Testing daemons with testparm</a>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947160"> +</a>The directories where Samba keeps its log and lock files are missing.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947165"> +</a>There is already a server on the port (139 for <EM CLASS="emphasis"> +smbd</em>, 137 for <EM CLASS="emphasis"> +nmbd </em>), preventing it from starting.</p></li></ul></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945543"> +</a>If you're using <EM CLASS="emphasis"> +inetd</em> instead of stand-alone daemons, check your <I CLASS="filename"> +/etc/inetd.conf</i> and <I CLASS="filename"> +/etc/services</i> entries against their manual pages for errors as well.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945544"> +</a>If you get a <CODE CLASS="literal"> +Password:</code> prompt, your guest account is not set up properly. The <CODE CLASS="literal"> +%U</code> option tells <EM CLASS="emphasis"> +smbclient</em> to do a "null login," which requires that the guest account be present but does not require it to have any privileges.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947172"> +</a>If you get the message "SMBtconX failed. ERRSRV - ERRaccess," you aren't permitted access to the server. This normally means you have a <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +hosts</code> option that doesn't include the server, or an <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +hosts</code> option that does. Recheck with the command <CODE CLASS="literal"> +testparm</code> <CODE CLASS="literal"> +smb.conf</code> <CODE CLASS="replaceable"> +<I> +your_hostname</i></code> <CODE CLASS="replaceable"> +<I> +your_ip_address</i></code> (see the section <A CLASS="xref" HREF="ch09_02.html#ch09-67494"> +Section 9.2.4.5</a>) and correct any unintended prohibitions. </p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-77154"> +9.2.5.3 Testing connections with smbclient</a></h4><P CLASS="para">Run the command <CODE CLASS="literal"> smbclient</code><CODE CLASS="literal">\\</code><CODE CLASS="replaceable"><I>server</i></code><CODE CLASS="literal">\temp</code>, which connects to your server's <I CLASS="filename"> +/tmp</i> share, to see if you can connect to a file service. You should get the following response:</p><PRE CLASS="programlisting"><B CLASS="emphasis.bold"><CODE CLASS="literal">server% </code>smbclient '\\server\temp' </b> +</pre><PRE CLASS="programlisting"> +Server time is Tue May 5 09:49:32 1998 Timezone is UTC-4.0 Password: +<B CLASS="emphasis.bold"><CODE CLASS="literal"> +smb:\></code> quit</b></pre><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947183"> +</a>If you get "Get_Hostbyname: Unknown host name," "Connect error: Connection refused," or "Your server software is being unfriendly," see the section <A CLASS="xref" HREF="ch09_02.html#ch09-40595"> +Section 9.2.5.2, Testing locally with smbclient</a> for the diagnoses.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947188"> +</a>If you get the message "servertemp: Not enough `\' characters in service," you likely didn't quote the address, so Unix stripped off backslashes. You can also write the command:</p></li></ul><PRE CLASS="programlisting"><CODE CLASS="literal">smbclient</code> <CODE CLASS="literal">\\\\</code><CODE CLASS="replaceable"><I>server</i></code><CODE CLASS="literal">\\temp</code> </pre><P CLASS="para"> +or: </p><PRE CLASS="programlisting">smbclient //<CODE CLASS="replaceable"><I>server</i></code>/temp </pre><P CLASS="para"> +Now, provide your Unix account password to the <CODE CLASS="literal"> +Password</code> prompt. If you then get an <CODE CLASS="literal"> +smb\></code> prompt, it worked. Enter <CODE CLASS="literal"> +quit</code>, and continue on to <A CLASS="xref" HREF="ch09_02.html#ch09-97081"> +Section 9.2.5.4, Testing connections with NET USE</a>. If you then get "SMBtconX failed. ERRSRV - ERRinvnetname," the problem can be any of the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947201"> +</a>A wrong share name: you may have spelled it wrong, it may be too long, it may be in mixed case, or it may not be available. Check that it's what you expect with testparm (see the section <A CLASS="xref" HREF="ch09_02.html#ch09-67494"> +Section 9.2.4.5</a>.)</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947205"> +</a><CODE CLASS="literal"> +security</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +share</code>, in which you may have to add <CODE CLASS="replaceable"> +<I> +-U your_account</i></code> to the <EM CLASS="emphasis"> +smbclient</em> command, or know the password of a Unix account named temp. </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945578"> +</a>An erroneous username.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945579"> +</a>An erroneous password.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945580"> +</a>An <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> or <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> option in your <EM CLASS="emphasis"> +smb.conf</em> file that doesn't allow your account to connect. Recheck with <CODE CLASS="literal"> +testparm</code> <CODE CLASS="literal"> +smb.conf</code> <CODE CLASS="replaceable"> +<I> +your_hostname your_ip_address</i></code> (see <A CLASS="xref" HREF="ch09_02.html#ch09-67494"> +Section 9.2.4.5</a>).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945584"> +</a>A <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +hosts</code> option that doesn't include the server, or an <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +hosts</code> option that does. Also test this with <EM CLASS="emphasis"> +testparm</em>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945585"> +</a>A problem in authentication, such as if shadow passwords or the PAM (Password Authentication Module) is used on the server, but Samba is not compiled to use it. This is rare, but occasionally happens when a SunOS 4 Samba binary (no shadow passwords) is run without recompilation on a Solaris system (with shadow passwords).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945586"> +</a>The <CODE CLASS="literal"> +encrypted</code> <CODE CLASS="literal"> +passwords</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> option in the configuration file, but no password for your account in the <EM CLASS="emphasis"> +smbpasswd</em> file.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945587"> +</a>You have a null password entry, either in Unix <I CLASS="filename"> +/etc/passwd</i> or in the <EM CLASS="emphasis"> +smbpasswd</em> file.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945588"> +</a>You are connecting to <CODE CLASS="literal"> +[temp]</code>, and you do not have the <CODE CLASS="literal"> +guest</code> <CODE CLASS="literal"> +ok</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> option in the <CODE CLASS="literal"> +[temp]</code> section of the <EM CLASS="emphasis"> +smb.conf</em> file.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947992"> +</a>You are connecting to <CODE CLASS="literal"> +[temp]</code> before connecting to your home directory, and your guest account isn't set up correctly. If you can connect to your home directory and then connect to <CODE CLASS="literal"> +[temp]</code>, that's the problem. See <a href="ch02_01.html"><b>Chapter 2</b></a> for more information on creating a basic Samba configuration file.</p><P CLASS="para"> +A bad guest account will also prevent you from printing or browsing until after you've logged in to your home directory. </p></li></ul><P CLASS="para"> +There is one more reason for this failure that has nothing at all to do with passwords: the <CODE CLASS="literal"> +path</code> <CODE CLASS="literal"> +=</code> line in your <I CLASS="filename"> +smb.conf</i> file may point somewhere that doesn't exist. This will not be diagnosed by <EM CLASS="emphasis"> +testparm</em>, and most SMB clients can't tell it from other types of bad user accounts. You will have to check it manually.</p><P CLASS="para"> +Once you have connected to <CODE CLASS="literal"> +[temp]</code> successfully, repeat the test, this time logging in to your home directory (e.g., map network drive <CODE CLASS="replaceable"> +<I> +server</i></code><CODE CLASS="literal"> +\davecb</code>) looking for failures in doing that. If you have to change anything to get that to work, re-test <CODE CLASS="literal"> +[temp]</code> again afterwards.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-97081"> +9.2.5.4 Testing connections with NET USE</a></h4><P CLASS="para">Run the command <CODE CLASS="literal"> +net</code> <CODE CLASS="literal">use</code> <CODE CLASS="literal">* </code><CODE CLASS="literal">\</code><CODE CLASS="replaceable"><I>server</i></code><CODE CLASS="literal">\temp</code> on the DOS or Windows client to see if it can connect to the server. You should be prompted for a password, then receive the response "The command was completed successfully," as shown in <A CLASS="xref" HREF="ch09_02.html#ch09-99328"> +Figure 9.2</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch09-99328"> +Figure 9.2: Results of the NET USE command</a></h4><IMG CLASS="graphic" SRC="figs/sam.0902.gif" ALT="Figure 9.2"><P CLASS="para"> +If that succeeded, continue with the steps in the section <A CLASS="xref" HREF="ch09_02.html#ch09-57065"> +Section 9.2.5.5, Testing connections with Windows Explorer</a>. Otherwise:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945608"> +</a>If you get "The specified shared directory cannot be found," or "Cannot locate specified share name," the directory name is either misspelled or not in the <EM CLASS="emphasis"> +smb.conf</em> file. This message can also warn of a name in mixed case, including spaces, or is longer than eight characters.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945610"> +</a>If you get "The computer name specified in the network path cannot be located," or "Cannot locate specified computer," the directory name has been misspelled, the name service has failed, there is a networking problem, or the <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> <CODE CLASS="literal"> +=</code> option includes your host.</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945612"> +</a>If it is not a spelling mistake, you need to double back to at least the section <A CLASS="xref" HREF="ch09_02.html#ch09-77154"> +Section 9.2.5.3</a>, to investigate why it doesn't connect.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945617"> +</a>If <EM CLASS="emphasis"> +smbclient</em> does work, it's a name service problem with the client name service, and you need to go forward to the section <A CLASS="xref" HREF="ch09_02.html#ch09-12446"> +Section 9.2.6.2, Testing the server with nmblookup</a>, and see if you can look up both client and server with <EM CLASS="emphasis"> +nmblookup</em>.</p></li></ul></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945622"> +</a>If you get "The password is invalid for <CODE CLASS="literal">\</code><CODE CLASS="replaceable"><I>server</i></code><CODE CLASS="literal">\</code><CODE CLASS="replaceable"><I>username</i></code>," your locally cached copy on the client doesn't match the one on the server. You will be prompted for a replacement.</p></li></ul><P CLASS="para"> +Windows 95 and 98 clients keep a local <EM CLASS="emphasis"> +password</em> file, but it's really just a cached copy of the password it sends to Samba and NT servers to authenticate you. That's what is being prompted for here. You can still log on to a Windows machine without a password (but not to NT).</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +If you provide your password, and it still fails, your password is not being matched on the server, you have a <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> or <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> list denying you permission, NetBEUI is interfering, or the encrypted password problem described in the next paragraph exists.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945627"> +</a>If your client is NT 4.0, NT 3.5 with Patch 3, Windows 95 with Patch 3, Windows 98 or any of these with Internet Explorer 4.0, these default to using Microsoft encryption for passwords (discussed in <a href="ch06_01.html"><b>Chapter 6, <CITE CLASS="chapter">Users, Security, and Domains</cite></b></a>'s <a href="ch06_04.html"><b>Section 6.4, Passwords</b> in <b>Chapter 6</b></a> section, along with the alternatives). In general, if you have installed a major Microsoft product recently, you may have applied an update and turned on encrypted passwords.</p></li></ul><P CLASS="para"> +Because of Internet Explorer's willingness to honor URLs such as <I CLASS="filename"> +file://somehost/somefile</i> by making SMB connections, clients up to and including Windows 95 Patch Level 2 would happily send your password, in plaintext, to SMB servers anywhere on the Internet. This was considered a bad idea, and Microsoft quite promptly switched to using only encrypted passwords in the SMB protocol. All subsequent releases of their products have included this correction. Encrypted passwords aren't actually needed unless you're using Internet Explorer 4.0 without a firewall, so it's reasonable to keep using unencrypted passwords on your own networks.</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-953889"> +</a>If you have a mixed-case password on Unix, the client is probably sending it in all one case. If changing your password to all one case works, this was the problem. Regrettably, all but the oldest clients support uppercase passwords, so Samba will try once with it in uppercase and once in lower case. If you wish to use mixed-case passwords, see the <CODE CLASS="literal"> +password</code> <CODE CLASS="literal"> +level</code> option in <a href="ch06_01.html"><b>Chapter 6</b></a> for a workaround.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-953895"> +</a>You may have a <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> problem, as tested with <EM CLASS="emphasis"> +smbclient</em> (see <A CLASS="xref" HREF="ch09_02.html#ch09-77154"> +Section 9.2.5.3</a>).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945642"> +</a>You may have the NetBEUI protocol bound to the Microsoft client. This often produces long timeouts and erratic failures, and is known to have caused failures to accept passwords in the past.</p></li></ul><P CLASS="para"> +The term "bind" is used to mean connecting a piece of software to another in this case. The Microsoft SMB client is "bound to" TCP/IP in the bindings section of the TCP/IP properties panel under the Windows 95/98 Network icon in the Control Panel. TCP/IP in turn is bound to an Ethernet card. This is not the same sense of the word as binding an SMB daemon to a TCP/IP port.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-57065">9.2.5.5 Testing connections with Windows Explorer</a></h4><P CLASS="para">Start Windows Explorer or NT Explorer (not Internet Explorer), select Tools→Map Network Drive and specify \\<CODE CLASS="replaceable"> +<I> +server</i></code>\<CODE CLASS="literal"> +temp</code> to see if you can make Explorer connect to the <I CLASS="filename"> +/tmp</i> directory. You should see a screen similar to the one in <A CLASS="xref" HREF="ch09_02.html#ch09-74414"> +Figure 9.3</a>. If so, you've succeeded and can skip to <A CLASS="xref" HREF="ch09_02.html#ch09-23573"> +Section 9.2.6, Troubleshooting Browsing </a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch09-74414"> +Figure 9.3: Accessing the /tmp directory with Windows Explorer</a></h4><IMG CLASS="graphic" SRC="figs/sam.0903.gif" ALT="Figure 9.3"><P CLASS="para"> +A word of caution: Windows Explorer and NT Explorer are rather poor as diagnostic tools: they do tell you that something's wrong, but rarely what it is. If you get a failure, you'll need to track it down with the NET USE command, which has far superior error reporting:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945661"> +</a>If you get "The password for this connection that is in your password file is no longer correct," you may have any of the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945662"> +</a>Your locally cached copy on the client doesn't match the one on the server.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945663"> +</a>You didn't provide a username and password when logging on to the client. Most Explorers will continue to send a username and password of null, even if you provide a password.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945664"> +</a>You have misspelled the password.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945665"> +</a>You have an <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> or <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> list denying permission.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945666"> +</a>Your client is NT 4.0, NT 3.5 with Patch 3, Windows 95 with Patch 3, Windows 98, or any of these with Internet Explorer 4. They will all want encrypted passwords.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945667"> +</a>You have a mixed-case password, which the client is supplying in all one case.</p></li></ul></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945669"> +</a>If you get "The network name is either incorrect, or a network to which you do not have full access," or "Cannot locate specified computer," you may have any of the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945671"> +</a> Misspelled name</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945672"> +</a> Malfunctioning service </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945673"> +</a> Failed share</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945674"> +</a> Networking problem</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945675"> +</a> Bad <CODE CLASS="literal"> +path</code> line</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945676"> +</a> <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> line that excludes you</p></li></ul></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945677"> +</a>If you get "You must supply a password to make this connection," the password on the client is out of synchronization with the server, or this is the first time you've tried from this client machine and the client hasn't cached it locally yet.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945681"> +</a>If you get "Cannot locate specified share name," you have a wrong share name or a syntax error in specifying it, a share name longer than eight characters, or one containing spaces or in mixed case.</p></li></ul><P CLASS="para"> +Once you can reliably connect to the <CODE CLASS="literal"> +[temp]</code> directory, try once again, this time using your home directory. If you have to change something to get home directories working, then retest with <CODE CLASS="literal"> +[temp]</code>, and vice versa, as we showed in the section <A CLASS="xref" HREF="ch09_02.html#ch09-97081"> +Section 9.2.5.4</a>. As always, if Explorer fails, drop back to that section and debug it there.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-23573">9.2.6 Troubleshooting Browsing </a></h3><P CLASS="para">Finally, we come to browsing. This was left to last, not because it is hardest, but because it's both optional and partially dependent on a protocol that doesn't guarantee delivery of a packet. Browsing is hard to diagnose if you don't already know all the other services are running. </p><P CLASS="para"> +Browsing is purely optional: it's just a way to find the servers on your net and the shares that they provide. Unix has nothing of the sort and happily does without. Browsing also assumes all your machines are on a local area network (LAN) where broadcasts are allowable.</p><P CLASS="para"> +First, the browsing mechanism identifies a machine using the unreliable UDP protocol; then it makes a normal (reliable) TCP/IP connection to list the shares the machine provides.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-96207"> +9.2.6.1 Testing browsing with smbclient </a></h4><P CLASS="para">We'll start with testing the reliable connection first. From the server, try listing its own shares via <EM CLASS="emphasis"> +smbclient</em> with a <CODE CLASS="literal"> +-L</code> option of your server's name. You should get: </p><PRE CLASS="programlisting">server% <CODE CLASS="userinput"><B>smbclient -L server</b></code> +Added interface ip=192.168.236.86 bcast=192.168.236.255 nmask=255.255.255.0 Server time is Tue Apr 28 09:57:28 1998 Timezone is UTC-4.0 +Password: +Domain=[EXAMPLE] +OS=[Unix] +Server=[Samba 1.9.18] +Server=[server] +User=[davecb] +Workgroup=[EXAMPLE] +Domain=[EXAMPLE] + Sharename Type Comment + --------- ---- ------- + cdrom Disk CD-ROM + cl Printer Color Printer 1 + davecb Disk Home Directories + + This machine has a browse list: + Server Comment + --------- ------- + SERVER Samba 1.9.18 + + This machine has a workgroup list: + Workgroup Master + --------- ------- + EXAMPLE SERVER</pre><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-950922"> +</a>If you didn't get a Sharename list, the server is not allowing you to browse any shares. This should not be the case if you've tested any of the shares with Windows Explorer or the NET USE command. If you haven't done the <CODE CLASS="literal"> +smbclient</code> <CODE CLASS="literal"> +-L</code> <CODE CLASS="literal"> +localhost</code> <CODE CLASS="literal"> +-U%</code> test yet (see <A CLASS="xref" HREF="ch09_02.html#ch09-40595"> +Section 9.2.5.2</a>), do it now. An erroneous guest account can prevent the shares from being seen. Also, check the <I CLASS="filename"> +smb.conf</i> file to make sure you do not have the option <CODE CLASS="literal"> +browsable</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +no</code> anywhere in it: we suggest a minimal <I CLASS="filename"> +smb.conf</i> file (see <A CLASS="xref" HREF="ch09_02.html#ch09-67928"> +Section 9.2.5.1, A minimal smb.conf file</a>) for you to steal from. You need to have <CODE CLASS="literal"> +browseable</code> enabled in order to be able to see at least the <CODE CLASS="literal"> +[temp]</code> share.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945728"> +</a>If you didn't get a browse list, the server is not providing information about the machines on the network. At least one machine on the net must support browse lists. Make sure you have <CODE CLASS="literal"> +local</code> <CODE CLASS="literal"> +master</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> in the <I CLASS="filename"> +smb.conf</i> file if you want Samba be the local master browser.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945730"> +</a>If you got a browse list but didn't get <EM CLASS="emphasis"> +/tmp</em>, you probably have a <I CLASS="filename"> +smb.conf</i> problem. Go back to <A CLASS="xref" HREF="ch09_02.html#ch09-67494"> +Section 9.2.4.5</a>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945734"> +</a>If you didn't get a workgroup list with your workgroup name in it, it is possible that your workgroup is set incorrectly in the <I CLASS="filename"> +smb.conf</i> file.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945735"> +</a>If you didn't get a workgroup list at all, ensure that <CODE CLASS="literal"> +workgroup</code> <CODE CLASS="literal"> +=EXAMPLE</code> is present in the <I CLASS="filename"> +smb.conf</i> file.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945736"> +</a>If you get nothing, try once more with the options <CODE CLASS="literal"> +-I</code> <CODE CLASS="replaceable"> +<I> +ip_address</i></code> <CODE CLASS="literal"> +-n</code> <CODE CLASS="replaceable"> +<I> +netbios_name</i></code> <CODE CLASS="literal"> +-W</code> <CODE CLASS="replaceable"> +<I> +workgroup</i></code> <CODE CLASS="literal"> +-d3</code> with the NetBIOS and workgroup name in uppercase. (The <CODE CLASS="literal"> +-d</code> <CODE CLASS="literal"> +3</code> option sets the log /debugging level to 3.)</p></li></ul><P CLASS="para"> +If you're still getting nothing, you shouldn't have gotten this far. Double back to at least <A CLASS="xref" HREF="ch09_02.html#ch09-78512"> +Section 9.2.3.1, Testing TCP with FTP </a>, or perhaps <A CLASS="xref" HREF="ch09_02.html#ch09-84079"> +Section 9.2.2.4</a>. On the other hand:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945746"> +</a>If you get "SMBtconX failed. ERRSRV - ERRaccess," you aren't permitted access to the server. This normally means you have a <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +hosts</code> option that doesn't include the server, or an invalid hosts option that does.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945748"> +</a> If you get "Bad password," then you presumably have one of the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945749"> +</a> An incorrect <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> or <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> line</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945750"> +</a> An incorrect <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> or <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> line</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945751"> +</a> A lowercase password and OS/2 or Windows for Workgroups clients</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945752"> +</a> A missing or invalid guest account</p></li></ul></li><LI CLASS="listitem"> +<P CLASS="para"> +Check what your guest account is (see <A CLASS="xref" HREF="ch09_02.html#ch09-40595"> +Section 9.2.5.2</a>) and verify your <I CLASS="filename"> +smb.conf</i> file with <CODE CLASS="literal"> +testparm</code> <CODE CLASS="literal"> +smb.conf</code> <CODE CLASS="replaceable"> +<I> +your_hostname your_ip_address</i></code> (see <A CLASS="xref" HREF="ch09_02.html#ch09-67494"> +Section 9.2.4.5</a>) and change or comment out any <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code>, <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code>, <CODE CLASS="literal"> +valid</code> <CODE CLASS="literal"> +users</code> or <CODE CLASS="literal"> +invalid</code> <CODE CLASS="literal"> +users</code> lines.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945761"> +</a>If you get "Connection refused," the <EM CLASS="emphasis"> +smbd</em> server is not running or has crashed. Check that it's up, running, and listening to the network with <EM CLASS="emphasis"> +netstat</em>, see step <A CLASS="xref" HREF="ch09_02.html#ch09-67494"> +Section 9.2.4.5</a>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-952948"> +</a>If you get "Get_Hostbyname: Unknown host name," you've made a spelling error, there is a mismatch between Unix and NetBIOS hostname, or there is a name service problem. Start nameservice debugging with <A CLASS="xref" HREF="ch09_02.html#ch09-97081"> +Section 9.2.5.4</a>. If this works, suspect a name mismatch and go to step <A CLASS="xref" HREF="ch09_02.html#ch09-35552"> +Section 9.2.10, Troubleshooting NetBIOS Names</a>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945777"> +</a>If you get "Session request failed," the server refused the connection. This usually indicates an internal error, such as insufficient memory to fork a process.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945778"> +</a>If you get "Your server software is being unfriendly," the initial session request packet received a garbage response from the server. The server may have crashed or started improperly. Go back to <A CLASS="xref" HREF="ch09_02.html#ch09-40595"> +Section 9.2.5.2</a>, where the problem is first analyzed.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945785"> +</a>If you suspect the server is not running, go back to <A CLASS="xref" HREF="ch09_02.html#ch09-49239"> +Section 9.2.4.2, Looking for daemon processes with ps</a> to see why the server daemon isn't responding.</p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-12446">9.2.6.2 Testing the server with nmblookup</a></h4><P CLASS="para"> +This will test the "advertising" system used for Windows name services and browsing. Advertising works by broadcasting one's presence or willingness to provide services. It is the part of browsing that uses an unreliable protocol (UDP), and works only on broadcast networks like Ethernets. The <EM CLASS="emphasis"> +nmblookup</em> program broadcasts name queries for the hostname you provide, and returns its IP address and the name of the machine, much like <EM CLASS="emphasis"> +nslookup</em> does with DNS. Here, the <CODE CLASS="literal"> +-d</code> (debug- or log-level) option, and the <CODE CLASS="literal"> +-B</code> (broadcast address) options direct queries to specific machines.</p><P CLASS="para"> +First, we check the server from itself. Run <EM CLASS="emphasis"> +nmblookup</em> with a <CODE CLASS="literal"> +-B</code> option of your server's name to tell it to send the query to the Samba server, and a parameter of <CODE CLASS="literal"> +__SAMBA__</code> as the symbolic name to look up. You should get: </p><PRE CLASS="programlisting">server% <B CLASS="emphasis.bold">nmblookup -B </b><CODE CLASS="replaceable"><I>server</i></code> <B CLASS="emphasis.bold">__SAMBA__ </b> +Added interface ip=192.168.236.86 bcast=192.168.236.255 nmask=255.255.255.0 +Sending queries to 192.168.236.86 192.168.236.86 __SAMBA__ </pre><P CLASS="para"> +You should get the IP address of the server, followed by the name <CODE CLASS="literal"> +__SAMBA__ </code>, which means that the server has successfully advertised that it has a service called <CODE CLASS="literal"> +__SAMBA__ </code>, and therefore at least part of NetBIOS nameservice works.</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945802"> +</a>If you get "Name_query failed to find name __SAMBA__" you may have specified the wrong address to the <CODE CLASS="literal"> +-B</code> option, or <EM CLASS="emphasis"> +nmbd</em> is not running. The <CODE CLASS="literal"> +-B</code> option actually takes a broadcast address: we're using a machine-name to get a unicast address, and to ask server if it has claimed <CODE CLASS="literal"> +__SAMBA__</code>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947471"> +</a>Try again with <CODE CLASS="literal"> +-B</code><CODE CLASS="replaceable"> +<I> + ip_address</i></code>, and if that fails too, <EM CLASS="emphasis"> +nmbd</em> isn't claiming the name. Go back briefly to "Testing daemons with testparm" to see if <EM CLASS="emphasis"> +nmbd</em> is running. If so, it may not claiming names; this means that Samba is not providing the browsing service - a configuratiuon problem. If that is the case, make sure that <I CLASS="filename"> +smb.conf</i> doesn't contain the option <CODE CLASS="literal"> +browsing</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +no</code>.</p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-32122"> +9.2.6.3 Testing the client with nmblookup</a></h4><P CLASS="para"> +Next, check the IP address of the client from the server with <EM CLASS="emphasis"> +nmblookup</em> using <CODE CLASS="literal"> +-B</code> option for the client's name and a parameter of <CODE CLASS="literal"> +'*'</code> meaning "anything," as shown here: </p><PRE CLASS="programlisting">server% <B CLASS="emphasis.bold">nmblookup -B client '*'</b> +Sending queries to 192.168.236.10 192.168.236.10 * +Got a positive name query response from 192.168.236.10 (192.168.236.10)</pre><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945817"> +</a>If you receive "Name-query failed to find name *," you have made a spelling mistake, or the client software on the PC isn't installed, started, or bound to TCP/IP. Double back to <a href="ch02_01.html"><b>Chapter 2</b></a> or <a href="ch03_01.html"><b>Chapter 3</b></a> and ensure you have a client installed and listening to the network. </p></li></ul><P CLASS="para"> +Repeat the command with the following options if you had any failures:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945824"> +</a>If <CODE CLASS="literal"> +nmblookup</code> <CODE CLASS="literal"> +-B</code> <CODE CLASS="replaceable"> +<I> +client_IP_address</i></code> succeeds but <CODE CLASS="literal"> +-B</code> <CODE CLASS="replaceable"> +<I> +client_name</i></code> fails, there is a name service problem with the client's name; go to <A CLASS="xref" HREF="ch09_02.html#ch09-23768"> +Section 9.2.8</a>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945825"> +</a>If <CODE CLASS="literal"> +nmblookup</code> <CODE CLASS="literal"> +-B</code> <CODE CLASS="literal"> +127.0.0.1'*'</code> succeeds, but <CODE CLASS="literal"> +-B</code> <CODE CLASS="replaceable"> +<I> +client_IP_address</i></code> fails, there is a hardware problem and ping should have failed. See your network manager. </p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-98123"> +9.2.6.4 Testing the network with nmblookup</a></h4><P CLASS="para"> +Run the command <EM CLASS="emphasis"> +nmblookup</em> again with a <CODE CLASS="literal"> +-d</code> option (debug level) of 2 and a parameter of <CODE CLASS="literal"> +'*'</code> again. This time we are testing the ability of programs (such as <EM CLASS="emphasis"> +nmbd </em>) to use broadcast. It's essentially a connectivity test, done via a broadcast to the default broadcast address. </p><P CLASS="para"> +A number of NetBIOS/TCP-IP hosts on the network should respond with "got a positive name query response" messages. Samba may not catch all of the responses in the short time it listens, so you won't always see all the SMB clients on the network. However, you should see most of them:</p><PRE CLASS="programlisting">server% <B CLASS="emphasis.bold">nmblookup -d 2 '*' </b> +Added interface ip=192.168.236.86 bcast=192.168.236.255 nmask=255.255.255.0 Sending queries to 192.168.236.255 +Got a positive name query response from 192.168.236.191 (192.168.236.191) +Got a positive name query response from 192.168.236.228 (192.168.236.228) +Got a positive name query response from 192.168.236.75 (192.168.236.75) +Got a positive name query response from 192.168.236.79 (192.168.236.79) +Got a positive name query response from 192.168.236.206 (192.168.236.206) +Got a positive name query response from 192.168.236.207 (192.168.236.207) +Got a positive name query response from 192.168.236.217 (192.168.236.217) +Got a positive name query response from 192.168.236.72 (192.168.236.72) 192.168.236.86 * </pre><P CLASS="para"> +However:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945841"> +</a>If this doesn't give at least the client address you previously tested, the default broadcast address is wrong. Try <CODE CLASS="literal"> +nmblookup</code> <CODE CLASS="literal"> +-B</code> <CODE CLASS="literal"> +255.255.255.255</code> <CODE CLASS="literal"> +-d</code> <CODE CLASS="literal"> +2</code> <CODE CLASS="literal"> +'*'</code>, which is a last-ditch variant (a broadcast address of all ones). If this draws responses, the broadcast address you've been using before is wrong. Troubleshooting these is discussed in the <A CLASS="xref" HREF="ch09_02.html#ch09-45060"> +Section 9.2.9.2, Broadcast addresses</a> section, later in this chapter.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-951306"> +</a>If the address 255.255.255.255 fails too, check your notes to see if your PC and server are on different subnets, as discovered in <A CLASS="xref" HREF="ch09_02.html#ch09-84079"> +Section 9.2.2.4</a>. You should try to diagnose this with a server and client on the same subnet, but if you can't, you can try specifying the remote subnet's broadcast address with <CODE CLASS="literal"> +-B</code>. Finding that address is discussed in the same place as troubleshooting broadcast addresses, in the section <A CLASS="xref" HREF="ch09_02.html#ch09-45060"> +Section 9.2.9.2</a>, later in this chapter. The <CODE CLASS="literal"> +-B</code> option will work if your router supports directed broadcasts; if it doesn't, you may be forced to test with a client on the same network.</p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-947520"> +9.2.6.5 Testing client browsing with net view</a></h4><P CLASS="para">On the client, run the command <CODE CLASS="replaceable"><I>net view \\server</i></code> in a DOS window to see if you can connect to the client and ask what shares it provides. You should get back a list of available shares on the server, as shown in <A CLASS="xref" HREF="ch09_02.html#ch09-83710"> +Figure 9.4</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch09-83710"> +Figure 9.4: Using the net view command</a></h4><IMG CLASS="graphic" SRC="figs/sam.0904.gif" ALT="Figure 9.4"><P CLASS="para"> +If you received this, continue with the section <A CLASS="xref" HREF="ch09_02.html#ch09-21713"> +Section 9.2.7, Other Things that Fail</a>.</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-953009"> +</a>If you get "Network name not found" for the name you just tested in the section <A CLASS="xref" HREF="ch09_02.html#ch09-32122"> +Section 9.2.6.3, Testing the client with nmblookup</a>, there is a problem with the client software itself. Double-check this by running <EM CLASS="emphasis"> +nmblookup</em> on the client; if it works and NET VIEW doesn't, the client is at fault.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945868"> +</a>Of course, if <EM CLASS="emphasis"> +nmblookup</em> fails, there is a NetBIOS nameservice problem, as discussed in the section <A CLASS="xref" HREF="ch09_02.html#ch09-35552"> +Section 9.2.10</a>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945874"> +</a>If you get "You do not have the necessary access rights," or "This server is not configured to list shared resources," either your guest account is misconfigured (see <A CLASS="xref" HREF="ch09_02.html#ch09-40595"> +Section 9.2.5.2</a>), or you have a <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +allow</code> or <CODE CLASS="literal"> +hosts</code> <CODE CLASS="literal"> +deny</code> line that prohibits connections from your machine. These problems should have been detected by the <EM CLASS="emphasis"> +smbclient</em> tests starting in the section <A CLASS="xref" HREF="ch09_02.html#ch09-96207"> +Section 9.2.6.1, Testing browsing with smbclient </a>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945882"> +</a>If you get "The specified computer is not receiving requests," you have misspelled the name, the machine is unreachable by broadcast (tested in "Testing the network with nmblookup"), or it's not running <EM CLASS="emphasis"> +nmbd</em>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-954090"> +</a>If you get "Bad password error," you're probably encountering the Microsoft-encrypted password problem, as discussed in <a href="ch06_01.html"><b>Chapter 6</b></a>, with its corrections.</p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-954094"> +9.2.6.6 Browsing the server from the client</a></h4><P CLASS="para">From the Network Neighborhood (File Manager in older releases), try to browse the server. Your Samba server should appear in the browse list of your local workgroup. You should be able to double click on the name of the server and get a list of shares, as illustrated in <A CLASS="xref" HREF="ch09_02.html#ch09-60004"> +Figure 9.5</a>. </p><H4 CLASS="figure"> +<A CLASS="title" NAME="ch09-60004"> +Figure 9.5: List of shares on a server</a></h4><IMG CLASS="graphic" SRC="figs/sam.0905.gif" ALT="Figure 9.5"><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945897"> +</a>If you get an "Invalid password" error with NT 4.0, NT 3.5 with Patch 3, Windows 95 with Patch 3, Windows 98 or any of these with Internet Explorer 4.0, it's most likely the encryption problem again. All of these clients default to using Microsoft encryption for passwords (see <a href="ch06_01.html"><b>Chapter 6</b></a>).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945903"> +</a>If you receive an "Unable to browse the network" error, one of the following has ocurred:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945904"> +</a>You have looked too soon, before the broadcasts and updates have completed; try waiting 30 seconds before re-attempting.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945905"> +</a>There is a network problem you've not yet diagnosed.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945906"> +</a>There is no browse master. Add the configuration option <CODE CLASS="literal"> +local</code> <CODE CLASS="literal"> +master</code> <CODE CLASS="literal"> +=</code> <CODE CLASS="literal"> +yes</code> to your <EM CLASS="emphasis"> +smb.conf</em> file.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945907"> +</a>No shares are marked <CODE CLASS="literal"> +browsable</code> in the <EM CLASS="emphasis"> +smb.conf</em> file.</p></li></ul></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945909"> +</a>If you receive the message "\\server is not accessible," then:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945910"> +</a> You have the encrypted password problem</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945911"> +</a> The machine really isn't accessible </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945912"> +</a> The machine doesn't support browsing</p></li></ul></li></ul></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-21713">9.2.7 Other Things that Fail </a></h3><P CLASS="para"> +If you've made it here, either the problem is solved or it's not one we've seen. The next sections cover troubleshooting tasks that are required to have the infrastructure to run Samba, not Samba itself.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-945916"> +9.2.7.1 Not logging on</a></h4><P CLASS="para">An occasional problem is forgetting to log in to the client or logging in as a wrong (account-less) person. The former is not diagnosed at all: Windows tries to be friendly and lets you on. Locally! The only warning of the latter is that Windows welcomes you and asks about your new account. Either of these leads to repeated refusals to connect and endless requests for passwords. If nothing else seems to work, try logging out or shutting down and logging in again.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-23768"> +9.2.8 Troubleshooting Name Services</a></h3><P CLASS="para">This section looks at simple troubleshooting of all the name services that you will encounter, but only for the common problems that affect Samba.</p><P CLASS="para"> +There are several good references for troubleshooting particular name services: Paul Albitz and Cricket Liu's <EM CLASS="emphasis"> +DNS and Bind</em> covers the Domain Name Service (DNS), Hal Stern's <EM CLASS="emphasis"> +NFS and NIS</em> (both from O'Reilly) covers NIS ("Yellow pages") while WINS (Windows Internet Name Service), <I CLASS="filename"> +hosts/LMHOSTS</i> files and NIS+ are best covered by their respective vendor's manuals.</p><P CLASS="para"> +The problems addressed in this section are:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945926"> +</a>Identifying name services</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945927"> +</a>A hostname can't be looked up</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945928"> +</a>The long (FQDN) form of a hostname works but the short form doesn't </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945929"> +</a>The short form of the name works, but the long form doesn't</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945930"> +</a>A long delay ocurrs before the expected result </p></li></ul><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-945931"> +9.2.8.1 Identifying what's in use</a></h4><P CLASS="para">First, see if both the server and the client are using DNS, WINS, NIS, or <I CLASS="filename"> +hosts</i> files to look up IP addresses when you give them a name. Each kind of machine will have a different preference: </p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945934"> +</a>Windows 95 and 98 machines will look in WINS and <I CLASS="filename"> +LMHOSTS</i> files first, then broadcast, and finally try DNS and <I CLASS="filename"> +hosts</i> files.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945935"> +</a>NT will look in WINS, then broadcast, LMHOSTS files, and finally <I CLASS="filename"> +hosts</i> and DNS.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945936"> +</a>Windows programs using the WINSOCK standard (like PC-NFSs) will use hosts files, DNS, WINS, and then broadcast. Don't assume that if a different program's name service works, the SMB client program's name service will!</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945937"> +</a>Samba daemons will use <I CLASS="filename"> +LMHOSTS</i>, WINS, the Unix host's preference, and then broadcast.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945938"> +</a>Unix hosts can be configured to use any combination of DNS, <I CLASS="filename"> +hosts</i> files, and NIS and NIS+, generally in any order.</p></li></ul><P CLASS="para"> +We recommend that the client machines be configured to use WINS and DNS, the Samba daemons to use WINS and DNS, and the Unix server to use DNS. You'll have to look at your notes and the actual machines to see which is in use.</p><P CLASS="para"> +On the clients, the name services are all set in the TCP/IP Properties panel of the Networking Control Panel, as discussed in <a href="ch03_01.html"><b>Chapter 3</b></a>. You may need to check there to see what you've actually turned on. On the server, see if an <I CLASS="filename"> +/etc/resolv.conf</i> file exists. If it does, you're using DNS. You may be using the others as well, though. You'll need to check for NIS and combinations of services.</p><P CLASS="para"> +Check for an <I CLASS="filename"> +/etc/nsswitch.conf</i> file on Solaris and other System V Unix operating systems. If you have one, look for a line that begins <CODE CLASS="literal"> +host</code>:, followed by one or more of <CODE CLASS="literal"> +files</code>, <CODE CLASS="literal"> +bind</code>, <CODE CLASS="literal"> +nis</code> or <CODE CLASS="literal"> +nis+</code>. These are the name services to use, in order, with optional extra material in square brackets. <EM CLASS="emphasis"> +files</em> stands for using<EM CLASS="emphasis"> + hosts</em> files, while <EM CLASS="emphasis"> +bind</em> (the Berkeley Internet Name Daemon) stands for using DNS.</p><P CLASS="para"> +If the client and server differ, the first thing to do is to get them in sync. Clients can only use only DNS, WINS, <EM CLASS="emphasis"> +hosts </em>files and <EM CLASS="emphasis"> +lmhosts</em> files, not NIS or NIS+. Servers can use <EM CLASS="emphasis"> +hosts</em> files, DNS, and NIS or NIS+, but not WINS - even if your Samba server provides WINS services. If you can't get all the systems to use the same services, you'll have to carefully check the server and the client for the same data.</p><P CLASS="para"> +Samba 2.0 (and late 1.9 versions) added a <CODE CLASS="literal"> +-R</code><I CLASS="option"> + </i>(resolve order) option to <EM CLASS="emphasis"> +smbclient</em>. If you want to troubleshoot WINS, for example, you'd say:</p><PRE CLASS="programlisting"> smbclient -L <CODE CLASS="replaceable"><I>server</i></code> -R wins</pre><P CLASS="para"> +The possible settings are <CODE CLASS="literal"> +hosts</code> (which means whatever the Unix machine is using, not just<I CLASS="filename"> + /etc/hosts</i> files), <CODE CLASS="literal"> +lmhosts</code>, <CODE CLASS="literal"> +wins</code> and <CODE CLASS="literal"> +bcast</code> (broadcast).</p><P CLASS="para"> +In the following sections, we use the term <EM CLASS="emphasis"> +long name</em> for a fully-qualified domain name (FQDN), like <CODE CLASS="literal"> +server.example.com</code>, and the term <EM CLASS="emphasis"> +short name</em> for the host part of a FQDN, like <CODE CLASS="literal"> +server</code>.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-947590"> +9.2.8.2 Cannot look up hostnames</a></h4><P CLASS="para"> + Try the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945950"> +</a>In DNS:</p><P CLASS="para"> +Run <CODE CLASS="literal"> +nslookup</code> <CODE CLASS="replaceable"> +<I> +name</i></code>. If this fails, look for a <I CLASS="filename"> +resolv.conf</i> error, a downed DNS server, or a short/long name problem (see the next section). Try the following:</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945952"> +</a>Your <I CLASS="filename"> +/etc/resolv.conf</i> should contain one or more name-server lines, each with an IP address. These are the addresses of your DNS servers.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947597"> +</a>ping each of the server addresses you find. If this fails for one, suspect the machine. If it fails for each, suspect your network.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947600"> +</a>Retry the lookup using the full domain name (e.g., <EM CLASS="emphasis"> +server.example.com</em>) if you tried the short name first, or the short name if you tried the long name first. If results differ, skip to the next section. </p></li></ul><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945958"> +</a>In Broadcast/ WINS:</p><P CLASS="para"> +Broadcast/ WINS does only short names such as <CODE CLASS="literal"> +server</code>, (not long ones, such as <CODE CLASS="literal"> +server.example.com)</code>. Run <CODE CLASS="literal"> +nmblookup</code> <CODE CLASS="literal"> +-S</code> <CODE CLASS="replaceable"> +<I> +server</i></code>.<CODE CLASS="replaceable"> +<I> + </i></code>This reports everything broadcast has registered for the name. In our example, it looks like this:</p></li></ul><PRE CLASS="programlisting"> +Looking up status of 192.168.236.86 +received 10 names + SERVER <00> - M <ACTIVE> + SERVER <03> - M <ACTIVE> + SERVER <1f> - M <ACTIVE> + SERVER <20> - M <ACTIVE> + ..__MSBROWSE__. <01> - <GROUP> M <ACTIVE> + MYGROUP <00> - <GROUP> M <ACTIVE> + MYGROUP <1b> - M <ACTIVE> + MYGROUP <1c> - <GROUP> M <ACTIVE> + MYGROUP <1d> - M <ACTIVE> + MYGROUP <1e> - <GROUP> M <ACTIVE></pre><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +The required entry is <CODE CLASS="literal"> +SERVER</code> <CODE CLASS="literal"> +<00></code>, which identifies <CODE CLASS="replaceable"> +<I> +server</i></code> as being this machine's NetBIOS name. You should also see your workgroup mentioned one or more times. If these lines are missing, Broadcast/WINS cannot look up names and will need attention.</p></li></ul><P CLASS="para"> +The numbers in angle brackets in the previous output identify NetBIOS names as being workgroups, workstations, and file users of the messenger service, master browsers, domain master browsers, domain controllers and a plethora of others. We primarily use <CODE CLASS="literal"> +<00></code> to identify machine and workgroup names and <CODE CLASS="literal"> +<20></code> to identify machines as servers. The complete list is available at <A CLASS="systemitem.url" HREF="http://support.microsoft.com/support/kb/articles/q163/4/09.asp"> +http://support.microsoft.com/support/kb/articles/q163/4/09.asp</a>.</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945982"> +</a>In NIS:</p><P CLASS="para"> +Try <CODE CLASS="literal"> +ypmatch</code> <CODE CLASS="literal"> +name</code> <CODE CLASS="literal"> +hosts</code>. If this fails, NIS is down. Find out the NIS server's name by running<EM CLASS="emphasis"> + ypwhich</em>, and ping the machine it to see if it's accessible.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945985"> +</a>In NIS+:</p><P CLASS="para"> +If you're running NIS+, try <CODE CLASS="literal"> +nismatch</code> <CODE CLASS="literal"> +name</code> <CODE CLASS="literal"> +hosts</code>. If this fails, NIS is down. Find out the NIS server's name by running <EM CLASS="emphasis"> +niswhich</em>, and ping that machine to see if it's accessible.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-945988"> +</a>In <I CLASS="filename"> +hosts</i> files:</p><P CLASS="para"> +Inspect <I CLASS="filename"> +/etc/hosts</i> on the client (<CODE CLASS="literal">C:\WINDOWS\HOSTS</code>). Each line should have an IP number and one or more names, the primary name first, then any optional aliases. An example follows:</p></li></ul><PRE CLASS="programlisting"> + 127.0.0.1 localhost + 192.168.236.1 dns.svc.example.com + 192.168.236.10 client.example.com client + 192.168.236.11 backup.example.com loghost + 192.168.236.86 server.example.com server + 192.168.236.254 router.svc.example.com </pre><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +On Unix, <CODE CLASS="literal"> +localhost</code> should always be 127.0.0.1, although it may be just an alias for a hostname on the PC. On the client, check that there are no <CODE CLASS="literal"> +#XXX</code> directives at the ends of the lines; these are LAN Manager/NetBIOS directives, and should appear only in <EM CLASS="emphasis"> +LMHOSTS</em> files (<CODE CLASS="literal">C:\WINDOWS\LMHOSTS</code>). </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946000"> +</a>In <EM CLASS="emphasis"> +LMHOSTS</em> files:</p><P CLASS="para"> +This file is a local source for LAN Manager (NetBIOS) names. It has a format very similar to <I CLASS="filename"> +/etc/hosts</i> files, but does not support long-form domain names (e.g., <CODE CLASS="literal"> +server.example.com</code>), and may have a number of optional <CODE CLASS="literal"> +#XXX</code> directives following the names. Note there usually is a <EM CLASS="emphasis"> +lmhosts.sam</em> (for sample) file in <CODE CLASS="literal"> +C:\WINDOWS</code>, but it's not used unless renamed to <CODE CLASS="literal"> +C:\WINDOWS\LMHOSTS</code>.</p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-946005"> +9.2.8.3 Long and short hostnames</a></h4><P CLASS="para">Where the long (FQDN) form of a hostname works but the short name doesn't (for example, <CODE CLASS="literal"> +client.example.com</code> works but <CODE CLASS="literal"> +client</code> doesn't), consider the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946007"> +</a>DNS: </p><P CLASS="para"> +This usually indicates there is no default domain in which to look up the short names. Look for a <CODE CLASS="literal"> +default</code> line in <I CLASS="filename"> +/etc/resolv.conf</i> on the Samba server with your domain in it, or a <CODE CLASS="literal"> +search</code> line with one or more domains in it. One or the other may need to be present to make short names usable; which one depends on vendor and version of the DNS resolver. Try adding <CODE CLASS="literal"> +domain</code> <CODE CLASS="replaceable"> +<I> +your domain</i></code> to <I CLASS="filename"> +resolv.conf</i> and ask your network or DNS administrator what should have been in the file.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946010"> +</a>Broadcast/WINS: </p><P CLASS="para"> +Broadcast/WINS doesn't support long names; it won't suffer from this problem. </p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946012"> +</a>NIS: </p><P CLASS="para"> +Try the command <CODE CLASS="literal"> +ypmatch</code> <CODE CLASS="literal"> +hostname</code> <CODE CLASS="literal"> +hosts</code>. If you don't get a match, your tables don't include short names. Speak to your network manager; short names may be missing by accident, or may be unsupported as a matter of policy. Some sites don't ever use (ambiguous) short names.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946014"> +</a>NIS+ :</p><P CLASS="para"> +Try <CODE CLASS="literal"> +nismatch</code> <CODE CLASS="replaceable"> +<I> +hostname</i></code> <CODE CLASS="literal"> +hosts</code>, and treat failure exactly as with NIS above.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946016"> +</a><EM CLASS="emphasis"> +hosts:</em> </p><P CLASS="para"> +If the short name is not in <I CLASS="filename"> +/etc/hosts</i>, consider adding it as an alias. Avoid, if you can, short names as primary names (the first one on a line). Have them as aliases if your system permits.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946018"> +</a><I CLASS="filename"> +LMHOSTS</i>: </p><P CLASS="para"> +LAN Manager doesn't support long names, so it won't suffer from this problem. </p></li></ul><P CLASS="para"> +On the other hand, if the short form of the name works and the long doesn't, consider the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946022"> +</a>DNS: </p><P CLASS="para"> +This is bizarre; see your network or DNS administrator, as this is probably a DNS setup bug.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947697"> +</a>Broadcast/WINS: </p><P CLASS="para"> +This is a normal bug; Broadcast/WINS can't use the long form. Optionally, consider DNS. Microsoft has stated that they will switch to DNS, though it's not providing name types like <00>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947709"> +</a>NIS:</p><P CLASS="para"> +If you can use <CODE CLASS="literal"> +ypmatch</code> to look up the short form but not the long, consider adding the long form to the table as at least an alias.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947718"> +</a>NIS+: </p><P CLASS="para"> +Same as NIS, except you use <CODE CLASS="literal"> +nismatch</code> instead of <CODE CLASS="literal"> +ypmatch</code> to look up names.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947720"> +</a><I CLASS="filename"> +hosts:</i></p><P CLASS="para"> +Add the long name as at least an alias, and preferably as the primary form. Also consider using DNS if it's practical.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947727"> +</a><I CLASS="filename"> +LMHOSTS</i>: </p><P CLASS="para"> +This is a normal bug. LAN Manager can't use the long form; consider switching to DNS or <I CLASS="filename"> +hosts</i>.</p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-946040"> +9.2.8.4 Unusual delays</a></h4><P CLASS="para">When there is a long delay before the expected result: </p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-947733"> +</a>DNS: </p><P CLASS="para"> +Test the same name with the <KBD CLASS="command"> +nslookup</kbd> command on the machine (client or server) that is slow. If <KBD CLASS="command"> +nslookup</kbd> is also slow, you have a DNS problem. If it's slower on a client, you have too many protocols bound to the Ethernet card. Eliminate NetBEUI, which is infamously slow, and optionally, Novel, assuming you don't need them. This is especially important on Windows 95, which is particularly sensitive to excess protocols.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946044"> +</a>Broadcast/ WINS:</p><P CLASS="para"> +Test the client using <CODE CLASS="literal"> +nmblookup</code>, and if it's faster, you probably have the protocols problem as mentioned in the previous item.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946047"> +</a>NIS:</p><P CLASS="para"> +Try <CODE CLASS="literal"> +ypmatch</code>, and if it's slow, report the problem to your network manager.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946049"> +</a>NIS+: </p><P CLASS="para"> +Try <CODE CLASS="literal"> +nismatch</code>, similarly.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946051"> +</a><EM CLASS="emphasis"> +hosts</em>:</p><P CLASS="para"> +<EM CLASS="emphasis"> +hosts</em> files, if of reasonable size, are always fast. You probably have the protocols problem mentioned under DNS, above.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946053"> +</a><EM CLASS="emphasis"> +LMHOSTS</em>:</p><P CLASS="para"> +This is not a name lookup problem; <EM CLASS="emphasis"> +LMHOSTS</em> files are as fast as <EM CLASS="emphasis"> +hosts</em> files.</p></li></ul></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-946055"> +9.2.8.5 Localhost issues</a></h4><P CLASS="para">When a localhost isn't 127.0.0.1, try the following:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946056"> +</a>DNS:</p><P CLASS="para"> +There is probably no record for <CODE CLASS="literal"> +localhost.</code> <CODE CLASS="literal"> +A</code> <CODE CLASS="literal"> +127.0.0.1</code>. Arrange to add one, and a reverse entry, <CODE CLASS="literal"> +1.0.0.127.IN-ADDR.ARPA</code> <CODE CLASS="literal"> +PTR</code> <CODE CLASS="literal"> +127.0.0.1</code>.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946058"> +</a>Broadcast/WINS:</p><P CLASS="para"> +Not applicable.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946060"> +</a>NIS:</p><P CLASS="para"> +If <CODE CLASS="literal"> +localhost</code> isn't in the table, add it.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946062"> +</a>NIS+: </p><P CLASS="para"> +If <CODE CLASS="literal"> +localhost</code> isn't in the table, add it.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946064"> +</a><I CLASS="filename"> +hosts:</i></p><P CLASS="para"> +Add a line is the <EM CLASS="emphasis"> +hosts</em> file that says <CODE CLASS="literal"> +127.0.0.1</code> <CODE CLASS="literal"> +localhost</code></p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946066"> +</a><I CLASS="filename"> +LMHOSTS</i>:</p><P CLASS="para"> +Not applicable.</p></li></ul></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-953970">9.2.9 Troubleshooting Network Addresses</a></h3><P CLASS="para"> +A number of common problems are caused by incorrect Internet address routing or the incorrect assignment of addresses. This section helps you determine what your addresses are.</p><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-21203"> +9.2.9.1 Netmasks</a></h4><P CLASS="para">The netmasks tell each machine which addresses can be reached directly (are on your local network) and which addresses require forwarding packets through a router. If the netmask is wrong, the machines will make one of two mistakes. One is to try to route local packets via a router, which is an expensive way to waste time - it may work reasonably fast, it may run slowly, or it may fail utterly. The second mistake is to fail to send packets for a remote machine to the router, which will prevent them from being forwarded to the remote machine.</p><P CLASS="para"> +The netmask is a number like an IP address, with one-bits for the network part of an address and zero-bits for the host portion. The netmask is literally used to mask off parts of the address inside the TCP/IP code. If the mask is 255.255.0.0, the first 2 bytes are the network part and the last 2 are the host part. More common is 255.255.255.0, in which the first 3 bytes are the network part and the last one is the host part.</p><P CLASS="para"> +For example, let's say your IP address is 192.168.0.10 and the Samba server is 192.168.236.86. If your netmask happens to be 255.255.255.0, the network part of the addresses is the first 3 bytes and the host part is the last byte. In this case, the network parts are different, and the machines are on different networks: </p><TABLE CLASS="informaltable" BORDER="1" CELLPADDING="3"> +<THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Network Part</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Host Part</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +192 168 000</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +10</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +192 168 235</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +86</p></td></tr></tbody></table><P CLASS="para"> +If your netmask happens to be 255.255.0.0, the network part is just the first two bytes. In this case, the network parts match and so the two machines are on the same network: </p><TABLE CLASS="informaltable" BORDER="1" CELLPADDING="3"> +<THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Network Part</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Host Part</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +192 168</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +000 10</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +192 168</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +236 86</p></td></tr></tbody></table><P CLASS="para"> +Of course, if your netmask says one thing and your network manager says another, the netmask is wrong.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-45060"> +9.2.9.2 Broadcast addresses</a></h4><P CLASS="para"> +The broadcast address is a normal address, with the hosts part all one-bits. It means "all hosts on your network." You can compute it easily from your netmask and address: take the address and put one-bits in it for all the bits that are zero at the end of the netmask (the host part). The following table illustrates this: </p><TABLE CLASS="informaltable" BORDER="1" CELLPADDING="3"> +<THEAD CLASS="thead"> +<TR CLASS="row" VALIGN="TOP"> +<TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Network Part</p></th><TH CLASS="entry" ALIGN="LEFT" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +Host Part</p></th></tr></thead><TBODY CLASS="tbody"> +<TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<B CLASS="emphasis.bold"> +IP address</b></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +192 168 236</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +86</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<B CLASS="emphasis.bold"> +Netmask</b></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +255 255 255</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +000</p></td></tr><TR CLASS="row" VALIGN="TOP"> +<TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +<B CLASS="emphasis.bold"> +Broadcast</b></p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +192 168 236</p></td><TD CLASS="entry" ROWSPAN="1" COLSPAN="1"> +<P CLASS="para"> +255</p></td></tr></tbody></table><P CLASS="para"> +In this example, the broadcast address on the 192.168.236 network is 192.168.236.255. There is also an old "universal" broadcast address, 255.255.255.255. Routers are prohibited from forwarding these, but most machines on your local network will respond to broadcasts to this address.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-946136"> +9.2.9.3 Network address ranges</a></h4><P CLASS="para">A number of address ranges have been reserved for testing and for non-connected networks; we use one of these for the book. If you don't have an address yet, feel free to use one of these to start with. They include one class A (large) network, 10.*.*.*, and 254 class C (smaller) networks, 192.168.1.* through to 192.168.254.*. In this book we use one of the latter, 192.168.236.*. The domain <I CLASS="filename"> +example.com</i> is also reserved for unconnected networks, explanatory examples, and books.</p><P CLASS="para"> +If you're actually connecting to the Internet, you'll need to get a real network and a domain name, probably through the same company that provides your connection.</p></div><DIV CLASS="sect3"> +<H4 CLASS="sect3"> +<A CLASS="title" NAME="ch09-pgfId-947786"> +9.2.9.4 Finding your network address</a></h4><P CLASS="para">If you haven't recorded your IP address, it will be displayed by the <KBD CLASS="command"> +ifconfig</kbd> command on Unix or by the IPCONFIG command on Windows 95 and NT. (Check your manual pages for any options required by your brand of Unix: Sun wants <CODE CLASS="literal"> +ifconfig</code> <CODE CLASS="literal"> +-a</code>). You should see output similar to the following:</p><PRE CLASS="programlisting"> +server% ifconfig -a +le0: flags=63<UP,BROADCAST,NOTRAILERS,RUNNING > + inet 192.168.236.11 netmask ffffff00 broadcast 192.168.236.255 +lo0: flags=49<&lt>UP,LOOPBACK,RUNNING<&gt> + inet 127.0.0.1 netmask ff000000</pre><P CLASS="para"> +One of the interfaces will be loopback (in our examples <CODE CLASS="literal"> +lo0</code>), and the other will be the regular IP interface. The flags should show that the interface is running, and Ethernet interfaces will also say they support broadcasts (PPP interfaces don't). The other places to look for IP addresses are <I CLASS="filename"> +/etc/hosts</i> files, Windows <EM CLASS="emphasis"> +HOSTS</em> files, Windows <EM CLASS="emphasis"> +LMHOSTS</em> files, NIS, NIS+ and DNS.</p></div></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-35552">9.2.10 Troubleshooting NetBIOS Names</a></h3><P CLASS="para">Historically, SMB protocols have depended on the NetBIOS name system, also called the LAN Manager name system. This was a simple scheme where each machine had a unique 20-character name and broadcast it on the LAN for everyone to know. With TCP/IP, we tend to use names like <EM CLASS="emphasis"> +client.example.com</em> stored in <I CLASS="filename"> +/etc/hosts</i> files, through DNS or WINS.</p><P CLASS="para"> +The usual mapping to domain names such as <EM CLASS="emphasis"> +server.example.com</em> simply uses the <EM CLASS="emphasis"> +server</em> part as the NetBIOS name and converts it to uppercase. Alas, this doesn't always work, especially if you have a machine with a 21-character name; not everyone uses the same NetBIOS and DNS names. For example, <EM CLASS="emphasis"> +corpvm1</em> along with <EM CLASS="emphasis"> +vm1.corp.com</em> is not unusual.</p><P CLASS="para"> +A machine with a different NetBIOS name and domain name is confusing when you're troubleshooting; we recommend that you try to avoid this wherever possible. NetBIOS names are discoverable with <EM CLASS="emphasis"> +smbclient </em>:</p><UL CLASS="itemizedlist"> +<LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946160"> +</a>If you can list shares on your Samba server with <EM CLASS="emphasis"> +smbclient</em> and a <CODE CLASS="literal"> +-L</code> option (list shares) of <CODE CLASS="replaceable"> +<I> +short_name_of_server</i></code>, the short name is the NetBIOS name.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946161"> +</a>If you get "Get_Hostbyname: Unknown host name," there is probably a mismatch. Check in the <I CLASS="filename"> +smb.conf</i> file to see if the NetBIOS name is explicitly set.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946162"> +</a>Try again, specifying <CODE CLASS="literal"> +-I</code> and the IP address of the Samba server (e.g., <CODE CLASS="literal"> +smbclient</code> <CODE CLASS="literal"> +-L</code> <CODE CLASS="literal"> +server</code> <CODE CLASS="literal"> +-I</code> <CODE CLASS="literal"> +192.168.236.86</code>). This overrides the name lookup and forces the packets to go to the IP address. If this works, there was a mismatch.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946163"> +</a>Try with <CODE CLASS="literal"> +-I</code> and the full domain name of the server (e.g., <CODE CLASS="literal"> +smbclient</code> <CODE CLASS="literal"> +-L</code> <CODE CLASS="literal"> +server</code> <CODE CLASS="literal"> +-I</code> <CODE CLASS="literal"> +server.example.com</code>). This tests the lookup of the domain name, using whatever scheme the Samba server uses (e.g., DNS). If it fails, you have a name service problem. You should reread the section <A CLASS="xref" HREF="ch09_02.html#ch09-23768"> +Section 9.2.8</a> after you finish troubleshooting the NetBIOS names.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946168"> +</a>Try with <CODE CLASS="literal"> +-n</code> (NetBIOS name) and the name you expect to work (e.g., <CODE CLASS="literal"> +smbclient</code> <CODE CLASS="literal"> +-n</code> <CODE CLASS="literal"> +server</code> <CODE CLASS="literal"> +-L</code> <CODE CLASS="literal"> +server-12</code>) but without overriding the IP address through <CODE CLASS="literal"> +-I</code>. If this works, the name you specified with <CODE CLASS="literal"> +-n</code> is the actual NetBIOS name of the server. If you receive "Get-Hostbyname: Unknown host MARY," it's not the right server yet.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-946169"> +</a>If nothing is working so far, repeat the tests specifying <CODE CLASS="literal"> +-U</code> <CODE CLASS="replaceable"> +<I> +username</i></code> and <CODE CLASS="literal"> +-W</code> <CODE CLASS="replaceable"> +<I> +workgroup</i></code>, with the username and workgroup in uppercase, to make sure you're not being derailed by a user or workgroup mismatch.</p></li><LI CLASS="listitem"> +<P CLASS="para"> +<A CLASS="listitem" NAME="ch09-pgfId-953522"> +</a>If nothing works still and you had evidence of a name service problem, troubleshoot name service in the section <A CLASS="xref" HREF="ch09_02.html#ch09-23768"> +Section 9.2.8</a>, and then return to NetBIOS name service.</p></li></ul></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_01.html" TITLE="9.1 The Tool Bag"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 9.1 The Tool Bag" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_03.html" TITLE="9.3 Extra Resources"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: 9.3 Extra Resources" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172">9.1 The Tool Bag</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +9.3 Extra Resources</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/ch09_03.html b/docs/htmldocs/using_samba/ch09_03.html new file mode 100644 index 0000000000..ecaa53ed36 --- /dev/null +++ b/docs/htmldocs/using_samba/ch09_03.html @@ -0,0 +1,136 @@ +<HTML> +<HEAD> +<TITLE> +[Chapter 9] 9.3 Extra Resources</title><META NAME="DC.title" CONTENT=""><META NAME="DC.creator" CONTENT=""><META NAME="DC.publisher" CONTENT="O'Reilly & Associates, Inc."><META NAME="DC.date" CONTENT="1999-11-05T21:41:27Z"><META NAME="DC.type" CONTENT="Text.Monograph"><META NAME="DC.format" CONTENT="text/html" SCHEME="MIME"><META NAME="DC.source" CONTENT="" SCHEME="ISBN"><META NAME="DC.language" CONTENT="en-US"><META NAME="generator" CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"></head> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly +<br>1st Edition November 1999 +<br>1-56592-449-5, Order Number: 4495 +<br>416 pages, $34.95 +</font> +<p> <a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy</a> +<p><a href="index.html">Table of Contents</a> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> + +<center> +<DIV CLASS="htmlnav"> +<TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_02.html" TITLE="9.2 The Fault Tree"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 9.2 The Fault Tree" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<B> +<FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1"> +<A CLASS="chapter" REL="up" HREF="ch09_01.html" TITLE="9. Troubleshooting Samba"> +Chapter 9<br> +Troubleshooting Samba</a></font></b></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appa_01.html" TITLE="A. Configuring Samba with SSL"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A. Configuring Samba with SSL" BORDER="0"></a></td></tr></table> <hr noshade size=1></center> +</div> +<blockquote> +<div> +<H2 CLASS="sect1"> +<A CLASS="title" NAME="ch09-49719"> +9.3 Extra Resources</a></h2><P CLASS="para">At some point during your Samba career, you will want to turn to online or printed resources for news, updates, and aid.</p><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-953071"> +9.3.1 Documentation and FAQs</a></h3><P CLASS="para">It's okay to read the documentation. Really. Nobody can see you, and we won't tell. In fact, Samba ships with a large set of documentation files, and it is well worth the effort to at least browse through them, either in the distribution directory on your computer under <I CLASS="filename"> +/docs</i>, or online at the Samba web site: <a href="http://samba.anu.edu.au/samba/"><I CLASS="filename">http://samba.anu.edu.au/samba/</i></a>. The most current FAQ list, bug information, and distribution locations are located at the web site, with links to all of the Samba manual pages and HOW-TOs.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-946178"> +9.3.2 Samba Newsgroups</a></h3><P CLASS="para">Usenet newsgroups have always been a great place to get advice on just about any topic. In the past few years, though, this vast pool of knowledge has developed something that has made it into an invaluable resource: a memory. Archival and search sites such as DejaNews (<I CLASS="filename"><a href="http://www.dejanews.com">http://www.dejanews.com</i></a>) have made sifting through years of valuable solutions on a topic as simple as a few mouse clicks. </p><P CLASS="para"> +The primary newsgroup for Samba is <EM CLASS="emphasis"> +comp.protocols.smb</em>. This should always be your first stop when there's a problem. More often than not, spending five minutes researching an error here will save hours of frustration while trying to debug something yourself.</p><P CLASS="para"> +When searching a newsgroup, try to be as specific as possible, but not too wordy. Searching on actual error messages is best. If you don't find an answer immediately in the newsgroup, resist the temptation to post a request for help until you've done a bit more work on the problem. You may find that the answer is in a FAQ or one of the many documentation files that ships with Samba, or a solution might become evident when you run one of Samba's diagnostic tools. If nothing works, post a request in <EM CLASS="emphasis"> +comp.protocols.smb</em>, and be as specific as possible about what you have tried and what you are seeing. Include any error messages that appear. It may be several days before you receive help, so be patient and keep trying things while you wait.</p><P CLASS="para"> +Once you post a request for help, keep poking at the problem yourself. Most of us have had the experience of posting a Usenet article containing hundreds of lines of intricate detail, only to solve the problem an hour later after the article has blazed its way across several continents. The rule of thumb goes something like this: the more folks who have read your request, the simpler the solution. Usually this means that once everyone in the Unix community has seen your article, the solution will be something simple like, "Plug the computer into the wall socket."</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-951527"> +9.3.3 Samba Mailing Lists</a></h3><P CLASS="para">The following are mailing lists for support with Samba. See the Samba homepage, <a href="http://www.samba.org/"><I CLASS="filename">http://www.samba.org/</i></a> for information on subscribing and unsubscribing to these mailing lists:</p><DL CLASS="variablelist"> +<DT CLASS="term"> +samba-binaries@samba.org</dt><DD CLASS="listitem"> +<P CLASS="para"> +This mailing list has information on precompiled binaries for the Samba platform.</p></dd><DT CLASS="term"> +samba@samba.org</dt><DD CLASS="listitem"> +<P CLASS="para"> +This mailing list is the place to report suspected bugs in Samba.</p></dd><DT CLASS="term"> +samba-ntdom@samba.org</dt><DD CLASS="listitem"> +<P CLASS="para"> +This mailing list has information on support for domains (particularly Windows NT) with the Samba product.</p></dd><DT CLASS="term"> +samba-technical@samba.org</dt><DD CLASS="listitem"> +<P CLASS="para"> +This mailing list maintains debate about where the future of Samba is headed.</p></dd><DT CLASS="term"> +samba@samba.org</dt><DD CLASS="listitem"> +<P CLASS="para"> +This is the primary Samba mailing list that contains general questions and HOW-TO information on Samba.</p></dd></dl></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-946184"> +9.3.4 Samba Discussion Archives</a></h3><P CLASS="para">There is a search service for the primary Samba mailing list. At the time this book was written, it was listed under "searchable" in the Sources paragraph on the first page of the Samba site and its mirrors, <a href="http://samba.anu.edu.au/listproc/ghindex.html"><I CLASS="filename">http://samba.anu.edu.au/listproc/ghindex.html</i></a>.</p></div><DIV CLASS="sect2"> +<H3 CLASS="sect2"> +<A CLASS="title" NAME="ch09-pgfId-946188"> +9.3.5 Further Reading</a></h3><OL CLASS="orderedlist"> +<LI CLASS="listitem"> +<P CLASS="para">Craig Hunt; <EM CLASS="emphasis"> +TCP/IP Network Administration, 2nd Edition</em>. Sebastopol, CA: O'Reilly and Associates, 1997 (ISBN 1-56592-322-7).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +Hunt, Craig, and Robert Bruce Thompson; <EM CLASS="emphasis"> +Windows NT TCP/IP Network Administration. </em>Sebastopol, CA: O'Reilly and Associates, 1998 (<EM CLASS="emphasis"> +ISBN </em>1-56592-377-4).</p></li><LI CLASS="listitem"> +<P CLASS="para">Albitz, Paul, and Cricket Liu; <EM CLASS="emphasis"> +DNS and Bind, 3rd Edition</em>. Sebastopol, CA: O'Reilly & Associates, 1998 (ISBN 1-56592-512-2).</p></li><LI CLASS="listitem"> +<P CLASS="para"> +Stern, Hal; <EM CLASS="emphasis"> +Managing </em><EM CLASS="emphasis">NFS and NIS</em>. Sebastopol, CA: O'Reilly & Associates, 1991 (ISBN 0-937175-75-7).</p></li></ol></div></div></blockquote> +<div> +<center> +<hr noshade size=1><TABLE WIDTH="515" BORDER="0" CELLSPACING="0" CELLPADDING="0"> +<TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172"> +<A CLASS="sect1" HREF="ch09_02.html" TITLE="9.2 The Fault Tree"> +<IMG SRC="gifs/txtpreva.gif" ALT="Previous: 9.2 The Fault Tree" BORDER="0"></a></td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="book" HREF="index.html" TITLE=""> +<IMG SRC="gifs/txthome.gif" ALT="" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +<A CLASS="appendix" HREF="appa_01.html" TITLE="A. Configuring Samba with SSL"> +<IMG SRC="gifs/txtnexta.gif" ALT="Next: A. Configuring Samba with SSL" BORDER="0"></a></td></tr><TR> +<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="172">9.2 The Fault Tree</td><TD ALIGN="CENTER" VALIGN="TOP" WIDTH="171"> +<A CLASS="index" HREF="inx.html" TITLE="Book Index"> +<IMG SRC="gifs/index.gif" ALT="Book Index" BORDER="0"></a></td><TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="172"> +A. Configuring Samba with SSL</td></tr></table><hr noshade size=1></center> +</div> + +<!-- End of sample chapter --> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/figs/sam.0101.gif b/docs/htmldocs/using_samba/figs/sam.0101.gif Binary files differnew file mode 100644 index 0000000000..ce022dd322 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0101.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0102.gif b/docs/htmldocs/using_samba/figs/sam.0102.gif Binary files differnew file mode 100644 index 0000000000..2c26743160 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0102.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0103.gif b/docs/htmldocs/using_samba/figs/sam.0103.gif Binary files differnew file mode 100644 index 0000000000..480b51bdb2 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0103.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0104.gif b/docs/htmldocs/using_samba/figs/sam.0104.gif Binary files differnew file mode 100644 index 0000000000..a580bfd9da --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0104.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0105.gif b/docs/htmldocs/using_samba/figs/sam.0105.gif Binary files differnew file mode 100644 index 0000000000..45782f6a54 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0105.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0106.gif b/docs/htmldocs/using_samba/figs/sam.0106.gif Binary files differnew file mode 100644 index 0000000000..7e43f6a829 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0106.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0107.gif b/docs/htmldocs/using_samba/figs/sam.0107.gif Binary files differnew file mode 100644 index 0000000000..60f24ce060 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0107.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0108.gif b/docs/htmldocs/using_samba/figs/sam.0108.gif Binary files differnew file mode 100644 index 0000000000..93b036c736 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0108.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0109.gif b/docs/htmldocs/using_samba/figs/sam.0109.gif Binary files differnew file mode 100644 index 0000000000..ec01228ef7 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0109.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0110.gif b/docs/htmldocs/using_samba/figs/sam.0110.gif Binary files differnew file mode 100644 index 0000000000..9695cf7c61 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0110.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0111.gif b/docs/htmldocs/using_samba/figs/sam.0111.gif Binary files differnew file mode 100644 index 0000000000..4dbc2dba41 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0111.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0112.gif b/docs/htmldocs/using_samba/figs/sam.0112.gif Binary files differnew file mode 100644 index 0000000000..4f559e0d0f --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0112.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0113.gif b/docs/htmldocs/using_samba/figs/sam.0113.gif Binary files differnew file mode 100644 index 0000000000..5d8cdaef6b --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0113.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0114.gif b/docs/htmldocs/using_samba/figs/sam.0114.gif Binary files differnew file mode 100644 index 0000000000..291e6f0c82 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0114.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0201.gif b/docs/htmldocs/using_samba/figs/sam.0201.gif Binary files differnew file mode 100644 index 0000000000..e6f97f6301 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0201.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0202.gif b/docs/htmldocs/using_samba/figs/sam.0202.gif Binary files differnew file mode 100644 index 0000000000..0490c08571 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0202.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0203.gif b/docs/htmldocs/using_samba/figs/sam.0203.gif Binary files differnew file mode 100644 index 0000000000..a24c481860 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0203.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0204.gif b/docs/htmldocs/using_samba/figs/sam.0204.gif Binary files differnew file mode 100644 index 0000000000..e446b1d4f1 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0204.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0301.gif b/docs/htmldocs/using_samba/figs/sam.0301.gif Binary files differnew file mode 100644 index 0000000000..82306d6cc9 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0301.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0302.gif b/docs/htmldocs/using_samba/figs/sam.0302.gif Binary files differnew file mode 100644 index 0000000000..0916db72ae --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0302.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0303.gif b/docs/htmldocs/using_samba/figs/sam.0303.gif Binary files differnew file mode 100644 index 0000000000..18d63dbbb7 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0303.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0304.gif b/docs/htmldocs/using_samba/figs/sam.0304.gif Binary files differnew file mode 100644 index 0000000000..a0c5eee099 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0304.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0305.gif b/docs/htmldocs/using_samba/figs/sam.0305.gif Binary files differnew file mode 100644 index 0000000000..43be04655a --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0305.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0306.gif b/docs/htmldocs/using_samba/figs/sam.0306.gif Binary files differnew file mode 100644 index 0000000000..be7609d943 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0306.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0307.gif b/docs/htmldocs/using_samba/figs/sam.0307.gif Binary files differnew file mode 100644 index 0000000000..258d3390bc --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0307.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0308.gif b/docs/htmldocs/using_samba/figs/sam.0308.gif Binary files differnew file mode 100644 index 0000000000..316643ccfb --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0308.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0309.gif b/docs/htmldocs/using_samba/figs/sam.0309.gif Binary files differnew file mode 100644 index 0000000000..4a9d5d762b --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0309.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0310.gif b/docs/htmldocs/using_samba/figs/sam.0310.gif Binary files differnew file mode 100644 index 0000000000..37262b91be --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0310.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0311.gif b/docs/htmldocs/using_samba/figs/sam.0311.gif Binary files differnew file mode 100644 index 0000000000..c25e96f936 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0311.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0312.gif b/docs/htmldocs/using_samba/figs/sam.0312.gif Binary files differnew file mode 100644 index 0000000000..8823f38eb1 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0312.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0313.gif b/docs/htmldocs/using_samba/figs/sam.0313.gif Binary files differnew file mode 100644 index 0000000000..981a684988 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0313.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0314.gif b/docs/htmldocs/using_samba/figs/sam.0314.gif Binary files differnew file mode 100644 index 0000000000..9a7ed5858e --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0314.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0315.gif b/docs/htmldocs/using_samba/figs/sam.0315.gif Binary files differnew file mode 100644 index 0000000000..ed4bcc4220 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0315.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0316.gif b/docs/htmldocs/using_samba/figs/sam.0316.gif Binary files differnew file mode 100644 index 0000000000..99908ac7d3 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0316.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0317.gif b/docs/htmldocs/using_samba/figs/sam.0317.gif Binary files differnew file mode 100644 index 0000000000..1489901006 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0317.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0318.gif b/docs/htmldocs/using_samba/figs/sam.0318.gif Binary files differnew file mode 100644 index 0000000000..263650a274 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0318.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0319.gif b/docs/htmldocs/using_samba/figs/sam.0319.gif Binary files differnew file mode 100644 index 0000000000..0d1c934a56 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0319.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0320.gif b/docs/htmldocs/using_samba/figs/sam.0320.gif Binary files differnew file mode 100644 index 0000000000..061ce27cb1 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0320.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0321.gif b/docs/htmldocs/using_samba/figs/sam.0321.gif Binary files differnew file mode 100644 index 0000000000..f40fbbedca --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0321.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0322.gif b/docs/htmldocs/using_samba/figs/sam.0322.gif Binary files differnew file mode 100644 index 0000000000..f421311dfc --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0322.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0323.gif b/docs/htmldocs/using_samba/figs/sam.0323.gif Binary files differnew file mode 100644 index 0000000000..578ffda552 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0323.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0324.gif b/docs/htmldocs/using_samba/figs/sam.0324.gif Binary files differnew file mode 100644 index 0000000000..4ab9ceb598 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0324.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0325.gif b/docs/htmldocs/using_samba/figs/sam.0325.gif Binary files differnew file mode 100644 index 0000000000..f6da1e7434 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0325.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0326.gif b/docs/htmldocs/using_samba/figs/sam.0326.gif Binary files differnew file mode 100644 index 0000000000..df6313794d --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0326.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0327.gif b/docs/htmldocs/using_samba/figs/sam.0327.gif Binary files differnew file mode 100644 index 0000000000..1e77439215 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0327.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0328.gif b/docs/htmldocs/using_samba/figs/sam.0328.gif Binary files differnew file mode 100644 index 0000000000..7baa0ef4e6 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0328.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0401.gif b/docs/htmldocs/using_samba/figs/sam.0401.gif Binary files differnew file mode 100644 index 0000000000..a62d0d5675 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0401.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0402.gif b/docs/htmldocs/using_samba/figs/sam.0402.gif Binary files differnew file mode 100644 index 0000000000..ecf03ca8c8 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0402.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0403.gif b/docs/htmldocs/using_samba/figs/sam.0403.gif Binary files differnew file mode 100644 index 0000000000..755522854a --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0403.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0404.gif b/docs/htmldocs/using_samba/figs/sam.0404.gif Binary files differnew file mode 100644 index 0000000000..0d28182e52 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0404.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0405.gif b/docs/htmldocs/using_samba/figs/sam.0405.gif Binary files differnew file mode 100644 index 0000000000..c7cc9d681b --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0405.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0406.gif b/docs/htmldocs/using_samba/figs/sam.0406.gif Binary files differnew file mode 100644 index 0000000000..a4f82804aa --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0406.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0407.gif b/docs/htmldocs/using_samba/figs/sam.0407.gif Binary files differnew file mode 100644 index 0000000000..84ca4e87c7 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0407.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0501.gif b/docs/htmldocs/using_samba/figs/sam.0501.gif Binary files differnew file mode 100644 index 0000000000..dac53c673a --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0501.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0502.gif b/docs/htmldocs/using_samba/figs/sam.0502.gif Binary files differnew file mode 100644 index 0000000000..46e282ce31 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0502.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0503.gif b/docs/htmldocs/using_samba/figs/sam.0503.gif Binary files differnew file mode 100644 index 0000000000..786de36e69 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0503.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0504.gif b/docs/htmldocs/using_samba/figs/sam.0504.gif Binary files differnew file mode 100644 index 0000000000..bece7b9e0a --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0504.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0505.gif b/docs/htmldocs/using_samba/figs/sam.0505.gif Binary files differnew file mode 100644 index 0000000000..6460e0436d --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0505.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0506.gif b/docs/htmldocs/using_samba/figs/sam.0506.gif Binary files differnew file mode 100644 index 0000000000..e7282b0286 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0506.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0507.gif b/docs/htmldocs/using_samba/figs/sam.0507.gif Binary files differnew file mode 100644 index 0000000000..bc7f2fda9a --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0507.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0508.gif b/docs/htmldocs/using_samba/figs/sam.0508.gif Binary files differnew file mode 100644 index 0000000000..95b7ad98c4 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0508.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0601.gif b/docs/htmldocs/using_samba/figs/sam.0601.gif Binary files differnew file mode 100644 index 0000000000..e826dd5141 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0601.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0602.gif b/docs/htmldocs/using_samba/figs/sam.0602.gif Binary files differnew file mode 100644 index 0000000000..dce39b1c40 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0602.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0603.gif b/docs/htmldocs/using_samba/figs/sam.0603.gif Binary files differnew file mode 100644 index 0000000000..15ad6f05d7 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0603.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0604.gif b/docs/htmldocs/using_samba/figs/sam.0604.gif Binary files differnew file mode 100644 index 0000000000..cd9820d00e --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0604.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0605.gif b/docs/htmldocs/using_samba/figs/sam.0605.gif Binary files differnew file mode 100644 index 0000000000..db8e9c5e9f --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0605.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0606.gif b/docs/htmldocs/using_samba/figs/sam.0606.gif Binary files differnew file mode 100644 index 0000000000..a4c5e577e5 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0606.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0701.gif b/docs/htmldocs/using_samba/figs/sam.0701.gif Binary files differnew file mode 100644 index 0000000000..5933bdabbd --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0701.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0702.gif b/docs/htmldocs/using_samba/figs/sam.0702.gif Binary files differnew file mode 100644 index 0000000000..c1160e2838 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0702.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0703.gif b/docs/htmldocs/using_samba/figs/sam.0703.gif Binary files differnew file mode 100644 index 0000000000..653e9b9761 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0703.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0704.gif b/docs/htmldocs/using_samba/figs/sam.0704.gif Binary files differnew file mode 100644 index 0000000000..78d5a439ea --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0704.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0705.gif b/docs/htmldocs/using_samba/figs/sam.0705.gif Binary files differnew file mode 100644 index 0000000000..39cee4c856 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0705.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0706.gif b/docs/htmldocs/using_samba/figs/sam.0706.gif Binary files differnew file mode 100644 index 0000000000..8725542429 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0706.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0707.gif b/docs/htmldocs/using_samba/figs/sam.0707.gif Binary files differnew file mode 100644 index 0000000000..09abcd5e78 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0707.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0708.gif b/docs/htmldocs/using_samba/figs/sam.0708.gif Binary files differnew file mode 100644 index 0000000000..bd5466b319 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0708.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0709.gif b/docs/htmldocs/using_samba/figs/sam.0709.gif Binary files differnew file mode 100644 index 0000000000..28452fd232 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0709.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0801.gif b/docs/htmldocs/using_samba/figs/sam.0801.gif Binary files differnew file mode 100644 index 0000000000..04e9210e54 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0801.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0802.gif b/docs/htmldocs/using_samba/figs/sam.0802.gif Binary files differnew file mode 100644 index 0000000000..bf1718c93b --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0802.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0803.gif b/docs/htmldocs/using_samba/figs/sam.0803.gif Binary files differnew file mode 100644 index 0000000000..bb5739154a --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0803.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0804.gif b/docs/htmldocs/using_samba/figs/sam.0804.gif Binary files differnew file mode 100644 index 0000000000..eceb287e62 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0804.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0805.gif b/docs/htmldocs/using_samba/figs/sam.0805.gif Binary files differnew file mode 100644 index 0000000000..5a599e1345 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0805.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0901.gif b/docs/htmldocs/using_samba/figs/sam.0901.gif Binary files differnew file mode 100644 index 0000000000..1965600ab9 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0901.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0902.gif b/docs/htmldocs/using_samba/figs/sam.0902.gif Binary files differnew file mode 100644 index 0000000000..f604d0ed09 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0902.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0903.gif b/docs/htmldocs/using_samba/figs/sam.0903.gif Binary files differnew file mode 100644 index 0000000000..1013d45342 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0903.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0904.gif b/docs/htmldocs/using_samba/figs/sam.0904.gif Binary files differnew file mode 100644 index 0000000000..db13646f3d --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0904.gif diff --git a/docs/htmldocs/using_samba/figs/sam.0905.gif b/docs/htmldocs/using_samba/figs/sam.0905.gif Binary files differnew file mode 100644 index 0000000000..ef8c89bebb --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.0905.gif diff --git a/docs/htmldocs/using_samba/figs/sam.aa01.gif b/docs/htmldocs/using_samba/figs/sam.aa01.gif Binary files differnew file mode 100644 index 0000000000..495b649cd0 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.aa01.gif diff --git a/docs/htmldocs/using_samba/figs/sam.ab01.gif b/docs/htmldocs/using_samba/figs/sam.ab01.gif Binary files differnew file mode 100644 index 0000000000..f737967505 --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.ab01.gif diff --git a/docs/htmldocs/using_samba/figs/sam.ab02.gif b/docs/htmldocs/using_samba/figs/sam.ab02.gif Binary files differnew file mode 100644 index 0000000000..6090cfd51d --- /dev/null +++ b/docs/htmldocs/using_samba/figs/sam.ab02.gif diff --git a/docs/htmldocs/using_samba/gifs/index.gif b/docs/htmldocs/using_samba/gifs/index.gif Binary files differnew file mode 100644 index 0000000000..b45dcd5851 --- /dev/null +++ b/docs/htmldocs/using_samba/gifs/index.gif diff --git a/docs/htmldocs/using_samba/gifs/samba.s.gif b/docs/htmldocs/using_samba/gifs/samba.s.gif Binary files differnew file mode 100644 index 0000000000..4984d0f8f3 --- /dev/null +++ b/docs/htmldocs/using_samba/gifs/samba.s.gif diff --git a/docs/htmldocs/using_samba/gifs/txthome.gif b/docs/htmldocs/using_samba/gifs/txthome.gif Binary files differnew file mode 100644 index 0000000000..5598a0ff93 --- /dev/null +++ b/docs/htmldocs/using_samba/gifs/txthome.gif diff --git a/docs/htmldocs/using_samba/gifs/txtnexta.gif b/docs/htmldocs/using_samba/gifs/txtnexta.gif Binary files differnew file mode 100644 index 0000000000..b6d67311ad --- /dev/null +++ b/docs/htmldocs/using_samba/gifs/txtnexta.gif diff --git a/docs/htmldocs/using_samba/gifs/txtpreva.gif b/docs/htmldocs/using_samba/gifs/txtpreva.gif Binary files differnew file mode 100644 index 0000000000..2b040b9b51 --- /dev/null +++ b/docs/htmldocs/using_samba/gifs/txtpreva.gif diff --git a/docs/htmldocs/using_samba/index.html b/docs/htmldocs/using_samba/index.html new file mode 100644 index 0000000000..f1b4ccec6e --- /dev/null +++ b/docs/htmldocs/using_samba/index.html @@ -0,0 +1,168 @@ +<HTML> +<HEAD> +<TITLE></title> +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> + +<center> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0"> +<tr> +<td valign="TOP"> +<a href="http://www.oreilly.com/catalog/samba/"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</a> +</td> +<td valign="center"> +<H2>Using Samba</H2> +<font size="-1"> +Robert Eckstein, David Collier-Brown, Peter Kelly<br> +1st Edition November 1999<br> +1-56592-449-5, Order Number: 4495<br> +416 pages, $34.95 +</font> +<p> +<a href="http://www.oreilly.com/catalog/samba/">Buy the hardcopy version</a> + +</td> +</tr> +</table> +</center> + +<hr size=1 noshade> +<!--sample chapter begins --> + +<blockquote> +<DIV CLASS="toc"> +<H2> +Table of Contents</h2><P CLASS="toc"> +<a CLASS="chapter" HREF="licenseinfo.html" TITLE="">License Information</a><p> +<a CLASS="chapter" HREF="this_edition.html" TITLE="">This Edition</a><p> +<a CLASS="chapter" HREF="ch01_01.html" TITLE="">Chapter 1: <CITE CLASS="chapter">Learning the Samba</cite></a><br> + <blockquote> + <a CLASS="chapter" HREF="ch01_01.html#s1" TITLE="">Chapter 1.1: <CITE CLASS="chapter">What is Samba?</cite></a><br> + <a CLASS="chapter" HREF="ch01_02.html" TITLE="">Chapter 1.2: <CITE CLASS="chapter">What Can Samba Do For Me?</cite></a><br> + <a CLASS="chapter" HREF="ch01_03.html" TITLE="">Chapter 1.3: <CITE CLASS="chapter">Getting Familiar with a SMB/CIFS Network</cite></a><br> + <a CLASS="chapter" HREF="ch01_04.html" TITLE="">Chapter 1.4: <CITE CLASS="chapter">Microsoft Implementations</cite></a><br> + <a CLASS="chapter" HREF="ch01_05.html" TITLE="">Chapter 1.5: <CITE CLASS="chapter">An Overview of the Samba Distribution</cite></a><br> + <a CLASS="chapter" HREF="ch01_06.html" TITLE="">Chapter 1.6: <CITE CLASS="chapter">How Can I Get Samba?</cite></a><br> + <a CLASS="chapter" HREF="ch01_07.html" TITLE="">Chapter 1.7: <CITE CLASS="chapter">What's New in Samba 2.0?</cite></a><br> + <a CLASS="chapter" HREF="ch01_08.html" TITLE="">Chapter 1.8: <CITE CLASS="chapter">And That's Not All...</cite></a><br> + </blockquote> +<a CLASS="chapter" HREF="ch02_01.html" title="">Chapter 2: <CITE CLASS="chapter">Installing Samba on a Unix System</cite></a><br> + <blockquote> + <a CLASS="chapter" HREF="ch02_01.html#s1" TITLE="">Chapter 2.1: <CITE CLASS="chapter">Downloading the Samba Distribution</cite></a><br> + <a CLASS="chapter" HREF="ch02_02.html" TITLE="">Chapter 2.2: <CITE CLASS="chapter">Configuring Samba</cite></a><br> + <a CLASS="chapter" HREF="ch02_03.html" TITLE="">Chapter 2.3: <CITE CLASS="chapter">Compiling and Installing Samba</cite></a><br> + <a CLASS="chapter" HREF="ch02_04.html" TITLE="">Chapter 2.4: <CITE CLASS="chapter">A Basic Samba Configuration File</cite></a><br> + <a CLASS="chapter" HREF="ch02_05.html" TITLE="">Chapter 2.5: <CITE CLASS="chapter">Starting the Samba Daemons</cite></a><br> + <a CLASS="chapter" HREF="ch02_06.html" TITLE="">Chapter 2.6: <CITE CLASS="chapter">Testing the Samba Daemons</cite></a><br> + </blockquote> +<a CLASS="chapter" HREF="ch03_01.html" title="">Chapter 3: <CITE CLASS="chapter">Configuring Windows Clients</cite></a><br> + <blockquote> +<a CLASS="chapter" HREF="ch03_01.html#s1" title="">Chapter 3.1: <CITE CLASS="chapter">Setting Up Windows 95/98 Computers</cite></a><br> +<a CLASS="chapter" HREF="ch03_02.html" title="">Chapter 3.2: <CITE CLASS="chapter">Setting Up Windows NT 4.0 Computers</cite></a><br> +<a CLASS="chapter" HREF="ch03_03.html" title="">Chapter 3.3: <CITE CLASS="chapter">An Introduction to SMB/CIFS</cite></a><br> + </blockquote> +<a CLASS="chapter" HREF="ch04_01.html" Title="">Chapter 4: <CITE CLASS="chapter">Disk Shares</cite></a><br> + <blockquote> +<a CLASS="chapter" HREF="ch04_01.html#s1" Title="">Chapter 4.1: <CITE CLASS="chapter">Learning the Samba Configuration File</cite></a><br> +<a CLASS="chapter" HREF="ch04_02.html" Title="">Chapter 4.2: <CITE CLASS="chapter">Special Sections</cite></a><br> +<a CLASS="chapter" HREF="ch04_03.html" Title="">Chapter 4.3: <CITE CLASS="chapter">Configuration File Options</cite></a><br> +<a CLASS="chapter" HREF="ch04_04.html" Title="">Chapter 4.4: <CITE CLASS="chapter">Server Configuration</cite></a><br> +<a CLASS="chapter" HREF="ch04_05.html" Title="">Chapter 4.5: <CITE CLASS="chapter">Disk Share Configuration</cite></a><br> +<a CLASS="chapter" HREF="ch04_06.html" Title="">Chapter 4.6: <CITE CLASS="chapter">Networking Options with Samba</cite></a><br> +<a CLASS="chapter" HREF="ch04_07.html" Title="">Chapter 4.7: <CITE CLASS="chapter">Virtual Servers</cite></a><br> +<a CLASS="chapter" HREF="ch04_08.html" Title="">Chapter 4.8: <CITE CLASS="chapter">Logging Configuration Options</cite></a><br> + </blockquote> +<a CLASS="chapter" HREF="ch05_01.html" title="">Chapter 5: <CITE CLASS="chapter">Browsing and Advanced Disk Shares</cite></a><br> + <blockquote> +<a CLASS="chapter" HREF="ch05_01.html#s1" Title="">Chapter 5.1: <CITE CLASS="chapter">Browsing</cite></a><br> +<a CLASS="chapter" HREF="ch05_02.html" Title="">Chapter 5.2: <CITE CLASS="chapter">Filesystem Differences</cite></a><br> +<a CLASS="chapter" HREF="ch05_03.html" Title="">Chapter 5.3: <CITE CLASS="chapter">File Permissions and Attributes on MS-DOS and Unix</cite></a><br> +<a CLASS="chapter" HREF="ch05_04.html" Title="">Chapter 5.4: <CITE CLASS="chapter">Name Mangling and Case</cite></a><br> +<a CLASS="chapter" HREF="ch05_05.html" Title="">Chapter 5.5: <CITE CLASS="chapter">Locks and Oplocks</cite></a><br> + </blockquote> +<a CLASS="chapter" HREF="ch06_01.html" title="">Chapter 6: <CITE CLASS="chapter">Users, Security, and Domains</cite></a><br> + <blockquote> +<a CLASS="chapter" HREF="ch06_01.html#s1" Title="">Chapter 6.1: <CITE CLASS="chapter">Users and Groups</cite></a><br> +<a CLASS="chapter" HREF="ch06_02.html" Title="">Chapter 6.2: <CITE CLASS="chapter">Controlling Access to Shares</cite></a><br> +<a CLASS="chapter" HREF="ch06_03.html" Title="">Chapter 6.3: <CITE CLASS="chapter">Authentication Security</cite></a><br> +<a CLASS="chapter" HREF="ch06_04.html" Title="">Chapter 6.4: <CITE CLASS="chapter">Passwords</cite></a><br> +<a CLASS="chapter" HREF="ch06_05.html" Title="">Chapter 6.5: <CITE CLASS="chapter">Windows Domains</cite></a><br> +<a CLASS="chapter" HREF="ch06_06.html" Title="">Chapter 6.6: <CITE CLASS="chapter">Logon Scripts</cite></a><br> + </blockquote> +<a CLASS="chapter" HREF="ch07_01.html" Title="">Chapter 7: <CITE CLASS="chapter">Printing and Name Resolution</cite></a><br> + <blockquote> +<a CLASS="chapter" HREF="ch07_01.html#s1" Title="">Chapter 7.1: <CITE CLASS="chapter">Sending Print Jobs to Samba</cite></a><br> +<a CLASS="chapter" HREF="ch07_02.html" Title="">Chapter 7.2: <CITE CLASS="chapter">Printing to Windows Client Printers</cite></a><br> +<a CLASS="chapter" HREF="ch07_03.html" Title="">Chapter 7.3: <CITE CLASS="chapter">Name Resolution with Samba</cite></a><br> + </blockquote> +<a CLASS="chapter" HREF="ch08_01.html" title="">Chapter 8: <CITE CLASS="chapter">Additional Samba Information</cite></a><br> + <blockquote> +<a CLASS="chapter" HREF="ch08_01.html#s1" Title="">Chapter 8.1: <CITE CLASS="chapter">Supporting Programmers</cite></a><br> +<a CLASS="chapter" HREF="ch08_02.html" Title="">Chapter 8.2: <CITE CLASS="chapter">Magic Scripts</cite></a><br> +<a CLASS="chapter" HREF="ch08_03.html" Title="">Chapter 8.3: <CITE CLASS="chapter">Internationalization</cite></a><br> +<a CLASS="chapter" HREF="ch08_04.html" Title="">Chapter 8.4: <CITE CLASS="chapter">WinPopup Messages</cite></a><br> +<a CLASS="chapter" HREF="ch08_05.html" Title="">Chapter 8.5: <CITE CLASS="chapter">Recently Added Options</cite></a><br> +<a CLASS="chapter" HREF="ch08_06.html" Title="">Chapter 8.6: <CITE CLASS="chapter">Miscellaneous Options</cite></a><br> +<a CLASS="chapter" HREF="ch08_07.html" Title="">Chapter 8.7: <CITE CLASS="chapter">Backups with smbtar</cite></a><br> + </blockquote> +<a CLASS="chapter" HREF="ch09_01.html" title="">Chapter 9: <CITE CLASS="chapter">Troubleshooting Samba</cite></a><br> + <blockquote> +<a CLASS="chapter" HREF="ch09_01.html#s1" Title="">Chapter 9.1: <CITE CLASS="chapter">The Tool Bag</cite></a><br> +<a CLASS="chapter" HREF="ch09_02.html" Title="">Chapter 9.2: <CITE CLASS="chapter">The Fault Tree</cite></a><br> +<a CLASS="chapter" HREF="ch09_03.html" Title="">Chapter 9.3: <CITE CLASS="chapter">Extra Resources</cite></a><br> + </blockquote> + +<a CLASS="appendix" HREF="appa_01.html" title="">Appendix A: <CITE CLASS="appendix">Configuring Samba with SSL</cite></a><br> + <blockquote> +<a CLASS="chapter" HREF="appa_01.html#appa-pgfId-986440" Title="">Appendix A.1: <CITE CLASS="chapter">About Certificates</cite></a><br> +<a CLASS="chapter" HREF="appa_02.html" Title="">Appendix A.2: <CITE CLASS="chapter">Requirements</cite></a><br> +<a CLASS="chapter" HREF="appa_03.html" Title="">Appendix A.3: <CITE CLASS="chapter">Installing SSLeay</cite></a><br> +<a CLASS="chapter" HREF="appa_04.html" Title="">Appendix A.4: <CITE CLASS="chapter">Setting Up SSL Proxy</cite></a><br> +<a CLASS="chapter" HREF="appa_05.html" Title="">Appendix A.5: <CITE CLASS="chapter">SSL Configuration Options</cite></a><br> + </blockquote> +<a CLASS="appendix" HREF="appb_01.html" title="">Appendix B: <CITE CLASS="appendix">Samba Performance Tuning</cite></a><br> + <blockquote> +<a CLASS="chapter" HREF="appb_01.html#appb-47134" Title="">Appendix B.1: <CITE CLASS="chapter">A Simple Benchmark</cite></a><br> +<a CLASS="chapter" HREF="appb_02.html" Title="">Appendix B.2: <CITE CLASS="chapter">Samba Tuning</cite></a><br> +<a CLASS="chapter" HREF="appb_03.html" Title="">Appendix B.3: <CITE CLASS="chapter">Sizing Samba Servers</cite></a><br> + </blockquote> +<a CLASS="appendix" HREF="appc_01.html" Title="">Appendix C: <CITE CLASS="appendix">Samba Configuration Option Quick Reference</cite></a><br> +<p> +<a CLASS="appendix" HREF="appd_01.html" Title="">Appendix D: <CITE CLASS="appendix">Summary of Samba Daemons and Commands</cite></a><br> +<p> +<a CLASS="appendix" HREF="appe_01.html" Title="">Appendix E: <CITE CLASS="appendix">Downloading Samba with CVS</cite></a><br> +<p> +<a CLASS="appendix" HREF="appf_01.html" Title="">Appendix F: <CITE CLASS="appendix">Sample Configuration File</cite></a><br> +<p> + +<a HREF="inx.html" Title="">Index</a><br> + +</p></div> +</blockquote> + +<!-- End of sample chapter --> + +<hr noshade size=1></center> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> +</html> diff --git a/docs/htmldocs/using_samba/inx.html b/docs/htmldocs/using_samba/inx.html new file mode 100644 index 0000000000..34207d7a74 --- /dev/null +++ b/docs/htmldocs/using_samba/inx.html @@ -0,0 +1,1344 @@ +<html> +<head> +<title>Using Samba</title> +<META NAME="metadata" CONTENT="dublincore.0.1"> +<META NAME="subject" CONTENT="Using Samba"> +<META NAME="title" CONTENT="O'Reilly Catalog Index: Using Samba"> +<META NAME="otheragent" CONTENT="cron job"> +<META NAME="source" CONTENT="internal database"> +<META NAME="publisher" CONTENT="O'Reilly & Associates, Inc."> +<META NAME="objecttype" CONTENT="catalog index"> +<META NAME="form" CONTENT="html"> +</head> +<BODY BGCOLOR="#FFFFFF" > +<table border=0 cellspacing=0 cellpadding=0 width=90%> +<tr> +<td> +<h2>Using Samba</h2> +<h3>Index</h3> + +<PRE> +</pre> +<A HREF="#A">[ A ]</A>, +<A HREF="#B">[ B ]</A>, +<A HREF="#C">[ C ]</A>, +<A HREF="#D">[ D ]</A>, +<A HREF="#E">[ E ]</A>, +<A HREF="#F">[ F ]</A>, +<A HREF="#G">[ G ]</A>, +<A HREF="#H">[ H ]</A>, +<A HREF="#I">[ I ]</A>, +<A HREF="#J">[ J ]</A>, +<A HREF="#K">[ K ]</A>, +<A HREF="#L">[ L ]</A>, +<A HREF="#M">[ M ]</A>, +<A HREF="#N">[ N ]</A>, +<A HREF="#O">[ O ]</A>, +<A HREF="#P">[ P ]</A>, +<A HREF="#Q">[ Q ]</A>, +<A HREF="#R">[ R ]</A>, +<A HREF="#S">[ S ]</A>, +<A HREF="#T">[ T ]</A>, +<A HREF="#U">[ U ]</A>, +<A HREF="#V">[ V ]</A>, +<A HREF="#W">[ W ]</A>, +<A HREF="#Y">[ Y ]</A>, + + +<BR><> (angled brackets), 14 +<BR>* (asterisk), 169 +<BR>\ (backslash) in smb.conf file, 85 +<BR>\\ (backslashes, two) in directories, 5 +<BR>: (colon), 6 +<BR>\ (continuation character), 85 +<BR>. (dot), 128, 134 +<BR># (hash mark), 85 +<BR>% (percent sign), 86 +<BR>. (period), 128 +<BR>? (question mark), 135 +<BR>; (semicolon), 85 +<BR>/ (slash character), 129, 134-135 +<BR>/ (slash) in shares, 116 +<BR>_ (underscore) 116 +<BR>* wildcard, 177 + +<P><A NAME="A"><B>A</B><A HREF="inx.html">[ Top ]</A> +<BR>access-control options (shares), 160-162 +<BR>accessing Samba server, 61 +<BR>accounts, 51-53 +<BR>active connections, option for, 244 +<BR>addresses, networking option for, 106 +<BR>addtosmbpass executable, 176 +<BR>admin users option, 161 +<BR>AFS files, support for, 35 +<BR>aliases +<BR> multiple, 29 +<BR> for NetBIOS names, 107 +<BR>alid users option, 161 +<BR>announce as option, 123 +<BR>announce version option, 123 +<BR>API (application programming interface), 9 +<BR>archive files, 137 +<BR>authentication, 19, 164-171 +<BR> mechanisms for, 35 +<BR> NT domain, 170 +<BR> share-level option for, 192 +<BR>auto services option, 124 +<BR>automounter, support for, 35 +<BR>awk script, 176 +<P><A NAME="B"><B>B</B><A HREF="inx.html">[ Top ]</A> +<BR>backup browsers +<BR> local master browser, 22 +<BR> per local master browser, 23 +<BR> maximum number per workgroup, 22 +<BR>backup domain controllers (BDCs), 20 +<BR>backups, with smbtar program, 245-248 +<BR>backwards compatibility +<BR> elections and, 23 +<BR> for filenames, 143 +<BR> Windows domains and, 20 +<BR>base directory, 40 +<BR>.BAT scripts, 192 +<BR>BDCs (backup domain controllers), 20 +<BR>binary vs. source files, 32 +<BR>bind interfaces only option, 106 +<BR>bindings, 71 +<BR>Bindings tab, 60 +<BR>blocking locks option, 152 +<BR>b-node, 13 +<BR>boolean type, 90 +<BR>bottlenecks, 320-328 +<BR> reducing, 321-326 +<BR> types of, 320 +<BR>broadcast addresses, troubleshooting, 289 +<BR>broadcast registration, 13 +<BR>broadcast resolution, 13, 59 +<BR>broadcasting +<BR> troubleshooting with tcpdump utility, 255 +<BR> (see also browsing; name resolution) +<BR>browse lists, 21, 116 +<BR> options for, 124, 127 +<BR> propagation, 24 +<BR> restricting shares from, 115 +<BR>browsing, 21-23, 114-127 +<BR> client-side, testing with net view, 280 +<BR> configuration options for, 122-127 +<BR> elections, 23, 116-119 +<BR> machines, list of, 21 +<BR> options for, list of, 122 +<BR> preventing, 115 +<BR> resources of a specific machine, 21-23 +<BR> server from client, 281 +<BR> troubleshooting, 275-282 +<BR> with smbclient, 276-278 +<BR>bug avoidance options, 240-245 +<BR> list of, 240-241 +<P><A NAME="C"><B>C</B><A HREF="inx.html">[ Top ]</A> +<BR>cache size, new option for (Samba version 2.0), 239 +<BR>cache time (printers), option for, 220 +<BR>capitalization, 84 +<BR>Carnegie Mellon University, 35 +<BR>carriage-returns for scripts, 193 +<BR>case sensitivity +<BR> hostnames and, 5 +<BR> options for, 146 +<BR> usernames and, 163 +<BR>CD-ROM with this book +<BR> Samba distribution, 28, 32 +<BR> testing tools, 28 +<BR>certificate authority, 300-303 +<BR>change notification, new option for (Samba version 2.0), 239 +<BR>change notify timeout option, 239 +<BR>Change Windows Password dialog box, 52 +<BR>changes at runtime, 85 +<BR>chat characters for passwords, 178 +<BR>CIFS (Common Internet File System), 3 +<BR> (see also SMB/CIFS protocol) +<BR>client code page option, 234 +<BR>client users (see users) +<BR>client variables, 86 +<BR>clients, testing with nmblookup program, 279 +<BR>.CMD scripts, 192 +<BR>code pages, 234 +<BR> multiple, 30 +<BR>coding system option, 235 +<BR>command string, SMB, 75 +<BR>commands for Samba, 366-377 +<BR>commas in values, 84 +<BR>comment option, 99 +<BR>comments in smb.conf (Samba configuration) file, 85 +<BR>compatibility, Samba with Windows NT, 30 +<BR>compilers, 33 +<BR>compiling Samba, 38-41 +<BR> in version 2.0, 29 +<BR>config file option, 91 +<BR>configuration files +<BR> for individual clients, 253 +<BR> machine-specific, 87 +<BR> sample of, 379-383 +<BR> smb.conf (Samba configuration) file (see smb.conf file) +<BR>configuration options +<BR> browsing, 122-127 +<BR> disk share, 97-100 +<BR> format of, 83 +<BR> list of, 329-356 +<BR> server, 94-96 +<BR>configuring disk shares, 96-100 +<BR>configuring DNS (Windows NT), 68 +<BR>configuring Samba, 34-38 +<BR> configuration file +<BR> creating, 41-45 +<BR> testing, 45 +<BR> (see also smb.conf (Samba configuration) file) +<BR> configure script +<BR> GNU, 34 +<BR> sample execution, 38 +<BR> options, 34-37 +<BR> performance tuning, 312-328 +<BR> benchmark for, 312, 314 +<BR> other options for, 319-328 +<BR> server, 93-96 +<BR> with SSL, 295-311 +<BR> requirements for, 296 +<BR>configuring TCP/IP networking protocol, 55, 66-71 +<BR>configuring Windows clients, 50-81 +<BR> Windows 95/98 computers, 50-63 +<BR> Windows NT 4.0 computers, 63-73 +<BR> basic configuration, 63-67 +<BR>configuring WINS address, 70 +<BR>connected systems, status of, 9 +<BR>connections +<BR> active, option for, 244 +<BR> current, list of, 370 +<BR> resources, connecting to, 81 +<BR> scripts for, 198 +<BR> SMB, 77 +<BR> testing, 259-263 +<BR> virtual, 78 +<BR>copy option, 92 +<BR>creation masks, 138 +<BR> option for, 140 +<BR>cryptography, private key, 35 +<BR>CVS (Concurrent Versions Systems), 378 +<BR>Cyclic Software, 378 +<P><A NAME="D"><B>D</B><A HREF="inx.html">[ Top ]</A> +<BR>daemons, 82, 359-362 +<BR> killing, 48 +<BR> messages generated by, reading, 8 +<BR> stand-alone, 47 +<BR> starting, 46-48 +<BR> status report, 8 +<BR> testing, 49 +<BR> with testparm, 266 +<BR> troubleshooting, 264-268 +<BR> Unix, 2 +<BR> viewing, 8 +<BR> (see also smbd daemon; nmbd daemon) +<BR>data transfer protocol, 6 +<BR>datagram service, 10, 16-18 +<BR>deadtime option, 241 +<BR>debug files, 49 +<BR>debug level option, 251, 314 +<BR>debug timestamp option, 112 +<BR>default case option, 146 +<BR>default services, 115 +<BR> option for, 124 +<BR>defending hostnames, 12 +<BR>delays, troubleshooting, 287 +<BR>delete, 142 +<BR>delete readonly option, 139, 142 +<BR>delete veto files option, 135 +<BR>dfree command option, 241 +<BR>DFS, support for, 35 +<BR>DHCP (Dynamic Host Configuration Protocol), 57, 67 +<BR>dialup connection, 53 +<BR>Digital Pathworks clients, option for, 244 +<BR>directories +<BR> barring users from viewing contents, 130, 133 +<BR> installation, 40 +<BR> permissions, options for, 140 +<BR> for Samba startup file, 363 +<BR> target, 40 +<BR> working, option for, 134 +<BR>directory mask option, 138, 141 +<BR>disabling/enabling features, 34 +<BR>discussion archives for Samba, 293 +<BR>disk quotas, support for, 37 +<BR>disk shares, 4-7, 49, 82-113 +<BR> advanced, 114-154 +<BR> configuring, 96-100 +<BR> creating, 96 +<BR> maximum size of, option for, 242 +<BR> path option, 98 +<BR>disk sync, options for, 245 +<BR>DMB (domain master browser), 119-122 +<BR> option for, 126 +<BR> resource type, 24 +<BR>DNS Configuration tab, 57 +<BR>DNS (Domain Name System), 57 +<BR> configuring, 68 +<BR> as fallback for WINS address, 71 +<BR> names +<BR> NetBIOS names and, 14 +<BR> resource types and, 15 +<BR> option for, 228 +<BR> resources for further information, 293 +<BR> tab, 68 +<BR>dns proxy option, 228 +<BR>docs directory, 34 +<BR> test utilities, 254 +<BR>documentation for Samba, 291 +<BR> importance of reading, 34 +<BR>domain controllers, 20, 169 +<BR> for Windows 95/98, 18-20 +<BR>domain group map option, 191 +<BR>domain logons, 28, 184 +<BR> configuring Windows 95/98 for, 188 +<BR> configuring Windows NT 4.0 for, 189 +<BR> scripts for, 192-200 +<BR>domain logons option, 190 +<BR>domain master browser (see DMB) +<BR>domain master option, 126 +<BR>Domain Name System (see DNS) +<BR>domain user map option, 191 +<BR>domain-level security, 164, 169-171 +<BR>domains, 18-20 +<BR> adding Samba server to Windows NT domain, 171 +<BR> behavior vs. Windows workgroups, 20 +<BR> controllers (see domain controllers) +<BR> logons (see domain logons) +<BR> new option for password timeout (Samba version 2.0), 239 +<BR> roles in assumed by Samba, 26 +<BR> Windows, 18, 28, 184-192 +<BR> authentication, 170 +<BR> caution when selecting, 190 +<BR> support for, 28 +<BR>dont descend option, 133 +<BR>DOS file permissions and attributes, 135-143 +<BR>DOS-formatted carriage returns, 193 +<BR>downloads +<BR> Samba, 32 +<BR> obtained using CVS, 378 +<BR> tcpdump utility, 78, 257 +<BR>drive letters, mapping, 5 +<BR>dynamically linked libraries, 33 +<P><A NAME="E"><B>E</B><A HREF="inx.html">[ Top ]</A> +<BR>elections, 23 +<BR> operating system values in, 117 +<BR> order of decisions in, 118 +<BR> role settings in, 117 +<BR> WINS servers and, 26 +<BR>enabling/disabling features, 34 +<BR>encrypt passwords option, 181 +<BR>encrypted passwords, 172 +<BR> Microsoft format, 183 +<BR> option for, 181 +<BR> vs. plaintext passwords, 173 +<BR>Entire Network icon, 4 +<BR>enumerated lists, 91 +<BR>errors +<BR> searching for, 38 +<BR> syntax, 45 +<BR>/etc/hosts file, 57, 60 +<BR>/etc/inetd.conf configuration files, 48 +<BR> adding SWAT tool to, 41 +<BR>/etc/resolv.conf file, 57 +<BR>/etc/services configuration file, adding SWAT tool to, 41, 48 +<BR>Ethernet adaptor cards, 53, 70 +<BR> linking to TCP/IP networking protocol, 55 +<BR>execute permissions, 47 +<BR>/export/samba/test directory, 42 +<P><A NAME="F"><B>F</B><A HREF="inx.html">[ Top ]</A> +<BR>fake directory create times option, 232 +<BR>fake oplocks option, 153 +<BR>FAQ, Samba, 291 +<BR>fast locking, 36 +<BR>fatal error, option for, 244 +<BR>fault tree, 257-291 +<BR> how to use, 257 +<BR>"File and Printer Sharing for Microsoft Networks", 53, 60, 246 +<BR>file creation masks, 138 +<BR>filenames +<BR> 8.3 format, 143 +<BR> limitations on, 143 +<BR> representing/resolving, 145 +<BR> Unix, option for, 245 +<BR>files +<BR> archive, 137 +<BR> attributes, 135-143 +<BR> deleting, option for, 129 +<BR> hidden, 128, 136 +<BR> options for, 134 +<BR> open, option for maximum number of, 243 +<BR> permissions, 135-143 +<BR> options for, 140 +<BR> read-only, 136 +<BR> deleting, 139, 142 +<BR> system, 136 +<BR> in use, status of, 9 +<BR> veto, 129-131 +<BR> option for deleting, 135 +<BR>filesystems +<BR> differences between, 127-131 +<BR> links and, 130 +<BR> options for, 132-135 +<BR> reporting on by Samba, option for, 242 +<BR> (see also files) +<BR>fixed user configuration, 196 +<BR>flat namespaces, 14, 25 +<BR>follow symlinks option, 133 +<BR>force create mode option, 141 +<BR>force directory mode option, 141 +<BR>force group option, 139, 141 +<BR>force user option, 139, 141 +<BR>foreign-language characters, 234-236 +<BR>free space on disk, option for, 241 +<BR>fstype option, 242 +<BR>FTP (File Transfer Protocol), 6 +<BR> sites for Samba downloads, 32 +<P><A NAME="G"><B>G</B><A HREF="inx.html">[ Top ]</A> +<BR>gateway field, 68 +<BR>getwd cache option, 134, 320 +<BR>global options, 90 +<BR>[globals] section, 88 +<BR>GNU autoconf, 29 +<BR>GNU configure script, 34 +<BR>GNU General Public License (GPL), 3, 378 +<BR>groups, 155-158 +<BR> administrative privileges for, 159 +<BR> names and types of, 15 +<BR>guest, 162 +<BR>guest access, 159-162 +<BR>guest account option, 162 +<BR>guest ok option, 98 +<BR>guest only option, 162 +<P><A NAME="H"><B>H</B><A HREF="inx.html">[ Top ]</A> +<BR>hangup (HUP) signal, 48 +<BR>header, SMB, 74 +<BR>Hexidecimal byte value +<BR> for NetBIOS group resource types, 16 +<BR> for NetBIOS unique resource types, 15 +<BR>hidden files, 128, 136 +<BR> options for, 134, 142, 319 +<BR>h-node, 13 +<BR>home directory, user's, 36, 155 +<BR> logon script option for location of, 198 +<BR>homedir map option, 200 +<BR>[homes] share, 89, 157 +<BR>hort preserve case option, 147 +<BR>hostnames +<BR> case sensitivity and, 5 +<BR> troubleshooting +<BR> long/short, 286 +<BR> lookup, 284 +<BR>hosts +<BR> files (Windows 95/98), 59 +<BR> files (Windows NT computers), 71 +<BR> networking option for connections, 101, 103, 105 +<BR> subnets and, caution with, 102 +<BR>hosts allow option, 103 +<BR>hosts deny option, 105 +<BR>hosts equiv option, 184 +<BR>how-tos, fault tree, 257-291 +<BR>http, 6 +<BR>HUP (hangup) signal, 48 +<P><A NAME="I"><B>I</B><A HREF="inx.html">[ Top ]</A> +<BR>Identification Changes dialog box (Windows NT), 63 +<BR>Identification tab, 60 +<BR>implementations, Microsoft, 18-27 +<BR>include option, 92 +<BR>inetd daemon, starting other daemons from, 48 +<BR>installing Samba, 31-49 +<BR> common problems, 34 +<BR> installation directories, 40 +<BR> steps in, 31 +<BR> final, 41 +<BR> time required, 31 +<BR>installing TCP/IP protocol, 65 +<BR>installing Workstation service, 65 +<BR>interfaces, networking options for, 102 +<BR>interfaces option, 105 +<BR>internationalization, 234-236 +<BR>invalid users option, 161 +<BR>IP address, 288-290 +<BR> setting for Windows NT computers, 67 +<BR>IP Address tab +<BR> Windows 95/98, 57 +<BR> Windows NT, 67 +<BR>IP packet size, tuning, 316 +<P><A NAME="J"><B>J</B><A HREF="inx.html">[ Top ]</A> +<BR>Jacobson, Van, 255 +<P><A NAME="K"><B>K</B><A HREF="inx.html">[ Top ]</A> +<BR>keep-alive packets, option for, 242 +<BR>Kerberos, support for, 35 +<BR>kernel oplocks option, 153 +<P><A NAME="L"><B>L</B><A HREF="inx.html">[ Top ]</A> +<BR>languages, non-European, 30 +<BR>LDAP (Lightweight Directory Access Protocol) +<BR> replacement for password synchronization, 179 +<BR> support for, 36 +<BR>ldd tool, 33 +<BR>legal agreements covering multi-user functionality, 6 +<BR>Leres, Craig, 255 +<BR>Lightweight Directory Access Protocol (see LDAP) +<BR>line continuation, 85 +<BR>links, 130 +<BR> option for, 133 +<BR>Linux +<BR> installing Samba on Linux system, 31 +<BR> submount and, 36 +<BR>lm announce option, 125 +<BR>lm interval option, 125 +<BR>LMHOSTS file, 224 +<BR>load printers option, 222 +<BR>local group map option, 192 +<BR>local master browser, 21, 116-122 +<BR> checking machines for, 118 +<BR> option for, 125 +<BR>local master option, 125 +<BR>local profiles, 194 +<BR>localhost +<BR> address, 69 +<BR> troubleshooting, 288 +<BR>localization, 234-236 +<BR>lock directory option, 154 +<BR>locking option, 152 +<BR>locks/locking files, 9, 149-154 +<BR> messaging option for, 237 +<BR> opportunistic locking, 29 +<BR> tuning of, 316 +<BR> (see also oplocks) +<BR> options for, 151-154 +<BR> Unix and, 150 +<BR>log files/logging +<BR> activating/deactivating, 253 +<BR> checking, 108-113 +<BR> configuration options, 108-113 +<BR> in for the first time (Samba), 52 +<BR> levels of +<BR> setting, 251-253 +<BR> tuning, 314 +<BR> options for, 199 +<BR> troubleshooting, 282 +<BR> troubleshooting from, 251-254 +<BR>log level option, 112, 251, 314 +<BR>login dialog box, domain logons +<BR> Windows 95/98, 188 +<BR> Windows NT, 190 +<BR>login parameters, setting, 79 +<BR>logon drive option, 197 +<BR>logon home option, 198 +<BR>logon path option, 197 +<BR>logon script option, 197 +<BR>logon scripts, 192-200 +<BR> options for, 196-198 +<BR>logons (see domain logons) +<BR>lppause command option, 221 +<BR>lpq cache time option, 220, 319 +<BR>lpq command option, 221 +<BR>lpresume command option, 221 +<BR>lprm command option, 221 +<P><A NAME="M"><B>M</B><A HREF="inx.html">[ Top ]</A> +<BR>machine name, types, 15 +<BR>machine password timeout option, 239 +<BR>magic output option, 233 +<BR>magic script option, 233 +<BR>magic scripts, 233 +<BR>mailing lists +<BR> posting to, 39 +<BR> for Samba, 292 +<BR>main tree, 40 +<BR>makefiles, 33-34 +<BR>mandatory profiles, 196 +<BR>mangle case option, 148 +<BR>mangled map option, 148 +<BR>mangled names option, 147 +<BR>mangled stack option, 148 +<BR>mangling char option, 148 +<BR>map archive option, 142 +<BR>map hidden option, 142 +<BR>Map Network Drive option, 5, 62 +<BR>map system option, 142 +<BR>mapping +<BR> files, options for location of, 191 +<BR> network drives, 5 +<BR>masks +<BR> creation, 138 +<BR> netmasks, 57 +<BR> subnet, 57, 67 +<BR> umasks, 138 +<BR>master browsers (see local master browser; DMB; preferred master browser) +<BR>max connections option, 161 +<BR>max disk size option, 242 +<BR>max log size option, 112 +<BR>max mux option, 243 +<BR>max open files option, 243 +<BR>max ttl option, 229 +<BR>max wins ttl option, 229 +<BR>max xmit option, 243, 317 +<BR>Maximum Transport Unit (MTU), 316 +<BR>McCanne, Steven, 255 +<BR>measurement forms, 326 +<BR>memory, status of, 9 +<BR>message command option, 238 +<BR>messages +<BR> from daemons, reading, 8 +<BR> WinPopup, 237 +<BR>Microsoft, 3 +<BR> encryption, 30 +<BR> implementations, 18-27 +<BR>Microsoft Networking Client, 65 +<BR>min print space option, 223 +<BR>min wins ttl option, 229 +<BR>mirror sites for Samba distribution, 28 +<BR>MIT, 35 +<BR>mmap code, 36 +<BR>m-node, 13 +<BR>modem, linking to TCP/IP networking protocol, 55 +<BR>MTU (Maximum Transport Unit), 316 +<BR>multiple code pages, 30 +<BR>multiple subnets, 120 +<BR>multi-user functionality, legal agreements and, 6 +<BR>My Computer (Windows 95/98), 51 +<P><A NAME="N"><B>N</B><A HREF="inx.html">[ Top ]</A> +<BR>name mangling, 143-149 +<BR> options for, 145-149 +<BR> steps in, 143 +<BR>name registration, 10 +<BR>name resolution, 11, 60, 224-229 +<BR> options for, 227-229 +<BR>name resolve order option, 229 +<BR>name services, 10 +<BR> identifying what is in use, 283 +<BR> nmblookup program, 372 +<BR> testing, 258 +<BR> troubleshooting, 282-288 +<BR>naming +<BR> machine name, types, 15 +<BR> machines on NetBIOS network, 10-13 +<BR> NT computers, 63 +<BR> caution with, 64 +<BR> TCP/IP networking protocol, setting machine name for, 60 +<BR>NBNS (see NetBIOS, name server) +<BR>NBT standard, 10 +<BR>NBTSTAT utility, 15 +<BR>Netatalk (Macintosh), support for interoperating with, 37 +<BR>NetBEUI (NetBIOS Extended User Interface), 10, 53 +<BR> Windows NT computers and, 65 +<BR>netbios aliases option, 107 +<BR>NetBIOS name, 14-16 +<BR> option for aliases, 107 +<BR> setting +<BR> Windows 95/98, 61 +<BR> Windows NT, 63 +<BR> troubleshooting, 290 +<BR>netbios name option, 95 +<BR>NetBIOS (Network Basic Input/Output System), 9 +<BR> compared with TCP/IP, 10 +<BR> Extended User Interface (see NetBEUI) +<BR> multiple servers (see virtual servers) +<BR> name (see NetBIOS name) +<BR> name server (NBNS), 11, 25, 58 +<BR> network, naming machines on, 10-13 +<BR> over TCP/IP, 10 +<BR> Unique Resource Types, 15 +<BR>netmasks, 57, 67 +<BR> troubleshooting, 288 +<BR>network addresses +<BR> finding, 290 +<BR> troubleshooting, 288-290 +<BR>Network Basic Input/Output System (see NetBIOS) +<BR>network configuration commands, 192 +<BR>Network dialog box (Windows NT), 63 +<BR>network drives, mapping, 5 +<BR>Network File System +<BR> resources for further information, 293 +<BR>Network File System (NFS), 30 +<BR>Network icon +<BR> Windows 95/98, 53 +<BR> Windows NT, 63 +<BR>network masks (see netmasks) +<BR>Network Neighborhood icon, 61, 93 +<BR> viewing Samba server, 72 +<BR>Network Neighborhood window, 21-22 +<BR> mapping network drives via, 5 +<BR>networking +<BR> hardware for, testing, 259 +<BR> network address ranges, 289 +<BR> nmblookup program, testing with, 279 +<BR> options, 101-106 +<BR> list of, 103 +<BR> magic script, 233 +<BR> printing on a network, steps in, 201 +<BR> setting up, 53-60 +<BR>newsgroups for Samba, 291 +<BR>NFS (Network File System), 30 +<BR> resources for further information, 293 +<BR>nis homedir option, 200 +<BR>NIS/NIS+ protocol, 36, 169 +<BR> how Samba works with, 199 +<BR> resources for further information, 293 +<BR>nmbd daemon, 2, 29, 82, 85, 361-362 +<BR> browsing options for, 125 +<BR> killing, 48 +<BR> starting, 46 +<BR>nmblookup program, 372 +<BR> networks, testing with, 279 +<BR>node types, 13 +<BR>non-encrypted passwords, 172 +<BR>non-European languages, 30 +<BR>Novell Networking, 53 +<BR>nt pipe support option, 243 +<BR>nt smb support option, 243 +<BR>null passwords, 183 +<BR>null TID, 74 +<BR>numerical type, 90 +<P><A NAME="O"><B>O</B><A HREF="inx.html">[ Top ]</A> +<BR>.old files, 39 +<BR>ole locking compatibility option, 244 +<BR>Open Source Software (OSS), 3 +<BR>operating systems +<BR> encrypted/non-encrypted passwords, 172 +<BR> miscellaneous options for, 240 +<BR> values in elections, 117 +<BR>oplock files option, 316 +<BR>oplocks, 149-154 +<BR> break requests, 149 +<BR> messaging option for, 237 +<BR> options for, 151-154 +<BR>oplocks option, 153 +<BR>opportunistic locking, 29 +<BR> tuning, 316 +<BR> (see also oplocks) +<BR>option names, 84 +<BR>os filetime resolution option, 232 +<BR>os level option, 126 +<BR>OS/2, support for share-level security, 165 +<BR>OSF/1 (Digital Unix), 35 +<P><A NAME="P"><B>P</B><A HREF="inx.html">[ Top ]</A> +<BR>packets +<BR> headers for, tcpdump utility and, 376 +<BR> maximum size of, option for, 243 +<BR>PAM (pluggable authentication modules), 179 +<BR> support for, 36 +<BR>panic action option, 244 +<BR>passwd chat debug option, 182 +<BR>passwd chat option, 182 +<BR>passwd program option, 182 +<BR>password file, security and, 53 +<BR>password level option, 182 +<BR>Password settings (Windows 95/98), 51 +<BR>passwords, 171-184 +<BR> chat characters for, 178 +<BR> encrypted +<BR> changing, 176 +<BR> disabling on Windows computers, 173 +<BR> vs. non-encrypted, 172, 173 +<BR> null, 183 +<BR> options for, 180-184 +<BR> share-level, 192 +<BR> passwd program, 182 +<BR> smbpasswd program, 374 +<BR> stored by Samba, 172 +<BR> synchronizing, 176-179 +<BR> user-level security and, 168 +<BR> Windows 95/98, 51-53 +<BR> changing, 52 +<BR>pathnames +<BR> option for, 98 +<BR> printer configuration and, 207 +<BR>paths, architecture-specific, 86 +<BR>pdate encrypted option, 183 +<BR>PDC (primary domain controller), 20 +<BR> domain master browser and, 119 +<BR> domain option for, 190 +<BR> domain-level security and, 164 +<BR>PDC (continued) +<BR> Samba 2.1 and, 186 +<BR> Samba, setting up as, 184 +<BR> sever-level security and, 168 +<BR> trust accounts and, 186 +<BR>performance, 29 +<BR>performance tuning, 312-328 +<BR> benchmark for, 312, 314 +<BR> other options for, 319-328 +<BR> recommended enhancements, 320 +<BR>permissions, 207 +<BR> options for, 140-143 +<BR> for printing, 207 +<BR>plaintext passwords, 173 +<BR>pluggable authentication modules (PAM), 36, 179 +<BR>p-node, 13 +<BR>point-to-point communication, 13 +<BR>point-to-point registration/resolution, 13 +<BR>port not telnet option, 257 +<BR>postexec option, 199 +<BR>postscript option, 221 +<BR>preexec option, 199 +<BR>preferred master browser, 119 +<BR>preferred master option, 126 +<BR>preserve case option, 147 +<BR>preventing browsing, 115 +<BR>primary domain controller (see PDC) +<BR>primary WINS server, 26 +<BR>print command option, 221 +<BR>print queue, options for, 223 +<BR>print shares, 7-9, 89-90, 204-205 +<BR> created by Samba, 205 +<BR> options for, 222 +<BR> path option, 98 +<BR> setting up on Windows client, 7 +<BR>printable option, 219 +<BR>printcap name option, 223 +<BR>printer capabilities file, 89 +<BR>printer driver file option, 219 +<BR>printer driver location option, 220 +<BR>printer driver option, 219 +<BR>printer option, 219 +<BR>PRINTER$ share, creating, 212 +<BR>printers +<BR> BSD, 215 +<BR> names +<BR> caution with, 205 +<BR> checking, 375 +<BR> option for, 219-221 +<BR> sharing (see print shares) +<BR> System V, 216 +<BR>printing, 201-224 +<BR> commands, 202 +<BR> default commands for, 221 +<BR> configuration, minimal, 203-205 +<BR> configuration options, 203-207 +<BR> drivers for, setting up, 210-213 +<BR> on a network, steps in, 201 +<BR> options for, 217-224 +<BR> pathnames used in commands for, 207 +<BR> permissions for, 207 +<BR> print jobs, 204 +<BR> spooling with smbprint tool, 213 +<BR> printer definition file, 211 +<BR> resources for information on debugging, 208 +<BR> through Samba, 201-213 +<BR> test for, 206 +<BR> types, 218 +<BR> variables for, 203 +<BR> Windows client printers +<BR> printing to, 213-224 +<BR> setting up and testing, 208 +<BR>printing configuration option, 218 +<BR>private directory (Samba distribution), 172 +<BR>private key cryptography, 35 +<BR>privileges, option for, 199 +<BR>processes (see daemons) +<BR>profiles, 194 +<BR> creating, 53 +<BR> local, 194 +<BR> mandatory, 196 +<BR> roaming, 194-196 +<BR> option for location of, 197 +<BR>programmers, support for, 230-233 +<BR>propagation, browse list, 24 +<BR>Properties button (Windows 95/98), 55 +<BR>protocols +<BR> routed through a hardware device, 53 +<BR> variant, negotiating, 78 +<BR>Protocols tab, 65-66 +<P><A NAME="Q"><B>Q</B><A HREF="inx.html">[ Top ]</A> +<BR>queuepause command option, 223 +<BR>queueresume command option, 223 +<BR>quotation marks in values, 84 +<P><A NAME="R"><B>R</B><A HREF="inx.html">[ Top ]</A> +<BR>rc.local file, 47 +<BR>read list option, 161 +<BR>read only option, 100 +<BR>read prediction, testing, 318 +<BR>read raw, tuning, 315 +<BR>read size, tuning, 318 +<BR>reading documentation, importance of, 34 +<BR>read-only files, 136 +<BR> deleting, 139, 142 +<BR>read-only partitions, 40 +<BR>read-only/read-write access, 159 +<BR>remote announce option, 127 +<BR>remote browse sync option, 127 +<BR>remote procedure call (RPC), 376 +<BR>representing/resolving filenames, 145 +<BR>resource names, 14 +<BR>resource types, 14 +<BR> for primary domain controller vs. domain master browser, 24 +<BR>resources, connecting to, 81 +<BR>resources for further information, 291-293 +<BR> group attributes, 16 +<BR> NFS (Network File System), 293 +<BR> printers, debugging, 208 +<BR> Samba, 32 +<BR> Solaris servers, 321 +<BR> Windows network configuration commands, 192 +<BR>revalidation of users, 192 +<BR>roaming profiles, 194-196 +<BR> option for location of, 197 +<BR>role settings in elections, 117 +<BR>root postexec option, 199 +<BR>root preexec option, 198 +<BR>root user, 37, 199 +<BR> access, 159 +<BR>routers, TCP/IP configuring and, 68 +<BR>RPC (remote procedure call), 376 +<BR>rpcclient program, 376 +<P><A NAME="S"><B>S</B><A HREF="inx.html">[ Top ]</A> +<BR>SAM (security account manager), 19, 169 +<BR>Samba, 1-9 +<BR> compatibility with Windows NT, 30 +<BR> compiling (see compiling Samba) +<BR> configuring (see configuring Samba) +<BR> daemons (see daemons) +<BR> distribution, xi, 28, 32 +<BR> documentation, importance of reading, 34 +<BR> downloading, 32-34 +<BR> with CVS, 378 +<BR> features/uses, x +<BR> installing (see installing Samba) +<BR> logging in for the first time, 52 +<BR> Microsoft encryption and, 30 +<BR> new features file, 34 +<BR> origin of name, 2 +<BR> performance tuning, 312-328 +<BR> benchmark for, 312, 314 +<BR> other options for, 319-328 +<BR> reasons for using, 3 +<BR> resources for further information, 291-293 +<BR> roles in Windows domains/workgroups, 26 +<BR> startup file, 363 +<BR> test utilities, 254-257 +<BR> version 2.0, 20, 28 +<BR> character sets, 235 +<BR> code pages for, 234 +<BR> coding system parameters, 235 +<BR> new options, 238 +<BR> version 2.0.5, xi, 28 +<BR> version 2.1, 20 +<BR> PDC functionality and, 186 +<BR> web site, 32, 291 +<BR> WINS server and, 225 +<BR>Samba server +<BR> accessing, 61 +<BR> connecting to, 71 +<BR> resources offered, 72 +<BR> sizing, 320-328 +<BR> viewing via Network Neighborhood icon, 72 +<BR>Samba Web Administration Tool (see SWAT tool) +<BR>scripts +<BR> connection, 198 +<BR> logon, 192-200 +<BR> magic, 233 +<BR> for Samba startup file, 363 +<BR>secondary WINS server, 26 +<BR>sections of smb.conf (Samba configuration) file, 83 +<BR>Secure Sockets Layer protocol (see SSL) +<BR>security, 35, 164-171 +<BR> domain-level, 169-171 +<BR> levels of, 164 +<BR>security (continued) +<BR> options for, 164 +<BR> restricting access to shares, 158-163 +<BR> server-level, 168 +<BR> share-level, 164-167 +<BR> options for, 167 +<BR> user-level, 167 +<BR>security account manager (SAM), 19, 169 +<BR>Select Network Protocol dialog box, 65 +<BR>server configuration options, 94-96 +<BR>Server Message Block (see SMB) +<BR>server string parameter, 95 +<BR>server-level security, 168 +<BR>servers +<BR> active, list of, 116 +<BR> testing with nmblookup program, 278 +<BR> virtual, 106-108 +<BR> options for, 107 +<BR>service bindings, 71 +<BR>services, 83 +<BR> list of enabled on machine, 45 +<BR> performed by Samba, 2 +<BR> testing low-level, 257-263 +<BR> Workstation, 65 +<BR> (see also shares) +<BR>Services tab, 65 +<BR>session layer, connection at, 78 +<BR>session parameters, setting, 79 +<BR>session service, 10, 16-18 +<BR>set directory option, 244 +<BR>share modes, 151 +<BR>share options, 90 +<BR>shared directory/resources (see shares) +<BR>shared resources (see shares) +<BR>share-level security, 164-167 +<BR> options for, 167 +<BR> printing and guest accounts, 204 +<BR> steps in taken by Samba, 165 +<BR>shares, 30, 83 +<BR> access to +<BR> controlling, 158-163 +<BR> creating for groups, 157 +<BR> by foreign hosts, option for, 184 +<BR> contents, restricting view of, 115 +<BR> default, 115 +<BR> file, path option for, 98 +<BR> [globals] section, 88 +<BR> option for identifying users allowed access to, 168 +<BR> viewing (see browsing) +<BR>sharing +<BR> disks (see disk shares) +<BR> printers (see print shares) +<BR>Sharpe, Richard, 74 +<BR>SIGHUP signal, 85 +<BR>sizing Samba servers, 320-328 +<BR>smb passwd file option, 183 +<BR>SMB (Server Message Block), 2, 74-81 +<BR> command string, 75 +<BR> commercial products for, 77 +<BR> deny-mode locks, 151 +<BR> format of, 74 +<BR> header, 75 +<BR> magic scripts, 233 +<BR> making a simple connection, 77 +<BR> maximum number of operations, option for, 243 +<BR> networks, 4 +<BR> usernames and, 162 +<BR> option for NT-specific options, 243 +<BR> password server, 168 +<BR> resources for further information, 74 +<BR> seamless operation across networks, 30 +<BR> troubleshooting connections, 268-275 +<BR> testing locally, 268 +<BR> testing with NET USE, 271-274 +<BR> testing with smbclient, 270 +<BR> testing with Windows Explorer, 274-275 +<BR> wrapper support, 34 +<BR>SMB/CIFS protocol, 3 +<BR> filesystems, 34 +<BR> network and, 9-18 +<BR>smbclient program, 49, 364-370 +<BR>smb.conf (Samba configuration) file, 8, 41, 63, 82-93 +<BR> configuring printers, 203 +<BR> creating, 93 +<BR> for each client, 253 +<BR> example of, 82 +<BR> modifying for printer drivers, 212 +<BR> options for, 90-93 +<BR> format of, 83 +<BR> supporting programmers, 230-232 +<BR> special sections of, 88-91 +<BR> structure of, 83-86 +<BR> testparm program for, 375 +<BR> variables for, 86-88 +<BR>smbd daemon, 2, 82, 359-360 +<BR> file, 47 +<BR> killing, 48 +<BR> starting, 46 +<BR>smbd server, checking with telnet, 266 +<BR>smbmount, support for, 36 +<BR>smbpasswd file, 172, 174-176 +<BR> adding entries to, 175 +<BR> caution with, 173-174 +<BR> option for location of, 183 +<BR>smbpasswd program, 171, 374 +<BR> changing passwords with, 176 +<BR>smbprint tool, spooling print jobs, 213 +<BR>smbrun option, 244 +<BR>smbsh program, 364 +<BR>smbstatus program, 8, 370 +<BR>smbtar program, 245-248 +<BR> tar operations and, 371 +<BR>smbwrapper client, 30 +<BR>smbwrapper package, 35 +<BR>socket address option, 106 +<BR>socket options configuration options, 314 +<BR>software distribution (see Samba, distribution) +<BR>source vs. binary files, 32 +<BR>spaces in values, 84 +<BR>special sections, smb.conf (Samba configuration) file, 88-91 +<BR>spelling, caution with, 61 +<BR>spool space, options for, 223 +<BR>square brackets, 83 +<BR>ssl CA certDir option, 308 +<BR>ssl CA certFile option, 308 +<BR>ssl ciphers option, 310 +<BR>ssl client cert option, 309 +<BR>ssl client key option, 309 +<BR>ssl compatibility option, 311 +<BR>ssl hosts option, 307 +<BR>ssl hosts resign option, 307 +<BR>ssl option, 307 +<BR>ssl require clientcert option, 309 +<BR>ssl require servercert option, 310 +<BR>SSL (Secure Sockets Layer) protocol, 30 +<BR> configuration options for, 306-311 +<BR> configuring Samba to use, 300 +<BR> configuring Samba with, 295-311 +<BR> SS Proxy, 296 +<BR> setting up, 304 +<BR> SSLeay, 296-304 +<BR> support for, 34, 36 +<BR>ssl server cert option, 308 +<BR>ssl server key option, 308 +<BR>ssl version option, 310 +<BR>stand-alone daemons, 47 +<BR>stat cache option, 239 +<BR>stat cache size option, 239 +<BR>status option, 244 +<BR>status report on Samba, 8 +<BR>strict locking option, 152, 319 +<BR>strict sync option, 245, 319 +<BR>string types, 90 +<BR>strip dot option, 245 +<BR>subnets, 12 +<BR> hosts and, caution with, 102 +<BR> mask, 57, 67 +<BR> multiple spanned by Windows workgroups, 24 +<BR> Windows NT workstations and, 24 +<BR>superuser (see root user) +<BR>SWAT tool, 29 +<BR> adding to configuration files, 41 +<BR> creating configuration file with, 42 +<BR>sync always option, 245, 319 +<BR>synchronizing +<BR> passwords, 176-179 +<BR> time, options for, 231 +<BR>syntax errors, 45 +<BR>syslog only option, 113 +<BR>syslog option, 113 +<BR>SYSLOG utility, 110 +<BR> support for, 36 +<BR>system administrator, WINS server and, 26 +<BR>system files, 136 +<BR>System V Unix, 47 +<BR> printer configuration for, 203 +<P><A NAME="T"><B>T</B><A HREF="inx.html">[ Top ]</A> +<BR>tar operations, 371 +<BR>tcpdump utility, 78, 255-257, 376 +<BR> passwords, reading, 172 +<BR>TCP/IP networking protocol, 9 +<BR> adding/configuring, 54 +<BR> checking setup, 53 +<BR> compared with NetBIOS, 10 +<BR> configuring, 66-71 +<BR> installing, 65 +<BR> NetBIOS over, 10 +<BR> receive window, tuning, 317 +<BR> resources for further information, 293 +<BR> TCP, troubleshooting, 263 +<BR>TCP/IP Properties panel (Windows 95/98), 55 +<BR>test parser, 45 +<BR>test share, 42 +<BR>testing +<BR> configuration file, 45 +<BR> daemons, 49 +<BR> Samba, 41-46 +<BR> smbclient program, 364-370 +<BR> test utilities for Samba, 254-257 +<BR> tools for (CD-ROM with this book), 28 +<BR>testparm program, 375 +<BR>testparm test parser, 45 +<BR>testprns program, 375 +<BR>TID (tree identifier), 74, 78, 80 +<BR>time server option, 231 +<BR>time synchronization, options for, 231 +<BR>time to live (TTL), options for, 229 +<BR>timestamp logs option, 112 +<BR>trace utility, 254 +<BR>trailing dot, option for, 245 +<BR>tree identifier (TID), 74, 78, 80 +<BR>Tridgell, Andrew, 2, 255 +<BR>troubleshooting, 250-291 +<BR> information to have on hand, 257 +<BR> network addresses, 288-290 +<BR> where to start, 250 +<BR>trust accounts, creating, 186 +<BR>TTL (time to live), options for, 229 +<BR>tuning (see performance tuning) +<P><A NAME="U"><B>U</B><A HREF="inx.html">[ Top ]</A> +<BR>umasks, 138 +<BR>uniform resource locators (URLs), 6 +<BR>Universal Naming Convention (UNC), 5 +<BR>Unix +<BR> carriage returns, 193 +<BR> daemons, 2 +<BR> file permissions and attributes, 135-143 +<BR> filenames, option for, 245 +<BR> locks and, 150 +<BR> networks, usernames and, 162 +<BR> options +<BR> for messaging, 237 +<BR> miscellaneous, 240 +<BR> for print commands, 221 +<BR> for system logger, 113 +<BR> password files, 169 +<BR> permissions, share write access and, 159 +<BR> servers, backing up computers from, 246 +<BR> System V, 47 +<BR> printer configuration for, 203 +<BR> printing and, 29 +<BR> troubleshooting utilities, 254 +<BR> user classifications, 135 +<BR>unix password sync option, 180 +<BR>unix realname option, 133 +<BR>URLs (uniform resource locators), 6 +<BR> distribution, 28 +<BR> Kerberos, 35 +<BR> Samba, 28, 32 +<BR> distribution, xi +<BR> web site, 291 +<BR> SMB (Server Message Block), 74 +<BR>use rhosts option, 184 +<BR>user profiles (Windows 95/98), 50 +<BR>user variables, 86 +<BR>user-level security, 164, 167 +<BR>username level option, 163 +<BR>username map option, 162 +<BR>username option, 167 +<BR>usernames +<BR> case sensitivity and, 163 +<BR> options for, 162-163 +<BR> SMB vs. Unix networks, 162 +<BR> Windows 95/98, 51-53 +<BR>users, 155-158 +<BR> allowing superuser (root) access to, 159 +<BR> creating, 89 +<BR> domain, semi-automatic deletion, 171 +<BR> home directory, 36 +<BR> logon script option for location of, 198 +<BR> invalid, specifying, 158 +<BR> read-only/read-write access, 159 +<BR> setting up, 155 +<BR> share-level option for authentication of, 192 +<BR> shares for, setting up, 157 +<BR>/usr/local/samba file, 40 +<BR>/usr/local/samba/var/log.smb file, 49 +<P><A NAME="V"><B>V</B><A HREF="inx.html">[ Top ]</A> +<BR>valid chars option, 236 +<BR>variables, 86-88 +<BR>veto files, 129-131 +<BR> option for deleting, 135 +<BR>veto files option, 134 +<BR>veto oplock files option, 154 +<BR>viewing daemons, 8 +<BR>virtual connection, 78 +<BR>virtual hosts, 29 +<BR>virtual servers, 106-108 +<BR> options for, 107 +<BR>volume option, 100 +<P><A NAME="W"><B>W</B><A HREF="inx.html">[ Top ]</A> +<BR>Whistle, 3 +<BR>whitespaces in values, 84 +<BR>wide links option, 134, 319 +<BR>Windows 95/98 +<BR> domain controllers for, 18-20 +<BR> domain logons, configuring, 185 +<BR> domains, 184-192 +<BR> miscellaneous options for, 240 +<BR> multiple users, support for, 50 +<BR> passwords, encrypted, 172 +<BR> printer drivers, installing, 210 +<BR> share-level security, support for, 165 +<BR> WinPopup tool, 237 +<BR>Windows clients +<BR> configuring, 50-81 +<BR> Windows NT 4.0 computers, 63-73 +<BR> Windows95/98 computers, 50-63 +<BR> individual configuration files for, 253 +<BR> printers for, setting up and testing, 208 +<BR> role settings in elections, 117 +<BR>Windows Explorer, Map Network Drive option, 5 +<BR>Windows Internet Name Service (see WINS) +<BR>Windows NT +<BR> client/server and, 77 +<BR> configuring domain logons, 186 +<BR> domains, 18, 28, 184-192 +<BR> caution when selecting, 190 +<BR> IP address, setting, 67 +<BR> naming, caution with, 63 +<BR> passwords +<BR> encrypted, 172 +<BR> new option for timeout (Samba version 2.0), 239 +<BR> pipes, option for, 243 +<BR> server, domain master browser and, 119 +<BR> SMB, option for, 243 +<BR> user authentication and, 186 +<BR> WINS address and, 70 +<BR>Windows NT Server 4.0, 65 +<BR>Windows NT Server Manager for Domains tool, 171 +<BR>Windows NT Workstation 4.0, 65 +<BR>Windows UNC format, 62 +<BR>Windows workgroups (see workgroups, Windows) +<BR>WINDOWSHOSTS directory, 71 +<BR>WinPopup tool, 237 +<BR>WINS Address tab (Windows NT panel), 70 +<BR>WINS Configuration tab, 58 +<BR>wins proxy option, 228 +<BR>wins server option, 228 +<BR>wins support option, 228 +<BR>WINS (Windows Internet Name Service), 2, 25, 58 +<BR> address, configuring, 70 +<BR> name resolution and, 224 +<BR> options for, 228 +<BR> server, 44 +<BR> configuring Windows domain logons and, 185 +<BR> servers, 25, 59 +<BR> Windows operating systems and, 26 +<BR> WINS server +<BR> primary/secondary, 26 +<BR>WINS (Windows Internet Name Service) server +<BR> setting up Samba as, 226 +<BR> setting up Sambato use, 225 +<BR>Wong, Brian, 321 +<BR>workgroup parameter, 96 +<BR>workgroups, 4 +<BR> roles in assumed by Samba, 26 +<BR> setting, 60 +<BR> Windows +<BR> behaviors vs. Windows domain, 20 +<BR> spanning multiple subnets, 24 +<BR>working directory, option for, 134 +<BR>Workstation service, installing, 65 +<BR>wrapper support for SMB (Server Message Block), 34 +<BR>write ahead, tuning, 318 +<BR>write list option, 161 +<BR>write privileges, 40 +<BR>write raw, tuning, 315 +<BR>write size, tuning, 317 +<BR>writeable/write ok option, 100 +<P><A NAME="Y"><B>Y</B><A HREF="inx.html">[ Top ]</A> + +<pre> +</PRE> + +<P> +<HR NOSHADE SIZE="-1"> +<P> +Using Samba <a href="index.html">Table of Contents</a> +<P> +<CENTER> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</td> +</tr> +</table> +</body> +</html> diff --git a/docs/htmldocs/using_samba/licenseinfo.html b/docs/htmldocs/using_samba/licenseinfo.html new file mode 100644 index 0000000000..7e8962a832 --- /dev/null +++ b/docs/htmldocs/using_samba/licenseinfo.html @@ -0,0 +1,181 @@ +<HTML> +<HEAD> +<TITLE>License Info</title> +</head> + +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font> +By Robert Eckstein, David Collier-Brown & Peter Kelly +<br>1st Edition October 1999 (est.) +<br>1-56592-449-5, Order Number: 4495 +<br>424 pages (est.), $34.95 (est.) +</font> +</td> +</tr> +</table> +<hr size=1 noshade> +<!--sample chapter begins --> +<h2>License Info</h2> +<p>"Using Samba" may be freely reproduced and distributed in any +form, in any medium physical or electronic, in whole or in +part, provided that the terms of this license are adhered to +and that the reproduction includes this license or a reference +to it. For a complete reproduction of the book, the reference +should read: +<blockquote> + Copyright (c) 1999 by O'Reilly & Associates. This book, + Using Samba, first edition, was written by Robert Eckstein, + David Collier-Brown, and Peter Kelly, and published by + O'Reilly & Associates. This material may be distributed only + subject to the terms and conditions set forth in the + license, which is presently available at + <a href="http://www.oreilly.com/catalog/samba/licenseinfo.html"> + http://www.oreilly.com/catalog/samba/licenseinfo.html</a>. +</blockquote> +<p> +For an excerpt, the reference should read: +<blockquote> + Copyright (c) 1999 by O'Reilly & Associates. This material + was taken from the book Using Samba, first edition, written + by Robert Eckstein, David Collier-Brown, and Peter Kelly, + and published by O'Reilly & Associates. This material may be + distributed only subject to the terms and conditions set + forth in the license, which is presently available at + <a href="http://www.oreilly.com/catalog/samba/licenseinfo.html"> + http://www.oreilly.com/catalog/samba/licenseinfo.html</a>. +</blockquote> +<p> +Translations must contain similar references in the target +language. A sample model for a reference in a translation is +the following: +<blockquote> + Copyright (c) 1999 by [whoever owns the translation]. This + is a translation of Using Samba, first edition, written by + Robert Eckstein, David Collier-Brown, and Peter Kelly, and + published by O'Reilly & Associates. This material may be + distributed only subject to the terms and conditions set + forth in the license, which is presently available at + <a href="http://www.oreilly.com/catalog/samba/licenseinfo.html"> + http://www.oreilly.com/catalog/samba/licenseinfo.html</a>. +</blockquote> +<p> +Both commercial and noncommercial redistribution of material +from this book is permitted, but the following restrictions +apply. +<ol> +<li> All copies of any version, including derivative works, must + display a prominent notice indicating the original authors + of the book and that it was originally developed by + O'Reilly & Associates. Any publication as a physical + (paper) book shall show the names of the authors and + O'Reilly & Associates on the outer surface. + +<li> Any changes made must be shared as described below. + +<li> No translation can be distributed publicly in print form + without approval from O'Reilly & Associates. Any + translation, by O'Reilly & Associates or another party, + falls under the same conditions as the original version. +</ol> +<p> +MODIFIED VERSIONS. Distribution of any modified version must +include a prominent notice describing the modifications that +have been made, and must provide a URL or other sufficient +information concerning how to obtain the original work. +O'Reilly & Associates and the Samba Team are not responsible +for the accuracy of any modifications not incorporated into +their originally distributed version. The names of the +original authors, O'Reilly & Associates, or the Samba team may +not be used to assert or imply endorsement of the resulting +document unless permission is obtained in advance. Anyone who +distributes a version of the book with changes to text, +figures, or any other element must provide the changed version +in a standard source format to both O'Reilly and the Samba +team, and must provide them under the same terms as the +original book. +<p> +Mere aggregation of this work, or a portion of the work, with +other works or programs on the same media shall not cause this +license to apply to those other works. The aggregate work +shall contain this license and a notice specifying the +inclusion of this material. +<p> +The copyright will stay in O'Reilly's hands, unless O'Reilly stops +printing the book. However, the book will be maintained by +the Samba team. Any changes made by O'Reilly will be given to +the team, and vice versa. +<p> +TRANSLATIONS. In the case of translations, O'Reilly will +choose when to update and reprint printed versions. If +O'Reilly lets the translation go out of print for more than 6 +months, the copyright and all other rights go to the Samba +team. +<p> +SEVERABILITY. If any part of this license is found to be +unenforceable in any jurisdiction, the remaining portions of +the license remain in force. +<p> +NO WARRANTY. This work is licensed and provided "as is" +without warranty of any kind, express or implied, including, +but not limited to, the implied warranties of merchantability +and fitness for a particular purpose or a warranty of +non-infringement. +<p> +GOOD-PRACTICE RECOMMENDATIONS. In addition to the requirements +of this license, it is requested from and strongly recommended +of redistributors that: +<ol> + <li> If you are distributing the work on hardcopy or CD-ROM, + you provide email notification to the authors of your + intent to redistribute at least thirty days before your + manuscript or media freeze, to give the authors time to + provide updated documents. This notification should + describe modifications, if any, made to the document. + + <li> All substantive modifications (including deletions) should + be either clearly marked in the document or else described + in an attachment to the document. + + <li> While it is not mandatory under this license, it is + considered good form to offer a free copy of any hardcopy + and CD-ROM expression of this work to its authors and the + original software developers. + + <li> Translations should contain this license in the target + language. +</ol> + + +<!-- End of sample chapter --> +<CENTER> +<HR SIZE="1" NOSHADE> +<FONT SIZE="1" FACE="Verdana, Arial, Helvetica"> +<A HREF="http://www.oreilly.com/"> +<B>O'Reilly Home</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/sales/bookstores"> +<B>O'Reilly Bookstores</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/order_new/"> +<B>How to Order</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/contact.html"> +<B>O'Reilly Contacts<BR></B></A> +<A HREF="http://www.oreilly.com/international/"> +<B>International</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/oreilly/about.html"> +<B>About O'Reilly</B></A> <B> | </B> +<A HREF="http://www.oreilly.com/affiliates.html"> +<B>Affiliated Companies</B></A><p> +<EM>© 1999, O'Reilly & Associates, Inc.</EM> +</FONT> +</CENTER> +</BODY> + +</html> diff --git a/docs/htmldocs/using_samba/this_edition.html b/docs/htmldocs/using_samba/this_edition.html new file mode 100644 index 0000000000..71522ac31e --- /dev/null +++ b/docs/htmldocs/using_samba/this_edition.html @@ -0,0 +1,48 @@ +<HTML> +<HEAD> +<TITLE>This Edition</title> +</head> + +<BODY BGCOLOR="#FFFFFF" TEXT="#000000" link="#990000" vlink="#0000CC"> +<table BORDER="0" CELLPADDING="0" CELLSPACING="0" width="90%"> +<tr> +<td width="25%" valign="TOP"> +<img hspace=10 vspace=10 src="gifs/samba.s.gif" +alt="Using Samba" align=left valign=top border=0> +</td> +<td height="105" valign="TOP"> +<br> +<H2>Using Samba</H2> +<font> +By Robert Eckstein, David Collier-Brown & Peter Kelly +<br>1st Edition October 1999 (est.) +<br>1-56592-449-5, Order Number: 4495 +<br>424 pages (est.), $34.95 (est.) +</font> +</td> +</tr> +</table> +<hr size=1 noshade> + +<blockquote> + Copyright (c) 1999 by O'Reilly & Associates. This book, + Using Samba, first edition, was written by Robert Eckstein, + David Collier-Brown, and Peter Kelly, and published by + O'Reilly & Associates. This material may be distributed only + subject to the terms and conditions set forth in the + license, which is presently available at + <a href="http://www.oreilly.com/catalog/samba/licenseinfo.html"> + http://www.oreilly.com/catalog/samba/licenseinfo.html</a>. +</blockquote> + +<hr size=1 noshade> + +<pre> +This is a modified version of the O'Reilly first edition of +<i>Using Samba</i>. Some of the modifications were made by <a +href="mailto:jayts@bigfoot.com">Jay Ts</a> - thanks Jay! + +</pre> + +</BODY> +</html> |