linux 共享(samba),如何列出所有共享以及实际共享的本地目录路径

linux 共享(samba),如何列出所有共享以及实际共享的本地目录路径

有没有一种实用的方法,例如 net 命令或其他 cli,可以获取 Linux 服务器(Ubuntu 发行版)上定义的所有共享的列表,不仅列出共享名称,还列出本地共享目录的完整路径?无需查看 samba 配置文件或用户共享文件。

答案1

不可以

smbclient [-U ADUser] -L localhost

显示共享,但您必须在 smb.conf 中查找才能找到路径。

ADUser 是一个域用户,至少可以列出 samba 共享。

答案2

是的你可以。

解决方案(感谢http://ubuntuforums.org/showthread.php?t=1304277&p=8186452#post8186452)是查看目录/var/lib/samba/usershares:每个共享包含一个文件,每个文件都有一行以path=包含本地路径开头

答案3

尝试一下这个脚本...随意改进它

#!/bin/bash
while read line; do
    [[ "$line" =~ ^\[ ]] && name="$line"
    [[ "$line" =~ ^[[:space:]]*path ]] && echo -e "$name\t$line"
done </etc/samba/smb.conf

答案4

至少有两种方法可以做到这一点:

1. 安装

$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,noexec,relatime,size=1959288k,nr_inodes=489822,mode=755)
...
# etc, etc

如果不带任何选项,mount将列出所有已安装的文件系统。有两个选项可用:

  • -l:包括标签
  • -t <type> : filters the output by filesystem <type>; e.g.cifs`

请参阅man mount详细信息。我的系统中的一个例子:

$ mount -l -t cifs
//NetgearNAS-3/backup on /mnt/NetgearNAS/backup type cifs (rw,relatime,vers=1.0,cache=strict,username=seamus,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.1.246,soft,unix,posixpaths,serverino,mapposix,acl,rsize=1048576,wsize=65536,bsize=1048576,echo_interval=60,actimeo=1)
//SynologyNAS-1/backups on /mnt/SynologyNAS/backups type cifs (rw,relatime,vers=3.1.1,cache=strict,username=seamus,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.1.102,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=4194304,wsize=4194304,bsize=1048576,echo_interval=60,actimeo=1,user=seamus)

2. findmnt

man findmnt

findmnt 将列出所有已安装的文件系统或搜索文件系统。 findmnt 命令可以在 /etc/fstab、/etc/mtab 或 /proc/self/mountinfo 中搜索。 如果没有指定设备或安装点,则显示所有文件系统。

不带任何选项,findmnt提供所有已安装文件系统的整洁列表格式:

$ findmnt
TARGET                                SOURCE                 FSTYPE     OPTIONS
/                                     /dev/sda1              ext4       rw,relatime,errors=remount-ro
├─/sys                                sysfs                  sysfs      rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security              securityfs             securityfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup                    tmpfs                  tmpfs      ro,nosuid,nodev,noexec,mode=755

...

# etc, etc

findmnt具有广泛的过滤和格式化选项,非常适合用于必须解析输出的脚本 - 请参阅man findmnt详细信息。在这种情况下,如果我们希望将输出限制为共享(如 smb/cifs/nfs 意义上),则该-t选项很方便:

$ findmnt -t cifs,nfs4
TARGET                     SOURCE                           FSTYPE OPTIONS
/mnt/SynologyNAS/rpi_share SynologyNAS-1:/volume1/rpi_share nfs4   rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,se
/mnt/NetgearNAS-3/backup   //NetgearNAS-3/backup            cifs   rw,relatime,vers=1.0,cache=strict,username=seamus,uid=0,noforceuid,gid=0,noforcegid,addr=192.16
/mnt/SynologyNAS/backups   //SynologyNAS-1/backups          cifs   rw,relatime,vers=3.1.1,cache=strict,username=seamus,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.

相关内容