If you make use of a Linux server in your company, and do so for sharing files, then you know Samba. Samba is a very powerful and flexible interoperability suite of programs for Linux and Unix that allows you to share out directories to UNIX and non-UNIX platforms. Of course, Samba can do much more than that; but for now we’re going to focus on sharing. In particular, sharing for groups.

Adding groups into the Samba mix means you can gain a more efficient means of controlling what users can see what.

I’m going to walk you through the steps of creating a new Samba share, give a group access to that share, and then assign users to said group. I will assume you already have your Linux server up and running. I’ll be demonstrating on the Ubuntu Server platform.

Install Samba

In case you already haven’t done so, we must first install Samba. To do this, open up a terminal window and issue the command:

sudo apt-get install samba samba-client samba-common

Once the installation completes, you’ll want to enable Samba to start at boot with the following commands:

sudo systemctl enable smbd.service
​sudo systemctl enable nmbd.service
​sudo systemctl restart smbd.service
​sudo systemctl restart nmbd.service

Create the necessary directory and group

Before we configure Samba, let’s create the necessary directory and group. We’ll then add users to the group.

I’ll be creating a new share called editorial. Create a new directory with the command:

sudo mkdir -p /opt/editorial

Now let’s create the group editorial with the command:

sudo groupadd editorial

Now we change the group ownership and permissions of the directory with the commands:

sudo chgrp editorial /opt/editorial
​sudo chmod -R 770 /opt/editorial

Now we add users to the new group with the command:

sudo usermod -a -G editorial USER

Where USER is the username to add to the group.

If you ever need to remove a user from a group, this can be done with the command:

sudo deluser USER GROUP

Where USER is the username and GROUP is the group name.

Finally, we must add the users to Samba. This is done with the smbpasswd command like so:

sudo smbpasswd -a USER
​sudo smbpasswd -e USER

Where USER is the username to be added. The first command adds the user and the second command enables the user. When issuing the first of the above commands, you will be prompted to create a new Samba password for the user.

Configure Samba

Now we come to the actual Samba configuration. The first thing we’re going to do is make a backup copy of our Samba configuration file. Issue the command:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.BAK

Now create a new configuration file with the following command:

sudo nano /etc/samba/smb.conf

In this new file, we’ll add the following contents to share out our editorial directory to the group editorial (customize as needed):

​workgroup = WORKGROUP
​server string = Editorial Server
​netbios name = Ubuntu
​security = user
​map to guest = bad user
​dns proxy = no

#### SHARES ####

​path = /opt/editorial
​browsable = yes
​writable = yes
​guest ok = yes
​read only = no
​valid users = @editorial

Save and close that file. Restart Samba with the commands:

sudo systemctl restart smbd.service
​sudo systemctl restart nmbd.service

You can now point one of your machines to the newly configured Samba share. So long as the user is a member of the editorial group, they’ll be able to log on with their username and samba password.

Even more flexibility

By working with groups in Samba, you can make your admin life slightly easier, while making Samba more flexible. With this way you can add and remove users to the group with ease (which, in turn, would revoke their access to the Samba share).