Cifs порты. Общий доступ к сетевым ресурсам. Соединение с сетевой папкой на стороне STB

Одним из способов доступа с STB к файлам, расположенным на сетевых компьютерах, является протокол общего доступа SMB , который является стандартным протоколом Microsoft Windows и обеспечивает функции «Сети Microsoft Windows» и «Совместного использования файлов и принтеров» .
Samba - свободная реализация протокола SMB для UNIX-подобных и других операционных систем.

Применение протоколов SMB / Samba позволяет осуществлять доступ с STB (работает под управлением ОС Linux) к папкам и файлам, расположенных на сетевых компьютерах (работающих под управлением ОС Linux, Windows и др.). Таким образом, пользователи STB получают возможность проигрывать на STB медиа-файлы (видео, аудио, изображения), которые расположены на сетевых компьютерах, работающих под управлением одного из типов ОС, поддерживающей протоколы SMB или SAMBA.

Протокол SMB / Samba является прикладным протоколом (в терминах сетевой модели OSI). Для обмена данными использует транспортный протокол TCP/IP.
Протокол SMB / Samba использует архитектуру клиент – сервер: в качестве сервера выступает ПК, на котором размещаются определенные сетевые ресурсы (папки) с медиа-файлами, в качестве клиента – STB, с которого медиа-файлы проигрываются.

Сетевые ресурсы отображаются в STB, в меню , в соответствии со стандартной сетевой LAN-архитектурой ОС Windows: Сеть / Рабочая группа / Компьютер / Папка.

По умолчанию, доступ к ресурсам компьютера закрыт настройками на стороне компьютера. При необходимости получить доступ со стороны к определенной сетевой папке, пользователь необходимого компьютера открывает доступ к этой папке. Для управления доступом к папкам используется процедура ОС Windows "Общий доступ к файлам ".

Предусмотрены два типа сетевого доступа к папкам (тип доступа определяется на стороне компьютера):

  • по паролю - для доступа к сетевой папке со стороны STB используется процедуры Авторизации (необходимо ввести имя (login) определенного пользователя компьютера и его пароль (password);
  • без пароля - доступ к сетевой папке открыт для всех пользователей, без необходимости вводить пароль.

Обнаружение общих сетевых ресурсов на стороне STB происходит автоматически (если это не запрещено на стороне компьютера или кроме случаев, связанных с некорректной работой сети). Соединение с сетевой папкой устанавливается, когда пользователь STB открывает сетевую папку. Если используется доступ к папке по паролю, пользователю выдается запрос, указать login и password .

Также предусмотрена возможность ручного подключения сетевых папок (если они не были обнаружены автоматически). Настройка и доступ к ресурсам сети по протоколу SMB / Samba на STB проводится в меню Home media .

Ниже рассмотрен пример, как подключить сетевую папку ПК с ОС Windows 10для воспроизведения медиа-файлов с STB.
Примечание. Поддержка протокола SMB операционной системой Windows 10 включена по умолчанию.

Пример настройки соединения между STB и ПК с Windows 10

Основные параметры, используемые в примере

Компьютер (файловый сервер):

  • Операционная система - Windows 10 64-bit;
  • Имя компьютера – My _ computer (выбрано для примера);
  • Рабочая группа – WORKGROUP (имя рабочей группы “по умолчанию” в ОС « Windows »);
  • IP- адрес ПК: 192.168.1.186 .
  • Ресурс для «расшаривания» (папка с медиа-файлами) - папка Video _ E 1.
  • Имя пользователя - Usr.

STB (клиент )

  • IP- адрес STB : 192.168.1.230

Проверка доступности сетевого соединения между ПК и STB

Перед настройкой соединения убедитесь в доступности сетевого соединения между ПК и STB – «пропингуйте» STB со стороны ПК.

Настройка на стороне ПК (открытие доступа к папке)

  1. Откройте доступ к папке Video_E1 : Свойства Доступ ⇒ Общий доступ .
  2. Если необходимо предоставлять доступ к папке только для текущего пользователя ПК, оставьте в списке пользователей только текущего пользователя (Usr ). В этом случае доступ к папке будет предоставляться по паролю - для соединения с папкой на STB будут запрошены логин (имя пользователя компьютера) и пароль (пароль пользователя компьютера).

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

Ниже на рисунке приведен вариант настройки предоставления беспарольного доступа к папке Video_E1 для всех сетевых пользователей.

5. На ПК открыть «Центр управления сетями и общим доступом» и настроить параметры общего доступа для трех профилей (Частная, Гостевая или общедоступная и Все сети ):

Частная

Гостевая или общедоступная

Все сети

Соединение с сетевой папкой на стороне STB

  1. Во встроенном портале зайти в Главное окно Home Media Network WORKGROUP

2. В папке WORKGROUP отображаются сетевые компьютеры рабочей группы.
Откройте ярлык необходимого сетевого компьютера - My _ Computer (в папке My _ Computer отображаются папки, для которых установлен общий доступ).

3. Для контроля автоматического определения сетевого ресурса и типа протокола необходимо выделить папку и воспользоваться кнопкой «i» (INFO) на ПДУ:

4. Открыть папку Video_E1 . Внутри папки пройти по пути, по которому находится медиа-файл, который необходимо воспроизвести.

5. Если для папки установлен доступ по паролю, либо по каким-либо причинам STB не может «примонтировать» папку (то есть получить к ней доступ - см. раздел ), то при попытке открыть данную папку открывается окно «Network connection» .

6. Запустить медиа-файл.

Принудительное установление соединения к сетевой папке

В некоторых случаях (при проблемах автоматического соединения) предусмотрена ручная настройка доступа к сетевой папке:
  • Войти Главное окно Home Media Network WORKGROUP
  • Вызвать окно Operations (Операции ) - кнопка Меню на ПДУ.
  • Нажать Mount Share (Подключить ресурс ).
  • В окне "Подключение сетевой папки" ("Connect network folder" ) ввести параметры подключения
    • Адрес сервера (Server Address) – IP-адрес ПК (файлового сервера), на котором размещена требуемая сетевая папки;
    • Папка на сервере (Server folder) – имя «расшаренной» на ПК папки;
    • Локальная папка (Local folder) – имя папки на STB (как правило, совпадает с именем папки на сервере);
    • Тип подключения (Connection type) – SMB.
    • Логин (Login) – совпадает с именем пользователя ПК - вводится, если для папки используется доступ по паролю;
    • Пароль (Password) – пароль доступа к папке - вводится, если для папки используется доступ с паролем.

Отключение сетевой папки, изменение настроек соединения на STB

Для принудительного отключения определенной сетевой папки используйте для этой папки команду Отключить NFS/SMB .

В случае необходимости внести изменения в настройку соединения на стороне, используйте для этой папки команду Редактировать (англ. Edit share) .

Монтирование папки

Установление соединения к определенной папке, описанное в подразделах и , сопровождается автоматическим монтированием папки на STB. Если определенная папка "примонтирована" на STB, ее ярлык появляется на верхнем уровне меню Home media .

Пользователь также может монтировать необходимую папку вручную (это также ведет к соединению с папкой ), для этой цели используется команда Подключить ресурс (англ. Mount share) .
Для "размонтирования" папки в STB (это также ведет к разъединению папки от STB) используется команда Отключить ресурс (англ. Unmount share) .

Проблемы получения доступа к сетевым ресурсам

  1. В окне « Home media» не открываются закладки «Network» , «WorkGroup»:
    • Проверить сетевые настройки и состояние сети на стороне STB и компьютера;
    • Убедиться в том, что на сервере (ПК, с которого настраивается доступ) включена поддержка протокола SMB версии 1 и 2.
    • Перезагрузить STB и ПК.

2. Если разделы «Network» , «WorkGroup» отображаются, но не отображается ярлык необходимого сетевого компьютера:

    • Проверьте, что компьютер отображается в разделе «Сеть» на компьютере;
    • Пропинговать STB со стороны ПК (убедиться, что оба устройства могут взаимодействовать по сети).
    • Перезагрузить компьютер.

3. Если на STB не отображаются доступные папки или доступ к папке закрыт:

    • Проверьте, что папки, к которым открыт доступ, отображаются в разделе «Сеть» на компьютере;
    • Если есть возможность, проверить наличие доступа к папке с других сетевых компьютеров;
    • На компьютере проверить настройки общего доступа в свойствах папки и «Дополнительные параметры общего доступа. Профили» .
    • Перезагрузить STB.

4. Если при открытии сетевой папки на STB предлагается выполнить авторизацию, но для папки доступ по паролю не назначался:

    • Проверить, чтобы в свойствах папки был открыт доступ для пользователя «Все» ;

5. Если при открытии папки на STB предлагается выполнить авторизацию (ввести логин, пароль), но значение пароля не задано (пустой пароль):

    • Установить определенное значение пароля пользователя компьютера;
    • Если доступ не возобновился, перезагрузить STB.

6. Если файл не открывается:

    • проверить, проигрывается ли файл локально на ПК;
    • попытаться запустить с STB другие файлы с той же сетевой папки, с других сетевых папок;
    • попытаться проиграть файл другого формата (желательно, проверить файл, который на STB ранее воспроизводился, например, с USB-носителя). Возможно, данный формат файла не поддерживается плеером STB.

Существует масса разных реализаций раздачи «сетевых шар» в локальной сети, но удалось получить, что-то средне-бюджетное и защищенное.

Zyxel Keenetic

Подключили и убрали… ну, например, в шкаф.

Конфигурация

Для начала нужно создать массив.
Создадим не сложными манипуляциями RAID на CFI B8253-JDGG с установленными 4ТВ дисками.

На задней части устройства расположены DIP-переключатели и внятная схема аппаратного RAID-контроллера. Я выставил RAID5 на дисках 4 TB. Инициализируем диски просто подключив накопитель к ПК на Win 7. На этом этапе конфигурация DASа закончена. Получили GPT NTFS размером 16ТВ.

Теперь перейдем к конфигурации роутера Zyxel Keenetic
Переходим на WebUI и ставим несколько галок.

Включаем CIFSна роутере, автоматическое монтирование, дабы не отваливалось наше устройство и разрешим доступ без авторизации (дальше докачаем и установим пакет для роутера, который позволит разграничить права доступа по уч. Записям)
Маршрутизатор предоставляет нам возможность настраивать права доступа сетевого диска. Мы можем создавать свои учетные записи сетевого протокола доступа к файлам, принтерам и другим сетевым ресурсам в сетях Windows. Можно настроить права доступа на каждого пользователя и папку. Возможны следующие виды прав доступа:

При подключении DAS’a к роутеру видим наш раздел:

Теперь разграничим права доступа, для этого я установил несколько компонентов:

Данные компоненты позволили попасть во вкладку «Права доступа»

Создание пользователей тоже предусмотрено и управление доступом.

Раздача прав доступа

Для чего нам вообще подключать DAS к роутеру?
Все просто, в роутере есть встроенный bittorrent клиент, благодаря которому можно сразу качать на DAS фильмы/музыку и т.п. и раздавать все это по сети.
Даем админу права на torrent

Включим файл подкачки, для чего он описано на скриншоте.

Transmission уже установлен в моем роутере, перейдем в браузере 192.168.1.1 :8090/ и авторизуемся под admin

«Скормим» torrent-файл.

Как мы можем наблюдать система работает и установленный на роутер Transmission с успехом смог воспользоваться предоставленной ему внешней емкости для складирования получаемого контента.
И теперь к самому главному, все работает, но какая же скорость чтения/записи при доступе к DAS по сети?
Попробуем записать/загрузить файлик по SAMBA
Результат:

Надо понимать, что полученный скоростной результат обмена по сети прямо зависит от производительности процессора и интерфейса роутера. То есть в данном случае мы видим не скорость DAS CFI, а скорость которую способен «переварить и выдать» Zyxel Keenetic через USB в сеть по SAMBA. Показатели не большие, но для домашнего и бюджетного решения этого достаточно. Не смотря на то, что скорость прямого доступа невелика, хотя тоже приемлема – для получения с DASа потока видео на TV или медиаплеер, или, планшет по квартире через wi-fi - более чем достаточна.

Подключим DAS к ПК по USB3.0 и убедимся в том, что скорость ограничивается пропускной способностью USB интерфейса Zyxel Keenetic.
Результат:

Сам по себе DAS при прямом подключении к ПК у выдает у меня более 200МБ/с при RAID5. Соответственно, с ростом производительности роутеров или просто выборе другого роутера (по мере возможности конечно же проверю и прикреплю UPD), скорость может изменяться и хочется надеяться в лучшую сторону.

Ну и коммерческая сторона собранной системы на момент написания:
CFI-B8253JDGG - от 10 756 рублей, ZyxelKeenetic– 990 рублей. В сумме менее 12 000 рублей. И если сравнить с 4-х дисковым NAS (цена начинается от 18 000 рублей) экономическая выгода налицо.
Решение задачи не единственное, но очень даже работоспособное и занимательное.

Пошаговое руководство для новичков

Действия, производимые на компьютере

Откройте и, если нужно, измените настройки сети на вашем компьютере. Должны быть:

  1. IP-адрес, реально существующий или выдуманный. В данном примере будем использовать адрес 10.10.10.10
  2. название рабочей группы (или домена в корпоративной локальной сети), в которой участвует компьютер. Будем использовать название noworknogroup
  3. имя пользователя в активном соединении (оно обычно показывается в меню Пуск). Будем использовать имя urbancowboy
  4. пароль для этой учетной записи, если нужно. Будем использовать пароль secretpassword

Теперь необходимо создать "сетевой совместно используемый ресурс", т.е. каталог, который будет доступен в сети.

В нашем примере создадим каталог под названием C:\Nokia770 . Щелкните правой кнопкой мыши на этот каталог в Explorer и выберите "Коллективное использование и безопасноть" (или что-то подобное).

Во фрейме "Коллективное использование в сети" вам нужно отметить галочкой "Коллективно использовать этот каталог в сети".

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

Здесь также есть кнопка-флажок, которая определяет, будет ли совместно используемый продукт доступен только для чтения со стороны сети, или другие машины смогут так же писать на ваш компьютер. Выбор за вами...

После подтверждения действий в диалоговом окне, иконка каталога в Explorer изменится, показывая, что он "обслуживается". Теперь со стороны компьютера всё готово.

Промежуточный этап

Добавим на планшет небольшое программное обеспечение, доступное благодаря пользователю "fanoush" по следующему адресу:

Если возникнут какие-то проблемы, оно также выложено на сайте:

Сервер не быстрый, но доступ к нему не ограничен и размер файла небольшой (105 KB).

Действия, производимые на устройстве Nokia

У вас должна быть установлена программа Xterm и вы должны каким-то образом стать "пользователем с правами администратора" (и необходимость работать с командной строкой вас не должна пугать...).

Установите Wi-Fi соединение между устройством Nokia и сетью или компьютером.

Как пользователь с правами администратора в xterm теперь необходимо:

  1. Войти в действительный каталог, который показывается как "Документы":
cd /home/users/MyDocs/.documents
  1. Создать каталог, в котором «увидим» совместно используемый продукт в сети: mkdir myPC
  1. Извлечь содержимое cifs.tgz, создающего файл cifs.ko в текущем каталоге (можете это проверить, напечатав ls ).
tar xvzf cifs.tgz
  1. Все перечисленные действия нужно выполнить только один раз. Теперь пришло время непосредственно соединить между собой две машины, для чего требуются две команды. Первая команда загружает модуль ядра cifs.ko, "обучая" систему тому, как понимать сетевой совместно используемый продукт такого рода. В результате должно появиться сообщение вроде "Теперь используется cifs.ko":
insmod ./cifs.ko
  1. Если нет ошибки, можем перейти к "установке" сетевого совместно используемого продукта в наш гостевой каталог таким образом, чтобы файлы с нашего компьютера появились и на нашем планшете. Это длинная, подробная команда, и все ее части должны быть совершенно правильными, поэтому проверьте ее дважды. Снова, если нет сообщения об ошибке, можете напечатать **ls myPC, чтобы проверить, появляются ли файлы вашего компьютера на планшете.
    (естественно замените выделенное курсивом на ваши данные – печатайте в одну строку)
mount -t cifs //_10.10.10.10/Nokia770_ myPC -o domain=noworknogroup,user=urbancowboy,password=secretpassword **

Если команда установки не отвечает, проверьте, чтобы все межсетевые экраны на вашем компьютере позволяли устройствам в локальной сети иметь к нему доступ. В случае с ZoneAlarm, например, понадобится добавить IP номер устройства Маемо или весь диапазон чисел вашего DHCP в вашу зону "проверенных" IP адресов. Со встроенной программой Брандмауер подключения к Интернет на MS XP, как еще один пример, можете добавить порт 445 (TCP) для cifs.

Теперь ваш совместно используемый ресурс появится в виде каталога myPC в каталоге Документы в Диспетчере файлов Maemo.

Примечание : две последние команды нужно подавать после каждой перезагрузки планшета. Если вы собираетесь часто этим пользоваться, то имеет смысл прочитать пособие по Linux и научиться тому, как сохранить эти две команды в виде сценария из двух строк, чтобы избежать дальнейшего перепечатывания заново...

Примечание : Если вы в сети и выполните "smbtree", то увидите все устройства с ресурсами в совместном доступе. Для соединения (если хотите использовать cifs) напечатайте "smbtree -d 3" и прочитайте строку, где написано: "Соединение с xx.xx.xx.xx". Это и есть требуемый IP-адрес.

Изучаем Linux, 302 (смешанные среды)

Интеграция с протоколом CIFS

Использование Linux в качестве клиента серверов SMB/CIFS

Серия контента:

Об этой серии

Эта серия статьей поможет вам освоить задачи администрирования операционной системы Linux. Вы можете использовать материалы этих статей для подготовки к экзаменам программы LPIC третьего уровня (LPIC-3) .

Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему . Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит текущие (по состоянию на ноябрь 2010 года) цели экзаменов сертификации LPIC-3.

В этой статье рассматриваются следующие темы:

  • Протоколы Server Message Block (SMB) и Common Internet File System (CIFS).
  • Возможности и преимущества использования CIFS.
  • Монтирование общих файловых ресурсов CIFS на клиентах Linux.

Эта статья поможет вам подготовиться к сдаче экзамена LPI 302 (специализация "Смешанные среды") и содержит материалы цели 314.1 темы 314. Цель имеет вес 3.

Предварительные требования

Чтобы извлечь наибольшую пользу из наших статей, необходимо обладать продвинутыми знаниями о Linux и иметь работоспособный компьютер с Linux, на котором можно будет выполнять все встречающиеся команды. В частности, предполагается, что читатель умеет работать с командной строкой Linux, знает основы конфигурирования Samba и имеет общее представление о структуре конфигурационного файла smb.conf. Необходимо также знать основы монтирования локальных и удаленных файловых систем (с помощью команды mount и файла /etc/fstab). Знания о команде ftp , входящий в стандартный набор текстовых команд Linux приветствуются, хотя не являются обязательными.

Что такое SMB/CIFS

О факультативном экзамене LPI-302

Как и многие другие программы, программа сертификации Linux Professional Institute (LPIC) предусматривает различные уровни сертификации, где для получения каждого последующего уровня необходимо обладать более глубокими знаниями и практическим опытом. Экзамен LPI-302 – это факультативный экзамен третьего уровня программы LPIC, требующий продвинутых знаний в области системного администрирования Linux.

Для получения сертификата LPIC третьего уровня (LPIC-3) необходимо успешно сдать два экзамена первого уровня (101 и 102), два экзамена второго уровня (201 и 202), а также базовый экзамен 301 третьего уровня (LPIC-3). Если вы получили сертификат третьего уровня, вы можете сдавать факультативные экзамены по определенным специализациям, например, экзамен LPI-302.

Прежде чем переходить к рассказу о том, как использовать Linux в качестве клиента сервера SMB/CIFS, полезно рассказать об особенностях этих протоколов и выяснить, насколько полно они обеспечивают использование файловой системы при работе с Linux . Мы объясним, как работает изучение оригинальный протокол SMB и какие новые функции реализованы в его модификации CIFS . Вы можете обратиться к статье developerWorks, содержащей материалы цели 310.1 экзамена LPI, в которой рассматриваются некоторые основные принципы SMB/CIFS (см. ссылку в разделе ).

Основные возможности SMB

SMB обладает несколькими уникальными возможностями с точки зрения работы в сети, включая собственную систему именования компьютеров (Network Basic Input/Output System, NetBIOS), рабочие группы и протоколы аутентификации. Для того чтобы понять, как SMB и CIFS работают с Linux-клиентами общих файловых ресурсов, нужно рассказать о наиболее важной функции этих протоколов, а именно, о наборе предоставляемых ими метаданных.

Метаданные – это данные, связанные с файлом, но не являющиеся его частью. Примером метаданных являются метка времени, владелец, права доступа и даже имя файла. Несомненно, вы знаете о некоторых способах использования метаданных на компьютерах Linux и, возможно, об их некоторых отличиях в Linux и других операционных системах, например, Windows. Поскольку протокол SMB был разработан для DOS, Windows и IBM Operating System/2® (OS/2), то он содержит много метаданных, специфичных для этих операционных систем. Однако более важно то, что SMB не поддерживает такие метаданные UNIX® и Linux, как владельцы, группы и большинство прав доступа. Кроме того, SMB не поддерживает символические и жесткие ссылки, а также другие специальные типы файлов, такие как файлы устройств. SMB содержит несколько типов метаданных, не распознаваемых Linux в обычном режиме, например, биты hidden (скрытый) , archive (архивный) и system (системный). Бит Read-only (только чтение) можно сопоставить биту разрешений Write (запись) в Linux.

Создайте ваш собственный канал

Вы можете создать ваш собственный RSS, Atom или HTML канал обновлений и получать уведомления о новых или обновленных статьях нашего сайта. Для этого перейдите на страницу , выберите зону Linux , установите флажок Статьи и введите в качестве ключевой фразы Linux Professional Institute , после чего выберите требуемый тип канала.

Другим ограничением SMB является максимальный размер файла, равный двум гигабайтам. Это ограничение является очевидной проблемой в сегодняшнем мире многогигабайтовых архивов, мультимедиа-файлов и т. д.

Для того чтобы клиенты Linux могли работать с SMB с учетом вышеперечисленных особенностей, они должны либо игнорировать их, либо иметь возможность использовать "поддельные" данные. Эти возможности похожи на те, что используются при монтировании в Linux файловых систем NTFS или FAT. К счастью, протокол CIFS предоставляет более широкий набор инструментов, позволяющих обходить некоторые из этих ограничений.

Необходимо также знать и о сетевых портах, используемых протоколом SMB. Это UDP-порты (User Datagram Protocol) 137 и 138, а также TCP-порт 139 (службы сеансов – другими словами, передача файлов). Эта информация потребуется при отладке SMB с помощью низкоуровневых утилит диагностики сети.

Расширения CIFS для протокола SMB

В середине 1990-х годов компания Microsoft® изменила название протокола SMB на CIFS и одновременно добавила в него ряд новых возможностей, включая поддержку символических и жестких ссылок, а также файлов большого объема. Также CIFS поддерживает доступ к серверу по защищенному TCP-порту 445 в дополнение к стандартному порту 139.

Не менее важными, чем собственные расширения Microsoft для SMB, оказались и другие расширения CIFS. В частности, ряд функциональных возможностей, известный как UNIX extensions (расширения UNIX), обеспечивает поддержку владельцев и прав доступа к файлам наряду с другими типами метаданных UNIX. Если и клиенты, и сервер поддерживают эти расширения, то использование протокола CIFS вместо протокола SMB может обеспечить намного более эффективную работу клиентов под управлением Linux. Как и можно было ожидать, эти расширения не поддерживаются операционными системами семейства Windows Server®, поэтому полезны они только тогда, когда клиенты Linux подключаются к серверу Samba. Сервер должен быть настроен с помощью следующего глобального параметра:

unix extensions = Yes

По умолчанию этот параметр был установлен в No во всех версиях Samba, меньше 3.0, но в Samba 3.0 по умолчанию он установлен в Yes , что избавляет от необходимости настраивать его вручную.

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

Возможно, самый простой способ получить доступ к серверу SMB/CIFS с клиента Linux – это использовать утилиту командной строки smbclient . Эта утилита похожа на классическую команду ftp , поэтому если вы знакомы с ftp , то вы легко освоите и smbclient . Если вы не знакомы с ftp , то достаточно знать, что эта программа обеспечивает соединение с сервером без стандартного монтирования общих файловых ресурсов. Вместо этого для просмотра, удаления, загрузки или передачи файлов пользователь выполняет различные команды.

Для использования smbclient необходимо набрать в командной строке имя этой команды и имя службы в следующем формате: // СЕРВЕР / СЛУЖБА . Например, если необходимо получить доступ к общему ресурсу GORDON на сервере TANGO, то следует указать имя //TANGO/GORDON . В зависимости от конфигурации сервера может потребоваться ввести пароль. Если введен правильный пароль, то можно вводить различные команды для доступа к файлам, хранящимся на сервере. В таблице 1 перечислены некоторые наиболее важные команды smbclient ; для получения информации о других более экзотических командах обратитесь к man-странице этой утилиты.

Таблица 1. Наиболее важные команды smbclient
Команда Действие
? или help Выводит список всех команд
cd Изменяет рабочую директорию на удаленном сервере
del Удаляет файл
dir или ls Выводит список файлов в текущей (или указанной) директории
exit или quit Завершает сеанс работы
get Передает файл с сервера клиенту
lcd Изменяет рабочую директорию на локальном компьютере
md или mkdir Создает директорию на удаленном сервере
mget Передает несколько файлов с сервера клиенту
more Выводит список удаленных файлов с помощью локальной команды постраничного вывода
mput Передает несколько файлов с клиента на удаленный сервер
put Передает файл с клиента на удаленный сервер
rd или rmdir Удаляет директорию
rename Переименовывает файл на удаленном сервере
rm Удаляет один или несколько файлов на удаленном сервере

По умолчанию для подключения к серверу smbclient использует текущее имя пользователя, однако можно указать имя явно с помощью опции -U . На самом деле, можно использовать несколько опций командной строки, включая опции, позволяющие передавать файлы без входа в интерактивный режим smbclient . Таким образом, smbclient можно использовать в сценариях для выполнения автоматической передачи файлов. За дополнительной информацией обратитесь к man-странице этой утилиты.

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

Листинг 1. Пример сеанса работы с smbclient
$ smbclient //TANGO/GORDON/ Enter gordon"s password: Domain= OS= Server= smb: \> cd mystuff smb: \mystuff\> ls . D 0 Mon May 16 19:20:08 2011 .. D 0 Mon May 16 19:18:12 2011 xv-3.10a-1228.1.src.rpm 3441259 Tue May 18 19:09:26 2010 License.txt 27898 Mon May 16 19:17:15 2011 xorg.conf 1210 Fri Jan 21 04:18:13 2011 51198 blocks of size 2097152. 2666 blocks available smb: \mystuff\> get xorg.conf getting file \mystuff\xorg.conf of size 1210 as xorg.conf (9.4 KiloBytes/sec) (average 9.4 KiloBytes/sec) smb: \mystuff\> exit

Совет. Утилита smbclient является превосходным инструментом отладки. Не смотря на свою простоту, она позволяет получить доступ к сетевому окружению без монтирования ресурсов, что может упрощает поиск и устранение проблем.

Монтирование файловых ресурсов SMB/CIFS

Не смотря на всю свою эффективность, smbclient не позволяет получить такой же прозрачный доступ к серверу, как при работе с Windows-клиентом. Если вам необходим именно такой доступ, то необходимо использовать другие средства, позволяющие монтировать общие ресурсы SMB/CIFS. Это можно сделать с помощью стандартной команды Linux mount или редактируя файл /etc/fstab для автоматического монтирования ресурсов SMB/CIFS при загрузке компьютера.

Временное монтирование общих ресурсов

Файловый ресурс SMB/CIFS можно смонтировать с помощью команды mount , которая также используется для монтирования локальных томов или совместно используемых ресурсов NFS. Можно указать тип файловой системы cifs или в большинстве случаев mount определит необходимость использования того или иного драйвера на основе синтаксиса команды. Кроме того, можно напрямую вызвать вспомогательную программу mount.cifs . По сути, монтирование локальной и удаленной файловой системы отличается лишь типом монтируемого устройства; таким образом, для монтирования ресурса GORDON, расположенного на сервере TANGO, достаточно выполнить от имени пользователя root следующую команду:

# mount //TANGO/GORDON /mnt

На практике такая команда может создать проблему: в качестве имени пользователя она передает на сервер имя root , и если этому пользователю не разрешено подключаться к серверу, то монтирование завершится с ошибкой. Эту проблему можно исправить, используя опцию -o user=имя для передачи имени пользователя на сервер.

# mount -o user=gordon //TANGO/GORDON /mnt Password:

Можно использовать несколько других опций монтирования, передаваемых команде mount с помощью опции -o . Наиболее полезные из них перечислены в таблице 2. За дополнительной информацией об остальных опциях обратитесь man-странице mount.cifs .

Таблица 2. Наиболее важные опции mount.cifs
Опция Действие
user=name or username=name Определяет имя пользователя, передаваемое на сервер.
password=pass Определяет пароль для передачи на сервер. Если пароль не указан, то mount.cifs использует значение переменной окружения PASSWD; если значение PASSWD не задано, то программа запрашивает пароль у пользователя.
credentials=filename Определяет файл, содержащий имя пользователя, пароль и необязательное имя рабочей группы. Каждое значение указывается в отдельной строке, начинающейся с username= , password= и workgroup= , соответственно.
uid=UID Определяет идентификатор (ID) пользователя, который будет являться владельцем файлов смонтированного ресурса.
gid=GID Аналогична опции uid= UID , но применяется к идентификаторам групп (GID), а не к идентификаторам пользователей (UID).
file_mode=mode Устанавливает режим файлов (разрешения) в числовой форме, который будет назначен файлам на сервере.
dir_mode=mode Аналогична опции file_mode=mode , но применяется не к файлам, а к директориям.
guest Предотвращает запросы на ввод пароля. Обычно эта опция работает только в том случае, если для ресурса поддерживается гостевой доступ.
hard Если сервер становится недоступен, то процессы, пытающиеся получить доступ к расположенным на нем файлам, остаются в зависшем состоянии до тех пор, пока доступ к серверу не будет возобновлен.
soft Если сервер становится недоступен, то процессы, пытающиеся получить доступ к расположенным на нем файлам, получают сообщения об ошибках. Это действие используется по умолчанию.

Параметры uid , gid , file_mode и dir_mode обычно не являются обязательными при подключении к серверу с поддержкой расширений UNIX, реализованных в CIFS. Тем не менее, эти параметры можно использовать для переопределения значений, установленных на сервере. Также отметим, что все эти параметры влияют на то, как файлы видны клиенту ; они не влияют на разрешения и права владения файлами на сервере.

После того, как общий ресурс SMB/CIFS смонтирован, можно получить к нему доступ точно так же, как и к локальному диску или тому NFS. Можно копировать и удалять файлы командами cp и rm , редактировать их в текстовых редакторах или других программах и т. д. Однако помните о том, что если сервер не поддерживает определенные возможности, то вы не сможете их использовать. Например, невозможно изменить режим файла с помощью chmod , если сервер не поддерживает расширения UNIX (частным исключением в случае с chmod является возможность изменения разрешений на запись – эти разрешения инверсно сопоставлены биту "только чтение" протокола SMB).

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

# umount /mnt
Монтирование файловых ресурсов с помощью SMB

Ядра Linux до версии 2.6.37 содержали отдельные драйверы SMB и CIFS и позволяли смонтировать общий ресурс с использованием оригинальных протоколов SMB; для этого нужно было либо указать в качестве типа файловой системы smbfs , либо использовать команду smbmount . При этом все работало почти так же, как и при использовании типа файловой системы cifs или команды mount.cifs , хотя имелись некоторые отличия в деталях. Использование протокола SMB делало невозможным использование функций, присущих только CIFS, например, расширений UNIX.

Раньше иногда имело смысл использовать SMB; например, можно было монтировать файловые ресурсы очень старых компьютеров под управлением Windows 9x/Me, используя драйвер Linux smbfs , но не используя cifs . Сегодня такие ситуации встречаются очень редко, поскольку в современной реализации cifs была устранена бо льшая часть его когда-то существовавших ограничений. Тем не менее, если вы столкнулись с подобной проблемой, то попробуйте инсталлировать ядро Linux с версией до 2.6.37 и проверить, поможет ли драйвер smbfs решить ее.

Постоянное монтирование общих ресурсов

Если необходимо смонтировать файловый ресурс SMB/CIFS на постоянной основе, то для этого нужно добавить запись в файл /etc/fstab. Эти изменения похожи на все другие изменения файла /etc/fstab, которые возникают в процессе работы команды mount . Однако в есть одна опция, которая заслуживает особого внимания в данной ситуации, а именно credentials . Поскольку большинство SMB/CIFS серверов используют для аутентификации пароли, то для монтирования файловых ресурсов с помощью /etc/fstab необходимо хранить постоянный пароль. Хотя пароль можно хранить непосредственно в файле /etc/fstab (используя опцию password), делать этого не рекомендуется – поскольку файл /etc/fstab должен быть доступен для чтения всем пользователям, то любой пользователь может также увидеть и пароль. Использование опции credentials позволяет хранить пароли в файле, доступном для чтения только пользователю root, что повышает их защищенность.

Рабочая запись в файле /etc/password для общего ресурса SMB/CIFS может выглядеть следующим образом:

//TANGO/BACKUPS /saveit cifs credentials=/etc/samba/creds.txt 0 0

Связанные с ней учетные данные могут выглядеть так:

username=buuser password=Iw2bUmS}