Список всех общих папок

Вопрос или проблема

Можно ли перечислить все общие папки (с их физическими расположениями) из командной строки?

перейдите к папке списка

/var/lib/samba/usershares

проверьте путь

Используйте эту команду: smbclient -L localhost. Пример вывода выглядит следующим образом:

Введите пароль пользователя:
Домен=[WORKGROUP] ОС=[Unix] Сервер=[Samba 4.1.6-Ubuntu]

Имя общего ресурса  Тип       Комментарий
---------            ----       -------
print$               Диск      Драйвера принтера
IPC$                 IPC       IPC-сервис (сервер с именем хоста (Samba, Ubuntu))
hp1320               Принтер   Hewlett-Packard hp LaserJet 1320 series
HP-LaserJet-1200    Принтер   HP LaserJet 1200
Public               Диск      
Домен=[WORKGROUP] ОС=[Unix] Сервер=[Samba 4.1.6-Ubuntu]

Сервер              Комментарий
---------           -------
                     сервер с именем хоста (Samba, Ubuntu)

Рабочая группа      Мастер
---------           -------
WORKGROUP           HOST-NAME

Для общих ресурсов Samba у нас есть набор утилит, входящих в пакет samba:

  • smbtree

    smbtree – это программа браузера smb в текстовом режиме. Она похожа на “Сетевое окружение”, которое можно найти на компьютерах с Windows. Она выводит дерево со всеми известными доменами, серверами в этих доменах и общими ресурсами на серверах. Страницы справки

  • smbstatus

    smbstatus – это очень простая программа для отображения текущих соединений Samba. Страницы справки

    В результате выполнения следующей команды будет выведен список общих ресурсов:

    smbstatus --shares
    

См. также: Страницы справки по samba

gio mount -l

GVFS – это виртуальная файловая система, лежащая в основе GIO, предоставляющая доступ к локальным и удаленным файловым системам для среды рабочего стола GNOME. Она поддерживает различные протоколы, такие как SMB, FTP, WebDav и SFTP, монтируя доступные ресурсы в директории ~/.gvfs/.

Команда gio mount -l перечисляет все подключенные внешние диски и сетевые ресурсы, например:

$ gio mount -l
Диск(0): 1.5 ТБ жесткий диск
[сокращено]
Монтаж(0): public на fileserver -> smb://fileserver/public/
  Тип: GDaemonMount
Монтаж(1): SFTP для bert на server.example.com -> sftp://[email protected]/
  Тип: GDaemonMount
Монтаж(2): WebDAV как bert на server.example.com -> davs://[email protected]/dav
  Тип: GDaemonMount

Если вы добавите опцию -i, вы получите еще больше информации.

Если вы просмотрите свой собственный компьютер в разделе Сеть в Nautilus, вы должны увидеть все общие ресурсы.

Нажмите Alt+Ctrl+T, чтобы открыть терминал и выполните следующую команду:

smbtree

По крайней мере два способа сделать это:

1. mount

$ mount
sysfs на /sys тип sysfs (rw,nosuid,nodev,noexec,relatime)
proc на /proc тип proc (rw,nosuid,nodev,noexec,relatime)
udev на /dev тип devtmpfs (rw,nosuid,noexec,relatime,size=1959288k,nr_inodes=489822,mode=755)
...
# и т.д.

Без опций mount перечислит все смонтированные файловые системы. Доступны две опции:

  • -l : включает метки
  • -t <тип> : фильтрует вывод по файловой системе <типа>; например, cifs`

Смотрите man mount для подробностей. Пример из моей системы:

$ mount -l -t cifs
//NetgearNAS-3/backup на /mnt/NetgearNAS/backup тип 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 на /mnt/SynologyNAS/backups тип 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

...

# и т.д.

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.

Откройте файл /etc/samba/smb.conf. В последнем разделе [share] есть строка:

path = "ваша общая папка"

Ответ или решение

Полный список всех общих папок на командной строке

Если вам необходимо получить список всех общих папок на вашей системе через командную строку, существует несколько эффективных методов для достижения этой цели. Давайте рассмотрим их подробнее.

1. Использование smbclient

Одним из самых популярных способов для получения списка общих ресурсов на сервере Samba является команда smbclient. Для начала выполните следующую команду:

smbclient -L localhost

При выполнении команды появится запрос на ввод пароля. После ввода пароля вы получите список общих ресурсов на сервере. Пример вывода может выглядеть следующим образом:

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.6-Ubuntu]

Sharename       Type      Comment
---------       ----      -------
print$          Disk      Printer Drivers
IPC$            IPC       IPC Service
hp1320          Printer   Hewlett-Packard hp LaserJet 1320 series
Public          Disk      

В данном выводе показаны имена ресурсов (Sharename), типы и комментарии к ним.

2. Использование smbtree

Команда smbtree позволяет вам просмотреть дерево всех доступных серверов Samba и их общих ресурсов. Чтобы использовать ее, просто введите:

smbtree

Это выведет дерево, в котором отображаются все известные домены, серверы в этих доменах и доступные общие ресурсы. Этот способ удобен для получения общей картины всех доступных ресурсов в сети.

3. Использование smbstatus

Если вам нужно получить информацию о текущих соединениях и доступных ресурсах, вы можете воспользоваться командой smbstatus. Эта команда отображает текущие подключения Samba, а также список общих ресурсов. Вам достаточно выполнить:

smbstatus --shares

4. Получение информации о смонтированных файловых системах

Команда mount также может быть полезной, если вы хотите увидеть все смонтированные папки и файловые системы, включая сетевые ресурсы:

mount -l

Если вы хотите отфильтровать вывод для сетевых файловых систем, например cifs, выполните:

mount -l -t cifs

5. Использование findmnt

Команда findmnt предоставляет удобный способ для отображения всех смонтированных файловых систем в виде дерева. Чтобы получить список смонтированных ресурсов:

findmnt

Для фильтрации по типу nfs или cifs вы можете использовать:

findmnt -t cifs,nfs

6. Просмотр файла конфигурации Samba

Если вы имеете доступ к файлу конфигурации Samba, который обычно расположен по пути /etc/samba/smb.conf, вы можете найти информацию о доступных общих ресурсах в секции [share], где указаны пути к папкам:

cat /etc/samba/smb.conf

ищите строчку:

path = "ваша общая папка"

7. Использование gio

Если в системе установлен GIO, вы можете выполнить следующую команду для списка всех монтированных сетевых ресурсов:

gio mount -l

Эта команда покажет не только сетевые, но и подключенные внешние диски.

Упрощение доступа к общим папкам

Не забывайте, что вы также можете открыть файловый менеджер вашей операционной системы, например Nautilus, и просмотреть общий раздел "Сеть". Это может дать вам наглядное представление о доступных ресурсах без необходимости использовать командную строку.

Заключение

Существуют разнообразные методы получения информации о доступных общих ресурсах в Linux. Используя вышеуказанные команды, вы сможете не только просмотреть общие папки, но и узнать их физические местонахождения на сервере. Эти инструменты и команды позволяют IT-специалистам эффективно управлять и исследовать сетевые хранилища, обеспечивая оптимизацию процесса управления ресурсами.

Оцените материал
Добавить комментарий

Капча загружается...