~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to docs/htmldocs/Samba3-HOWTO/StandAloneServer.html

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<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.74.0"><link rel="home" href="index.html" title="The Official Samba 3.4.x 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="orgname">Samba Team</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 class="email" 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#id2574148">Features and Benefits</a></span></dt><dt><span class="sect1"><a href="StandAloneServer.html#id2574242">Background</a></span></dt><dt><span class="sect1"><a href="StandAloneServer.html#id2574443">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#id2575426">Common Errors</a></span></dt></dl></div><p>
 
2
<a class="indexterm" name="id2574121"></a>
 
3
<a class="indexterm" name="id2574128"></a>
 
4
<a class="indexterm" name="id2574135"></a>
 
5
Standalone servers are independent of domain controllers on the network.
 
6
They are not domain members and function more like workgroup servers. In many
 
7
cases a standalone server is configured with a minimum of security control
 
8
with the intent that all data served will be readily accessible to all users.
 
9
</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2574148"></a>Features and Benefits</h2></div></div></div><p>
 
10
<a class="indexterm" name="id2574156"></a>
 
11
<a class="indexterm" name="id2574163"></a>
 
12
Standalone servers can be as secure or as insecure as needs dictate. They can
 
13
have simple or complex configurations. Above all, despite the hoopla about
 
14
domain security, they remain a common installation.
 
15
</p><p>
 
16
<a class="indexterm" name="id2574176"></a>
 
17
<a class="indexterm" name="id2574183"></a>
 
18
<a class="indexterm" name="id2574190"></a>
 
19
<a class="indexterm" name="id2574197"></a>
 
20
If all that is needed is a server for read-only files, or for
 
21
printers alone, it may not make sense to effect a complex installation.
 
22
For example, a drafting office needs to store old drawings and reference
 
23
standards. Noone can write files to the server because it is legislatively
 
24
important that all documents remain unaltered. A share-mode read-only standalone
 
25
server is an ideal solution.
 
26
</p><p>
 
27
<a class="indexterm" name="id2574214"></a>
 
28
<a class="indexterm" name="id2574221"></a>
 
29
<a class="indexterm" name="id2574227"></a>
 
30
Another situation that warrants simplicity is an office that has many printers
 
31
that are queued off a single central server. Everyone needs to be able to print
 
32
to the printers, there is no need to effect any access controls, and no files will
 
33
be served from the print server. Again, a share-mode standalone server makes
 
34
a great solution.
 
35
</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2574242"></a>Background</h2></div></div></div><p>
 
36
<a class="indexterm" name="id2574250"></a>
 
37
<a class="indexterm" name="id2574257"></a>
 
38
<a class="indexterm" name="id2574264"></a>
 
39
The term <span class="emphasis"><em>standalone server</em></span> means that it will provide local authentication and access
 
40
control for all resources that are available from it. In general this means that there will be a local user
 
41
database. In more technical terms, it means resources on the machine will be made available in either
 
42
<span class="emphasis"><em>share</em></span> mode or in <span class="emphasis"><em>user</em></span> mode.
 
43
</p><p>
 
44
<a class="indexterm" name="id2574290"></a>
 
45
<a class="indexterm" name="id2574297"></a>
 
46
<a class="indexterm" name="id2574304"></a>
 
47
No special action is needed other than to create user accounts. Standalone
 
48
servers do not provide network logon services. This means that machines that
 
49
use this server do not perform a domain logon to it. Whatever logon facility
 
50
the workstations are subject to is independent of this machine. It is, however,
 
51
necessary to accommodate any network user so the logon name he or she uses will
 
52
be translated (mapped) locally on the standalone server to a locally known
 
53
user name. There are several ways this can be done.
 
54
</p><p>
 
55
<a class="indexterm" name="id2574332"></a>
 
56
<a class="indexterm" name="id2574339"></a>
 
57
<a class="indexterm" name="id2574345"></a>
 
58
Samba tends to blur the distinction a little in defining
 
59
a standalone server. This is because the authentication database may be
 
60
local or on a remote server, even if from the SMB protocol perspective
 
61
the Samba server is not a member of a domain security context.
 
62
</p><p>
 
63
<a class="indexterm" name="id2574360"></a>
 
64
<a class="indexterm" name="id2574367"></a>
 
65
<a class="indexterm" name="id2574373"></a>
 
66
<a class="indexterm" name="id2574380"></a>
 
67
<a class="indexterm" name="id2574387"></a>
 
68
<a class="indexterm" name="id2574394"></a>
 
69
<a class="indexterm" name="id2574401"></a>
 
70
<a class="indexterm" name="id2574408"></a>
 
71
Through the use of Pluggable Authentication Modules (PAM) (see <a class="link" href="pam.html" title="Chapter�28.�PAM-Based Distributed Authentication">the chapter on PAM</a>)
 
72
and the name service switcher (NSS), which maintains the UNIX-user database, the source of authentication may
 
73
reside on another server. We would be inclined to call this the authentication server.  This means that the
 
74
Samba server may use the local UNIX/Linux system password database (<code class="filename">/etc/passwd</code> or
 
75
<code class="filename">/etc/shadow</code>), may use a local smbpasswd file, or may use an LDAP backend, or even via PAM
 
76
and Winbind another CIFS/SMB server for authentication.
 
77
</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2574443"></a>Example Configuration</h2></div></div></div><p>
 
78
<a class="indexterm" name="id2574451"></a>
 
79
<a class="indexterm" name="id2574458"></a>
 
80
<a class="link" href="StandAloneServer.html#simplynice" title="Example�7.1.�smb.conf for Reference Documentation Server">The example Reference Documentation Server</a> and <a class="link" href="StandAloneServer.html#SimplePrintServer" title="Central Print Serving">Central Print Serving</a> are designed to inspire simplicity. It is too easy to
 
81
attempt a high level of creativity and to introduce too much complexity in server and network design.
 
82
</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>
 
83
<a class="indexterm" name="id2574495"></a>
 
84
<a class="indexterm" name="id2574502"></a>
 
85
<a class="indexterm" name="id2574509"></a>
 
86
<a class="indexterm" name="id2574515"></a>
 
87
Configuration of a read-only data server that everyone can access is very simple. By default, all shares are
 
88
read-only, unless set otherwise in the <code class="filename">smb.conf</code> file. <a class="link" href="StandAloneServer.html#simplynice" title="Example�7.1.�smb.conf for Reference Documentation Server">The example - Reference
 
89
Documentation Server</a> is the <code class="filename">smb.conf</code> file that will do this. Assume that all the reference documents
 
90
are stored in the directory <code class="filename">/export</code>, and the documents are owned by a user other than
 
91
nobody. No home directories are shared, and there are no users in the <code class="filename">/etc/passwd</code> UNIX
 
92
system database. This is a simple system to administer.
 
93
</p><div class="example"><a name="simplynice"></a><p class="title"><b>Example�7.1.�smb.conf for Reference Documentation Server</b></p><div class="example-contents"><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="id2574589"></a><em class="parameter"><code>workgroup = MIDEARTH</code></em></td></tr><tr><td><a class="indexterm" name="id2574601"></a><em class="parameter"><code>netbios name = GANDALF</code></em></td></tr><tr><td><a class="indexterm" name="id2574613"></a><em class="parameter"><code>security = SHARE</code></em></td></tr><tr><td><a class="indexterm" name="id2574624"></a><em class="parameter"><code>passdb backend = guest</code></em></td></tr><tr><td><a class="indexterm" name="id2574636"></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="id2574657"></a><em class="parameter"><code>comment = Data</code></em></td></tr><tr><td><a class="indexterm" name="id2574668"></a><em class="parameter"><code>path = /export</code></em></td></tr><tr><td><a class="indexterm" name="id2574680"></a><em class="parameter"><code>guest only = Yes</code></em></td></tr></table></div></div><br class="example-break"><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>
 
94
I would have spoken more briefly, if I'd had more time to prepare.
 
95
</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>
 
96
<a class="indexterm" name="id2574706"></a>
 
97
<a class="indexterm" name="id2574713"></a>
 
98
<a class="indexterm" name="id2574720"></a>
 
99
<a class="indexterm" name="id2574727"></a>
 
100
In <a class="link" 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
 
101
workgroup is set to the name of the local workgroup (MIDEARTH) so the machine will appear together
 
102
with systems with which users are familiar. The only password backend required is the &#8220;<span class="quote">guest</span>&#8221;
 
103
backend to allow default unprivileged account names to be used. As there is a WINS server on this network, we
 
104
of course make use of it.
 
105
</p><p>
 
106
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
 
107
sound reasons for avoiding complexity as well as for avoiding a technically perfect solution. Unfortunately,
 
108
many network administrators still need to learn the art of doing just enough to keep out of trouble.
 
109
</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>
 
110
<a class="indexterm" name="id2574776"></a>
 
111
<a class="indexterm" name="id2574783"></a>
 
112
Configuration of a simple print server is easy if you have all the right tools on your system.
 
113
</p><div class="orderedlist"><p class="title"><b> Assumptions</b></p><ol type="1"><li><p>
 
114
        The print server must require no administration.
 
115
        </p></li><li><p>
 
116
        The print spooling and processing system on our print server will be CUPS.
 
117
        (Please refer to <a class="link" href="CUPS-printing.html" title="Chapter�22.�CUPS Printing Support">CUPS Printing Support</a>, for more information).
 
118
        </p></li><li><p>
 
119
        The print server will service only network printers. The network administrator
 
120
        will correctly configure the CUPS environment to support the printers.
 
121
        </p></li><li><p>
 
122
        All workstations will use only PostScript drivers. The printer driver
 
123
        of choice is the one shipped with the Windows OS for the Apple Color LaserWriter.
 
124
        </p></li></ol></div><p>
 
125
<a class="indexterm" name="id2574839"></a>
 
126
<a class="indexterm" name="id2574846"></a>
 
127
<a class="indexterm" name="id2574853"></a>
 
128
In this example our print server will spool all incoming print jobs to
 
129
<code class="filename">/var/spool/samba</code> until the job is ready to be submitted by
 
130
Samba to the CUPS print processor. Since all incoming connections will be as
 
131
the anonymous (guest) user, two things will be required to enable anonymous printing.
 
132
</p><div class="itemizedlist"><p class="title"><b>Enabling Anonymous Printing</b></p><ul type="disc"><li><p>
 
133
<a class="indexterm" name="id2574881"></a>
 
134
<a class="indexterm" name="id2574888"></a>
 
135
<a class="indexterm" name="id2574894"></a>
 
136
        The UNIX/Linux system must have a <code class="literal">guest</code> account.
 
137
        The default for this is usually the account <code class="literal">nobody</code>.
 
138
        To find the correct name to use for your version of Samba, do the 
 
139
        following:
 
140
</p><pre class="screen">
 
141
<code class="prompt">$ </code><strong class="userinput"><code>testparm -s -v | grep "guest account"</code></strong>
 
142
</pre><p>
 
143
<a class="indexterm" name="id2574932"></a>
 
144
        Make sure that this account exists in your system password
 
145
        database (<code class="filename">/etc/passwd</code>).
 
146
        </p><p>
 
147
<a class="indexterm" name="id2574950"></a>
 
148
<a class="indexterm" name="id2574956"></a>
 
149
<a class="indexterm" name="id2574963"></a>
 
150
        It is a good idea either to set a password on this account, or else to lock it
 
151
        from UNIX use. Assuming that the guest account is called <code class="literal">pcguest</code>,
 
152
        it can be locked by executing:
 
153
</p><pre class="screen">
 
154
<code class="prompt">root# </code> passwd -l pcguest
 
155
</pre><p>
 
156
        The exact command may vary depending on your UNIX/Linux distribution.
 
157
        </p></li><li><p>
 
158
<a class="indexterm" name="id2574996"></a>
 
159
<a class="indexterm" name="id2575003"></a>
 
160
<a class="indexterm" name="id2575010"></a>
 
161
<a class="indexterm" name="id2575017"></a>
 
162
<a class="indexterm" name="id2575024"></a>
 
163
<a class="indexterm" name="id2575030"></a>
 
164
        The directory into which Samba will spool the file must have write
 
165
        access for the guest account. The following commands will ensure that
 
166
        this directory is available for use:
 
167
</p><pre class="screen">
 
168
<code class="prompt">root# </code><strong class="userinput"><code>mkdir /var/spool/samba</code></strong>
 
169
<code class="prompt">root# </code><strong class="userinput"><code>chown nobody.nobody /var/spool/samba</code></strong>
 
170
<code class="prompt">root# </code><strong class="userinput"><code>chmod a+rwt /var/spool/samba</code></strong>
 
171
</pre><p>
 
172
        </p></li></ul></div><p>
 
173
The contents of the <code class="filename">smb.conf</code> file is shown in <a class="link" href="StandAloneServer.html#AnonPtrSvr" title="Example�7.2.�smb.conf for Anonymous Printing">the Anonymous Printing example</a>.
 
174
</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><div class="example-contents"><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="id2575130"></a><em class="parameter"><code>workgroup = MIDEARTH</code></em></td></tr><tr><td><a class="indexterm" name="id2575142"></a><em class="parameter"><code>netbios name = GANDALF</code></em></td></tr><tr><td><a class="indexterm" name="id2575154"></a><em class="parameter"><code>security = SHARE</code></em></td></tr><tr><td><a class="indexterm" name="id2575165"></a><em class="parameter"><code>passdb backend = guest</code></em></td></tr><tr><td><a class="indexterm" name="id2575177"></a><em class="parameter"><code>printing = cups</code></em></td></tr><tr><td><a class="indexterm" name="id2575189"></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="id2575210"></a><em class="parameter"><code>comment = All Printers</code></em></td></tr><tr><td><a class="indexterm" name="id2575221"></a><em class="parameter"><code>path = /var/spool/samba</code></em></td></tr><tr><td><a class="indexterm" name="id2575233"></a><em class="parameter"><code>printer admin = root</code></em></td></tr><tr><td><a class="indexterm" name="id2575245"></a><em class="parameter"><code>guest ok = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id2575256"></a><em class="parameter"><code>printable = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id2575268"></a><em class="parameter"><code>use client driver = Yes</code></em></td></tr><tr><td><a class="indexterm" name="id2575280"></a><em class="parameter"><code>browseable = No</code></em></td></tr></table></div></div><br class="example-break"><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
 
175
<a class="indexterm" name="id2575296"></a>
 
176
<a class="indexterm" name="id2575305"></a>
 
177
<a class="indexterm" name="id2575312"></a>
 
178
<a class="indexterm" name="id2575319"></a>
 
179
<a class="indexterm" name="id2575326"></a>
 
180
On CUPS-enabled systems there is a facility to pass raw data directly to the printer without intermediate
 
181
processing via CUPS print filters. Where use of this mode of operation is desired, it is necessary to
 
182
configure a raw printing device. It is also necessary to enable the raw mime handler in the
 
183
<code class="filename">/etc/mime.conv</code> and <code class="filename">/etc/mime.types</code> files. Refer to <a class="link" href="CUPS-printing.html" title="Chapter�22.�CUPS Printing Support">CUPS Printing Support</a>, <a class="link" href="CUPS-printing.html#cups-raw" title="Explicitly Enable raw Printing for application/octet-stream">Explicitly Enable raw Printing
 
184
for application/octet-stream</a>.
 
185
</p></div><p>
 
186
<a class="indexterm" name="id2575368"></a>
 
187
<a class="indexterm" name="id2575375"></a>
 
188
<a class="indexterm" name="id2575382"></a>
 
189
<a class="indexterm" name="id2575389"></a>
 
190
The example in <a class="link" href="StandAloneServer.html#AnonPtrSvr" title="Example�7.2.�smb.conf for Anonymous Printing">the Anonymous Printing example</a> uses CUPS for direct printing
 
191
via the CUPS libarary API. This means that all printers will be exposed to Windows users without need to
 
192
configure a printcap file. If there is necessity to expose only a sub-set of printers, or to define a special
 
193
type of printer (for example, a PDF filter) the <em class="parameter"><code>printcap name = cups</code></em> can be replaced
 
194
with the entry <em class="parameter"><code>printcap name = /etc/samba/myprintcap</code></em>. In this case the file specified
 
195
should contain a list of the printer names that should be exposed to Windows network users.
 
196
</p></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2575426"></a>Common Errors</h2></div></div></div><p>
 
197
<a class="indexterm" name="id2575434"></a>
 
198
<a class="indexterm" name="id2575441"></a>
 
199
The greatest mistake so often made is to make a network configuration too complex.
 
200
It pays to use the simplest solution that will meet the needs of the moment.
 
201
</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>