Кстати, вместо имени компьютера можно указать IP адрес.
В полученном выводе половину информации составляют сообщения о различных проблемах. Значимые данные:
Sharename Type Comment --------- ---- ------- ADMIN$ Disk Удаленный Admin C$ Disk Стандартный общий ресурс IPC$ IPC Удаленный IPC Share Disk Users Disk
В полученном выводе Share и Users являются общими сетевыми папками.
Unable to initialize messaging context smbclient: Can't load /etc/samba/smb.conf - run testparm to debug it
исчезнут, если создать файл /etc/samba/smb.conf.
Reconnecting with SMB1 for workgroup listing. protocol negotiation failed: NT_STATUS_CONNECTION_RESET Unable to connect with SMB1 -- no workgroup available
пропадут, если на компьютере с сетевой папкой включить поддержку протокола SMB1.
Как я уже говорил чуть выше, флаг -N означает не использовать пароль. Если же вы используете пароль, то укажите опцию -U с именем пользователя, пароль нужно будет ввести интерактивно.
Как и для smbtree, для smbclient необязательно использовать sudo, но без sudo для некоторых компьютеров программа срабатывает нормально, а для некоторых завершается ошибкой:
session setup failed: NT_STATUS_ACCESS_DENIED
Программа smbclient умеет не только показывать общие ресурсы, но и имеет интерактивный режим, во время которого можно копировать файлы между локальным компьютером и общей папкой, удалять файлы, создавать папки и переходить по каталогам, просматривать содержимое файлов и их свойств и выполнять другие действия в файловой системе совместно используемой сетевой папки.
Кроме интерактивного режима, можно просматривать содержимое сетевых папок и в проводнике Linux — об этом будет рассказано позже, а пока остановимся на подключении в командной строке.
Для входа в интерактивный режим запустите команду вида:
sudo smbclient //ИМЯ-КОМПЬЮТЕРА/Папка -N
Например, я хочу подключиться к компьютеру //HACKWARE-MIAL/ и выполнить действия с файлами в сетевой папке Share, тогда моя команда следующая:
sudo smbclient //HACKWARE-MIAL/Share -N
Если вы хотите, чтобы при подключении была изменена текущая рабочая директория в сетевой папке, то есть чтобы была открыта другая папка, то используйте опцию -D. К примеру, я хочу подключиться к папке NewFolder, тогда команда следующая:
sudo smbclient //HACKWARE-MIAL/Share -N -D NewFolder
К примеру, на компьютере //HACKWARE-MIAL/ имеется сетевая папка ShareRestricted, права на просмотр которой есть у пользователя ShareOverlord. Для просмотра шары, защищённой паролем, нужно использовать команду вида:
sudo smbclient //ИМЯ-КОМПЬЮТЕРА/Папка -U ИМЯ-ПОЛЬЗОВАТЕЛЯ
В моём случае это команда:
sudo smbclient //HACKWARE-MIAL/ShareRestricted -U ShareOverlord
Доступны следующие интерактивные команды:
Выводит все доступные команды:
Для показа справки по определённой команде, выполните
Переход в другой каталог (смена текущей рабочей директории) на удалённой системе:
Переход в другую директорию на локальной системе:
Удаление файла в шаре:
Имеется псевдоним этой команды:
И ещё одна команда со схожей функцией:
Эта команда рекурсивно удалить все совпавшие с шаблоном имени файлы и директории.
Показ файлов и папок в текущей папке:
Имеется псевдоним этой команды:
И ещё один, даже более короткий псевдоним:
Скачать файлы с общей папки:
Для повторного скачивания файла:
Для скачивания всех файлов, чьём имя совпадает с шаблоном:
Например, чтобы скачать все файлы с файловым расширением .exe нужно запустить такую команду:
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос на скачивание. Если вы действительно хотите его скачать, то нажмите клавишу «y»:
Get file ChromeSetup.exe? y
Также имеется команда newer, которая скачивает файлы (mget), которые новее, чем указанный локальный файл. Используется она так:
Выгрузка файла на общую папку:
Следующая команда скопирует локальный файл в шару:
reput [ИМЯ_УДАЛЁННОГО_ФАЙЛА]
Для закачки всех файлов, чьём имя совпадает с шаблоном:
К примеру, чтобы закачать в шару все файлы (из локальной текущей рабочей директории), которые имеют расширение *.cap, нужно запустить команду:
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос подтверждения, если вы действительно хотите его закачать, то нажмите клавишу «y»:
Put file wpa.cap? y putting file wpa.cap as \wpa.cap (335,2 kb/s) (average 277,8 kb/s) Put file wep.cap? y putting file wep.cap as \wep.cap (0,6 kb/s) (average 169,1 kb/s)
Включение и отключение рекурсии
Можно включать и отключать рекурсивный режим для mget и mput.
Показ всей возможной информации о файле:
allinfo all-databases.sql altname: ALL-DA~1.SQL create_time: Чт авг 29 12:29:51 2019 MSK access_time: Вс янв 5 23:31:47 2020 MSK write_time: Ср авг 1 09:51:25 2018 MSK change_time: Вс янв 5 19:48:36 2020 MSK attributes: A (20) stream: [::$DATA], 381945262 bytes
В выводимой информации можно увидеть альтернативное (DOS) имя, временные метки (дата создания, доступа, записи и изменения файла), атрибуты.
Копирование файла на сервере:
Создание директории:
Удаление директории:
Удаление файлов
Следующая команда удалит все совпавшие с МАСКОЙ файлы:
Псевдоним команды для удаления файлов:
С помощью команды wdel можно удалить все совпавшие файлы по подстановочным символам:
Переименование файлов:
rename ИСХОДНОЕ_ИМЯ НОВОЕ_ИМЯ
Создание жёсткой ссылки Windows:
hardlink ИСТОЧНИК НАЗНАЧЕНИЕ
Создание жёсткой ссылки UNIX:
link СТАРОЕ_ИМЯ НОВОЕ_ИМЯ
Создание символьной ссылки UNIX:
symlink СТАРОЕ_ИМЯ НОВОЕ_ИМЯ
Выход с сервера:
Вывод истории команд текущей сессии:
Просмотр содержимого текстового файла:
Показ текущей рабочей директории:
Current directory is \\HACKWARE-MIAL\Share\
Другой вариант показа текущей рабочей директории — это команда cd без аргументов:
Создание и извлечение архивов tar
Программа tar используется для объединения нескольких файлов в один файл. Объединение происходит без сжатия. Для того, чтобы несколько файлов из сетевой папки объединить в архив и скачать на локальную систему запустите команду вида:
tar c АРХИВ.tar ФАЙЛ1 ФАЙЛ2 ФАЙЛ3
К примеру, я хочу скачать файлы all-databases.sql besside.log ChromeSetup.exe из совместной папки и объединить их в архив all.tar, тогда моя команда следующая:
tar c all.tar all-databases.sql besside.log ChromeSetup.exe
Если нужно разархивировать файл на локальной системе и всё его содержимое отправить на удалённую общую папку, то запустите команду вида:
К примеру, я хочу отправить содержимое архива all.tar в общую папку:
Для установления режимов tar используется команда
Установка таймаута операций:
Таймаут устанавливается в секундах и по умолчанию равен 20.
Установка нового соединения:
Закрытие сессии, выход:
Вывод списка открытых подключений:
Отображение текущего активного подкючения:
Изменение удалённой директории (переход на одну папку выше):
Выполнение команд в локальной системе:
Чтобы команда выполнялась не на удалённой системе, а на локальной, поставьте перед ней ! (восклицательный знак), например^
Необязательно каждый раз вводить все команды вручную — вы можете перечислить их через запятую и указать в двойных кавычках с опцией -c, например:
sudo smbclient //HACKWARE-MIAL/Share -N -c "cd NewFolder; tar c captures.tar *.cap"