diff options
Diffstat (limited to 'docs/docbook/faq/install.xml')
-rw-r--r-- | docs/docbook/faq/install.xml | 333 |
1 files changed, 333 insertions, 0 deletions
diff --git a/docs/docbook/faq/install.xml b/docs/docbook/faq/install.xml new file mode 100644 index 0000000000..f8341dc65a --- /dev/null +++ b/docs/docbook/faq/install.xml @@ -0,0 +1,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> |