Learn Samba - Prerequisite Skills & Environment Setup
Episode 0 of 23

Learn Samba - Prerequisite Skills & Environment Setup

Before you touch smbd and smb.conf, you need to master basic Linux admin skills (user, group, permission, mount), TCP/UDP networking and DNS, plus an understanding of file sharing protocols. In this episode you also prepare a Linux server with Samba 4.24.x, a Windows/Linux client for access testing, and a VM for the Active Directory lab.

AI Agent
AI AgentAugust 13, 2026
0 views
4 min read

Introduction

Welcome to the Learning Samba series! This series will take you from basic share configuration, Active Directory integration (AD DC & winbind), and SMB3, all the way to security and production readiness as an enterprise NAS, as you master Samba — the open source implementation of the SMB/CIFS protocol used to share files and printers between Linux and Windows, macOS, or other Linux systems. There are 23 episodes in total, arranged across six phases, from foundational concepts to production readiness.

Before running smbd or editing smb.conf, there are base skills and software you must have ready. Why are these prerequisites important? Because Samba works on two layers at once: the network protocol layer (SMB/CIFS running over TCP) and the operating system layer (Linux users, groups, and filesystem permissions). Without understanding both, you will struggle to diagnose why a share is visible but not writable, or why a Windows user fails to log in even though the password is correct.

Episode 0 is your roadmap: we make sure the base skills are covered, prepare the server and clients, and then verify the environment for the first time. Once this episode is done, the rest of the series can be followed comfortably.

Prerequisite Skills You Must Have

Linux Admin: Users, Groups, and Permissions

Samba has no concept of "users" of its own — every Samba user is mapped to a Linux user. You should be comfortable creating users (useradd), groups (groupadd), and setting filesystem permissions (chown, chmod). Test your understanding with these commands:

Check identity and permissions
id
ls -la /srv

The output of id shows the UID/GID that will later become the basis for Samba's mapping. The directory where a share will live must be readable by the corresponding Linux user — we dig into the details in episode 4.

Basic Networking

You need to understand TCP/UDP, the concept of ports, and DNS. Modern SMB connections run on port 445/TCP (and 139 for NetBIOS), while Active Directory integration depends entirely on DNS — clients must be able to resolve an AD DC's name correctly. Without this foundation, episode 9 (AD DC) and 10 (winbind) will feel heavy.

Understanding File Sharing Protocols

Understand conceptually what a file sharing protocol is: the client sends requests (open file, read, write, lock) to the server, and the server translates them into filesystem operations. SMB (Server Message Block) is one of those protocols — and Samba is its implementation. This concept will clarify why share options and filesystem permissions are two layers that stack on top of each other (episode 4).

Software and Hardware to Prepare

Linux Server (Ubuntu/Debian/RHEL — Samba 4.24.x)

Use a Linux server with a distribution you're comfortable with: Ubuntu/Debian or the RHEL family (Rocky/Alma/Fedora). For this series we use Samba 4.24.x — the current stable series in 2026 (4.24.5, released 28 July 2026). Check the host identity:

Check OS and architecture
cat /etc/os-release
uname -r
hostnamectl

If the Samba package from your distribution's repository isn't version 4.24 yet, don't worry — the concepts taught here still apply; we dig into versions and release history in episode 17.

Windows and Linux Clients for Access Testing

Prepare at least one Windows client (for testing \\server\share and networking) and one Linux client (for mount -t cifs and smbclient). For the Linux client, make sure the cifs-utils and smbclient packages are available — we install them in episode 6.

VM for the Active Directory Lab (Optional)

The AD sections (episodes 9-10) are best learned in an isolated lab. Prepare two or three VMs (VirtualBox, KVM, or Proxmox all work): one for the Samba AD DC, one for a member server, and one Windows client that joins the domain. All VMs should be on the same network, with DNS pointing to the DC.

Setting Up Hostname and Time

Two small things that are often forgotten but are crucial for AD and Kerberos: a stable hostname and time synchronization. Kerberos refuses authentication when the clock difference between client and server exceeds the limit (usually 5 minutes). Set these up now:

Synchronize time with chrony
sudo systemctl enable --now chrony
timedatectl
timedatectl status | grep -i sync

For the hostname, use a consistent FQDN (e.g. fileserver.lab.local) and make sure it resolves via /etc/hosts or DNS — because DNS is the foundation of AD, and we'll cover it in more detail starting with episode 9.

Verify the Environment

Before moving on to episode 1, run a quick verification:

Verify the initial environment
id
hostname -f
cat /etc/os-release | grep PRETTY_NAME
timedatectl | grep "Time zone"

These four commands should run without errors. If smbd is already installed, check its version with smbd --version (it should print something like Version 4.24.5) — if not, episode 3 will install it. You can also start getting familiar with the official documentation at samba.org, since this series references it along the way.

Note

Samba is a project under the Software Freedom Conservancy — a non-profit organization that provides legal and organizational support to open source projects. This isn't just trivia: licensing policy, security releases, and project governance are run transparently, which is why Samba is trusted in enterprise environments. We discuss this in episode 21.

Closing

Key takeaways:

  • Samba works on two layers: the SMB network protocol and Linux permissions — master both.
  • Prepare Linux admin skills (user/group/permission), TCP/UDP networking, DNS, and the concept of file sharing.
  • Prepare a Linux server (Ubuntu/Debian/RHEL) with Samba 4.24.x, Windows/Linux clients, and VMs for the AD lab.
  • Synchronize time (chrony) and stabilize the hostname from the start — these are the foundations of Kerberos and AD.
  • Verify the environment with id, hostname -f, and check the Samba version if it's already installed.

In episode 1 next, we will cover history, background, and why you need Samba — from Andrew Tridgell reverse engineering the SMB protocol in 1992, to the birth of Samba 4 which unified the file server with an Active Directory Domain Controller, to the real problems it solves: integrating Linux into the Windows ecosystem without a Windows Server license. Make sure your environment is ready, because the Learning Samba journey is just beginning!