From ArchWiki
< User:Axanon
Revision as of 21:01, 23 January 2013 by Axanon (talk | contribs)
Jump to: navigation, search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end

Samba is a re-implementation of the SMB/CIFS networking protocol, it facilitates file and printer sharing among Linux and Windows systems as an alternative to NFS. Some users say that Samba is easily configured and that operation is very straight-forward. However, many new users run into problems with its complexity and non-intuitive mechanism. It is strongly suggested that the user stick close to the following directions.

Required Packages


To share files with Samba, install samba, from the Official Repositories.


Only smbclient is required to access files from a Samba/SMB/CIFS server. It is also available from the Official Repositories.

Server Configuration

The /etc/samba/smb.conf file must be created before starting the daemons. Once that is set up, users may opt for using an advanced configuration interface like SWAT.

As root, copy the default Samba configuration file to /etc/samba/smb.conf:

# cp /etc/samba/smb.conf.default /etc/samba/smb.conf

Creating a Share

Edit /etc/samba/smb.conf, scroll down to the Share Definitions section. The default configuration automatically creates a share for each user's home directory. It also creates a share for printers by default.

There are a number of commented sample configurations included. More information about available options for shared resources can be found in man smb.conf. Here is the on-line version.

Adding a User

To log into a Samba share, a samba user is needed. The user must already have a Linux user account with the same name on the server, otherwise running the next command will fail:

# pdbedit -a -u <user>
Note: As of version 3.4.0, smbpasswd is no longer used by default. Existing smbpasswd databases can be converted to the new format

Web-based Configuration

SWAT (Samba Web Administration Tool) is a facility that is part of the Samba suite. Whether or not to use this tool remains a matter of personal preference. It does allow for quick configuration and has context-sensitive help for each smb.conf parameter. SWAT also provides an interface for monitoring of current state of connection(s), and allows network-wide MS Windows network password management.

Warning: Before using SWAT, be warned that SWAT will completely replace /etc/samba/smb.conf with a fully optimized file that has been stripped of all comments, and only non-default settings will be written to the file.

To use SWAT, first install xinetd, available in the Official Repositories.

Edit /etc/xinetd.d/swat. To enable SWAT, change the disable = yes line to disable = no.

service swat
        type                    = UNLISTED
        protocol                = tcp
        port                    = 901
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/swat
        log_on_success          += HOST DURATION
        log_on_failure          += HOST
        disable                 = no

Alternatively, add an entry for swat to /etc/services and omit the first 3 lines of the configuration.

Then start/enable the xinetd daemon.

The web interface can be accessed on port 901 by default: http://localhost:901/

Note: An all-encompasing Webmin tool is also available, and the SWAT module can be loaded there.

Client Configuration

Shared resources from other computers on the LAN may be accessed and mounted locally by GUI or CLI methods. The graphical manner is limited since most lightweight Desktop Environments do not have a native way to facilitate accessing these shared resources.

There are two parts to share access. First is the underlying file system mechanism, and second is the interface which allows the user to select to mount shared resources. Some environments have the first part built into them.

Manual Mounting

Install smbclient from the Official Repositories.

To list public shares on a server:

$ smbclient -L <hostname> -U%

Create a mount point for the share:

# mkdir /mnt/MOUNTPOINT

Mount the share using the mount.cifs type. Not all the options listed below are needed or desirable (ie. password).

# mount -t cifs //SERVER/SHARENAME /mnt/MOUNTPOINT -o user=USERNAME,password=PASSWORD,workgroup=WORKGROUP,ip=SERVERIP


The Windows system name.


The shared directory.


The local directory where the share will be mounted.

-o [options]

See man mount.cifs for more information:

Add Share to fstab

User Mounting

Automatic Mounting




File Manager Configuration




Other Graphical Environments

See also