Samba Add a User

Posted on in Categories , , , , , , , , , , , , last updated May 25, 2014

I am using Fedora Linux and I would like to add a user called joe to Samba. How do I add a user SMB share? How can I add a users to Samba?

The procedure is as follows to add a user to samba server:

[a] First add Linux/UNIX user using useradd/adduser command.

[b] Then use same user name to add to Samba share using smbpasswd command.

NOTE: Unlike Samba 3, Samba 4 does not require a local Unix user for each Samba user that is created. Please see this note for more info.

Step # 1: Add a user joe to UNIX/Linux system

adduser command adds user to the system according to command line options and configuration information in /etc/adduser.conf. They are friendlier front ends to the low level tools like useradd.

Type any one of the following command:
# useradd joe
# passwd joe

OR
adduser joe

Step # 2: Add a user to samba

Now user joe has account on Linux/UNIX box. Use smbpasswd command to specifies that the username following should be added to the local smbpasswd file:
# smbpasswd -a joe

Step # 3: Add a user to a Samba share

By default user gets access to /home/joe from windows system. Let us say you want to give joe access to /data/accounts (make sure directory /data/accounts exists) directory. Open /etc/samba/smb.conf file and add/modify share called [accounts]:

[accounts]
comment = Accounts data directory
path = /data/accounts
valid users = vivek raj joe
public = no
writable = yes

Save the file.

Step #4: Restart the samba

# service smb restart
OR
# /etc/init.d/smb reload

A note about adding users on Samba version 4.x

Unlike Samba version 3.x and earlier, Samba version 4.x does not require a local Unix/Linux user for each Samba user that is created. The command is as follows for adding users into Samba Active Directory:
# /usr/local/samba/bin/samba-tool user add USERNAME-HERE
OR
# samba-tool user add USERNAME-HERE
Please see Samba AD DC howto for more info.

See also:

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

19 comment

  1. Dear Nixcraft,
    Would you pls tell me how to do this without prompting win users for a password? I have been banging my head on wall over this Gentleman. Following is my smb.conf.
    [global]
    workgroup = MYGROUP
    server string = Samba Server Version %v
    security = share
    passdb backend = tdbsam
    load printers = yes
    cups options = raw
    [homes]
    comment = Home Directories
    browseable = no
    writable = yes
    ; valid users = %S
    ; valid users = MYDOMAIN\%S
    [printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes

    [ux_share]
    comment = ux_share
    writable = yes
    path = /home/ux_share/share
    guest ok = yes
    browseable = yes

    I have added a user called ux_share in the system and created the /home/ux_share/share with the right permission. And created the smbuser ux_share too. Now when I try to access the share from a winbox it prompts for the passw. Please help out Nixcraft. This share is likely to access by several winusers and i have no idea about thier workgroup names whatsoever. This is just a simple share im trying to publish just like an annonymous vsftpd account.

    Regards
    V

  2. please reply ,
    sir/madam

    q) what are the steps to be followed to share a folder in Ubuntu and access it from different machine in the network for different clients (eg ,root ,admin ,student..)

    thanking u …

  3. Samba permission problem

    /home can’t be accessed from windows client for samba.
    /tmp can be accessed but /home can’t be accessed.

    Any solution

  4. hello, i have a question here..
    what a use of 2 user samba in same time…???
    example i have 2 user samba, John and Billy..
    and i created a folder name is ” Work “..
    and then, how John and Billy user can access that folder ” Work ” at the same time…

    pls reply this..
    thank’s a lot…

  5. i have made two samba users…
    harsh & gaurav


    and made an entry for “valid user ” under [ IT ]
    .

    I ACCESSED IT FOLDER FROM WINDOWS….ALL WORK FINE TILL HERE….

    BUT IF I NOW WANTED TO ACCESS THE SAME IT FOLDER WITH ANOTHER USER …NOW IT IS NOT ASKING FOR ANY PASSWORD….IT JUST GIVING THE PREVIOUS FOLDER SCREEN….

    PLZ SORT OUT MY PROBLEM…

  6. run this in command prompt
    net use * /delete

    This will clear all existing password cache and will prompt for password

  7. Getting an error when trying to add a samba user:

    [email protected]:~$ sudo samba-tool user add timebandit
    New Password:
    Retype Password:
    ERROR(): Failed to add user ‘timebandit’: – unable to parse dn string
    File “/usr/lib/python2.7/dist-packages/samba/netcmd/user.py”, line 176, in run
    uid=uid, uidnumber=uid_number, gidnumber=gid_number, gecos=gecos, loginshell=login_shell)
    File “/usr/lib/python2.7/dist-packages/samba/samdb.py”, line 343, in newuser
    dnsdomain = ldb.Dn(self, self.domain_dn()).canonical_str().replace(“/”, “”)
    [email protected]:~$

    Any idea what to do?

  8. Hallo. what is wrong with me? samba-tool user add temp2 –home-directory=’\\ubuntu\home\temp2 is not creating home directory!
    smb.conf:
    [Users]
    directory_mode: parameter = 0700
    read only = no
    path = /Users
    csc policy = documents
    [homes]
    comment = Home Directories
    browseable = no
    read only = no
    create mask = 0700
    directory mask = 0700
    valid users = %S
    [home]
    path = /Users/home/
    read only = no

  9. That last command to restart Samba, for me on Debian Jessie, was:
    /etc/init.d/smbd reload
    –or–
    sudo /etc/init.d/smbd reload

  10. m doing file sharing using SMB protocol on centos linux and when m trying to map the network drive it is asking for username and password…but the problem is that after creating different user and password it never accepts any of those….it only accepts the root username and root as the password…why only root..pls tell me how to solve this problem.

Comments are closed.