列出Samba共享和当前用户

寻找一种简单的方法来通过命令行完成这个任务。
列出Samba共享以及可以访问每个共享的用户。
列出Samba共享以及当前连接到它们的用户。
列出Samba共享以及已建立到每个共享的连接(包括用户)的日志。
有什么想法吗?有没有你目前使用的任何可用工具,可以提供我需要组合这些信息的部分?
谢谢!

2我们可以使用命令行工具smbtree来列出共享的文件夹。 我们可以解析以下文件:/etc/samba/smb.conf /var/lib/samba/usershares/*.conf - komputes
9个回答

尝试使用命令smbclient -L 网络接口的IP地址 -U 你的用户名。这个选项允许你查看服务器上有哪些可用的服务。你可以使用smbclient -L 主机名来使用它,然后会出现一个列表。

1是的,非常完整的清单:股份、服务器、工作组。谢谢! - loved.by.Jesus
smbclient: command not found - Friedrich -- Слава Україні
请在您使用的发行版上谷歌搜索如何安装smbclient @Friedrich--СлаваУкраїні - guenhter
1@guenhter:更简单的方法是使用smbstatus命令,无需安装。 - Friedrich -- Слава Україні

尝试使用 smbstatus,这似乎是你所需要的。

22smbstatus只列出当前的连接。那么如何列出所有共享和可以访问它们的用户(即使他们此时没有连接)呢? - labyrinth
6多一点细节会更受欢迎。 - frepie

smbstatus --shares

将检索正在共享的内容以及哪台机器(如果有的话)连接到了什么。


3完美!但它只在我浏览共享文件时显示,而不是当我将其映射到Windows时。NFS则始终显示,但我猜这是因为NFS始终处于“挂载”状态,而Windows只是映射,并且直到访问时才会被挂载。 - FreeSoftwareServers

尝试运行命令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.

最佳答案——我已经很久没有使用Samba了,也不知道net命令。 - nitrogen
或者,要显示不是用户共享的共享,可以使用net share list --long命令。 - undefined

此外,在大多数系统上,键入testparm将为您提供有关当前使用的机器的Samba共享的信息。在提示符处按Enter后,它还会显示smb.conf中的每一行未注释的内容,这可能很有用。

2不,testparm只是检查配置文件的正确性,它并不显示你当前正在使用的内容。 - ChristophS

使用命令pdbedit
sudo pdbedit -L -v

其中-L是列出用户,-v是显示详细信息。


获取用户

net rpc user

获取每个用户的共享文件
比起使用"smbclient -L"命令,使用"net rpc share list -U $USERNAME"命令更简洁。
你需要两者,因为可见共享文件的列表因用户而异。

当你使用 smbstatus --shares 命令列出计算机上的活动连接时,你可能想知道哪些文件夹被选为,即使没有当前连接活动。
进入这个目录,你将得到这些文件夹的名称:
cd /var/lib/samba/usershares

我正在分享每个人在使用SMB时都需要的命令列表,希望这对大家有所帮助。如果需要相同的帮助,请评论,我会尽力为您解决问题。

您可以输入sudo smbstatus命令来查看共享文件夹的日志和状态。

Samba version 4.7.6-Ubuntu
PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing              
----------------------------------------------------------------------------------------------------------------------------------------

你可以输入命令sudo smbtree来获取根文件夹和子文件夹的树形结构。
WORKGROUP
\\SSHEEL-HP             ssheel-HP server (Samba, Ubuntu)
    \\SSHEEL-HP\Screenshots     
    \\SSHEEL-HP\Movie           
    \\SSHEEL-HP\IPC$            IPC Service (ssheel-HP server (Samba, Ubuntu))
    \\SSHEEL-HP\sambashare      Network Shared Folder by Samba Server on Ubuntu
    \\SSHEEL-HP\print$          Printer Drivers

你还可以输入“sudo smbcontrol”命令来获取可以与该命令后缀一起使用的所有控制列表。
如果你在登录时遇到问题,你也可以设置smb密码以便访问共享文件夹,“sudo smbpasswd -a ssheel”。
ssheel@ssheel-HP:~/Videos$ sudo smbpasswd -a ssheel
New SMB password:
Retype new SMB password:
Added user ssheel.