There is a new version of this tutorial available for Debian 9 (Stretch).

Debian Wheezy Samba Standalone Server With tdbsam Backend

This tutorial explains the installation of a Samba fileserver on Debian Wheezy and how to configure it to share files over the SMB protocol as well as how to add users. Samba is configured as a standalone server, not as a domain controller. In the resulting setup, every user has his own home directory accessible via the SMB protocol and all users have a shared directory with read-/write access.

I do not issue any guarantee that this will work for you!


1 Preliminary Note

I'm using a Debian Wheezy system here with the hostname and the IP address


2 Installing Samba

Connect to your server on the shell and install the Samba packages:

apt-get install libcups2 samba samba-common

Edit the smb.conf file:

vi /etc/samba/smb.conf

In the global section, remove the "#" at the beginning of the line security = user so that it looks like this:

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
   security = user

This enables Linux system users to log in to the Samba server.

Close the file and restart Samba:

/etc/init.d/samba restart


3 Adding Samba Shares

Now I will add a share that is accessible by all users.

Create the directory for sharing the files and change the group to the users group:

mkdir -p /home/shares/allusers
chown -R root:users /home/shares/allusers/
chmod -R ug+rwx,o+rx-w /home/shares/allusers/

At the end of the file /etc/samba/smb.conf add the following lines:

vi /etc/samba/smb.conf
  comment = All Users
  path = /home/shares/allusers
  valid users = @users
  force group = users
  create mask = 0660
  directory mask = 0771
  writable = yes

If you want all users to be able to read and write to their home directories via Samba, add the following lines to /etc/samba/smb.conf (make sure you comment out or remove the existing [homes] section):

   comment = Home Directories
   browseable = no
   valid users = %S
   writable = yes
   create mask = 0700
   directory mask = 0700

Now we restart Samba:

/etc/init.d/samba restart


4 Adding And Managing Users

In this example, I will add a user named tom. You can add as many users as you need, in the same way, just replace the username tom with the desired username in the commands.

useradd tom -m -G users

Set a password for tom in the Linux system user database. If the user tom should not be able to log into the Linux system, skip this step.

passwd tom

-> Enter the password for the new user.

Now add the user to the Samba user database:

smbpasswd -a tom

-> Enter the password for the new user.

Now you should be able to log in from your Windows workstation with the file explorer (address is \\ or \\\tom for tom's home directory) using the username tom and the chosen password and store files on the Linux server either in tom's home directory or in the public shared directory.


Share this page:

Suggested articles

4 Comment(s)

Add comment


By: Morbius1

There is no reason to un-comment "#security = user" as it's in the defaults.  Remember smb.conf is not the samba config file it's a file used by the administrator to override and add to the default configuration. Smb.conf even tells you that in the file itself:

# Some options that are often worth tuning have been included as
# commented-out examples in this file.
#  - When such options are commented with ";", the proposed setting
#    differs from the default Samba behaviour
#  - When commented with "#", the proposed setting is the default
#    behaviour of Samba but the option is considered important
#    enough to be mentioned here

By: haiko2201

It works fine for me.

I needed to add my exisiting USER to the group USERS

in /etc/group



By: Nishant

Thanks for the post ...

I missed 'smbpasswd -a username' command.

 As soon as I added the user .. things worked perfectly.




In my case (Debian Wheezy), I had the following error message:

-bash: smbpasswd: command not found

I solved this issue by installing the samba-common-bin:

apt-get install samba-common-bin

Then, smbpasswd started to work :-)