Samba File Server

One of the most common ways to network Kubuntu and Windows® computers is to configure Samba as a file server. This section covers setting up a Samba server to share files with Windows® clients.

The server will be configured to share files with any client on the network without prompting for a password. If the environment requires stricter access controls, see the section called “Securing a Samba File and Print Server”.

Installation

The first step is to install the samba package. From a terminal prompt, enter:

sudo apt-get install samba

That's all there is to it. Samba is ready to be configured for file sharing.

Configuration

The main Samba configuration file is located in /etc/samba/smb.conf. The default configuration file has a significant number of comments in order to document various configuration directives.

Note

Not all of the available options are included in the default configuration file. See the smb.conf man page or the Samba HOWTO Collection for more details.

  1. Edit the following key/value pairs in the [global] section of /etc/samba/smb.conf:

    workgroup = EXAMPLE
    ...
    security = user
    

    The security parameter is farther down in the [global] section, and is commented out by default. Change EXAMPLE to match the actual environment.

  2. Create a new section at the bottom of the file, or uncomment one of the examples for the directory to be shared:

    [share]
    comment = Ubuntu File Server Share
    path = /srv/samba/share
    browsable = yes
    guest ok = yes
    read only = no
    create mask = 0755
    
    • comment: a short description of the share. Adjust to fit as appropriate.

    • path: the path to the directory to share.

      This example uses /srv/samba/sharename because, according to the Filesystem Hierarchy Standard (FHS), /srv is where site-specific data should be served. Technically, Samba shares can be placed anywhere on the filesystem as long as the permissions are correct, but adhering to standards is recommended.

    • browsable: enables Windows® clients to browse the shared directory using Windows Explorer.

    • guest ok: allows clients to connect to the share without supplying a password.

    • read only: determines if the share is read only or if write privileges are granted. Write privileges are allowed only when the value is no, as is seen in this example. If the value is yes, then access to the share is read only.

    • create mask: determines the permissions new files will have when created.

  3. Now that Samba is configured, the directory needs to be created and the permissions changed. From a terminal, enter:

    sudo mkdir -p /srv/samba/share
    sudo chown nobody.nogroup /srv/samba/share/
    

    Note

    The -p switch tells mkdir to create the entire directory tree if it doesn't exist. Change the share name to fit the environment.

  4. Finally, restart the samba services to enable the new configuration:

    sudo /etc/init.d/samba restart
    

Warning

The above configuration gives all access to any client on the local network. For a more secure configuration, see the section called “Securing a Samba File and Print Server”.

From a Windows® client, it should now be possible to browse to the Kubuntu file server and see the shared directory. To check that everything is working, try creating a directory from Windows®.

To create additional shares, simply create new [dir] sections in /etc/samba/smb.conf, and restart Samba. Make sure that the directory to be shared actually exists and that the permissions are correct.

Resources