One of the most common ways to network Ubuntu and Windows computers is to configure Samba as a File Server. This section covers setting up aSambaserver 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 your environment requires stricter Access Controls see Securing a Samba File and Print Server
The first step is to install the samba package. From a terminal prompt enter:
sudo apt-get install samba-server
sudo gedit /etc/samba/smb.conf
That's all there is to it; you are now ready to configure Samba to share files.
The main Samba configuration file is located in /etc/samba/smb.conf. The default configuration file has a significant amount of comments in order to document various configuration directives.
Not all the available options are included in the default configuration file. See the smb.confman page or the Samba HOWTO Collectionfor more details.
First, 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 by default. Also, change EXAMPLE to better match your environment.
Create a new section at the bottom of the file, or uncomment one of the examples, for the directory to be shared:
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 your needs.
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.
Now that Samba is configured, the directory needs to be created and the permissions changed. From a terminal enter:
From a Windows client you should now be able to browse to the Ubuntu 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. Just make sure that the directory you want to share actually exists and the permissions are correct.
The file share named "[share]" and the path /srv/samba/share are just examples. Adjust the share and path names to fit your environment. It is a good idea to name a share after a directory on the file system. Another example would be a share name of [qa] with a path of /srv/samba/qa.