~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to docs-xml/using_samba/appf.xml

  • 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
<appendix label="F" id="SAMBA-AP-F">
 
2
<title>Sample Configuration File</title>
 
3
 
 
4
 
 
5
 
 
6
 
 
7
<para>
 
8
<indexterm id="appf-idx-993481-0" class="startofrange"><primary>configuration files</primary><secondary>sample of</secondary></indexterm>This appendix gives an example of a production <filename>smb.conf</filename> 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:</para>
 
9
 
 
10
 
 
11
<programlisting># smb.conf -- File Server System for: 1 Example.COM  BSC &amp; Management Office
 
12
[globals]
 
13
        workgroup = 1EG_BSC
 
14
        interfaces = 10.10.1.14/24</programlisting>
 
15
 
 
16
 
 
17
<para>We provide this service on only one of the machine's interfaces. The <literal>interfaces</literal> option sets its address and netmask, where <literal>/24</literal> is the same as using the netmask 255.255.255.0:</para>
 
18
 
 
19
 
 
20
<programlisting>comment = Samba ver. %v
 
21
        preexec = csh -c `echo /usr/samba/bin/smbclient \
 
22
                     -M %m -I %I` &amp;</programlisting>
 
23
 
 
24
 
 
25
<para>We use the <command>preexec</command> command to log information about all connections by machine name (<literal>%m</literal>) and IP address (<literal>%I)</literal>:</para>
 
26
 
 
27
 
 
28
<programlisting># smbstatus will output various info on current status
 
29
        status = yes
 
30
        browseable = yes
 
31
        printing = bsd
 
32
 
 
33
        # the username that will be used for access to services
 
34
        # specified with 'guest = ok'
 
35
        guest account = samba</programlisting>
 
36
 
 
37
 
 
38
<para>The default guest account was <literal>nobody</literal>, 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:</para>
 
39
 
 
40
 
 
41
<programlisting># superuser account - admin privilages to shares, with no
 
42
        # restrictions
 
43
        # WARNING - use this with care: files can be modified,
 
44
        # regardless of file permissions
 
45
        admin users = root
 
46
 
 
47
        # who is NOT allowed to connect to ANY service
 
48
        invalid users = @wheel, mail, deamon, adt</programlisting>
 
49
 
 
50
 
 
51
<para>Daemons can't use Samba, only people. The <literal>invalid</literal> <literal>users</literal> option closes a security hole; it prevents intruders from breaking in by pretending to be a daemon process.</para>
 
52
 
 
53
 
 
54
<programlisting># hosts that are ALLOWED or DENIED from connecting to ANY service
 
55
        hosts allow = 10.10.1.
 
56
        hosts deny = 10.10.1.6
 
57
 
 
58
        # where the lock files will be located
 
59
        lock directory = /var/lock/samba/locks
 
60
 
 
61
        # debug log files
 
62
        # %m = separate log for each NetBIOS name (each machine)
 
63
        log file = /var/log/samba/log.%m
 
64
 
 
65
        # We send priority 0, 1 and 2 messages to the system logs
 
66
        syslog = 2
 
67
 
 
68
        # If a WinPopup message is sent to the server,
 
69
        # redirect it to a user via e-mail
 
70
 
 
71
        message command = /bin/mail -s 'message from #% on %m' \
 
72
                               pkelly &lt; %s; rm %s
 
73
 
 
74
# ---------------------------------------------------
 
75
# [globals] Performance Tuning
 
76
# ---------------------------------------------------
 
77
 
 
78
        # caching algorithm to reduce time doing getwd() calls.
 
79
        getwd cache = yes
 
80
 
 
81
        socket options = TCP_NODELAY
 
82
 
 
83
        # tell the server whether the client is present and
 
84
        # responding in seconds
 
85
        keep alive = 60
 
86
 
 
87
        # num minutes of inactivity before a connection is
 
88
        # considered dead
 
89
        dead time = 30
 
90
 
 
91
        read prediction = yes
 
92
        share modes = yes
 
93
        max xmit = 17384
 
94
        read size = 512</programlisting>
 
95
 
 
96
 
 
97
<para>The <literal>share</literal> <literal>modes</literal>, <literal>max</literal>, <literal>xinit</literal>, and <literal>read</literal> <literal>size</literal> options are machine-specific (see <link linkend="SAMBA-AP-B">Appendix B</link>):</para>
 
98
 
 
99
 
 
100
<programlisting># locking is done by the server
 
101
        locking = yes
 
102
 
 
103
        # control whether dos style attributes should be mapped
 
104
        # to unix execute bits
 
105
        map hidden = yes
 
106
        map archive = yes
 
107
        map system = yes</programlisting>
 
108
 
 
109
 
 
110
<para>The three <literal>map</literal> options will work only on shares with a create mode that includes the execute bits (0111). Our <literal>homes</literal> and <literal>printers</literal> shares won't honor them, but the [<literal>www]</literal> share will:</para>
 
111
 
 
112
 
 
113
<programlisting># ---------------------------------------------------------
 
114
# [globals] Security and Domain Logon Services
 
115
# ---------------------------------------------------------
 
116
# connections are made with UID and GID, not as shares
 
117
        security = user
 
118
 
 
119
# boolean variable that controls whether passwords
 
120
# will be encrypted
 
121
        encrypt passwords = yes
 
122
        passwd chat = "*New password:*" %n\r "*New password (again):*" %n\r \ "*Password changed*"
 
123
        passwd program = /usr/bin/passwd %u
 
124
 
 
125
# Always become the local master browser
 
126
        domain master = yes
 
127
        preferred master = yes
 
128
        os level = 34
 
129
 
 
130
# For domain logons to work correctly. Samba acts as a
 
131
# primary domain controller.
 
132
        domain logons = yes
 
133
 
 
134
# Logon script to run for user off the server each time
 
135
# username (%U) logs in.  Set the time, connect to shares,
 
136
# virus checks, etc.
 
137
        logon script = scripts\%U.bat
 
138
 
 
139
[netlogon]
 
140
        comment = "Domain Logon Services"
 
141
        path = /u/netlogon
 
142
        writable = yes
 
143
        create mode = 444
 
144
        guest ok = no
 
145
        volume = "Network"</programlisting>
 
146
 
 
147
 
 
148
<para>This share, discussed in <link linkend="SAMBA-CH-6">Chapter 6</link>, is required for Samba to work smoothly in a Windows NT domain:</para>
 
149
 
 
150
 
 
151
<programlisting># -----------------------------------------------------------
 
152
# [homes] User Home Directories
 
153
# -----------------------------------------------------------
 
154
[homes]
 
155
        comment = "Home Directory for : %u "
 
156
        path = /u/users/%u</programlisting>
 
157
 
 
158
 
 
159
<para>The password file of the Samba server specifies each person's home directory as   <emphasis>/home/</emphasis><replaceable>machine_name</replaceable><emphasis>/</emphasis><replaceable>person</replaceable>, which NFS converts to point to the actual physicl location under <emphasis>/u/users</emphasis>. The <literal>path</literal> option in the <literal>[homes]</literal> share tells Samba the actual (non-NFS) location:</para>
 
160
 
 
161
 
 
162
<programlisting>guest ok = no
 
163
        read only = no
 
164
        create mode = 644
 
165
        writable = yes
 
166
        browseable = no
 
167
 
 
168
# -----------------------------------------------------------
 
169
# [printers] System Printers
 
170
# -----------------------------------------------------------
 
171
[printers]
 
172
        comment = "Printers"
 
173
        path = /var/spool/lpd/samba
 
174
        printcap name = /etc/printcap
 
175
        printable = yes
 
176
        public = no
 
177
        writable = no
 
178
 
 
179
        lpq command = /usr/bin/lpq -P%p
 
180
        lprm command = /usr/bin/lprm -P%p %j
 
181
        lppause command = /usr/sbin/lpc stop %p
 
182
        lpresume command = /usr/sbin/lpc start %p
 
183
 
 
184
        create mode = 0700
 
185
 
 
186
        browseable = no
 
187
        load printers = yes
 
188
 
 
189
# -----------------------------------------------------------
 
190
# Specific Descriptions: [programs] [data] [retail]
 
191
# -----------------------------------------------------------
 
192
[programs]
 
193
        comment = "Shared Programs %T"
 
194
        volume = "programs"</programlisting>
 
195
 
 
196
 
 
197
<para>Shared Programs shows up in the Network Neighborhood, and <literal>programs</literal> 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:</para>
 
198
 
 
199
 
 
200
<programlisting>path = /u/programs
 
201
        public = yes
 
202
        writeable = yes
 
203
        printable = no
 
204
        create mode = 664
 
205
[cdrom]
 
206
        comment = "Unix CDROM"
 
207
        path = /u/cdrom
 
208
        public = no
 
209
        writeable = no
 
210
        printable = no
 
211
        volume = "cdrom"
 
212
 
 
213
[data]
 
214
        comment =  "Data Directories %T"
 
215
        path = /u/data
 
216
        public = no
 
217
        create mode = 770
 
218
        writeable = yes
 
219
        volume = "data"
 
220
 
 
221
[nt4]
 
222
        comment =  "NT4 Server"
 
223
        path = /u/systems/nt4
 
224
        public = yes
 
225
        create mode = 770
 
226
        writeable = yes
 
227
        volume = "nt4_server"
 
228
 
 
229
[www]
 
230
        comment =  "WWW System"
 
231
        path = /usr/www/http
 
232
        public = yes
 
233
        create mode = 775
 
234
        writeable = yes
 
235
        volume = "www_system"</programlisting>
 
236
 
 
237
 
 
238
<para>The <literal>[www]</literal> 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.</para>
 
239
 
 
240
 
 
241
 
 
242
 
 
243
 
 
244
 
 
245
 
 
246
 
 
247
 
 
248
 
 
249
 
 
250
</appendix>