-<chapter>
+<chapter id="install">
<title>How to Install and Test SAMBA</title>
</userinput></para>
<para>first to see what special options you can enable.
- Then exectuting</para>
+ Then executing</para>
<para><prompt>root# </prompt><userinput>make</userinput></para>
<para>which would allow connections by anyone with an
account on the server, using either their login name or
"homes" as the service name. (Note that I also set the
- workgroup that Samba is part of. See BROWSING.txt for defails)</para>
+ workgroup that Samba is part of. See BROWSING.txt for details)</para>
<para>Note that <command>make install</command> will not install
a <filename>smb.conf</filename> file. You need to create it
not it will give an error message.</para>
<para>Make sure it runs OK and that the services look
- resonable before proceeding. </para>
+ reasonable before proceeding. </para>
</sect1>
<sect1>
<title>Step 5: Starting the smbd and nmbd</title>
-
- <para>You must choose to start smbd and nmbd either
- as daemons or from <command>inetd</command>. Don't try
+
+ <para>You must choose to start smbd and nmbd either
+ as daemons or from <command>inetd</command>. Don't try
to do both! Either you can put them in <filename>
- inetd.conf</filename> and have them started on demand
+ inetd.conf</filename> and have them started on demand
by <command>inetd</command>, or you can start them as
daemons either from the command line or in <filename>
- /etc/rc.local</filename>. See the man pages for details
- on the command line options. Take particular care to read
- the bit about what user you need to be in order to start
+ /etc/rc.local</filename>. See the man pages for details
+ on the command line options. Take particular care to read
+ the bit about what user you need to be in order to start
Samba. In many cases you must be root.</para>
<para>The main advantage of starting <command>smbd</command>
- and <command>nmbd</command> as a daemon is that they will
- respond slightly more quickly to an initial connection
- request. This is, however, unlikely to be a problem.</para>
+ and <command>nmbd</command> using the recommended daemon method
+ is that they will respond slightly more quickly to an initial connection
+ request.</para>
<sect2>
<title>Step 5a: Starting from inetd.conf</title>
<para>NOTE: Some unixes already have entries like netbios_ns
(note the underscore) in <filename>/etc/services</filename>.
You must either edit <filename>/etc/services</filename> or
- <filename>/etc/inetd.conf</filename> to make them consistant.</para>
+ <filename>/etc/inetd.conf</filename> to make them consistent.</para>
<para>NOTE: On many systems you may need to use the
"interfaces" option in smb.conf to specify the IP address
and netmask of your interfaces. Run <command>ifconfig</command>
as root if you don't know what the broadcast is for your
net. <command>nmbd</command> tries to determine it at run
- time, but fails on somunixes. See the section on "testing nmbd"
+ time, but fails on some unixes. See the section on "testing nmbd"
for a method of finding if you need to do this.</para>
<para>!!!WARNING!!! Many unixes only accept around 5
<sect2>
<title>Diagnosing Problems</title>
- <para>If you have instalation problems then go to
+ <para>If you have installation problems then go to
<filename>DIAGNOSIS.txt</filename> to try to find the
problem.</para>
</sect2>
The second is the "deny modes" that are specified when a file
is open.</para>
- <para>Samba supports "record locking" using the fcntl() unix system
- call. This is often implemented using rpc calls to a rpc.lockd process
- running on the system that owns the filesystem. Unfortunately many
- rpc.lockd implementations are very buggy, particularly when made to
- talk to versions from other vendors. It is not uncommon for the
- rpc.lockd to crash.</para>
-
- <para>There is also a problem translating the 32 bit lock
- requests generated by PC clients to 31 bit requests supported
- by most unixes. Unfortunately many PC applications (typically
- OLE2 applications) use byte ranges with the top bit set
- as semaphore sets. Samba attempts translation to support
- these types of applications, and the translation has proved
- to be quite successful.</para>
-
+ <para>Record locking semantics under Unix is very
+ different from record locking under Windows. Versions
+ of Samba before 2.2 have tried to use the native
+ fcntl() unix system call to implement proper record
+ locking between different Samba clients. This can not
+ be fully correct due to several reasons. The simplest
+ is the fact that a Windows client is allowed to lock a
+ byte range up to 2^32 or 2^64, depending on the client
+ OS. The unix locking only supports byte ranges up to
+ 2^31. So it is not possible to correctly satisfy a
+ lock request above 2^31. There are many more
+ differences, too many to be listed here.</para>
+
+ <para>Samba 2.2 and above implements record locking
+ completely independent of the underlying unix
+ system. If a byte range lock that the client requests
+ happens to fall into the range 0-2^31, Samba hands
+ this request down to the Unix system. All other locks
+ can not be seen by unix anyway.</para>
+
<para>Strictly a SMB server should check for locks before
every read and write call on a file. Unfortunately with the
way fcntl() works this can be slow and may overstress the
are set by an application when it opens a file to determine
what types of access should be allowed simultaneously with
its open. A client may ask for DENY_NONE, DENY_READ, DENY_WRITE
- or DENY_ALL. There are also special compatability modes called
+ or DENY_ALL. There are also special compatibility modes called
DENY_FCB and DENY_DOS.</para>
-
- <para>You can disable share modes using "share modes = no".
- This may be useful on a heavily loaded server as the share
- modes code is very slow. See also the FAST_SHARE_MODES
- option in the Makefile for a way to do full share modes
- very fast using shared memory (if your OS supports it).</para>
</sect2>
<sect2>
<para>If you have problems using filenames with accented
characters in them (like the German, French or Scandinavian
- character sets) then I recommmend you look at the "valid chars"
+ character sets) then I recommend you look at the "valid chars"
option in smb.conf and also take a look at the validchars
package in the examples directory.</para>
</sect2>