VOOZH about

URL: https://linuxconfig.org/how-to-configure-samba-server-share-on-ubuntu-20-04-focal-fossa-linux

โ‡ฑ Configure Samba Server on Ubuntu 20.04


Skip to content

The objective of this tutorial is to configure a basic Samba server on Ubuntu 20.04 to share user home directories as well as provide read-write anonymous access to selected directory.

There are myriads of possible other Samba configurations, however the aim of this guide is to get you started with some basics which can be later expanded to implement more features to suit your needs.

In this tutorial you will learn:

  • How to install Samba server
  • How to configure basic Samba share
  • How to share user home directories and public anonymous directory
  • How to mount Samba share on MS Windows 10
๐Ÿ‘ How to configure Samba Server share on Ubuntu 20.04 Focal Fossa Linux
How to configure Samba Server share on Ubuntu 20.04 focal fossa Linux

Software Requirements and Conventions Used

Software Requirements and Linux Command Line Conventions
Category Requirements, Conventions or Software Version Used
System Installed or upgraded Ubuntu 20.04 Focal Fossa
Software Samba
Other Privileged access to your Linux system as root or via the sudo command.
Conventions # โ€“ requires given linux commands to be executed with root privileges either directly as a root user or by use of sudo command
$ โ€“ requires given linux commands to be executed as a regular non-privileged user

How to configure Samba Server share on Ubuntu 20.04 step by step instructions

  1. Letโ€™s begin by installation of the Samba server. This is a rather trivial task. First, install the tasksel command if it is not available yet on your Ubuntu 20.04 system. Once ready use tasksel to install the Samba server.
    $ sudo apt install tasksel
    $ sudo tasksel install samba-server
    


  2. We will be starting with a fresh clean configuration file, while we also keep the default config file as a backup for reference purposes. Execute the following linux commands to make a copy of an existing configuration file and create a new /etc/samba/smb.conf configuration file:
    $ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    $ sudo bash -c 'grep -v -E "^#|^;" /etc/samba/smb.conf_backup | grep . > /etc/samba/smb.conf'
    
  3. Samba has its own user management system. However, any user existing on the samba user list must also exist within /etc/passwd file. If your system user does not exist yet, hence cannot be located within /etc/passwd file, first create a new user using the useradd command before creating any new Samba user.Once your new system user eg. linuxconfig exits, use the smbpasswd command to create a new Samba user:
    $ sudo smbpasswd -a linuxconfig
    New SMB password:
    Retype new SMB password:
    Added user linuxconfig.
    
  4. Next step is to add the home directory share. Use your favourite text editor, ex. atom, sublime, to edit our new /etc/samba/smb.conf samba configuration file and add the following lines to the end of the file:
    [homes]
     comment = Home Directories
     browseable = yes
     read only = no
     create mask = 0700
     directory mask = 0700
     valid users = %S
    
  5. Optionally, add a new publicly available read-write Samba share accessible by anonymous/guest users. First, create a directory you wish to share and change its access permission:
    $ sudo mkdir /var/samba
    $ sudo chmod 777 /var/samba/
    

    Once ready, once again open the /etc/samba/smb.conf samba configuration file and add the following lines to the end of the file:

    [public]
     comment = public anonymous access
     path = /var/samba/
     browsable =yes
     create mask = 0660
     directory mask = 0771
     writable = yes
     guest ok = yes
    
  6. Check your current configuration. Your /etc/samba/smb.conf samba configuration file should at this stage look similar to the one below:
    [global]
     workgroup = WORKGROUP
     server string = %h server (Samba, Ubuntu)
     log file = /var/log/samba/log.%m
     max log size = 1000
     logging = file
     panic action = /usr/share/samba/panic-action %d
     server role = standalone server
     obey pam restrictions = yes
     unix password sync = yes
     passwd program = /usr/bin/passwd %u
     passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
     pam password change = yes
     map to guest = bad user
     usershare allow guests = yes
    [printers]
     comment = All Printers
     browseable = no
     path = /var/spool/samba
     printable = yes
     guest ok = no
     read only = yes
     create mask = 0700
    [print$]
     comment = Printer Drivers
     path = /var/lib/samba/printers
     browseable = yes
     read only = yes
     guest ok = no
    [homes]
     comment = Home Directories
     browseable = yes
     read only = no
     create mask = 0700
     directory mask = 0700
     valid users = %S
    [public]
     comment = public anonymous access
     path = /var/samba/
     browsable =yes
     create mask = 0660
     directory mask = 0771
     writable = yes
     guest ok = yes
    
  7. Our basic Samba server configuration is done. Remember to always restart your samba server, after any change has been done to /etc/samba/smb.conf configuration file:
    $ sudo systemctl restart smbd
    
  8. (optional) Letโ€™s create some test files. Once we successfully mount our Samba shares, the below files should be available to our disposal:
    $ touch /var/samba/public-share 
    $ touch /home/linuxconfig/home-share 
    


  9. At this stage we are ready to turn our attention to MS Windows. Mounting network drive directories might be slightly different for each MS Windows version. This guide uses MS Windows 10 in a role of a Samba client.
    ๐Ÿ‘ Mount user Home Directory
    To start, open up you Windows Explorer then right-click on Network and click on Map network drive... tab.
  10. ๐Ÿ‘ Connect using different credentials
    Select drive letter and type Samba share location which is your Samba server IP address or hostname followed by the name of the userโ€™s home directory. Make sure you tick Connect using different credentials if your username and password is different from the one created previously in .
  11. ๐Ÿ‘ Enter user password
    Enter userโ€™s password as created in the .
  12. ๐Ÿ‘ Browse user's home samba directory
    Browse userโ€™s home directory. You should be able to see the previously created test file. As well as you should be able to create new directories and files.


  13. ๐Ÿ‘ Repeat the mounting steps also for the publicly anonymous samba directory share
    Repeat the mounting steps also for the publicly anonymous samba directory share.
  14. ๐Ÿ‘ Confirm that you can access the Public samba share directory
    Confirm that you can access the Public samba share directory.
  15. All done. Now feel free to add more features to your Samba share server configuration.