Install and setup Samba in Linux

What is Samba? If you don’t know what it is then you shouldn’t be reading this 😉 Samba can do a lot of things and we are only cover a basic configuration that will allow you to share specific folders on a Linux machine in the same way you share forlder in a Windows machine.

This will cover a very quick installation and setup of Samba on any Linux flavor, however in this particular case I’ll cover CentOS 5.2

First you need to install Samba’s binaries using yum 🙂 (you can use apt-get or up2date if you want)

yum install samba samba-common

Installation stage has been covered, that was fast 😉 Now we need to do a basic configuration in order to start using it and we need to design a structure… let’s say I want to setup a Linux machine to share a specific folder to everyone with read-only access and a specific folder for only local user with read/write access, so here we go:

cd /etc/samba
mv smb.conf smb.conf.backup
nano smb.conf

And paste the following configuration on the new smb.conf

[global]
netbios name = sambaserver
load printers = no
path = /home
default service = global
security = share
available = no

[share]
path = /var/ftp/pub
guest ok = yes
read only = yes
comment = Public Access
available = yes

[sambademo]
path = /home/demo
guest ok = no
writable = yes
valid users = demo
comment = User demo home
available = yes

So far we have setup a basic global configuration, a public access area and a restricted area for a local user called “demo”. Before we continue you need to make sure the folder /var/ftp/pub exists. Now, before we start our new Samba server, we need to setup the “demo” account and it can be done in 2 ways:

useradd -s /sbin/nologin demo
smbpaswd -a demo

If we don’t want to give this user shell access, or…

useradd -s /bin/bash demo
passwd demo
smbpasswd -a demo

If we want to give this user access to shell and of course we need to set the same password for the system and Samba.
It is time to start our Samba server:

/etc/init.d/smb start

Now let’s try it, on Windows do the following: Start -> Run -> cmd

net use y:\\samba_server_ip\share
net use z:\\samba_server_ip\demo /user:demo thepasswordyouset

Hopefully you will see you have 2 new units on your Windows File Explorer, Y which is a read-only folder and Z which is a read/write folder 🙂 that’s all!

If you want to do more things with Samba and you are lazy you can always get Webmin and use its module to configure Samba and use its advanced options.

NOTE: This article is for educational purposes and should be treated as it is.

Troubleshooting:

  • The network name cannot be found: Check your computer’s firewall or if your ADSL/DSL modem, sometimes by default they block all outgoing connections to Netbios port which is 139.
  • Anything else check your log files /var/log/samba/smb.log 🙂

Literature: (Thanks to them, this tutorial exists)
Sunny Walia
Joel Barrios Dueñas
Samba

2 thoughts to “Install and setup Samba in Linux”

  1. I noticed performance problems with Sun’s samba build on S10U4. On 100 Mbit network – 700 MB file over samba was copied about 5-6 min. and over FTP just 1:46 min.
    Do you know anything about this? Can I resolve this problem with build my own samba from sources?

  2. @oes tsetnoc: I’m not sure about that, I did this tutorial for CentOS. I’ve seen a little delay using Samba vs FTP but not that long.

    Also could you mention where the 700MB file was located? I meant, if you did your tests sending the files from your Windows server?

Leave a Reply