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 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 your environment requires stricter Access Controls see the section called “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
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 |
-
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:
[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 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: gives write access to the shared directory.
-
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:
sudo mkdir -p /srv/samba/share sudo chown nobody.nogroup /srv/samba/share/
The -p switch tells mkdir to create the entire directory tree if it doesn't exist. Change the share name to fit your environment.
-
Finally, restart the samba services to enable the new configuration:
sudo /etc/init.d/samba restart
Once again, 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 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.
-
For in depth Samba configurations see the Samba HOWTO Collection
-
The guide is also available in printed format.
-
O'Reilly's Using Samba is another good reference.