Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Samba (software)

Samba (software)

Overview
Samba is a free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also...

 re-implementation of SMB/CIFS
Server Message Block
In computer networking, Server Message Block operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network. It also provides an authenticated Inter-process communication mechanism...

 networking
Computer networking
Computer networking is the engineering discipline concerned with communication between computer systems or devices. Networking, routers, routing protocols, and networking over the public Internet have their specifications defined in documents called RFCs...

 protocol
Protocol (computing)
In computing, a protocol is a set of rules which is used by computers to communicate with each other across a network. A protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing endpoints...

, originally developed by Australian
Steve Erwin
About Steve Erwin,the designer of Animal Crossing;Wild World.Steve Erwin is a comic book artist. During the 1980s and 1990s, he worked primarily for DC Comics, co-creating the titles Checkmate! and Gunfire...

 Andrew Tridgell
Andrew Tridgell
Andrew "Tridge" Tridgell is an Australian computer programmer best known as the author of and contributor to the Samba file server, and co-inventor of the rsync algorithm....

. As of version 3, Samba provides file
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished...

 and print
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world – possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...

 services
Windows Service
On Microsoft Windows operating systems, a Windows service is a long-running executable that performs specific functions and which is designed not to require user intervention. Windows services can be configured to start when the operating system is booted and run in the background as long as...

 for various Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

 clients
Client (computing)
A client is an application or system that accesses a remote service on another computer system, known as a server, by way of a network. The term was first applied to devices that were not capable of running their own stand-alone programs, but could interact with remote computers via a network...

 and can integrate with a Windows Server domain
Windows Server domain
A Windows Server domain is a logical group of computers running versions of the Microsoft Windows operating system that share a central directory database...

, either as a Primary Domain Controller
Primary Domain Controller
A Primary Domain Controller is a server computer in a pre-Windows 2000 NT server Domain. A domain is a concept used in NT server operating systems whereby a user may be granted access to a number of computer resources with the use of a single username and password combination.Such domains have at...

 (PDC) or as a domain member. It can also be part of an Active Directory
Active Directory
Active Directory is a technology created by Microsoft that provides a variety of network services, including:* LDAP-like directory services* Kerberos-based authentication* DNS-based naming and other network information...

 domain.

Samba runs on most Unix
Unix
Unix is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 and Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 systems, such as Linux
Linux
Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...

, Solaris, AIX and the BSD
Berkeley Software Distribution
Berkeley Software Distribution is the UNIX operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995....

 variants, including Apple's Mac OS X Server
Mac OS X Server
Mac OS X Server is Apple's UNIX server operating system. Based on the same architecture as Mac OS X, Mac OS X Server includes additional services, applications and administration tools for managing and deploying servers....

 (which was added to the Mac OS X client in version 10.2).
Discussion
Ask a question about 'Samba (software)'
Start a new discussion about 'Samba (software)'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
Samba is a free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also...

 re-implementation of SMB/CIFS
Server Message Block
In computer networking, Server Message Block operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network. It also provides an authenticated Inter-process communication mechanism...

 networking
Computer networking
Computer networking is the engineering discipline concerned with communication between computer systems or devices. Networking, routers, routing protocols, and networking over the public Internet have their specifications defined in documents called RFCs...

 protocol
Protocol (computing)
In computing, a protocol is a set of rules which is used by computers to communicate with each other across a network. A protocol is a convention or standard that controls or enables the connection, communication, and data transfer between computing endpoints...

, originally developed by Australian
Steve Erwin
About Steve Erwin,the designer of Animal Crossing;Wild World.Steve Erwin is a comic book artist. During the 1980s and 1990s, he worked primarily for DC Comics, co-creating the titles Checkmate! and Gunfire...

 Andrew Tridgell
Andrew Tridgell
Andrew "Tridge" Tridgell is an Australian computer programmer best known as the author of and contributor to the Samba file server, and co-inventor of the rsync algorithm....

. As of version 3, Samba provides file
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished...

 and print
Input/output
In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world – possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...

 services
Windows Service
On Microsoft Windows operating systems, a Windows service is a long-running executable that performs specific functions and which is designed not to require user intervention. Windows services can be configured to start when the operating system is booted and run in the background as long as...

 for various Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

 clients
Client (computing)
A client is an application or system that accesses a remote service on another computer system, known as a server, by way of a network. The term was first applied to devices that were not capable of running their own stand-alone programs, but could interact with remote computers via a network...

 and can integrate with a Windows Server domain
Windows Server domain
A Windows Server domain is a logical group of computers running versions of the Microsoft Windows operating system that share a central directory database...

, either as a Primary Domain Controller
Primary Domain Controller
A Primary Domain Controller is a server computer in a pre-Windows 2000 NT server Domain. A domain is a concept used in NT server operating systems whereby a user may be granted access to a number of computer resources with the use of a single username and password combination.Such domains have at...

 (PDC) or as a domain member. It can also be part of an Active Directory
Active Directory
Active Directory is a technology created by Microsoft that provides a variety of network services, including:* LDAP-like directory services* Kerberos-based authentication* DNS-based naming and other network information...

 domain.

Samba runs on most Unix
Unix
Unix is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

 and Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 systems, such as Linux
Linux
Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed,...

, Solaris, AIX and the BSD
Berkeley Software Distribution
Berkeley Software Distribution is the UNIX operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995....

 variants, including Apple's Mac OS X Server
Mac OS X Server
Mac OS X Server is Apple's UNIX server operating system. Based on the same architecture as Mac OS X, Mac OS X Server includes additional services, applications and administration tools for managing and deploying servers....

 (which was added to the Mac OS X client in version 10.2). Samba is standard on nearly all distributions of Linux and is commonly included as a basic system service
Services menu
The Services menu is a user interface element in a computer operating system. The services are programs that accept input from the user selection, process it, and optionally put the result back in the clipboard. The concept originated in the NeXTSTEP operating system, from which it was carried...

 on other Unix-based operating systems as well. Samba is released under the GNU General Public License
GNU General Public License
The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project....

. The name Samba
Samba
Samba is a Brazilian dance and musical genre originating in African and European roots. The word is derived from the Portugese verb sambar, meaning "to dance to rhythm." It is a worldwide recognized symbol of Brazil and the Carnival and is the national dance of Brazil...

comes from SMB (Server Message Block
Server Message Block
In computer networking, Server Message Block operates as an application-layer network protocol mainly used to provide shared access to files, printers, serial ports, and miscellaneous communications between nodes on a network. It also provides an authenticated Inter-process communication mechanism...

), the name of the standard protocol used by the Microsoft Windows network file system.

Early history


Andrew Tridgell
Andrew Tridgell
Andrew "Tridge" Tridgell is an Australian computer programmer best known as the author of and contributor to the Samba file server, and co-inventor of the rsync algorithm....

 developed the first version of Samba Unix in December 1991 and January 1992, as a PhD student at the Australian National University
Australian National University
The Australian National University, commonly abbreviated to ANU, is a public teaching and research university located in Canberra, Australia, the federal capital city...

, using a packet sniffer
Packet sniffer
The packet analyzer is computer software or computer hardware that can intercept and log traffic passing over a digital network or part of a network...

 to do network analysis of the protocol used by DEC
Digital Equipment Corporation
Digital Equipment Corporation was a pioneering American company in the computer industry. It is often referred to within the computing industry as DEC...

 PATHWORKS
Pathworks
Pathworks was the tradename used by Digital Equipment Corporation of Maynard, Massachusetts for a series of programs that eased the interoperation of Digital's minicomputers with personal computers....

 server software. At the time of the first releases, versions 0.1, 0.5 and 1.0, all from the first half of January 1992, it didn't have a proper name, and Tridgell just called it "a Unix file server for Dos Pathworks". At the time of version 1.0, he realized that he "had in fact implemented the netbios protocol" and that "this software could be used with other PC clients".

With a focus on interoperability
Interoperability
Interoperability is a property referring to the ability of diverse systems and organizations to work together . The term is often used in a technical systems engineering sense, or alternatively in a broad sense, taking into account social, political, and organizational factors that impact system to...

 with Microsoft's LAN Manager
LAN Manager
LAN Manager was a Network Operating System available from multiple vendors and developed by Microsoft in cooperation with 3Com Corporation. It was designed to succeed 3Com's3+Share network server software which ran atop a heavily modified version of MS-DOS.-Development History:LAN Manager was...

, Tridgell released "netbios for unix", nbserver, 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
Trademark
A trademark or trade mark is a distinctive sign or indicator used by an individual, business organization, or other legal entity to identify that the products or services to consumers with which the trademark appears originate from a unique source, and to distinguish its products or services from...

 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
grep is a command line text search utility originally written for Unix. The name is taken from the first letters in global / regular expression / print, a series of instructions in text editors such as ed...

 through the system dictionary looking for words that contained the letters S, M, and B, in that order.

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
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers to collaborate...

 in May 1996 to mark the birth of the Samba Team, though there had been contributions from other people, especially Jeremy Allison
Jeremy Allison
Jeremy Allison is a computer programmer famous for his contributions to the free software community, notably to Samba, a re-implementation of SMB/CIFS networking protocol, released under the GNU General Public License....

, previously.

Version 2.0.0 was released in January 1999, and version 2.2.0 in April 2001.

Recent history


Version 3.0.0, released on 23 Sep 2003, was a major upgrade. Samba gained the ability to join Active Directory as a member, though not as a domain controller. Subsequent point-releases to 3.0 have added minor new features. Currently, the latest release in this series is 3.0.37, released 1 October 2009, and shipped on a voluntary basis. The 3.0.x series officially reached end-of-life on 5 August 2009.

Version 3.1 was used only for development.

With version 3.2, the project decided to move to time-based releases. New major releases, such as 3.3, 3.4 etc will appear every 6 months. New features will only be added when a major release is done, point-releases will be only for bug fixes. Also, 3.2 marked a change of license from GPL2 to GPL3, with some parts released under LGPL3. The main technical change in version 3.2 was to autogenerate much of the DCE/RPC
DCE/RPC
DCE/RPC stands for "Distributed Computing Environment / Remote Procedure Calls".DCE/RPC is a Remote Procedure Call system that allows software to work across multiple computers, as if it were all working on the same computer...

-code that used to be handcrafted. Version 3.2.0 was released on 1 July 2008. It will be updated on an as-needed basis for security issues only and its current release is 3.2.15 from 1 October 2009.

Version 3.3.0 was released 27 January 2009 and is now at version 3.3.8 in this branch.

Version 3.4.0 was released 3 July 2009. This is the first release that includes both Samba 3 and Samba 4 source code.

Version 3.4.2was released 1 October 2009. It is the latest stable release of the Samba 3.4 series.

Version 4.0 is planned as a major rewrite that will enable Samba to be an Active Directory domain controller. After three years of development, the first technical preview (4.0.0TP1) was released in January 2006. Subsequently, new previews and then alphas have followed regularly. The most recent version is 4.0.0-alpha8, released on 19 June 2009.

Features


Samba allows file and print sharing between computers running Windows and computers running Unix. It is an implementation of dozens of services and a dozen protocols, including NetBIOS
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, NetBIOS is not a networking protocol...

 over TCP/IP (NBT), SMB, CIFS (an enhanced version of SMB), DCE/RPC
DCE/RPC
DCE/RPC stands for "Distributed Computing Environment / Remote Procedure Calls".DCE/RPC is a Remote Procedure Call system that allows software to work across multiple computers, as if it were all working on the same computer...

 or more specifically, MSRPC
MSRPC
Microsoft RPC is a modified version of DCE/RPC. Additions include support for Unicode strings, implicit handles, inheritance of interfaces , and complex calculations in the variable-length string and structure paradigms already present in DCE/RPC.- Example :The DCE 1.0 reference implementation...

, the Network Neighborhood suite of protocols, a WINS
Windows Internet Naming Service
Windows Internet Name Service is Microsoft's implementation of NetBIOS Name Service , a name server and service for NetBIOS computer names. Effectively WINS is to NetBIOS names, what DNS is to domain names — a central mapping of host names to network addresses...

 server also known as a NetBIOS Name Server (NBNS), the NT Domain suite of protocols which includes NT Domain Logons, Secure Accounts Manager (SAM) database, Local Security Authority (LSA) service, NT-style printing service (SPOOLSS), NTLM
NTLM
NTLM is a Microsoft authentication protocol used with the SMB protocol. MS-CHAP is similar and is used for authentication with Microsoft remote access protocols. During protocol negotiation, the internal name is nt lm 0.12. The version number 0.12 has not been explained...

 and more recently Active Directory Logon which involves a modified version of Kerberos and a modified version of LDAP
Lightweight Directory Access Protocol
The Lightweight Directory Access Protocol, or LDAP , is an application protocol for querying and modifying directory services running over TCP/IP.A directory is a set of objects with attributes organized in a logical and hierarchical manner...

. All these services and protocols are frequently incorrectly referred to as just NetBIOS or SMB.

Samba sets up network shares for chosen Unix directories
Directory (file systems)
Folder, directory, catalog, or drawer, in computing, is a virtual container within a digital file system, in which groups of computer files and other folders can be kept and organized....

 (including all contained subdirectories). These appear to Microsoft Windows users as normal Windows folders accessible via the network. Unix users can either mount
Mount (computing)
Mounting, in computer science, is the process of making a file system ready for use by the operating system, typically by reading certain index data structures from storage into memory ahead of time...

 the shares directly as part of their file structure using the smbmount
Smbmount
The program smbmount is used to mount a network drive, using the Server Message Block network protocol. It is a part of the open-source Samba suite. smbmount is identical in functionality as using mount -t smbfs...

 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
File Transfer Protocol
File Transfer Protocol is a standard network protocol used to exchange and manipulate files over a TCP/IP based network, such as the Internet. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server applications...

 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 isn't included in Solaris 8, but a Solaris 8-compatible version is available from the internet from www.samba.org.

Samba includes a web administration tool called Samba Web Administration Tool (SWAT).

Samba TNG



Samba TNG was forked
Fork (software development)
In software engineering, a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct piece of software....

 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.

Since the project started, development has been minimal due to a lack of developers. As such the Samba TNG team frequently recommends to people who are unsure of which program to use to try Samba instead, as they have more developers and are able to support more platforms and situations.

One of the key goals of the Samba TNG project is to rewrite all of the NT Domains services as FreeDCE
FreeDCE
FreeDCE is The Open Group's reference implementation of DCE/RPC 1.1 updated to be interoperable with free software development practices. FreeDCE is Distributed Computing Environment/Remote Procedure Calls 1.1 reworked, and it includes an up-to-date implementation of DCEThreads that actually works...

 projects. Making this rewriting goal difficult is the fact that services were all developed manually through network reverse-engineering, with limited or no reference to DCE/RPC documentation.

The key differences between the two programs are in the implementation of the NT Domains suite of protocols and MSRPC
MSRPC
Microsoft RPC is a modified version of DCE/RPC. Additions include support for Unicode strings, implicit handles, inheritance of interfaces , and complex calculations in the variable-length string and structure paradigms already present in DCE/RPC.- Example :The DCE 1.0 reference implementation...

 services. Samba makes all the NT Domains services available from a single place, whereas Samba TNG has separated each service into its own program.

ReactOS
ReactOS
ReactOS is a computer operating system intended to be binary compatible with application software and device drivers made for Microsoft Windows NT versions 5.x and up...

 has 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 have been working 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
    LM hash
    LM hash, LanMan, or LAN Manager hash is one of the formats that Microsoft LAN Manager and Microsoft Windows versions previous to Windows Vista use to store user passwords that are fewer than 15 characters long. This type of hash is the only type of encryption used in Microsoft LAN Manager, hence...

  • Kerberos (protocol)
  • Smbldap-Tools
    Smbldap-Tools
    Smbldap-tools is a set of scripts designed to help integrate Samba and an LDAP directory. They target both users and administrators of Linux systems although they also work on most Unix systems such as Solaris or AIX...

  • SSLBridge
    SSLBridge
    SSLBridge is a light-weight and easy-to-use web-based interface to give employees access to a company network using Samba.With SSLBridge, access can be granted to a network from any computer that is connected to the Internet...

  • Smbmount
    Smbmount
    The program smbmount is used to mount a network drive, using the Server Message Block network protocol. It is a part of the open-source Samba suite. smbmount is identical in functionality as using mount -t smbfs...


External links