Partnering a Linux server with Win2K clients
The need for reliable, secure, and cost-effective file storage has long been a prime concern of network administrators. Microsoft's provision for this need was Windows NT Server, which uses NT security domains to give administrators fine-grain control over file access. This product's sophisticated security and Windows's domination of the desktop-world make using the Windows OS to meet your file-server needs a natural choice. However, Windows isn't the only choice.
Samba is an advanced suite of software that provides file- and print-sharing services and NetBIOS name-server support to clients who use the Server Message Block (SMB) protocol or the Common Internet File System (CIFS) protocol. The Free Software Foundation's GNU's Not UNIX (GNU) Public License governs this free and open-source software. Samba runs on sev-eral platforms, including MVS, UNIX, Linux, and VMS. To begin learning about Samba's remarkable capabilities, you can install and configure Samba as a simple standalone file server for your Windows 2000, NT, and Windows 9x clients.
Why would you want to run Samba instead of Windows? First, Samba will run on Linux, which means that you can run free software on a free OS. These $0 items will look good on your next budget request, especially when you consider that as your network grows, you can add users also free of charge. Another benefit of using Samba and Linux is their reliability: Uptime for Linux servers can be several years, and many application and network appliance providers already rely on Samba's stability as an integral aspect of their products.
If your clients use TCP/IP to access an NT-based file server, you can use Samba with a Linux file server to meet their file-server needs. Samba also supports domain-based authentication and authorization; however, configuring Samba to operate within the security environment of an NT domain adds a higher level of complexity to your configuration. Samba works equally well within traditional SMB/CIFS workgroups. If you don't need the security that NT domains provide, you can set up simple file services with the processes described in this article. If you do need the security, you can use this article to give you the core knowledge that you can use to configure Samba as a more complex file server.
Understanding the Linux File System
Before you proceed with Samba installation on Linux, you need to understand how the Linux file system works. The Linux file system is similar to NTFS: Both file systems have a root directory, subdirectories, and files that represent distinct units of data. However, the Linux file system doesn't use drives; Linux file systems are mounted on directories under the root directory. Permission sets and directory and file ownership determine which users have read, write, and execute privileges.
Like Windows file systems, Linux file systems use various directories for specific purposes. Some important Linux directories to know are the /etc directory, which houses most Linux service configuration files, and the /home directory, which houses users' home directories. The root user has a home directory in the /root directory. Most popular distributions of Linux use scripts that you find in the /etc/rc.d/init.d directory to start up and shut down.
Samba Installation
I run Red Hat Linux, which comes with Samba preinstalled. If this is the case with your Red Hat compatible Linux distribution (e.g., Caldera Systems, Turbolinux, SuSE Linux), to start with a clean state, you need to use the rpm command as the root user (i.e., the Linux administrator account) to uninstall Samba as follows:
# rpm -e nodeps samba
# rpm -e nodeps samba-common
# rpm -e nodeps samba-client
You can download the latest version of Samba in the form of a RedHat Package Manager (RPM) file at http://us2.samba.org/samba/ftp/Binary_Packages. (RPM files are binary distribution files that ease software installation and removal. They contain all the files you need to run a given program. You use the rpm command to manage these files.) As Figure 1 shows, your Linux distribution determines which Samba distribution you'll install. After you download Samba, you need to use the rpm command as the root user to install the program, as demonstrated below:
# rpm -i samba-<x.x.x.>rpm
The installed files will include /etc/smb.conf, the configuration file; /etc/rc.d/init.d/smb, the startup file; and /usr/bin and /usr/sbin files for various programs.
This Samba installation method might differ for your Linux distribution. Look for a Samba release that your Linux vendor maintains and supports, or install Samba from source code.
Samba Configuration
The /etc/smb.conf file lets you set all Samba configurationsincluding security settings, workgroup settings, and share definitionsfrom a central location. (If your Samba distribution installs a sample smb.conf file, move the example configuration file to another location or rename it to /etc/smb.conf.bak.) The configuration file's four main section typesglobal, printers, homes, and user-definedeach configure a specific service.
The global section defines the global characteristics of Samba, such as its NetBIOS name and associated workgroup. Administrators employ user-defined sections, which take the section-name the administrator gives them, to share specific directories or printers. When you configure Samba to provide file services to Windows, you work in the global and user-defined sections. The printers and homes sections share all printers and home directories, respectively, but these sections don't allow much administrator customization.
All sections in the smb.conf file begin with a section name in brackets. In each section, you can use equate statements to set the values of the parameters:
[<section name>]
<parameter> = <value>
Most Samba parameters have sensible defaults, so you need to specify only those parameters that you want to tune for your specific application of Samba.
Sean Irish July 19, 2001