summaryrefslogtreecommitdiff
path: root/docs/docbook/faq/install.xml
blob: f8341dc65ac395198d39fcdab810aa29af1b1d29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
<chapter id="FAQ-Install">
<title>Compiling and installing Samba on a Unix host</title>

<sect1>
<title>I can't see the Samba server in any browse lists!</title>
<para>
See Browsing.html in the docs directory of the samba source
for more information on browsing.
</para>

<para>
If your GUI client does not permit you to select non-browsable
servers, you may need to do so on the command line. For example, under
Lan Manager you might connect to the above service as disk drive M:
thusly:
<programlisting>
   net use M: \\mary\fred
</programlisting>
The details of how to do this and the specific syntax varies from
client to client - check your client's documentation.
</para>
</sect1>

<sect1>
<title>Some files that I KNOW are on the server don't show up when I view the files from my client!</title>
<para>See the next question.</para>
</sect1>

<sect1>
<title>Some files on the server show up with really wierd filenames when I view the files from my client!</title>
<para>
If you check what files are not showing up, you will note that they
are files which contain upper case letters or which are otherwise not
DOS-compatible (ie, they are not legal DOS filenames for some reason).
</para>

<para>
The Samba server can be configured either to ignore such files
completely, or to present them to the client in "mangled" form. If you
are not seeing the files at all, the Samba server has most likely been
configured to ignore them.  Consult the man page smb.conf(5) for
details of how to change this - the parameter you need to set is
"mangled names = yes".
</para>
</sect1>

<sect1>
<title>My client reports "cannot locate specified computer" or similar</title>
<para>
This indicates one of three things: You supplied an incorrect server
name, the underlying TCP/IP layer is not working correctly, or the
name you specified cannot be resolved.
</para>

<para>
After carefully checking that the name you typed is the name you
should have typed, try doing things like pinging a host or telnetting
to somewhere on your network to see if TCP/IP is functioning OK. If it
is, the problem is most likely name resolution.
</para>

<para>
If your client has a facility to do so, hardcode a mapping between the
hosts IP and the name you want to use. For example, with Lan Manager
or Windows for Workgroups you would put a suitable entry in the file
LMHOSTS. If this works, the problem is in the communication between
your client and the netbios name server. If it does not work, then
there is something fundamental wrong with your naming and the solution
is beyond the scope of this document.
</para>

<para>
If you do not have any server on your subnet supplying netbios name
resolution, hardcoded mappings are your only option. If you DO have a
netbios name server running (such as the Samba suite's nmbd program),
the problem probably lies in the way it is set up. Refer to Section
Two of this FAQ for more ideas.
</para>

<para>
By the way, remember to REMOVE the hardcoded mapping before further
tests :-)
</para>

</sect1>

<sect1>
<title>My client reports "cannot locate specified share name" or similar</title>
<para>
This message indicates that your client CAN locate the specified
server, which is a good start, but that it cannot find a service of
the name you gave.
</para>

<para>
The first step is to check the exact name of the service you are
trying to connect to (consult your system administrator). Assuming it
exists and you specified it correctly (read your client's docs on how
to specify a service name correctly), read on:
</para>

<simplelist>
<member>Many clients cannot accept or use service names longer than eight characters.</member>
<member>Many clients cannot accept or use service names containing spaces.</member>
<member>Some servers (not Samba though) are case sensitive with service names.</member>
<member>Some clients force service names into upper case.</member>
</simplelist>
</sect1>

<sect1>
<title>Printing doesn't work</title>
<para>
Make sure that the specified print command for the service you are
connecting to is correct and that it has a fully-qualified path (eg.,
use "/usr/bin/lpr" rather than just "lpr").
</para>

<para>
Make sure that the spool directory specified for the service is
writable by the user connected to the service. In particular the user
"nobody" often has problems with printing, even if it worked with an
earlier version of Samba. Try creating another guest user other than
"nobody".
</para>

<para>
Make sure that the user specified in the service is permitted to use
the printer.
</para>

<para>
Check the debug log produced by smbd. Search for the printer name and
see if the log turns up any clues. Note that error messages to do with
a service ipc$ are meaningless - they relate to the way the client
attempts to retrieve status information when using the LANMAN1
protocol.
</para>

<para>
If using WfWg then you need to set the default protocol to TCP/IP, not
Netbeui. This is a WfWg bug.
</para>

<para>
If using the Lanman1 protocol (the default) then try switching to
coreplus.  Also not that print status error messages don't mean
printing won't work. The print status is received by a different
mechanism.
</para>
</sect1>

<sect1>
<title>My client reports "This server is not configured to list shared resources"</title>
<para>
Your guest account is probably invalid for some reason. Samba uses the
guest account for browsing in smbd.  Check that your guest account is
valid.
</para>

<para>See also 'guest account' in smb.conf man page.</para>

</sect1>

<sect1>
<title>Log message "you appear to have a trapdoor uid system" </title>
<para>
This can have several causes. It might be because you are using a uid
or gid of 65535 or -1. This is a VERY bad idea, and is a big security
hole. Check carefully in your /etc/passwd file and make sure that no
user has uid 65535 or -1. Especially check the "nobody" user, as many
broken systems are shipped with nobody setup with a uid of 65535.
</para>

<para>It might also mean that your OS has a trapdoor uid/gid system :-)</para>

<para>
This means that once a process changes effective uid from root to
another user it can't go back to root. Unfortunately Samba relies on
being able to change effective uid from root to non-root and back
again to implement its security policy. If your OS has a trapdoor uid
system this won't work, and several things in Samba may break. Less
things will break if you use user or server level security instead of
the default share level security, but you may still strike
problems.
</para>

<para>
The problems don't give rise to any security holes, so don't panic,
but it does mean some of Samba's capabilities will be unavailable.
In particular you will not be able to connect to the Samba server as
two different uids at once. This may happen if you try to print as a
"guest" while accessing a share as a normal user. It may also affect
your ability to list the available shares as this is normally done as
the guest user.
</para>

<para>
Complain to your OS vendor and ask them to fix their system.
</para>

<para>
Note: the reason why 65535 is a VERY bad choice of uid and gid is that
it casts to -1 as a uid, and the setreuid() system call ignores (with
no error) uid changes to -1. This means any daemon attempting to run
as uid 65535 will actually run as root. This is not good!
</para>

</sect1>

<sect1>
<title>Why are my file's timestamps off by an hour, or by a few hours?</title>
<para>
This is from Paul Eggert eggert@twinsun.com.
</para>

<para>
Most likely it's a problem with your time zone settings.
</para>

<para>
Internally, Samba maintains time in traditional Unix format,
namely, the number of seconds since 1970-01-01 00:00:00 Universal Time
(or ``GMT''), not counting leap seconds.
</para>

<para>
On the server side, Samba uses the Unix TZ variable to convert
internal timestamps to and from local time.  So on the server side, there are
two things to get right.
<simplelist>
<member>The Unix system clock must have the correct Universal time. Use the shell command "sh -c 'TZ=UTC0 date'" to check this.</member>
<member>The TZ environment variable must be set on the server before Samba is invoked.  The details of this depend on the server OS, but typically you must edit a file whose name is /etc/TIMEZONE or /etc/default/init, or run the command `zic -l'.</member>
</simplelist>
</para>

<para>TZ must have the correct value.</para>

<para>
If possible, use geographical time zone settings
(e.g. TZ='America/Los_Angeles' or perhaps
 TZ=':US/Pacific').  These are supported by most
popular Unix OSes, are easier to get right, and are
more accurate for historical timestamps.  If your
operating system has out-of-date tables, you should be
able to update them from the public domain time zone
tables at <ulink url="ftp://elsie.nci.nih.gov/pub/">ftp://elsie.nci.nih.gov/pub/</ulink>.
</para>

<para>If your system does not support geographical timezone
settings, you must use a Posix-style TZ strings, e.g.
TZ='PST8PDT,M4.1.0/2,M10.5.0/2' for US Pacific time.
Posix TZ strings can take the following form (with optional
											  items in brackets):
<programlisting>
	StdOffset[Dst[Offset],Date/Time,Date/Time]
</programlisting>
                where:
</para>

<para><simplelist>
<member>`Std' is the standard time designation (e.g. `PST').</member>
<member>`Offset' is the number of hours behind UTC (e.g. `8').
Prepend a `-' if you are ahead of UTC, and
append `:30' if you are at a half-hour offset.
Omit all the remaining items if you do not use
daylight-saving time.</member>

<member>`Dst' is the daylight-saving time designation
(e.g. `PDT').</member>

<member>The optional second `Offset' is the number of
hours that daylight-saving time is behind UTC.
The default is 1 hour ahead of standard time.
</member>

<member>`Date/Time,Date/Time' specify when daylight-saving
time starts and ends.  The format for a date is
`Mm.n.d', which specifies the dth day (0 is Sunday)
of the nth week of the mth month, where week 5 means
the last such day in the month.  The format for a
time is [h]h[:mm[:ss]], using a 24-hour clock.
</member>

</simplelist>
</para>

<para>
Other Posix string formats are allowed but you don't want
to know about them.</para>

<para>
On the client side, you must make sure that your client's clock and
time zone is also set appropriately.  [[I don't know how to do this.]]
Samba traditionally has had many problems dealing with time zones, due
to the bizarre ways that Microsoft network protocols handle time
zones.  
</para>
</sect1>

<sect1>
<title>How do I set the printer driver name correctly?</title>
<para>Question:
<quote> On NT, I opened "Printer Manager" and "Connect to Printer".
 Enter ["\\ptdi270\ps1"] in the box of printer. I got the
 following error message
 </quote></para>
 <para>
 <programlisting>
     You do not have sufficient access to your machine
     to connect to the selected printer, since a driver
     needs to be installed locally.
 </programlisting>
 </para>

 <para>Answer:</para>

 <para>In the more recent versions of Samba you can now set the "printer
driver" in smb.conf. This tells the client what driver to use. For
example:</para>
<para><programlisting>
     printer driver = HP LaserJet 4L
</programlisting></para>
<para>With this, NT knows to use the right driver. You have to get this string
exactly right.</para>

<para>To find the exact string to use, you need to get to the dialog box in
your client where you select which printer driver to install. The
correct strings for all the different printers are shown in a listbox
in that dialog box.</para>

</sect1>

</chapter>