71

Looking for a simple way to do this from the command line.

List samba shares and the users who can access each of them.

List samba shares and the users currently connected to them.

List samba shares and every connection (log, including user) that has been established to each of them.

Any ideas? Anything you use that's currently available that will give me the bits I need to put this together?

Cheers!

1
  • 2
    We can list shares from command line using smbtree. We can parse: /etc/samba/smb.conf /var/lib/samba/usershares/*.conf – komputes Feb 14 '12 at 18:45
37

Try smbclient -L ip_of_net_interface -U your_user_name. This option allows you to look at what services are available on a server. You use it as smbclient -L host and a list should appear.

1
  • Yeah, a very complete listing: shares, servers, workgroup. Thanks! – loved.by.Jesus Jan 30 at 17:10
33

Try to use smbstatus, it seems to be what you need.

2
  • 18
    smbstatus only lists the current connections. What about listing all shares and users who can access them (even if not connected at the time)? – labyrinth Apr 15 '15 at 16:16
  • 4
    A little more details would have been appreciated – frepie Sep 10 '17 at 20:29
19
smbstatus --shares

Will retrieve what's being shared and which machine (if any) is connected to what.

1
  • 2
    Perfect! But it only shows if im browsing the share, but not if I just have it mapped to Windows. Where NFS shows constantly, but I guess thats because NFS is constantly "mounted", Windows is just mapped, and not mounted till accessed. – FreeSoftwareServers Dec 15 '16 at 17:47
14

Also, on most systems, typing testparm will give you info about the samba shares of the machine you're currently using. After you press enter at the prompt it'll also show you every uncommented line of smb.conf which can be useful.

1
  • 1
    No, testparm only checks for correctness of the configuration file, it shows nothing about what you are currently using. – ChristophS Mar 10 '20 at 9:32
12

Try net usershare info --long.

/usr/bin/net -> /etc/alternatives/net
/etc/alternatives/net -> /usr/bin/net.samba3

$ man net
net - Tool for administration of Samba and remote CIFS servers.
1
  • Best answer -- it's been a very long time since I worked with samba and didn't know about the net command – nitrogen Feb 16 '20 at 22:26
5

Getting the users

net rpc user

Getting the shares per user

Less verbose than smbclient -L is net rpc share list -U $USERNAME

You'll need both because the list of visible shares differs per user.

3

Use the command pdbedit.

sudo pdbedit -L -v

Where -L is to list users & -v is to be verbose.

1

While smbstatus --shares list active connections in your computer, you may want to know which folders are selected as samba shared, even when no current connection is active.

Go into this directory and you will get the name of such folders:

cd /var/lib/samba/usershares

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.