Initial import
[samba] / docs / htmldocs / Samba3-HOWTO / StandAloneServer.html
diff --git a/docs/htmldocs/Samba3-HOWTO/StandAloneServer.html b/docs/htmldocs/Samba3-HOWTO/StandAloneServer.html
new file mode 100644 (file)
index 0000000..3db7f4d
--- /dev/null
@@ -0,0 +1,201 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 7. Standalone Servers</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="index.html" title="The Official Samba-3 HOWTO and Reference Guide"><link rel="up" href="type.html" title="Part II. Server Configuration Basics"><link rel="prev" href="domain-member.html" title="Chapter 6. Domain Membership"><link rel="next" href="ClientConfig.html" title="Chapter 8. MS Windows Network Configuration Guide"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 7. Standalone Servers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="domain-member.html">Prev</a> </td><th width="60%" align="center">Part II. Server Configuration Basics</th><td width="20%" align="right"> <a accesskey="n" href="ClientConfig.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="StandAloneServer"></a>Chapter 7. Standalone Servers</h2></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</code></p></div></div></div></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="StandAloneServer.html#id2541817">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="StandAloneServer.html#id2541912">Background</a></span></dt><dt><span class="sect1"><a href="StandAloneServer.html#id2542104">Example Configuration</a></span></dt><dd><dl><dt><span class="sect2"><a href="StandAloneServer.html#RefDocServer">Reference Documentation Server</a></span></dt><dt><span class="sect2"><a href="StandAloneServer.html#SimplePrintServer">Central Print Serving</a></span></dt></dl></dd><dt><span class="sect1"><a href="StandAloneServer.html#id2543110">Common Errors</a></span></dt></dl></div><p>
+<a class="indexterm" name="id2541790"></a>
+<a class="indexterm" name="id2541797"></a>
+<a class="indexterm" name="id2541804"></a>
+Standalone servers are independent of domain controllers on the network.
+They are not domain members and function more like workgroup servers. In many
+cases a standalone server is configured with a minimum of security control
+with the intent that all data served will be readily accessible to all users.
+</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2541817"></a>Features and Benefits</h2></div></div></div><p>
+<a class="indexterm" name="id2541825"></a>
+<a class="indexterm" name="id2541832"></a>
+Standalone servers can be as secure or as insecure as needs dictate. They can
+have simple or complex configurations. Above all, despite the hoopla about
+domain security, they remain a common installation.
+</p><p>
+<a class="indexterm" name="id2541846"></a>
+<a class="indexterm" name="id2541853"></a>
+<a class="indexterm" name="id2541860"></a>
+<a class="indexterm" name="id2541866"></a>
+If all that is needed is a server for read-only files, or for
+printers alone, it may not make sense to effect a complex installation.
+For example, a drafting office needs to store old drawings and reference
+standards. Noone can write files to the server because it is legislatively
+important that all documents remain unaltered. A share-mode read-only standalone
+server is an ideal solution.
+</p><p>
+<a class="indexterm" name="id2541883"></a>
+<a class="indexterm" name="id2541890"></a>
+<a class="indexterm" name="id2541897"></a>
+Another situation that warrants simplicity is an office that has many printers
+that are queued off a single central server. Everyone needs to be able to print
+to the printers, there is no need to effect any access controls, and no files will
+be served from the print server. Again, a share-mode standalone server makes
+a great solution.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2541912"></a>Background</h2></div></div></div><p>
+<a class="indexterm" name="id2541919"></a>
+<a class="indexterm" name="id2541926"></a>
+<a class="indexterm" name="id2541933"></a>
+The term <span class="emphasis"><em>standalone server</em></span> means that it will provide local authentication and access
+control for all resources that are available from it. In general this means that there will be a local user
+database. In more technical terms, it means resources on the machine will be made available in either
+<span class="emphasis"><em>share</em></span> mode or in <span class="emphasis"><em>user</em></span> mode.
+</p><p>
+<a class="indexterm" name="id2541960"></a>
+<a class="indexterm" name="id2541967"></a>
+<a class="indexterm" name="id2541974"></a>
+No special action is needed other than to create user accounts. Standalone
+servers do not provide network logon services. This means that machines that
+use this server do not perform a domain logon to it. Whatever logon facility
+the workstations are subject to is independent of this machine. It is, however,
+necessary to accommodate any network user so the logon name he or she uses will
+be translated (mapped) locally on the standalone server to a locally known
+user name. There are several ways this can be done.
+</p><p>
+<a class="indexterm" name="id2541992"></a>
+<a class="indexterm" name="id2542000"></a>
+<a class="indexterm" name="id2542006"></a>
+Samba tends to blur the distinction a little in defining
+a standalone server. This is because the authentication database may be
+local or on a remote server, even if from the SMB protocol perspective
+the Samba server is not a member of a domain security context.
+</p><p>
+<a class="indexterm" name="id2542021"></a>
+<a class="indexterm" name="id2542027"></a>
+<a class="indexterm" name="id2542034"></a>
+<a class="indexterm" name="id2542041"></a>
+<a class="indexterm" name="id2542048"></a>
+<a class="indexterm" name="id2542054"></a>
+<a class="indexterm" name="id2542062"></a>
+<a class="indexterm" name="id2542068"></a>
+Through the use of Pluggable Authentication Modules (PAM) (see <a href="pam.html" title="Chapter 27. PAM-Based Distributed Authentication">the chapter on PAM</a>)
+and the name service switcher (NSS), which maintains the UNIX-user database, the source of authentication may
+reside on another server. We would be inclined to call this the authentication server.  This means that the
+Samba server may use the local UNIX/Linux system password database (<code class="filename">/etc/passwd</code> or
+<code class="filename">/etc/shadow</code>), may use a local smbpasswd file, or may use an LDAP backend, or even via PAM
+and Winbind another CIFS/SMB server for authentication.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2542104"></a>Example Configuration</h2></div></div></div><p>
+<a class="indexterm" name="id2542112"></a>
+<a class="indexterm" name="id2542119"></a>
+<a href="StandAloneServer.html#simplynice" title="Example 7.1. smb.conf for Reference Documentation Server">The example Reference Documentation Server</a> and <a href="StandAloneServer.html#SimplePrintServer" title="Central Print Serving">Central Print Serving</a> are designed to inspire simplicity. It is too easy to
+attempt a high level of creativity and to introduce too much complexity in server and network design.
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="RefDocServer"></a>Reference Documentation Server</h3></div></div></div><p>
+<a class="indexterm" name="id2542157"></a>
+<a class="indexterm" name="id2542164"></a>
+<a class="indexterm" name="id2542171"></a>
+<a class="indexterm" name="id2542177"></a>
+Configuration of a read-only data server that everyone can access is very simple. By default, all shares are
+read-only, unless set otherwise in the <code class="filename">smb.conf</code> file. <a href="StandAloneServer.html#simplynice" title="Example 7.1. smb.conf for Reference Documentation Server">The example - Reference
+Documentation Server</a> is the <code class="filename">smb.conf</code> file that will do this. Assume that all the reference documents
+are stored in the directory <code class="filename">/export</code>, and the documents are owned by a user other than
+nobody. No home directories are shared, and there are no users in the <code class="filename">/etc/passwd</code> UNIX
+system database. This is a simple system to administer.
+</p><div class="example"><a name="simplynice"></a><p class="title"><b>Example 7.1. smb.conf for Reference Documentation Server</b></p><table class="simplelist" border="0" summary="Simple list"><tr><td>#  Global parameters</td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[global]</code></em></td></tr><tr><td><a class="indexterm" name="id2542251"></a><em class="parameter"><code>workgroup = MIDEARTH</code></em></td></tr><tr><td><a class="indexterm" name="id2542264"></a><em class="parameter"><code>netbios name = GANDALF</code></em></td></tr><tr><td><a class="indexterm" name="id2542277"></a><em class="parameter"><code>security = SHARE</code></em></td></tr><tr><td><a class="indexterm" name="id2542290"></a><em class="parameter"><code>passdb backend = guest</code></em></td></tr><tr><td><a class="indexterm" name="id2542302"></a><em class="parameter"><code>wins server = 192.168.1.1</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[data]</code></em></td></tr><tr><td><a class="indexterm" name="id2542324"></a><em class="parameter"><code>comment = Data</code></em></td></tr><tr><td><a class="indexterm" name="id2542337"></a><em class="parameter"><code>path = /export</code></em></td></tr><tr><td><a class="indexterm" name="id2542350"></a><em class="parameter"><code>guest only = Yes</code></em></td></tr></table></div><div class="blockquote"><table border="0" width="100%" cellspacing="0" cellpadding="0" class="blockquote" summary="Block quote"><tr><td width="10%" valign="top"> </td><td width="80%" valign="top"><p>
+I would have spoken more briefly, if I'd had more time to prepare.
+</p></td><td width="10%" valign="top"> </td></tr><tr><td width="10%" valign="top"> </td><td colspan="2" align="right" valign="top">--<span class="attribution">Mark Twain</span></td></tr></table></div><p>
+<a class="indexterm" name="id2542377"></a>
+<a class="indexterm" name="id2542384"></a>
+<a class="indexterm" name="id2542390"></a>
+<a class="indexterm" name="id2542397"></a>
+In <a href="StandAloneServer.html#simplynice" title="Example 7.1. smb.conf for Reference Documentation Server">this example</a>, the machine name is set to GANDALF, and the
+workgroup is set to the name of the local workgroup (MIDEARTH) so the machine will appear together
+with systems with which users are familiar. The only password backend required is the &#8220;<span class="quote">guest</span>&#8221;
+backend to allow default unprivileged account names to be used. As there is a WINS server on this network, we
+of course make use of it.
+</p><p>
+A US Air Force Colonel was renowned for saying: &#8220;<span class="quote">Better is the enemy of good enough!</span>&#8221; There are often
+sound reasons for avoiding complexity as well as for avoiding a technically perfect solution. Unfortunately,
+many network administrators still need to learn the art of doing just enough to keep out of trouble.
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="SimplePrintServer"></a>Central Print Serving</h3></div></div></div><p>
+<a class="indexterm" name="id2542447"></a>
+<a class="indexterm" name="id2542453"></a>
+Configuration of a simple print server is easy if you have all the right tools on your system.
+</p><div class="orderedlist"><p class="title"><b> Assumptions</b></p><ol type="1"><li><p>
+       The print server must require no administration.
+       </p></li><li><p>
+       The print spooling and processing system on our print server will be CUPS.
+       (Please refer to <a href="CUPS-printing.html" title="Chapter 21. CUPS Printing Support">CUPS Printing Support</a>, for more information).
+       </p></li><li><p>
+       The print server will service only network printers. The network administrator
+       will correctly configure the CUPS environment to support the printers.
+       </p></li><li><p>
+       All workstations will use only PostScript drivers. The printer driver
+       of choice is the one shipped with the Windows OS for the Apple Color LaserWriter.
+       </p></li></ol></div><p>
+<a class="indexterm" name="id2542510"></a>
+<a class="indexterm" name="id2542516"></a>
+<a class="indexterm" name="id2542523"></a>
+In this example our print server will spool all incoming print jobs to
+<code class="filename">/var/spool/samba</code> until the job is ready to be submitted by
+Samba to the CUPS print processor. Since all incoming connections will be as
+the anonymous (guest) user, two things will be required to enable anonymous printing.
+</p><div class="itemizedlist"><p class="title"><b>Enabling Anonymous Printing</b></p><ul type="disc"><li><p>
+<a class="indexterm" name="id2542551"></a>
+<a class="indexterm" name="id2542558"></a>
+<a class="indexterm" name="id2542565"></a>
+       The UNIX/Linux system must have a <span><strong class="command">guest</strong></span> account.
+       The default for this is usually the account <span><strong class="command">nobody</strong></span>.
+       To find the correct name to use for your version of Samba, do the 
+       following:
+</p><pre class="screen">
+<code class="prompt">$ </code><strong class="userinput"><code>testparm -s -v | grep "guest account"</code></strong>
+</pre><p>
+<a class="indexterm" name="id2542603"></a>
+       Make sure that this account exists in your system password
+       database (<code class="filename">/etc/passwd</code>).
+       </p><p>
+<a class="indexterm" name="id2542620"></a>
+<a class="indexterm" name="id2542627"></a>
+<a class="indexterm" name="id2542634"></a>
+       It is a good idea either to set a password on this account, or else to lock it
+       from UNIX use. Assuming that the guest account is called <code class="literal">pcguest</code>,
+       it can be locked by executing:
+</p><pre class="screen">
+<code class="prompt">root# </code> passwd -l pcguest
+</pre><p>
+       The exact command may vary depending on your UNIX/Linux distribution.
+       </p></li><li><p>
+<a class="indexterm" name="id2542667"></a>
+<a class="indexterm" name="id2542674"></a>
+<a class="indexterm" name="id2542681"></a>
+<a class="indexterm" name="id2542687"></a>
+<a class="indexterm" name="id2542694"></a>
+<a class="indexterm" name="id2542701"></a>
+       The directory into which Samba will spool the file must have write
+       access for the guest account. The following commands will ensure that
+       this directory is available for use:
+</p><pre class="screen">
+<code class="prompt">root# </code><strong class="userinput"><code>mkdir /var/spool/samba</code></strong>
+<code class="prompt">root# </code><strong class="userinput"><code>chown nobody.nobody /var/spool/samba</code></strong>
+<code class="prompt">root# </code><strong class="userinput"><code>chmod a+rwt /var/spool/samba</code></strong>
+</pre><p>
+       </p></li></ul></div><p>
+The contents of the <code class="filename">smb.conf</code> file is shown in <a href="StandAloneServer.html#AnonPtrSvr" title="Example 7.2. smb.conf for Anonymous Printing">the Anonymous Printing example</a>.
+</p><div class="example"><a name="AnonPtrSvr"></a><p class="title"><b>Example 7.2. <code class="filename">smb.conf</code> for Anonymous Printing</b></p><table class="simplelist" border="0" summary="Simple list"><tr><td>#  Global parameters</td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[global]</code></em></td></tr><tr><td><a class="indexterm" name="id2542800"></a><em class="parameter"><code>workgroup = MIDEARTH</code></em></td></tr><tr><td><a class="indexterm" name="id2542813"></a><em class="parameter"><code>netbios name = GANDALF</code></em></td></tr><tr><td><a class="indexterm" name="id2542826"></a><em class="parameter"><code>security = SHARE</code></em></td></tr><tr><td><a class="indexterm" name="id2542839"></a><em class="parameter"><code>passdb backend = guest</code></em></td></tr><tr><td><a class="indexterm" name="id2542852"></a><em class="parameter"><code>printing = cups</code></em></td></tr><tr><td><a class="indexterm" name="id2542864"></a><em class="parameter"><code>printcap name = cups</code></em></td></tr><tr><td> </td></tr><tr><td><em class="parameter"><code>[printers]</code></em></td></tr><tr><td><a class="indexterm" name="id2542886"></a><em class="parameter"><code>comment = All Printers</code></em></td></tr><tr><td><a class="indexterm" name="id2542899"></a><em class="parameter"><code>path = /var/spool/samba</code></em></td></tr><tr><td><a class="indexterm" name="id2542912"></a><em class="parameter"><code>printer admin = root</code></em></td></tr><tr><td><a class="indexterm" name="id2542925"></a><em class="parameter"><code>guest ok = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id2542937"></a><em class="parameter"><code>printable = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id2542950"></a><em class="parameter"><code>use client driver = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id2542963"></a><em class="parameter"><code>browseable = No</code></em></td></tr></table></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+<a class="indexterm" name="id2542980"></a>
+<a class="indexterm" name="id2542989"></a>
+<a class="indexterm" name="id2542996"></a>
+<a class="indexterm" name="id2543003"></a>
+<a class="indexterm" name="id2543010"></a>
+On CUPS-enabled systems there is a facility to pass raw data directly to the printer without intermediate
+processing via CUPS print filters. Where use of this mode of operation is desired, it is necessary to
+configure a raw printing device. It is also necessary to enable the raw mime handler in the
+<code class="filename">/etc/mime.conv</code> and <code class="filename">/etc/mime.types</code> files. Refer to <a href="CUPS-printing.html" title="Chapter 21. CUPS Printing Support">CUPS Printing Support</a>, <a href="CUPS-printing.html#cups-raw" title="Explicitly Enable &#8220;raw&#8221; Printing for application/octet-stream">Explicitly Enable raw Printing
+for application/octet-stream</a>.
+</p></div><p>
+<a class="indexterm" name="id2543052"></a>
+<a class="indexterm" name="id2543059"></a>
+<a class="indexterm" name="id2543066"></a>
+<a class="indexterm" name="id2543073"></a>
+The example in <a href="StandAloneServer.html#AnonPtrSvr" title="Example 7.2. smb.conf for Anonymous Printing">the Anonymous Printing example</a> uses CUPS for direct printing
+via the CUPS libarary API. This means that all printers will be exposed to Windows users without need to
+configure a printcap file. If there is necessity to expose only a sub-set of printers, or to define a special
+type of printer (for example, a PDF filter) the <em class="parameter"><code>printcap name = cups</code></em> can be replaced
+with the entry <em class="parameter"><code>printcap name = /etc/samba/myprintcap</code></em>. In this case the file specified
+should contain a list of the printer names that should be exposed to Windows network users.
+</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2543110"></a>Common Errors</h2></div></div></div><p>
+<a class="indexterm" name="id2543118"></a>
+<a class="indexterm" name="id2543125"></a>
+The greatest mistake so often made is to make a network configuration too complex.
+It pays to use the simplest solution that will meet the needs of the moment.
+</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="domain-member.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="type.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ClientConfig.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. Domain Membership </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 8. MS Windows Network Configuration Guide</td></tr></table></div></body></html>