How to Set Up a Samba Server on Debian 10 Buster

Samba allows you to share your files over a local network to computers running any operating system. Samba also makes it simple to control access to these shares using a single configuration file. On Debian, that configuration is mostly set up for you, making configuring a Samba server on Debian a smooth experience.

In this tutorial you will learn:

  • How to Install Samba
  • How to Change Samba’s Global Settings
  • How to Configure a New Share
  • How to Set Up A Samba User
  • How to Connect to a Share

Samba on Debian 10

Samba on Debian 10.

Software Requirements and Conventions Used

Software Requirements and Linux Command Line Conventions
Category Requirements, Conventions or Software Version Used
System Debian 10 Buster
Software Samba
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # – requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ – requires given linux commands to be executed as a regular non-privileged user

Install Samba

Install Samba on Debian 10

Install Samba on Debian 10.

On Debian, you can install the Samba server right from the default Debian repositories. It’s a single package, so go ahead and install it.

$ sudo apt install samba


Change Samba’s Global Settings

Samba’s configuration can all be found in /etc/samba/smb.conf. That file contains both the global configuration for Samba itself and your shares. Debian is usually good about providing intelligent default configurations that work immediately, but it can’t hurt to take a look at the provided settings, and make changes where necessary.

Samba Settings on Debian 10

Samba Settings on Debian 10.

The first setting that you’ll find near the top of your general settings is the workgroup. This determines the name of the Windows workgroup that your server will be a part of. The default value is WORKGROUP because that’s also the default value on Windows. If you’re configured something different, change it here too.

workgroup = WORKGROUP

Next, you may want to limit access to your server. If you want to limit which computers can connect to your share, uncomment the interfaces option, and specify an IP or range of IPs and an interface they can connect on.

interfaces = 192.168.1.0/24 eth0

If you’re not a fan of that method, you can always add the hosts allow option to limit who can connect too. Just specify IP addresses or ranges after.

hosts allow = 127.0.0.1/8 192.168.1.0/24

The rest of the general settings are set to fairly solid defaults. You won’t need to change them to get your shares running, but feel free to have a look around and tweak anything you like.



Configure a New Share

Samba Print Shares on Debian 10

Samba on Debian 10.

There are already a few shares set up for you. They allow you to share the home folders of any user on the system and your printers. Actually, there’s already a print directory being shared. Change the browseable value to no.

Now, try creating your own share. There are a ton of options that you can pick from for your Samba share, but this guide will cover the most common ones.

First, name your share, and place that name in brackets.

[New Share]

On the next line, tab in four spaces, and write a brief comment describing the share.

comment = My new share

Next, set the path equal to the absolute path to the share.

path = /home/user/share

Choose whether you want to be able to browse to the share or need to manually mount it directly.

browseable = yes

Do you want people to be able to write to the share or mount it read only?

read only = no

Can guests access it? In Samba terms, guests are anonymous users that haven’t signed in to the share. In short, do you want to password protect the share or limit access to certain users?

guest ok = no

If guests can’t access the share, who can?

valid users = username

And, that’s it. There are other options and other ways to go about these basic steps, but they take you to more or less the same place. Unless you have something really specific in mind, these options should be enough. Put it together, and you get something like this:

[New Share]
    comment = A new share
    path = /home/nick/share
    browseable = yes
    read only = no
    guest ok = no
    valid users = nick

Save, and exit. Then, restart Samba.



# systemctl restart smbd

Set Up A Samba User

In order to connect to your share, unless you’re only using guest access, you’re going to need to set up Samba user accounts. It’s super quick, and only takes a single command.

# smbpasswd -a username

After that, you’ll be asked to enter a password for that user. That’s the password that their shares will be locked behind.

How to Connect to a Share

There are a couple of packages that you’ll need to connect to a Samba share. Go ahead, and install them.

$ sudo apt install samba-client cifs-utils
Browse Samba Share on Debian 10

Browse Samba Share on Debian 10.

Now, you can open your file browser and navigate to the Network section. You’ll see your server listed there, and below that, the share that you just set up.

Conclusion

You’re ready to start creating your own Samba shares on Debian, and accessing them from your other Linux machines. There isn’t much else to it, and Samba will automatically start with Debian at boot..