Due to the incredibly large number of Microsoft applications, it is almost expected that a server be able to provide some kind of access to the Windows machines. If you have TCP/IP running on your machines, then you have connectivity from your Windows machines to a Linux server through telnet and ftp. However, you do have access to the file and print services provided by an Windows server. Or do you?
The network protocol used by Windows networks is the Session Message Block or SMB. This is the same protocol that Microsoft has been using for years with their Lan Manager product. Therefore, anything that can access a Lan Manager Server, will be able to access a Windows server.
For quite a while now, Linux has been able to support SMBs through the SAMBA package. In fact, it has become one of the key selling points for Linux servers that the can provide all of the most common services that Windows can. This not only means that a Linux machine can provide file and print service to Windows machines, but they can also provide the same services to a Linux machine.
Because Linux and Windows have a different understanding of security and approach it in a different way, you have to be careful in what you make available. However, in keeping with the UNIX tradition of configurability, you have a wide range of choices on how to configure your system. The are many different options to define your security as well as what you make available and how.
SAMBA has both a server and a client component and as one might expect the client side is fairly straightforward. Fortunately, to get the server side working, you don’t have to do too much, either. On the other hand, there are a lot of options that you can use to configure the system to fit your needs.
There are five primary files that SAMBA uses. The SMB daemon is smbd, which is the SMB server. This is what is what is providing the services. The client side is the program smbclient as well as drivers that can be added automatically into the kernel. Both of these is what allows you to access Windows machines from your Linux workstations and servers.
The nmbd program is the NetBIOS name server daemon.
Because of the success and stability of SAMBA it has become a standard of all Linux distributions. So much so, that you will find the necessary drivers built into the Linux kernel be default. This means all you have to do to automatically mount a remote filesystem via SAMBA is put the appropriate entries in your /etc/fstab to have it mounted automatically each time you boot. On my server, all of the shared data is made available through SAMBA and only SAMBA and thus it is available to all of the machines on my network.