About This Guide
In this text, I teach how to create a network share via Samba using the CLI (Command-line interface/Linux Terminal) in an uncomplicated, simple and brief way targeting Windows users.
All commands must be done as root (precede each command with 'sudo' or use 'sudo su').
- Install Samba
sudo apt-get update sudo apt-get install samba
- Set a password for your user in Samba
sudo smbpasswd -a <user_name>
Note: Samba uses a separate set of passwords than the standard Linux system accounts (stored in /etc/samba/smbpasswd), so you'll need to create a Samba password for yourself. This tutorial implies that you will use your own user and it does not cover situations involving other users passwords, groups, etc...
Tip1: Use the password for your own user to facilitate.
Tip2: Remember that your user must have permission to write and edit the folder you want to share. Eg.: sudo chown <user_name> /var/opt/blah/blahblah sudo chown :<user_name> /var/opt/blah/blahblah
Tip3: If you're using another user than your own, it needs to exist in your system beforehand, you can create it without a shell access using the following command : sudo useradd USERNAME --shell /bin/false You can also hide the user on the login screen by adjusting lightdm's configuration, in /etc/lightdm/users.conf add the newly created user to the line : hidden-users=
- Create a directory to be shared
- Make a safe backup copy of the original smb.conf file to your home folder, in case you make an error
sudo cp /etc/samba/smb.conf ~
- Edit the file "/etc/samba/smb.conf"
sudo nano /etc/samba/smb.conf
Once "smb.conf" has loaded, add this to the very end of the file: [<folder_name>] path = /home/<user_name>/<folder_name> valid users = <user_name> read only = no
Tip: There Should be in the spaces between the lines, and note que also there should be a single space both before and after each of the equal signs.
- Restart the samba:
sudo service smbd restart
- Once Samba has restarted, use this command to check your smb.conf for any syntax errors
- To access your network share
sudo apt-get install smbclient # List all shares: smbclient -L //<HOST_IP_OR_NAME>/<folder_name> -U <user> # connect: smbclient //<HOST_IP_OR_NAME>/<folder_name> -U <user>
To access your network share use your username (<user_name>) and password through the path "smb://<HOST_IP_OR_NAME>/<folder_name>/" (Linux users) or "\\<HOST_IP_OR_NAME>\<folder_name>\" (Windows users). Note that "<folder_name>" value is passed in "[<folder_name>]", in other words, the share name you entered in "/etc/samba/smb.conf".
Note: The default user group of samba is "WORKGROUP".