- Вопрос или проблема
- 1. mount
- 2. findmnt
- Ответ или решение
- Полный список всех общих папок на командной строке
- 1. Использование smbclient
- 2. Использование smbtree
- 3. Использование smbstatus
- 4. Получение информации о смонтированных файловых системах
- 5. Использование findmnt
- 6. Просмотр файла конфигурации Samba
- 7. Использование gio
- Упрощение доступа к общим папкам
- Заключение
Вопрос или проблема
Можно ли перечислить все общие папки (с их физическими расположениями) из командной строки?
перейдите к папке списка
/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-специалистам эффективно управлять и исследовать сетевые хранилища, обеспечивая оптимизацию процесса управления ресурсами.