Cifs amr протоколы для сети. Основные параметры, используемые в примере. Расширения CIFS для протокола SMB

В связи с недавной эпидемией шифровальщика WannaCry, эксплуатирующим уязвимость SMB v1, в сети снова появились советы по отключению этого протокола. Более того, Microsoft настоятельно рекомендовала отключить первую версию SMB еще в сентябре 2016 года. Но такое отключение может привести к неожиданным последствиям, вплоть до курьезов: лично сталкивался с компанией, где после борьбы с SMB перестали играть беспроводные колонки Sonos.


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


SMB (Server Message Block) – сетевой протокол для удаленного доступа к файлам и принтерам. Именно он используется при подключении ресурсов через \servername\sharename. Протокол изначально работал поверх NetBIOS, используя порты UDP 137, 138 и TCP 137, 139. С выходом Windows 2000 стал работать напрямую, используя порт TCP 445. SMB используется также для входа в домен Active Directory и работы в нем.


Помимо удаленного доступа к ресурсам протокол используется еще и для межпроцессорного взаимодействия через «именованные потоки» – named pipes . Обращение к процессу производится по пути \.\pipe\name.

Первая версия протокола, также известная как CIFS (Common Internet File System), была создана еще в 1980-х годах, а вот вторая версия появилась только с Windows Vista, в 2006. Третья версия протокола вышла с Windows 8. Параллельно с Microsoft протокол создавался и обновлялся в его открытой имплементации Samba .


В каждой новой версии протокола добавлялись разного рода улучшения, направленные на увеличение быстродействия, безопасности и поддержки новых функций. Но при этом оставалась поддержка старых протоколов для совместимости. Разумеется, в старых версиях было и есть достаточно уязвимостей, одной из которых и пользуется WannaCry .


Под спойлером вы найдете сводную таблицу изменений в версиях SMB.

Версия Операционная система Добавлено, по сравнению с предыдущей версией
SMB 2.0 Windows Vista/2008 Изменилось количество команд протокола со 100+ до 19
Возможность «конвейерной» работы – отправки дополнительных запросов до получения ответа на предыдущий
Поддержка символьных ссылок
Подпись сообщений HMAC SHA256 вместо MD5
Увеличение кэша и блоков записи\чтения
SMB 2.1 Windows 7/2008R2 Улучшение производительности
Поддержка большего значения MTU
Поддержка службы BranchCache – механизм, кэширующий запросы в глобальную сеть в локальной сети
SMB 3.0 Windows 8/2012 Возможность построения прозрачного отказоустойчивого кластера с распределением нагрузки
Поддержка прямого доступа к памяти (RDMA)
Управление посредством командлетов Powershell
Поддержка VSS
Подпись AES–CMAC
Шифрование AES–CCM
Возможность использовать сетевые папки для хранения виртуальных машин HyperV
Возможность использовать сетевые папки для хранения баз Microsoft SQL
SMB 3.02 Windows 8.1/2012R2 Улучшения безопасности и быстродействия
Автоматическая балансировка в кластере
SMB 3.1.1 Windows 10/2016 Поддержка шифрования AES–GCM
Проверка целостности до аутентификации с использованием хеша SHA512
Обязательные безопасные «переговоры» при работе с клиентами SMB 2.x и выше

Считаем условно пострадавших

Посмотреть используемую в текущий момент версию протокола довольно просто, используем для этого командлет Get–SmbConnection :



Вывод командлета при открытых сетевых ресурсах на серверах с разной версией Windows.


Из вывода видно, что клиент, поддерживающий все версии протокола, использует для подключения максимально возможную версию из поддерживаемых сервером. Разумеется, если клиент поддерживает только старую версию протокола, а на сервере она будет отключена – соединение установлено не будет. Включить или выключить поддержку старых версий в современных системах Windows можно при помощи командлета Set–SmbServerConfiguration , а посмотреть состояние так:


Get–SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol


Выключаем SMBv1 на сервере с Windows 2012 R2.



Результат при подключении с Windows 2003.


Таким образом, при отключении старого, уязвимого протокола можно лишиться работоспособности сети со старыми клиентами. При этом помимо Windows XP и 2003 SMB v1 используется и в ряде программных и аппаратных решений (например NAS на GNU\Linux, использующий старую версию samba).


Под спойлером приведу список производителей и продуктов, которые полностью или частично перестанут работать при отключении SMB v1.

Производитель Продукт Комментарий
Barracuda SSL VPN
Web Security Gateway backups
Canon Сканирование на сетевой ресурс
Cisco WSA/WSAv
WAAS Версии 5.0 и старше
F5 RDP client gateway
Microsoft Exchange Proxy
Forcepoint (Raytheon) «Некоторые продукты»
HPE ArcSight Legacy Unified Connector Старые версии
IBM NetServer Версия V7R2 и старше
QRadar Vulnerability Manager Версии 7.2.x и старше
Lexmark Прошивки Firmware eSF 2.x и eSF 3.x
Linux Kernel Клиент CIFS С 2.5.42 до 3.5.x
McAfee Web Gateway
Microsoft Windows XP/2003 и старше
MYOB Accountants
NetApp ONTAP Версии до 9.1
NetGear ReadyNAS
Oracle Solaris 11.3 и старше
Pulse Secure PCS 8.1R9/8.2R4 и старше
PPS 5.1R9/5.3R4 и старше
QNAP Все устройства хранения Прошивка старше 4.1
RedHat RHEL Версии до 7.2
Ricoh МФУ, сканирование на сетевой ресурс Кроме ряда моделей
RSA Authentication Manager Server
Samba Samba Старше 3.5
Sonos Беспроводные колонки
Sophos Sophos UTM
Sophos XG firewall
Sophos Web Appliance
SUSE SLES 11 и старше
Synology Diskstation Manager Только управление
Thomson Reuters CS Professional Suite
Tintri Tintri OS, Tintri Global Center
VMware Vcenter
ESXi Старше 6.0
Worldox GX3 DMS
Xerox МФУ, сканирование на сетевой ресурс Прошивки без ConnectKey Firmware

Список взят с сайта Microsoft , где он регулярно пополняется.


Перечень продуктов, использующих старую версию протокола, достаточно велик – перед отключением SMB v1 обязательно нужно подумать о последствиях.

Все-таки отключаем

Если программ и устройств, использующих SMB v1 в сети нет, то, конечно, старый протокол лучше отключить. При этом если выключение на SMB сервере Windows 8/2012 производится при помощи командлета Powershell, то для Windows 7/2008 понадобится правка реестра. Это можно сделать тоже при помощи Powershell:


Set–ItemProperty –Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 –Type DWORD –Value 0 –Force

Или любым другим удобным способом. При этом для применения изменений понадобится перезагрузка.


Для отключения поддержки SMB v1 на клиенте достаточно остановить отвечающую за его работу службу и поправить зависимости службы lanmanworkstation. Это можно сделать следующими командами:


sc.exe config lanmanworkstation depend=bowser/mrxsmb20/nsi sc.exe config mrxsmb10 start=disabled

Для удобства отключения протокола по всей сети удобно использовать групповые политики, в частности Group Policy Preferences. С помощью них можно удобно работать с реестром.



Создание элемента реестра через групповые политики.


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

    путь: HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters;

    новый параметр: REG_DWORD c именем SMB1;

  • значение: 0.


Создание параметра реестра для отключения SMB v1 на сервере через групповые политики.


Для отключения поддержки SMB v1 на клиентах понадобится изменить значение двух параметров.


Сначала отключим службу протокола SMB v1:

    путь: HKLM:\SYSTEM\CurrentControlSet\services\mrxsmb10;

    параметр: REG_DWORD c именем Start;

  • значение: 4.


Обновляем один из параметров.


Потом поправим зависимость службы LanmanWorkstation, чтоб она не зависела от SMB v1:

    путь: HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation;

    параметр: REG_MULTI_SZ с именем DependOnService;

  • значение: три строки – Bowser, MRxSmb20 и NSI.


И заменяем другой.


После применения групповой политики необходимо перезагрузить компьютеры организации. После перезагрузки SMB v1 перестанет использоваться.

Работает – не трогай

Как ни странно, эта старая заповедь не всегда полезна – в редко обновляемой инфраструктуре могут завестись и трояны. Тем не менее, неаккуратное отключение и обновление служб могут парализовать работу организации не хуже вирусов.


Расскажите, а вы уже отключили у себя SMB первой версии? Много было жертв?

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

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

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

  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}

Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: