Samba is a
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
re-implementation of the
SMB networking protocol, and was originally developed by
Andrew Tridgell
Andrew "Tridge" Tridgell (born 28 February 1967) is an Australian computer programmer. He is the author of and a contributor to the Samba (software), Samba file server, and co-inventor of the rsync algorithm.
He has analysed complex proprieta ...
. Samba provides
file and
print services for various
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
clients and can integrate with a Microsoft
Windows Server domain
A Windows domain is a form of a computer network in which all user accounts, computers, printers and other security principals, are registered with a central database located on one or more clusters of central computers known as domain controlle ...
, either as a
Domain Controller
A domain controller (DC) is a Server (computing), server that responds to security authentication requests within a computer network domain. It is a Network (computing), network server that is responsible for allowing Host (network), host access to ...
(DC) or as a domain member. As of version 4, it supports
Active Directory
Active Directory (AD) is a directory service developed by Microsoft for Windows domain networks. Windows Server operating systems include it as a set of processes and services. Originally, only centralized domain management used Active Direct ...
and Microsoft
Windows NT
Windows NT is a Proprietary software, proprietary Graphical user interface, graphical operating system produced by Microsoft as part of its Windows product line, the first version of which, Windows NT 3.1, was released on July 27, 1993. Original ...
domains.
Samba runs on most
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
systems, such as
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Solaris
Solaris is the Latin word for sun.
It may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Sol ...
,
AIX and the
BSD
The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
variants, including Apple
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
(
Mac OS X 10.2 and greater) and
macOS Server
Mac OS X Server is a series of discontinued Unix-like server operating systems developed by Apple Inc., based on macOS. It provided server functionality and system administration tools, and tools to manage both macOS-based computers and i ...
. Samba also runs on a number of other operating systems such as
OpenVMS
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Op ...
and
IBM i
IBM i (the ''i'' standing for ''integrated'') is an operating system developed by IBM for IBM Power Systems. It was originally released in 1988 as OS/400, as the sole operating system of the IBM AS/400 line of systems. It was renamed to i5/OS in 2 ...
. Samba is standard on nearly all distributions of Linux and is commonly included as a basic
system service on other Unix-based operating systems as well. Samba is released under the terms of the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
. The name ''
Samba
Samba () is a broad term for many of the rhythms that compose the better known Brazilian music genres that originated in the Afro-Brazilians, Afro Brazilian communities of Bahia in the late 19th century and early 20th century, It is a name or ...
'' comes from SMB (
Server Message Block
Server Message Block (SMB) is a communication protocol used to share files, printers, serial ports, and miscellaneous communications between nodes on a network. On Microsoft Windows, the SMB implementation consists of two vaguely named Windows ...
), the name of the proprietary protocol used by the Microsoft Windows network file system.
Early history
Andrew Tridgell
Andrew "Tridge" Tridgell (born 28 February 1967) is an Australian computer programmer. He is the author of and a contributor to the Samba (software), Samba file server, and co-inventor of the rsync algorithm.
He has analysed complex proprieta ...
developed the first version of Samba Unix in December 1991 and January 1992, as a PhD student at the
Australian National University
The Australian National University (ANU) is a public university, public research university and member of the Group of Eight (Australian universities), Group of Eight, located in Canberra, the capital of Australia. Its main campus in Acton, A ...
, using a
packet sniffer
A packet analyzer (also packet sniffer or network analyzer) is a computer program or computer hardware such as a packet capture appliance that can Traffic analysis, analyze and Logging (computing), log traffic that passes over a computer netwo ...
to do
network analysis of the protocol used by
DEC Pathworks server software. It did not have a formal name at the time of the first releases, versions 0.1, 0.5, and 1.0, all from the first half of January 1992; Tridgell simply referred to it as "a Unix file server for Dos Pathworks." He understood that he had "in fact implemented the netbios protocol" at the time of version 1.0 and that "this software could be used with other PC clients."
With a focus on
interoperability
Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader de ...
with Microsoft's
LAN Manager
LAN Manager is a discontinued network operating system (NOS) available from multiple vendors and developed by Microsoft in cooperation with 3Com Corporation. It was designed to succeed 3Com's 3+Share network server software which ran atop a h ...
, Tridgell released "netbios for unix", observer, version 1.5 in December 1993. This release was the first to include client-software as well as a server. Also, at this time GPL2 was chosen as license.
Midway through the 1.5-series, the name was changed to ''smbserver''. However, Tridgell got a
trademark
A trademark (also written trade mark or trade-mark) is a form of intellectual property that consists of a word, phrase, symbol, design, or a combination that identifies a Good (economics and accounting), product or Service (economics), service f ...
notice from the company "Syntax", who sold a product named ''TotalNet Advanced Server'' and owned the trademark for "SMBserver". The name "Samba" was derived by running the Unix command
grep
grep is a command-line utility for searching plaintext datasets for lines that match a regular expression. Its name comes from the ed command g/re/p (global regular expression search and print), which has the same effect. grep was originally de ...
through the
system dictionary looking for words that contained the letters S, M, and B, in that order (i.e. ).
Versions 1.6, 1.7, 1.8, and 1.9 followed relatively quickly, with the latter being released in January 1995. Tridgell considers the adoption of
CVS in May 1996 to mark the birth of the Samba Team, though there had been contributions from other people, especially
Jeremy Allison, previously.
Version 2.0.0, released in January 1999, was a major release, support for authentication from Windows NT Primary Domain Controller, 64 bit filesystem support for very large files, and exposure of OPLOCKS to unix systems. Version 2.2.0 released in April 2001.
Version history
Security
Some versions of Samba 3.6.3 and lower suffer serious security issues which can allow anonymous users to gain
root
In vascular plants, the roots are the plant organ, organs of a plant that are modified to provide anchorage for the plant and take in water and nutrients into the plant body, which allows plants to grow taller and faster. They are most often bel ...
access to a system from an anonymous connection, through the exploitation of an error in Samba's
remote procedure call
In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared computer network), which is written as if it were a ...
.
On 12 April 2016, Badlock, a crucial security bug in Windows and Samba, was disclosed. Badlock for Samba is referenced by CVE, 2016-2118 (SAMR and LSA man in the middle attacks possible).
On 24 May 2017, it was announced that a remote code execution vulnerability had been found in Samba named ''EternalRed'' or ''SambaCry'', affecting all versions since 3.5.0.
This vulnerability was assigned identifier CVE, 2017-7494.
On 14 September 2020, a proof-of-concept
exploit for the netlogon
vulnerability
Vulnerability refers to "the quality or state of being exposed to the possibility of being attacked or harmed, either physically or emotionally." The understanding of social and environmental vulnerability, as a methodological approach, involves ...
called ''
Zerologon'' (CVE, 2020-1472) for which a
patch exists since August was published. Some federal agencies using the software have been ordered to install the patch.
Features
Samba allows file and print sharing between computers running Microsoft Windows and computers running Unix. It is an implementation of dozens of
services and a dozen protocols, including:
*
NetBIOS
NetBIOS () is an acronym for Network Basic Input/Output System. It provides services related to the session layer of the OSI model allowing applications on separate computers to communicate over a local area network. As strictly an API, Net ...
over
TCP/IP
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
(
NBT)
*
SMB (known as CIFS in some versions)
** Samba supports POSIX extensions for CIFS/SMB. The initial extension was CIFS VFS (CAP_UNIX) from 2004, which has been somewhat superseded by SMB3.
*
DCE/RPC
DCE/RPC, short for "Distributed Computing Environment / Remote Procedure Calls", is the remote procedure call system developed for the Distributed Computing Environment (DCE). This system allows programmers to write distributed software as if it ...
or more specifically,
MSRPC, the Network Neighborhood suite of protocols
* A
WINS server also known as a NetBIOS Name Server (NBNS)
* The NT Domain suite of protocols which includes NT Domain Logons
*
Security Account Manager
The Security Account Manager (SAM) is a database file in Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, 8.1, 10 and 11 that stores users' passwords. It can be used to authenticate local and remote users. Beginning with Windows 20 ...
(SAM) database
*
Local Security Authority (LSA) service
* NT-style printing service (SPOOLSS)
*
NTLM
In a Windows network, NT (New Technology) LAN Manager (NTLM) is a suite of Microsoft security protocols intended to provide authentication, integrity, and confidentiality to users. NTLM is the successor to the authentication protocol in Microsoft ...
* Active Directory Logon using modified versions of
Kerberos and
LDAP
The Lightweight Directory Access Protocol (LDAP ) is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed Directory service, directory information services over an Internet Protocol (IP) networ ...
*
DFS server
All these services and protocols are frequently incorrectly referred to as just NetBIOS or SMB. The NBT (NetBIOS over TCP/IP) and WINS protocols, and their underlying SMB version 1 protocol, are deprecated on Windows. Since
Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, released five years earlier, which was then the longest time span between successive releases of Microsoft W ...
the
WS-Discovery protocol has been included along with SMB2 and its successors, which supersede these. (WS-Discovery is implemented on
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
platforms by third party
daemon
A demon is a malevolent supernatural being, evil spirit or fiend in religion, occultism, literature, fiction, mythology and folklore.
Demon, daemon or dæmon may also refer to:
Entertainment Fictional entities
* Daemon (G.I. Joe), a character ...
s which allow Samba shares to be discovered when the deprecated protocols are disabled).
Samba sets up
network shares for chosen Unix
directories (including all contained subdirectories). These appear to Microsoft Windows users as normal Windows folders accessible via the network. Unix users can either
mount the shares directly as part of their file structure using the mount.cifs command or, alternatively, can use a utility, smbclient (libsmb) installed with Samba to read the shares with a similar interface to a standard command line
FTP
The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and dat ...
program. Each directory can have different access privileges overlaid on top of the normal Unix file protections. For example: home directories would have read/write access for all known users, allowing each to access their own files. However they would still not have access to the files of others unless that
permission would normally exist. Note that the netlogon share, typically distributed as a read only share from
/etc/samba/netlogon
, is the logon directory for user logon scripts.
Samba services are implemented as two
daemons:
* smbd, which provides the file and printer sharing services, and
* nmbd, which provides the NetBIOS-to-IP-address name service. NetBIOS over TCP/IP requires some method for mapping NetBIOS computer names to the IP addresses of a TCP/IP network.
Samba configuration is achieved by editing a single file (typically installed as
/etc/smb.conf
or
/etc/samba/smb.conf
). Samba can also provide
user logon scripts and group policy implementation through
poledit
.
Samba is included in most Linux distributions and is started during the boot process. On Red Hat, for instance, the
/etc/rc.d/init.d/smb
script runs at boot time, and starts both daemons. Samba is not included in Solaris 8, but a Solaris 8-compatible version is available from the Samba website. The
OS/2
OS/2 is a Proprietary software, proprietary computer operating system for x86 and PowerPC based personal computers. It was created and initially developed jointly by IBM and Microsoft, under the leadership of IBM software designer Ed Iacobucci, ...
-based
ArcaOS
ArcaOS is a Proprietary software, proprietary operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was first released in 2017 and builds on OS/2 Warp 4.52 by adding support for new hardware, fixing ...
includes Samba to replace the old
IBM LAN Server software.
Samba includes a web administration tool called ''Samba Web Administration Tool'' (SWAT).
SWAT was removed starting with version 4.1.
Samba TNG
Samba TNG (The Next Generation) was
forked in late 1999, after disagreements between the Samba Team leaders and Luke Leighton about the directions of the Samba project. They failed to come to an agreement on a development transition path which allowed the research version of Samba he was developing (known at the time as Samba-NTDOM) to slowly be integrated into Samba. Development has been minimal, due to a lack of developers. The Samba TNG team frequently directed potential users towards Samba because of its better support and development.
A key goal of the Samba TNG project was to rewrite all of the NT Domains services as
FreeDCE projects. This was made difficult as the services were developed manually through network reverse-engineering, with limited or no reference to DCE/RPC documentation.
A key difference from Samba was in the implementation of the NT Domains suite of protocols and
MSRPC services. Samba makes all the NT Domains services available from a single place, whereas Samba TNG separated each service into its own program.
ReactOS
ReactOS is a Free and open-source software, free and open-source operating system for i586/amd64 personal computers that is intended to be binary-code compatibility, binary-compatible with computer programs and device drivers developed for Wind ...
started using Samba TNG services for its SMB implementation. The developers of both projects were interested in seeing the Samba TNG design used to help get ReactOS talking to Windows networks. They worked together to adapt the network code and build system. The multi-layered and modular approach made it easy to port each service to ReactOS.
See also
*
LM hash
LAN Manager is a discontinued network operating system (NOS) available from multiple vendors and developed by Microsoft in cooperation with 3Com Corporation. It was designed to succeed 3Com's 3+Share network server software which ran atop a h ...
*
SSLBridge
Notes
References
External links
* {{Official website, https://www.samba.org/
Free file transfer software
Free software programmed in C
Software forks
Unix network-related software