Linux Step-By-Step - Installing and Configuring Samba
Linux Step-By-Step - Installing and Configuring Samba
Installing Samba
1. Use yum to install the Samba package:
For this part of the procedure, you'll use the su - (switch user) command to work as root. Although it’s not best
practice to do this regularly, there are times where it's much more practical to work directly as root instead of trying to
use sudo to do everything. This is one of those times.
You're going to create a new directory containing three empty files which you'll share using Samba.
2. While logged on as root, create the new directory /smbdemo with the following command:
mkdir /smbdemo
3. Change the permissions on the new directory to 770 with the following command:
cd /smbdemo
5. Add three empty files to the directory with the following command:
touch file1 file2 file3
You must add users to the Samba database in order for them to have access to their home directory and other
Samba shares.
6. Use the following command to add a new Samba user (the new Samba user must be an existing Linux user or
the command will fail):
smbpasswd -a <username>
For example, to add the user don, use the command smbpasswd -a don.
7. Perform the following steps to create a smbusers group, change ownership of the /smbdemo directory, and add a
user to the smbusers group:
groupadd smbusers
chown :smbusers /smbdemo
usermod -G smbusers don
Figure 2: Adding the smbusers group, changing ownership on /smbdemo, and adding a user to the smbusers group.
Configuring Samba
Note: In several of the steps in this exercise, I mention specific line numbers. The line numbers I mention are based
on CentOS version 6.5. If you’re running any other version, your line numbers may be different. In that case, just
search for the relevant text string.
Samba configuration is done in the file /etc/samba/smb.conf. There are two parts to /etc/samba/smb.conf:
Global Settings: This is where you configure the server. You’ll find things like authentication method, listening
ports, interfaces, workgroup names, server names, log file settings, and similar parameters.
Share Definitions: This is where you configure each of the shares for the users. By default, there’s a printer share
already configured.
Configuring smb.conf
8. In the Global Settings section, at line 74, change the workgroup name to your workgroup name. I’m going to use
soundtraining as a means of shamelessly promoting my company during your quest for knowledge. I’m sure you
understand.
You can enable line numbering in vim with the command :set nu. If you want to turn it off, use :set nu!.
Figure 3: Changing the workgroup in the Samba configuration file.
9. Now, confirm that the authentication type is set to user by going to the authentication section, still in Global
Settings, and line 101. Make sure there is no hash mark at the beginning of the line to enable user security.
This change allows users on your Red Hat/CentOS server to log in to shares on the Samba server.
10. Next, add a section for /smbdemo, which you created earlier. You can just add it to the very bottom
of /etc/samba/smb.conf with the following lines:
Figure 5: Configuring Samba share definitions.
You can use the command testparm to test the configuration. In order for the server to re-read the configuration file
and make the changes, you must restart the Samba service with the commands service smb restart and service nmb
restart.
When properly configured, you should be able to connect from a computer running the Windows operating system
and see both the general share and the user’s home directory:
Figure 6: Viewing Samba shares from a Windows computer.
You can test it by opening the user’s home directory in Windows, adding a file, and then viewing that file on the Linux
server.
Troubleshooting Samba
In addition to checking for spelling and typographical errors, check to ensure the Linux firewall is permitting Samba
traffic. Similarly, if you're using SELinux on your system, you must explicitly permit Samba traffic, and finally you must
enable Network Discovery on the Windows client machine.