Samba
by Mille Babic Translation from Swedish by Bo
Leuf
Introduction Samba is a solution for shared
resources, such as folders and printers, between different
computer platforms. The driving force behind this project
is to achieve a good way to integrate Unix computers
into an existing Windows network. Even Atari is in this
picture thanks to open standards resulting in easy ports.
Samba uses the smb (server
message block) protocol. Smb has its origins in NetBIOS
(Network Basic Input Output System), which was developed
by IBM to connect together smaller networks. Microsoft
later added functions for file shares and smb found
a practical use. NetBIOS was further extended to NetBEUI,
allowing packet transfers between different networks
– NetBIOS over TCP/IP is the specific technique that
Samba uses. Microsoft changed the name for the combination
of smb and NetBIOS to CIFS (Common Internet File System).
The Samba project, coordinated
by Australian, Andrew Tridgel (who originally ported
smb to UNIX to be able to reach Unix from his DOS computer)
is still being developed. Samba is developed as Open
Source Software (OSS) and distributed under the GNU
General Public License (GPL). Samba has a good reputation
for stability and works well on Linux, Sun Solaris and
IBM AIX, to name but a few. From an Atari, it allows
access to resources in a home network, generally built
around one or more Windows or Linux systems and provides
an excellent complement to FTP and Telnet. Samba’s integration
into BNet will give Atari computers a natural place
in home networks.
In this article, I explore
what is possible with Samba from the perspective of
an Atari user, show a few examples of the advantages
this gives in a home network, and explain how to set
up this solution. The main focus is on the client part
of smb to stay with the intent of describing smb and
Atari in home networks.
We look at an FTP-like
smb client that gives access to resource shares on a
PC running MS Windows, including printers and folder
shares on disk. The client is a simple tool that functions
as a command interpreter and file manager, among other
things.
More information about
Samba is available from the official web site www.samba.org in the form of a wealth of documentation,
manuals, and text files with useful tips and problem
solutions. Mailing lists and newsgroups, linked from
the homepage are also a good source of information.
Therefore, I can safely focus on the core subject of
the article.
You can find updated
information about this article, including more examples
and illustrations, on my own home page, section MagiCNet
found at http://mille.atari.org
Home Network as Base
There’s usually
more than one computer in a home, and often other associated
equipment, for example a printer. An ideal solution
is an environment where computers can share resources
in a local network (LAN), and also access to a public
network (WAN, Internet). This is convenient when working
with audio, photos, or other document, managed together
with other family members, and allows surfing the Internet
from any location.
The most common type
of network in this home context (with less than about
8 systems) is a server less (peer) one, where the computers
are members of a Windows Workgroup. We here assume that
such a LAN is already deployed, and refer to my earlier
articles about Atari and Ethernet, MagiCNet, and how
to connect Atari computers to home LANs to access a
common Internet provider account. Earlier described
LAN solutions for Atari are based on running an FTP-server
on the Atari system to allow other computers on the
network to access the files stored there.
However, now we look
at how the smb client can reverse the perspective, so
that we instead access and manage material on the network
and shared in the other computers using the client’s
command interpreter and FTP features.
Using SMB with MagiCNet SMB_CLNT.ZIP is the package
that contains the MagiCNet version of the smb client,
and is available from Vassilis Papanthanassiou’s home
page at http://users.otenet.gr/~papval. The package contains four files,
which alone indicates that this is no large installation.
It is instead a TTP (TOS Takes Parameters) program.
This version is a port
of a client that accesses smb-compatible (NetBIOS) servers
that run under for example Linux and MS Windows. Vassilis
points out that he doesn’t like that important applications
in MagiC/MagiCNet are TTP, and will therefore implement
smb with BNet to integrate the desktops file management
features.
To properly locate Samba
according to recommendations, one should use the ”official”
tree structure from the start. Even though the client
now only has four files, future extensions to Samba
are made easier if the structure is already in place.
The /samba folder should
therefore be placed at the top of the tree, as u:\usr\local\samba\.
A program called LINK2U.PRG, created by Daniel Augsburger
and run from \gemsys\magic\start, makes this easy. The
LINK2U.CNF configuration file is in my folder with configuration
files, and MAGX.INF should point to this ($home).
; Variable in MAGX.INF
#_ENV home=e:\usr\home
If you don’t use this
MAGX.INF variable, then LINK2U.CNF should be in \magic\start,
which defines the programs that start at boot time.
Here is an example of
what my LINK2U.CNF file looks like.
# create links to drive
u # sln e:\usr u:\usr sln e:\tmp\ u:\tmp
# delete link to drive a # delu a
Since the Samba readme.txt
recommendations say that Samba should be placed as \usr\local\samba
on a vfat volume (FAT with MS Windows support for long
file names), we can see that Samba will be linked to
u:\ by LINK2U according to my shown configuration.
You make the Samba tree
structure yourself by creating the subdirectories. My
example of this, with typical files, is:
e:/usr
Running the Client The first input parameters
that you can test when running the client can apply
to a PC computer in the home network, MS Windows or
Linux, which supports smb. The Atari system needs a
HOSTS file where all LAN connected computers are defined
with IP numbers and names. MagiCNet has such a file,
so it’s just to edit it to add the current computer
details. The smb client has simple tools to read HOSTS,
just like MINTnet. Most of these tools are programmed
to search for HOSTS in u:\etc.
The input parameter “–L
Sophie”, as shown in the first capture, results in the
received output of available shares on “Sophie” shown
in the second.
Click
to view larger image
In the screen-shot above,
we can see that several shares are available on the
computer called Sophie, including volumes, folders and
a printer. The result also gives other information,
such as workgroup name and further connections to other
computers from Sophie as specified by its browse list.
As a second example, we connect to a shared resource
on Sophie: the folder called Atari, using the standard
UNC and the identity “guest”:
\\Sophie\Atari -N -U
guest
In the screen-shot below,
we can see that the client is waiting at a prompt, a
command line interpreter where we can type numerous
commands and parameters. The ls command lists the contents
of the Atari folder just opened.
Click
to view larger image
We decide to transfer
to the Atari computer the file MLDEBUG.ZIP, which has
MyMail for beta testers. The simple command “get mldebug.zip”
copies the file over the network from the other computer
and places this in the home directory for Samba. Alternatively,
the mget command would have allowed us to fetch multiple
files, or a joker-matched selection. There are some
40 commands available to use with shares. Type “ help”
(or “?”) followed by Return to list them all.
Transfer Speed
According to
the manual, transfer speeds of between 120 and 144 Kbytes
are possible. This value depends on MagiCNet, updated
driver for the Ethernet adapter, and other factors.
I get between 76 and 88 kB/s, and have yet to upgrade
to the latest distro of MagiCNet that has the updated
driver for the RTL8012 chip in the Ethernet adapter.
Access Printer It’s easy to print text to a
shared printer on the network. I provided the following
input parameters in the smb client:
\\Sophie\Skrivare -P
-N -U guest
At the prompt, I then
typed ”print smb.conf”, which is in the Samba home directory.
The document printed out on the remote printer without
any problem. It’s also possible to let NVDI print to
file, and then print this with the print command from
the smb client.
Configuring smb.conf Samba’s configuration file,
smb.conf, contains information about the different Samba
binaries and tools. Most variables and values aren’t
in fact used at all, so our smb client works perfectly
well without any need to go in and edit anything. On
the other hand, if the network implements high security
with log-in to MS Windows NT, or basic Linux security,
then you need to edit in values for the user identities
that have permissions on these machines.
The same smb.conf file
with the full set of rather complex settings is used
for both the simple smb client, and for cases when a
full-strength Samba server is set up on for example
a Unix computer. The variables are therefore set by
default for the computer you run Samba on. If there’s
no shared printer on the Atari system, and unless you
run a multi-user MINT/MINTnet set-up with log-in and
permissions there’s absolutely no need to consider editing
the configuration settings.
For the cases when the
need does arise, the complex smb.conf settings are usually
configured using the program swat (Samba Web Administration
Tool) and a Web browser. Our little client doesn’t have,
and doesn’t need this level of administration.
MagiCNet is MINTnet,
but in a form for the MagiC OS which few use as a multi-user
environment. Many MINT users on the other hand set up
their computers with log-in and permissions for folders
and files. They might be sitting with SCSI-equipped
Falcons, or a compatible such as Hades, and use SpareMINT,
FreeMINT, or other “industrial strength” operating systems.
To set up Samba in such environments will require some
changes in smb.conf, except in cases where only the
root administrator can be expected to use the client.
When editing smb.conf,
note that it’s constructed according to the key=value
format, and lines break at new lines. There are many
comments, prefixed with the "#" character,
while inactive lines are usually commented out using
the semicolon at the beginning to visually distinguish
them from pure comments.
A typical snippet can
look like this:
# Uncomment this if
you want a guest account, you may # add this to /etc/passwd
otherwise the user "nobody" # is used
; guest account = mille
Neither the smb client,
nor any other binary in the package parses any of the
first three lines as they are written. However, it’s
easy to see that removing the semicolon would activate
this particular function.
Smb.conf is divided into
sections. The parameters under the first, [global],
are used by the Samba Server as they stand, or specify
the default values for other sections that aren’t usually
changed. Everything under [homes] is parsed when one
requests connection for example to a shared folder on
a computer in the network. A match in this section means
that the parameters are used, otherwise the assumption
is that a username is used and the password file parsed.
If the user is then found in the passwd file, this is
used to connect to the share. When you set up Samba
and want to test that it works, you should begin by
using “guest” when connecting to a share in the network.
Otherwise, it is difficult to debug why a connection
attempt fails. Is the username incorrect? Or the password?
Or are the guest accounts disabled on the Windows or
Linux system?
There are several more
sections in smb.conf, for instance [printers], but recall
that we are running an smb-client and not a Samba Server
on our Atari machine. In my case, I have no printer
connected to the Atari and therefore no need to assign
permissions to other users on the network. Instead,
I want to access another printer on the network.
Samba and MiNT I downloaded the samba-1.9.18p3-mint.tar.gz
distribution, all of 8900 Kbyte, to get an impression
of how samba works under MiNT. Never before has an unpacker
on my Atari Falcon had the task to pull apart such a
mass of glued-together files. The archive contained
a total of 261 files with source, 66 files documentation,
30 samples and much more. The MiNT package of Samba
includes the original distribution, which explains this
huge file.
Because MagiCNet is based
in MiNTnet, it’s possible to run the binaries and programs
that were originally ported to MiNTnet, for example
those found on the SpareMiNT homepage. I didn’t spend
much time going through all of Samba for MiNT, but test
ran a few programs, such as the included smb-client,
smbclien. To be able to run the MiNTnet binaries, MagiC
needs file extensions on them, so that for example smbclien
must be renamed to smbclien.ttp. You’ll also find smbtar
and smbd in this enormous archive, but mainly Samba
Server. Starting this lets you see shared resources
in for example a Windows network.
Because the MiNT distribution
is so comprehensive, the manual pages ine in both text
and HTML format are invaluable.
BNet and smb One longed-for project Vassilis
Papanthanassiou is working on at the moment is to integrate
smb in his creation Bnet. Bnet is already used as a
Drag&Drop aid in MagiC, as a way of accessing (through
GEM windows) Atari computers connected with TCP/IP.
Here we see a Bnet connection
between two Atari machines, an STE named Michelle where
this capture was made, and a Falcon named Erica. This
is a very good tool to move files in a GEM environment.
The connection in this case is by way of a cheap null-modem
cable and MagiCNet.
Samba Server While writing this article,
I had e-mail contact with Vassilis and learned that
he is almost finished making a working smb-server. With
this, an Atari with MagiCNet becomes transformed into
a naturally connected computer in the home network,
able to access the available resources and shares.
This article was
originally published within Atarimagasinet in Swedish and is reproduced
(in English) with permission.
|