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

Программа smbclient обычно инсталлируется в /usr/bin. Она используется для перемещения файлов,с разделяемых ресурсов SMB-сервера и обратно посредством FTP-подобного интерфейса.

Первый этап использования smbclient - установление соединения с ресурсами SMB-сервера Простейшая форма команды такова:

$ srnbclrient\\server\resourcename

Конечно, в действительности все сложнее. Если необходимо указать пароль для получения доступа к защищенному ресурсу, то команда становится более громоздкой:

$ smbclient\\server\resourcename password

Имеется несколько флагов, позволяющих изменить характер соединения программы smbclient с сервером. Основные флаги перечислены в табл. 29.2.

Табл. 29.2.Основные флаги программы smbclient

ФлагДействие
-LhostФлаг выводит на экран список сервисов, доступных на сервере, заданном параметром host; при использовании этого флага нет необходимости указывать ресурс
-I IP_address-NФлаг полезен, если не может быть найден адрес по имени; smbclient полагает, что компьютер расположен по указанному ГР-адресу
-UusemameФлаг подавляет приглашение password. Особенно полезен, когда доступ к ресурсу осуществляется без пароля. Если этот флаг не установлен, а пароль не требуется, пользователь все же получает приглашение для ввода и должен нажимать клавишу Enter для ввода пустого пароля Используя этот флаг, можно указать username для установки соединения с ресурсом. Без этого флага сервер использует содержимое переменных среды USER или LOGNAME; и если они пустые, сервер не получает username. Отправить пароль к серверу можно, введя знак процента (%) после username, а затем введя пароль: -U username%pas sword Определяет, какая рабочая группа используется при соединении с сервером
-Wworkgroup-Т taroptionsПозволяет перемещать данные в tar-файл локальной системы Linux и обратно. Например, -Тх backup . tar восстанавливает файлы из backup . tar на удаленном ресурсе, в то время как -Тс backup . tar создает tar-файл с именем backup . tar, содержащий все файлы и каталоги удаленного ресурса

Команда smbclient с использованием приведенной информации:

$ smbclient \\server\resourcename-U username%password -Wworkgroup

Эта команда пытается установить соединение с удаленным ресурсом resourcename на сервере SMB server, в рабочей группе с именем workgroup, в качестве пользователя username, используя пароль password.

Операции для работы с файловыми ресурсами

Установив соединение с файловыми ресурсами, можно выполнять операции перемещения данных, используя специальные команды. Они перечислены в табл. 29.3.

Табл. 29.3.Команды операций с файлами

ОперацияОписание
cddirectoryПереход в другой каталог 8MB совместно используемого ресурса
delfileУдаление указанного файла с сервера (также используется команда rm)
dirОтображение содержимого текущего каталога сервера (также используется команда Is)
get fileПолучение указанного файла с удаленного сервера и сохранение его с тем же именем в текущем каталоге локальной системы; можно задать другое имя для файла на локальной системе: getfile localfilename
lcddirectoryПереход в указанный каталог на локальной системе
mgetfilemaskПолучение всех файлов на удаленном сервере, удовлетворяющих указанной маске файла
mkdirdirectoryСоздание указанного каталога на удаленном сервере (также используется команда md)
триtf i1 ema skКопирование всех файлов локального каталога, удовлетворяющих указанной маске файла, в текущий каталог удаленного сервера
promptВключение/выключение подсказки для операций с несколькими файлами (mput и mget). При задании значения on пользователи получают подсказку при копировании каждого файла
putfileКопирование указанного файла из текущего локального каталога в текущий каталог на удаленном сервере, имя файла остается прежним. Имя файла на удаленном сервере можно изменить: putfile remote filename
quitВыход из программы smbclient (также используется команда exit)
recurseВключает/выключает доступ к подкаталогам для операций с несколькими файлами (mput и mget). Когда задано значение on, команда при копировании файлов осуществляет поиск по всем подкаталогам текущего каталога
rmdirdirectoryУдаление каталога с удаленного сервера (также используется команда rd)

Рассмотрим некоторые примеры.

Переход из локального каталога в подкаталог f оо осуществляется командой led f оо.

Переход из удаленного каталога в каталог . . / f оо осуществляется командой cd . . / f оо.

Операции для работы с ресурсами принтера

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

print file-печать указанного файла через текущий ресурс в режиме, определенном параметрами команды printmode;

printmodeoption-установка режима печати, определяемого значением option; доступны следующие значения - graphics или text, причем режим graphics подразумевает любые двоичные данные;

queue-отображение текущего состояния очереди на удаленную печать;quit(или exit) - выход из программы smbclient.

Конечно, это немного громоздко. Если нужно напечатать текстовый файл, нельзя просто напечатать его из приложения способом, используемым в Unix для установки в очередь на печать. Необходимо установить связь с принтером при помощи программы smbclient и использовать команды printmode text и print filename. Печать файлов в других форматах еще сложнее.

Как происходит печать, если удаленным принтером является принтер PCL и используемое программное обеспечение генерирует файлы только в формате PostScript (что часто происходит в мире Unix)? В этом случае пользователь должен выполнить печать в файл, преобразовать его командой gs в формат PCL, соединиться с принтером посредством программы smbclient, установить режим печати и отправить файл в очередь на печать. Безусловно, это дополнительные затраты времени.

К счастью, smbprint помогает решить эту проблему.