Learn Samba (the open source implementation of the SMB/CIFS protocol for sharing files & printers between Linux and Windows/macOS/Linux) from the ground up to production-grade: prerequisite skills & environment setup, history, background & why you need it, core concepts & key architecture, installation & basic configuration, basic shares & permissions, user management & smbpasswd, Linux & Windows client access, print sharing, SMB3 performance & encryption, Samba as an Active Directory domain controller (AD DC), winbind AD user integration, filesystem permissions ACL & quota, recycle bin & shadow copies, firewall & network security, SMB hardening, privileges & ransomware mitigation, testing & troubleshooting, Samba 4.24 & the latest features, clustering & scale-out with CTDB, Samba in Docker/Kubernetes, performance & monitoring, roadmap & community, and ending with the alternative ecosystem & final reflection across a total of 23 episodes.
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.

This episode traces the origins of Samba: Andrew Tridgell's reverse engineering of the SMB protocol in 1992 for Unix-Windows interoperability, its evolution into a project under the Software Freedom Conservancy, and the birth of Samba 4 (2012) which united the file server with an Active Directory Domain Controller. You also understand why Samba is needed for Windows integration, Linux-to-Linux sharing, and enterprise NAS without a Windows Server license.

This episode dissects Samba's architecture: the smbd daemon for file/print, nmbd for NetBIOS, and winbindd for Active Directory user mapping, plus the SMB 1/2/3 protocol dialects with SMB3 as the default and SMB1 disabled since 4.11. You also learn the core components: smb.conf, smbclient, samba-tool, smbpasswd, and testparm.

This episode guides you through installing Samba on Ubuntu/Debian and the RHEL family, enabling the smbd and nmbd services, and writing a basic smb.conf: a [global] section with workgroup, server string, and security = user, plus a [share] section with path, valid users, and read only. You also validate the configuration with testparm.

This episode builds a production-ready [data] share with path=/srv/data, browseable=yes, and writable=yes, plus owner mapping via force user and force group. You also understand the two stacked permission layers — Linux filesystem vs Samba share options — and the role of valid users and write list in restricting access.

This episode teaches how to manage Samba users: syncing system users with smbpasswd -a, reading the user list via pdbedit -L, and understanding the tdbsam password database. You also learn username map for name aliases, and reading account flags like U, D, and N.

This episode covers how to access Samba shares from two client sides. On Linux: mount -t cifs //host/share /mnt -o username=... for a permanent mount and smbclient //host/share for interactive access. On Windows: \\server\share, stored credentials, and network discovery. You also learn fstab mount patterns and secure options.

This episode teaches how to share Linux printers to the Windows network: the [printers] section in smb.conf, the CUPS backend, and installing printer drivers from the Windows side. You also verify the whole flow with smbclient -L localhost and do a real test print from the command-line client.

This episode dives into SMB3 as the modern dialect: SMB3 encryption on the wire, oplocks to cut round-trips, and server signing for integrity. You also learn performance tuning — server min protocol = SMB3, strict locking, socket options, plus large file transfer optimization via aio and min receivefile size.

This episode enters the Active Directory world: provisioning a full AD DC with samba-tool domain provision, the integrated internal DNS, replication between Domain Controllers, and a case analysis of replacing a Windows Server DC at small-to-medium scale. You also understand the daemon architecture differences in DC and member modes.
