Узнать версию samba: Как посмотреть, какую версию Samba я использую для моего контроллера домена?
Igorka: Samba, Ubuntu и Windows-окружение
Я уже упоминал, что на моем рабочем компьютере установлена Ubuntu 9.10. На рабочих станциях пользователей Windows XP. Сервера есть как с Linux так и с Windows Server. Контроллером домена выступает Windows Server 2003. Необходимо организовать доступ с Windows-компьютеров в свою домашнюю папку на компьютере с Ubuntu. Доступ только для себя. Другим пользователям там делать нечего 🙂
Сначала устанавливаю пакет samba:
1 | sudo apt-get install samba |
Установленная версия samba — 3.4.0. Чтобы узнать версию пакета samba можно выполнить команду smbstatus:
1 | igor@adm-ubuntu:~$ sudo smbstatus [sudo] password for igor: Samba version 3.4.0 Service pid machine Connected at No locked files |
Затем вношу изменения в файл /etc/samba/smb.conf. Устанавливаю следующие значения:
где mydomain — имя домена.
Данная запись говорит о том, что пользователь должен иметь учетную запись на компьютере где установлена samba (то есть на моем компьютере с Ubuntu).
Далее внес изменения в разделе Share Definitions, чтобы получилось так как представлено ниже:
1 | #======================= Share Definitions ======================= # Un-comment the following (and tweak the other settings below to suit) # to enable the default home directory shares. This will share each # user’s home directory as \\server\username [homes] comment = Home Directories browseable = no # By default, the home directories are exported read-only. Change the |
Параметр read only устанавливаем в no только в том случае если необходима возможность записи в домашний каталог с Windows-компьютера через самбу.
После внесения и сохранения изменений перезапускаю демон samba:
1 | sudo /etc/init.d/samba restart |
Теперь устанавливаю для своей учетной записи в Ubuntu пароль для подключения к samba:
1 | igor@adm-ubuntu:~$ sudo smbpasswd -a igor |
Здесь есть маленький фокус. Если учетная запись в домене совпадает с учетной записью на компьютере с Ubuntu, а в моем случае так и есть, то если я установлю пароль на доступ к самбе такой же как и для учетной записи в домене — его не придется вводить на Windows-компьютере. То есть если я захожу на компьютер с Windows XP под учетной записью igor@mydomain, то набрав в проводнике адрес \\adm-ubuntu\igor\ я сразу попадаю в свой домашний каталог без ввода пароля. Я себе так и сделал.
Вроде ничего не забыл. Если, что забыл — поправляйте.
Как узнать версию samba
Доброго времени читатели и гости блога www.k-max.name. Сегодняшнюю статью хочу посвятить изучению пакета SAMBA и основ совместного использования разделяемых ресурсов в гетерогенных сетях Linux и Windows. Кроме сетевых протоколов Microsoft, используемых в samba, существуют так же протоколы NFS и NIS, разработанные Sun, которые так же поддерживаются продуктами Microsoft, но не получившие у последних большого распространения и удобны в использовании в сетях Linux и UNIX. Начнем с небольшой теории.
Основы взаимодействия Windows и Linux (протоколы и другие особенности)
В Linux для организации доступа к удаленной системе достаточно знать лишь IP адрес. Вместе с системой DNS, IP адресация представляет собой вполне законченный механизм взаимодействия между системами Linux. В Windows сложилась другая ситуация. Изначально, сети Windows находились в совершенно другом пространстве имен, это было следствием попытки организовать взаимодействие без участия протокола TCP/IP. Для чего был разработан родной для Windows протокол NetBEUI (Network Basic Extended Interface — основной расширенный сетевой пользовательский интерфейс). Не углубляясь в принципы сетевого взаимодействия можно сказать, что NetBEUI состоит из протокола SMB, транспортируемого по протоколу NetBIOS и обернутого в адресуемый протокол LLC, который является подуровнем канального уpовня. Из сказанной каши можно с трудом понять, что NetBEUI не принадлежит какому-либо из уровней модели OSI. В итоге, данный протокол получился не маршрутизируемым и малоэффективным.Через некоторое время, на основе NetBEUI был разработан протокол NetBIOS Frame (NBF) protocol (NetBIOS over IEEE 802.2 LLC). Следующим шагом была реализация NBT (NetBIOS over TCP/IP) .
Протокол NetBIOS (точнее SMB) обладает своим собственным пространством имен. Все имена могут иметь длину до 16 алфавитно-цифровых символов. При этом, использовать имена, начинающиеся с цифры не приемлемо для реализации протокола NetBIOS over TCP/IP, т.к. данное имя будет интерпретироваться как IP-адрес. В NetBIOS существует понятие Рабочая группа (в последствии замененное понятием домен). Компьютеры, имеющие одинаковое имя рабочей группы принадлежат одной группе.
NetBIOS over TCP/IP использует два основных протокола и два порта 139/tcp (порт службы сеанса NetBIOS) и 137/udp (порт сервера имен NetBIOS). Порт UDP используется для разрешения имен на основе широковещательных рассылок, что в большой сети порождает большой трафик. Чтобы уменьшить большой широковещательный трафик, необходимо использовать сервер имен NetBIOS (в Microsoft данный сервер получил название WINS — Windows Internet Naming Service). WINS для NetBIOS over TCP/IP это как DNS для TCP/IP.
С появлением Win2k и Active Directory, Microsoft полностью отказалась от NetBIOS. Вместо NetBIOS стал использоваться SMB через TCP/IP (без использования протокола NetBIOS, его же называют NetBIOS-less). Данный протокол позволял отказаться от WINS и резолвить имена с помощью DNS, используя связку системы безопасности Kerberos и службу каталогов Active Directory. Active Directory — это LDAP каталог (аналог OpenLDAP), которому я обязательно посвящу статью.
Чтобы SAMBA работала без поддкржки NetBIOS, необходимо, чтобы система была членом домена Active Directory. Если система НЕ член домена, то отключать поддержку NetBIOS не стоит!
Собственно, протокол SMB и дал начало названия проекта Samba. Через некоторое время SMB был переименован в CIFS (Common Internet File System). Samba версии 2 может использоваться только совместно с протоколом NetBT (NetBIOS over TCP/IP). Версия Samba 3 способна обеспечивать совместимость по протоколу SMB через TCP/IP (NetBIOS-less TCP/IP) и совместима с Active Directory. При использовании SMB через TCP/IP используется порт 445/tcp, а так же 135/tcp для обеспечения взаимодействия по протоколу DCE RPC (удаленные вызовы процедур).
При установке и настройке Samba (без членства в домене Active Directory) желательно использовать демон Samba как сервер WINS или как член сервера WINS для снижения нагрузки мультикаст трафика в сети.
Исходные данные (подготовка хостов для осуществления общего доступа)
Сначала я опишу возможность организации доступа к ресурсам на Windows (Сервер) со стороны Linux (Клиент). Для организации данного взаимодействия нам необходимо наличие соединения по протоколу TCP/IP между хостами (то есть присвоен корректный IP, заданы правильные маски, в каждой системе должен быть корректный файл hosts и правильно настроена служба ДНС, если таковая используется), а так же наличие расшаренного ресурса в системе Windows. В примере, машина Windows будет иметь IP 192.168.2.1 и имя host, Linux — 192.168.2.2 и имя samba. Рабочую группу будем использовать WORKGROUP. Ресурс в общем доступе будет называться share.
Пакет Samba для своей работы требует наличия модулей ядра и инструментов для доступа к удаленной системе. Прежде всего, должна быть поддержка файловых систем smbfs и cifs ядром Linux. Старые версии ядра — ниже 2.6.х может не поддерживать cifs в начальной комплектации компиляции. Хотя, по поводу поддержки smbfs в современных дистрибутивах можно поспорить, т.к. данный модуль устарел и не поддерживает символы кириллицы и . ну в общем я его рассматривать не буду ввиду устаревания. Для включения поддержки cifs в старые ядра 2.4 необходимо ознакомиться с документацией на сайте: http://linux-cifs.samba.org/. Новые версии ядра Linux 2.6 в большинстве дистрибутивов имеют встроенную поддержу cifs (если, конечно, ядро не самосборное). Убедиться в поддержке ядром — cifs можно, выполнив команду grep над файлом текущей конфигурации ядра:
Посмотрев на вышеприведенный код, хорошо видно, что текущее ядро не поддерживает SMB_FS (нам оно в принципе и не нужно), а вот cifs поддерживается в виде модуля (что, собственно, нас так же устраивает). Если в Вашем ядре нет поддержки CIFS, то необходимо будет его пересобрать с необходимым параметром. О том как это сделать, я описывал в статьях Ядро Linux (получение информации и управление) и Управление ядром Linux (сборка, компилирование, конфигурирование). Итак, мы убедились, что наше ядро поддерживает нужную файловую систему. Теперь нам необходимо установить саму SAMBA и кое-какие инструменты. Выбор того, каким способом устанавливать ПО в Linux оставляю Вам. Скажу лишь, что при установке из исходных текстов, получив их (исходники) с samba.org можно получить более новую версию, нежели при установке в бинарном виде из репозитория, в котором скорее всего будет более старая и проверенная версия. Я пошел по пути наименьшего сопротивления и установил SAMBA через пакетный менеджер (apt-get install samba). Так же, необходимо установить пакет smb-fs (без данного пакета я столкнулся с ошибкой CIFS VFS: cifs_mount failed w/return code = -22).
Мы начнем с самого простого примера и предположим, что DNS для разрешения имен не используется и машины имеют статичные IP-адреса. Поэтому нам необходимо в /etc/hosts добавить следующую строку:
Утилитой ping мы проверили возможность разрешения имени и связь с удаленным хостом Windows. И как можно понять — все работает.
Организация доступа к Windows с помощью клиента smbclient
В первую очередь, нам необходимо убедиться в том, может ли наш Linux взаимодействовать с Windows с помощью Samba. Самый простой способ, это воспользоваться FTP-подобным клиентом smbclient . C помощью которого, можно отправить запрос системе Windows и получить информацию о том, какие ресурсы Windows являются доступными.
Из листинга видно, как мы с помощью smbclient и параметра -L запросили список доступных ресурсов на машине host от имени анонимного пользователя (параметр -U%). В ответ Windows нам сказал, что Error returning browse list: NT_STATUS_ACCESS_DENIED, то есть анонимный доступ запрещен. Далее, мы попробовали подключиться к машине от имени пользователя Администратор с паролем 12345, который зарегистрирован в системе. Мы получили ответ со списком расшаренных ресурсов. Это не может не радовать. Давайте попробуем подключиться к шаре share:
Итак, в приведенном листинге нам удалось подключиться к шаре \hostshare от пользователя Администратор с паролем 12345. Мы получили содержимое каталога (причем русские символы прекрасно отображаются), перешли в подкаталог ime, получили его содержимое и получили на локальную машину файл SPTIP.dll, командой get (команда как и у FTP клиента). Вы, наверно, заметили, что в утилите smbclient путь к шаре указывается с прямым слешем, хотя в Windows принято задавать путь с обратным слешем. Утилита smbclient довольно гибка и используется как часть утилиты smbprint, для передачи потока данных, отправленных на принтер.
Организация доступа к Windows с помощью модулей ядра smbfs и cifsfs
Драйвер файловой системы smbfs по своему поведению напоминает утилиту smbclient. Он выполняет аутентификацию на основе предоставленного имени и пароля и устанавливает соединение с сервером SMB/CIFS, после этого подключает соединение с сервером SMB/CIFS к точке монтирования файловой системы. Права владения точкой монтирования устанавливаются в соответствии с пользователем и группой Linux, установившей соединение, а права доступа к файлам в точке монтирования устанавливаются на основании umask пользователя, установившего соединение.
Фактически, управление доступом ко всем файлам и каталогам переходит под управление Linux, а на сервере SMB/CIFS все обращения будут рассматриваться как операции, выполненные единственным пользователем. То есть все пользователи, работающие с файлами сервера в точке монтирования будут рассматриваться сервером SMB как единственный пользователь.
Драйвер SMBFS имеет существенное ограничение — не поддерживает Unicode, что может приводить к проблемам, если имена файлов или каталогов содержат символы НЕ английского алфавита. Данный драйвер стоит использовать только в крайних случаях, например когда не удалось завести cifs. Давайте проведем несколько практических действий с расшаренным каталогом:
Из примера можно увидеть, что мы зашли под пользователем mc-sim и посмотрели на его umask, который равен 0022, что соответствует правам доступа 755, то есть rwxr-xr-x, что мы далее и увидим. Далее, закрываем сессию пользователя и оказываемся в оболочке текущего пользователя и пытаемся подключить подмонтировать сетевой каталог от имени пользователя, umask которого узнали выше (т.е. — mc-sim). Думаю, что формат команды mount вам ясен из моей статьи о основных командах Linux, но все же опишу указанные параметры: -t smbfs указывает нам использовать тип файловой системы — SMBFS, далее указываем путь к шаре в виде: //хост/шара, далее точка монтирования в формате /точка/монтирования, далее параметры монтирования (после ключа -o) — имя пользователя и пароль на удаленной системе (username и password соответственно) с правами которого будет происходить обращение к удаленным каталогам, далее UID и GID локальных пользователей, права которых будут учитываться при чтении/записи в примонтированный каталог. После монтирования удаленного каталога, мы можем спокойно обращаться к файлам на удаленном хосте, как к локальным и производить все доступные операции с файлами, как с локальной файловой системой. В том числе, копирование/удаление/перемещение, естественно, учитывая права локального и удаленного пользователей.
Хочется так же отметить, что запуская mount -t smbfs, фактически мы запускаем команду /usr/bin/smbmount, которая является символьной ссылкой на /sbin/mount.smbfs. smbmount считывает параметры из конфигурационного файла smb.conf (обычно находится или в /etc/smb.conf или /etc/samba/smb.conf). Формат выполнения команды smbmount совпадает с mount -t smbfs. Для корректной работы SAMBA в виде подключающегося клиента, минимально достаточно файла со следующим содержимым:
Давайте рассмотрим более сложный пример монтирования расшаренного каталога:
В данном примере команда очень похожа на приведенную чуть выше, за исключением, нескольких дополнительных передаваемых параметров. Первое — это credentials=/etc/samba/pw — позволяет указать файл с идентификационными данными для подключения к удаленному ресурсу. Содержимое данного файла так же указано в примере. Другие два новых параметра — это указание маски прав доступа для файлов и директорий, соответственно, которые складываются с системной umask и применяются к содержимому в директории.
Давайте теперь поговорим о cifs. Формат команды с применением модуля cifsfs точно такой же, как и smbfs, за исключением того, что параметр smbfs заменяется на cifs, а имя пользователя указывается не username, а просто user. Итого, команда выглядит как: mount -t cifs //host/share /mnt -o user=User,password=,uid=mc-sim,gid=mc-sim. Так же стоит обратить внимание, что fmask и dmask считается устаревшим параметром и заменен на file_mode и dir_mode соответственно. Ну и команда, при использовании модуля cifsfs запускается не /sbin/mount.smbfs, а /sbin/mount.cifs
Чтобы монтировать SMB/CIFS — ресурсы автоматически при загрузке, необходимо проверить работоспособность монтирования с помощью вышеуказанных команд с необходимыми параметрами. Если тесты прошли удачно, то необходимо добавить строку в файл /etc/fstab примерно следующего содержания:
, где //хост/расшаренный_ресурс — UNC-путь к расшаренному ресурсу, /каталог/монтирования — точка монтирования (естественно, она должна существовать), файловая_система — указание файловой системы (на текущий момент, считаю, что актуальна только cifs), опции_монтирования — строка опций, которая передавалась команде mount -t cifs, после ключа -o.
Резюме
На этом, на сегодня закончу. В следующей части повествования о SAMBA расскажу о взаимодействии Windows как клиента и Linux в виде файлового сервера SAMBA. Подведу маленький итог всему вышенаписанному. В сегодняшней статье я постарался рассказать об основах взаимодействия гетерогенных сетей Linux и Windows, немного рассказал об истории появления протоколов NetBIOS и взаимодействие хостов в сети TCP/IP по данному протоколу. Постарался изложить принципы взаимодействия между Linux и Windows и показал на практике, как взаимодействуют указанные системы. А так же описал, каким образом подключиться к расшаренным ресурсам Windows из Linux и заставить ОС Linux монтировать сетевые каталоги Windows при загрузке. Всем спасибо за внимание. Жду комментариев и дополнений!
Мои серверы — Ubuntu. Я хочу знать, установлена ли Samba случайно или нет. Правильна ли следующая команда?
Похоже, что Samba не установлена.
4 ответа
Похоже, что он не установлен. Попробуйте проверить с вашим менеджером пакетов, что установлено в качестве окончательной проверки. Но я бы сказал, что, похоже, он не установлен.
Вы также можете выполнить поиск исполняемого файла, используя
Мне кажется, что другие ответы, хотя они, несомненно, полезны, не отвечают точно на то, что вы просили . то есть, dpkg не скажет вам, установлена ли Samba; он скажет вам, был ли он установлен с помощью dpkg / apt или нет. Например, если вы устанавливаете Samba с нуля через tarball, вся система установки Ubuntu честно скажет вам, что она не знает о том, что Samba когда-либо была установлена . даже если Samba запущена и работает.
Чтобы убедиться, что samba установлена, вы действительно пытаетесь запустить его:
Если он установлен (даже если он не запущен), он сообщит свою версию.
Такую же проверку можно выполнить с частью client пакета Samba, которая не обязательно устанавливается вместе с сервером:
Для поддержки файловой системы на всякий случай вы делаете mount.cifs -V . Строго говоря, это поддержка CIFS, а не Samba.
Чтобы узнать, работает ли программа Samba , вы можете проверить запущенные процессы пакета Samba (smbd, nmbd, winbind):
Это ничего не даст, если программа не запущена, или список процессов, входящих в комплект Samba:
Или вы можете проверить, слушают ли они порты:
Это ничего не даст, если процессы не запущены, или сообщит, какие порты они слушают:
Выше, например, мой smbd прослушивает ВСЕ (0.0.0.0) удаленные адреса.
Другой способ — проверить , прослушивает ли что-нибудь вместо Samba на портах TCP 139 и 445:
Это ничего не даст (программа не запущена) или PID запущенного процесса:
Посмотреть и изменить версию SMB на QNAP Turbo NAS можно через командную строку SSH.
Это особенно актуально для моделей где данная функция отсутствует в веб-интерфейсе.
Посмотреть версию можно командой smb2status
Версию SMB 3.0 поддерживают только новые модели QNAP. Изменить версию на 3.0 проще через веб-конфигуратор. Однако, если нужно это сделать через SSH, нужно выполнить команду smb3enable
Версию SMB 2.1 поддерживают все NAS старше моделей х10 (включительно), плюс модели TS-509 Pro и TS-809 Pro.
Установить версию 2.1 можно командой smb21enable
Все версии SMB обладают обратной совместимостью, поэтому нельзя отключить младшие версии SMB, оставив только 3.0 (например).
Иногда появляется необходимость использовать только SMB 1.0. Логика работы NAS такова, что включенной всегда является старшая из доступных версий. Поэтому для переключения на SMB 1.0 нужно просто отключить SMB 2.1.
Сделать это можно командой smb2disable
Настройка Samba Ubuntu 12.04
Samba является стандартным пакетом программ для совместимости Linux, Unix и Windows которая позволяют напрямую обращаться к сетевым дискам и принтерам на абсолютно разных ОС по протоколу SMB/CIFS. В этой статье будет рассматриваться настройка Samba Ubuntu 12.04.
Samba нужна когда Вам необходимо иметь доступ с компьютера под управлением ОС Windows к файлам, которые расположены на сервере по управлением ОС Linux (Ubuntu, Debian) или Unix, а иначе вы не сможете работать.
Связанные статьи:
Настройка Samba Ubuntu 12.04
В рассмотренном примере настраивалась Samba в Ubuntu 12.04
Для того что бы установить анонимный Samba Server, необходимо ввести следующую команду в терминале(Ctrl+Alt+T), она установит все необходимые пакеты:
$ sudo apt-get install samba samba-common
Ubuntu 12.04 настройка Samba
Затем выполните:$ sudo apt-get autoremove
Она очистит ваши систему от более ей не нужных пакетов и зависимостей
Для того что бы узнать версию установленного программного обеспечения Samba, необходимо выполнить в терминале следующую команду:
$ smbd --version
Ubuntu настройка Samba
Ubuntu 13.04 настройка Samba
Также предлагается установить эти пакеты для Samba:
$ sudo apt-get install python-glade2 system-config-sambaНа Вашей машине Windows, используйте эту команду, чтобы узнать имя рабочей группы:
$ net config workstation
Она покажет вывод, похожий на этот:
Далее необходимо выполнить Резервное копирование файла smb.conf, затем удалить ее и создать новую:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak sudo rm /etc/samba/smb.conf sudo touch /etc/samba/smb.conf sudo nano /etc/samba/smb.conf
Добавьте этот код в файл smb.conf (или измените его в соответствии с вашими требованиями):
#======================= Global Settings ===================================== [global] workgroup = WORKGROUP server string = Samba Server %v netbios name = ubuntu security = user map to guest = bad user dns proxy = no #============================ Share Definitions ============================== [MyShare] path = /samba/share browsable =yes writable = yes guest ok = yes read only = noСохраните файл smb.conf и перезапустить службу:
$ sudo service smbd restartДоступ к ресурсу Samba из Windows (где Ubuntu это имя Вашего сервера Samba): Вау, мы можем получить доступ к общему ресурсу Samba, — это уже очень хорошая новость Давайте попробуем создать любой файл, внутри общей папки:
Ubuntu настройка Samba
Ошибка, Вы ничего не можете создавать внутри общей папки
Проверьте текущее разрешение на Samba:cd /samba/ ls -l
Измените его, таким образом, что бы каждый мог читать и писать (Проверьте, что это разрешено в вашей системе или нет):
$ sudo chmod -R 0777 share ls -lПопробуйте создать еще раз что нибудь, внутри общей папки: Ура, у Вас получилось Убедитесь, что вновь созданный файл появился на сервере Samba:
$ cd share/ ls -lЧасть 2: Добавление и управление пользователями и группами
Пользователи и Группы Samba
Добавить группу на сервер Ubuntu (в моем случае smbgrp):
$ sudo addgroup smbgrpСоздать новую share, установить разрешение на share, добавить пользователя в группу самбы и создать пароль самбы:
cd /samba/ sudo chown -R arbab:smbgrp secure/ ls -l sudo chmod -R 0770 secure/ ls -l sudo adduser arbab smbgrp sudo smbpasswd -a arbabДобавить новые созданные группы в Samba в smb.conf:
[secure] path = /samba/secure valid users = @smbgrp guest ok = no writable = yes browsable = yesПерезапустите службу самбы и проверить синтаксические ошибки с testparm :
sudo service smbd restart sudo testparmТестирование с машины Windows: Проверка с сервера Ubuntu:
cd /samba/secure/ ls -lНадеюсь, это поможет Вам!
Как проверить версию SMB в Windows 10/8/7
SMB или Протоколы блокировки сообщений сервера используются для подключения компьютера к внешнему серверу. Windows 10 поставляется с поддержкой этих протоколов, но они отключены в OOBE. В настоящее время Windows 10 также поддерживает SMBv1, SMBv2 и SMBv3. Разные серверы в зависимости от их конфигурации требуют разных версий SMB для подключения к компьютеру. Но в случае, если вы используете Windows 8.1 или Windows 7, вы можете проверить, включена ли она тоже. Это то, что мы собираемся сделать сегодня.
Как проверить версию SMB в Windows
Прежде всего, если у вас Windows 7 , вам не следует отключать SMB v2. Это связано со следующими причинами:
- Составление запроса — позволяет отправлять несколько запросов SMB 2 как один сетевой запрос
- Больше чтения и записи — лучшее использование более быстрых сетей
- Кэширование свойств папок и файлов — клиенты хранят локальные копии папок и файлов
- Долговечные ручки — позволяют подключению прозрачно переподключаться к серверу при временном отключении
- Улучшена подпись сообщений — HMAC SHA-256 заменяет MD5 в качестве алгоритма хеширования
- Улучшенная масштабируемость для обмена файлами — значительно увеличилось количество пользователей, общих ресурсов и открытых файлов на сервер
- Поддержка символических ссылок
- Модель аренды клиентских блокировок — ограничивает объем данных, передаваемых между клиентом и сервером, повышает производительность в сетях с высокой задержкой и повышает масштабируемость SMB-серверов.
- Поддержка большого MTU — для полноценного использования 10-гигабайтного (ГБ) Ethernet
- Повышенная энергоэффективность — клиенты, которые имеют открытые файлы на сервере, могут спать.
Даже если вы работаете в Windows 8.1 или Windows 10 , вам не следует отключать SMB v3 или SMB v2, поскольку, помимо указанных выше проблем, вы можете столкнуться со следующими проблемами тоже, которые идут с отключением SMB v3:
- Прозрачное аварийное переключение — клиенты повторно подключаются без перерыва к узлам кластера во время обслуживания или аварийного переключения
- Scale Out — одновременный доступ к общим данным на всех узлах файлового кластера
- Многоканальный — агрегирование пропускной способности сети и отказоустойчивости, если доступно несколько путей между клиентом и сервером.
- SMB Direct — добавляет поддержку сети RDMA для очень высокой производительности, с низкой задержкой и низкой загрузкой процессора
- Шифрование — обеспечивает сквозное шифрование и защищает от прослушивания в ненадежных сетях.
- Лизинг каталогов — улучшает время отклика приложений в филиалах за счет кэширования
- Оптимизация производительности — оптимизация для небольших случайных операций чтения/записи.
Способы проверки, какая версия SMB установлена на Сервере.
Мы будем использовать следующие методы, чтобы проверить, какая версия SMB установлена на вашем компьютере:
- Метод PowerShell.
- Метод редактора реестра.
1] Метод PowerShell
Если вы хотите проверить, какую версию SMB вы используете, вы можете просто ввести следующую команду в PowerShell:
SMB v1 Windows 10 и Windows 8.1
Get-WindowsOptionalFeature –Online –FeatureName SMB1Protocol
SMB v2 для Windows 10 и Windows 8.1
Get-SmbServerConfiguration | Выберите EnableSMB2Protocol
SMB v1 для Windows 7
Get-Item HKLM: \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters | ForEach-Object {Get-ItemProperty $ _. Pspath}
SMB v2 для Windows 7
Get-ItemProperty HKLM: \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters | ForEach-Object {Get-ItemProperty $ _. Pspath}
Если он возвращает значение как True , он включен, иначе отключен.
2] Метод редактора реестра
Введите regedit в поле Начать поиск и нажмите Enter. После открытия редактора реестра перейдите к следующему
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Параметры
Теперь, если у вас есть DWORD с именами SMB1 или SMB2 , проверьте их значения.
Если для него установлено значение 0, оно отключено.
И в любом другом случае он включен.
Способы проверить, какая версия SMB установлена на клиентах.
Мы будем использовать следующие методы, чтобы проверить, какая версия SMB установлена на вашем компьютере:
- Метод PowerShell.
- Метод редактора групповой политики.
1] Метод PowerShell
Итак, если вы хотите проверить, какая версия SMB вы используете, вы можете просто ввести следующее в командной строке с привилегиями уровня администратора,
SMB v1 Windows 10 и Windows 8.1
sc.exe qc lanmanworkstation
SMB v2 для Windows 10 и Windows 8.1
sc.exe qc lanmanworkstation
2] Метод редактора групповой политики
Стоит отметить, что этот метод не будет работать в Windows 10 Home или аналогичной редакции Windows 8 или Windows 7.
Откройте окно «Выполнить», введите gpedit.msc и нажмите Enter, чтобы открыть редактор локальной групповой политики. Перейдите по следующему пути:
Конфигурация компьютера> Настройки Windows
В разделе Реестр найдите элемент реестра со следующими свойствами:
Действие: обновление
Улей: HKEY_LOCAL_MACHINE
Путь к ключу: SYSTEM \ CurrentControl \ services \ mrxsmb10
Название значения. Начало
Тип значения: REG_DWORD
Данные о стоимости. 4
Если значение данных установлено в 4, SMB отключен.
Для детального чтения посетите microsoft.com.
Связанное чтение . Почему и как отключить SMB1 в Windows 10/8/7.
Глава 2. Установка Samba на Unix-систему [Справочная система PuppyRus Linux]
Теперь, когда вы знаете, что Samba может сделать для вас и ваших пользователей, пришло время создавать вашу собственную сеть. Начнем с установки Samba. Когда учишься танцевать самба, начинаешь с небольших шагов. Так же просто при установке Самбы, мы должны изучить его, шаг за шагом. Эта глава поможет вам начать с правой ноги.
В качестве примера, мы будем устанавливать 2.2.6 версию Samba-сервера на Linux систему работающую на версии ядра 2,4. Тем не менее, шаги установки в основном одинаковы для всех платформ, которые Samba поддерживает.
Bundled Versions Сгруппированные версии
Самба так популярна в использовании, что во многих дистрибутивах Unix она уже предустановлена. If you choose to use a bundled version of Samba, you can breeze through most of this chapter, but you’ll be stuck with the Samba version and compile-time options your vendor selected for you.Если вы решите использовать пакетную версию Samba, вы можете пропустить большую часть этой главы, *но вы будете оставаться с Samba версии и во время компиляции вариантов ваших поставщиков, выбранных для вас.* Эта версия Samba не может быть как-либо новее, чем Ваша операционная система, поэтому, вероятно, будет довольно далека от последних событий. С другой стороны, вы можете быть достаточно уверены в том, что версия пакета была установлена правильно, и, возможно, достаточно лишь несколько простых изменений в вашем smb.conf
файле, чтобы она была выключена и работала. Самба является достаточно зрелой, так что вам, вероятно, не потребуется последний релиз для удовлетворения ваших насущных потребностей, так что можно быть абсолютно счастливым работая с данной версией.
Если вы выберете этот вариант, то знайте, что ваши файлы Samba, в том числе очень важный smb.conf
, могут быть в разных местах, чем это было бы, если бы вы устанавливали из бинарных или исходников . Например, в Red Hat, Debian и Mandrake Linux дистрибутивах, smb.conf
и некоторые другие Samba-файлы находятся в /etc/samba
каталоге.
Если Samba уже установлена в вашей системе, вы можете это проверить и узнать, какая версия у Вас, используя команду:
$ smbd -V Version 2.2.6
(Если это не сработает, это может быть вызвано тем, что для smbd не указан путь поиска. Если у Вас есть locate или whereis команды Unix в вашем варианте, вы можете использовать их для поиска пути исполнения smbd.)
*) В Puppy эти команды не работают. smbd находится в /opt/samba/sbin/ (прим. перев.)
*Возможно, Вы также можете использовать систему конкретным инструментом для запроса программное обеспечение-пакет обслуживания полезности.You might also be able to use a system-specific tool to query a software-package maintenance utility.* В Red Hat Linux, вы должны использовать команду rpm с запросом установить пакеты для Samba:
$ rpm -qa | grep samba samba-client-2.0.8-1.7.1 samba-2.0.8-1.7.1 samba-common-2.0.8-1.7.1
Это показывает нам Samba 2.0.8, разбитую на три Red Hat Package Manager (RPM) упаковки, вместе с Red Hat 7,1. Если ваша версия Samba устарела, вы сможете, по крайней мере, хотя бы узнать у вашего поставщика обновления.
В противном случае, если вы уверены, что собираетесь устанавливать двоичный дистрибутив из исходного кода, вы можете удалить RPM пакеты следующим образом:
# rpm -e samba # rpm -e samba-client # rpm -e samba-common
Если вы не используете Red Hat Linux, обратитесь к вашей системной документации, чтобы найти метод, работающий для Вас.
Бинарники или исходники?
Скомпилированные «бинарные» пакеты доступны для большого количества платформ Unix. Эти пакеты содержат двоичные исполняемые файлы Samba, а также стандартную Samba документацию. Заметим, что установка бинарного дистрибутива может спасти вас от потери большого количества времени и неприятностей, нужно взять пару вопросов во внимание при принятии решения об использовании бинарного пакета или компиляции исходников для себя:
Бинарные пакеты могут отставать от последней версии программного обеспечения на один или два (возможно, более) младших релиза, особенно после серии небольших изменений и для менее популярных платформ. Справтесь о выпуске исходников и бинарных пакетов, чтобы убедиться, что нет каких-либо новых возможностей, которые вам нужны от платформы
Если вы используете скомпилированные двоичные пакеты, которые динамически связаны друг с другом, вам нужно убедиться, что вы имеете необходимые библиотеки, нужные исполняемым файлам. Если ваша система не имеет необходимых версий библиотек, вам, возможно, придется установить новую версию. В
README
илиmakefile
, которые сопровождают бинарный дистрибутив, следует перечисление любых особых требований.Многие системы с общими библиотеками поставляются с nifty инструментом
ldd
. Этот инструмент расскажет Вам, какие библиотеки требуются конкретным бинарникам и которые библиотеки системы удовлетворяют этому требованию. Например, проверкаsmbd
программы на нашей тестовой машине, даёт нам:
*) В Puppy необходимо сначала # cd /opt/samba/sbin ( прим. перев. )
$ ldd smbd libdl.so.2 => /lib/libdl.so.2 (0x40026000) libnsl.so.1 => /lib/libnsl.so.1 (0x4002a000) libpam.so.0 => /lib/libpam.so.0 (0x40041000) libc.so.6 => /lib/libc.so.6 (0x40049000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Как установить и настроить сервер Samba на Ubuntu 16.04 для общего доступа к файлам
На этом уроке мы собираемся узнать, как установить и настроить сервер Samba на Ubuntu 16.04. Samba является свободным и с открытым исходным кодом реализацией протокола SMB/CIFS для Unix и Linux, что позволяет взаимодействовать между файлами и принтерами в Unix/Linux и Windows, на машинах в локальной сети.
Samba представляет собой пакет программ, наиболее важными из которых два являются:
- smbd : обеспечивает SMB / CIFS обслуживание ( общий доступ к файлам и печати), а также может выступать в качестве контроллера домена Windows.
- nmbd : обеспечивает сервис имен NetBIOS
Как установить Samba-сервер на Ubuntu 16.04
Samba входит в состав большинства дистрибутивов Linux. Чтобы установить Samba на Ubuntu, просто запустите:
sudo apt install samba
Последняя стабильная версия доступна 4.5.3, выпущена 19 декабря 2016 г. Чтобы проверить версию Samba, запустите
sudo smbstatus
или
sudo smbd --version
Пример вывода:
Samba version 4.3.11-Ubuntu
Для того, чтобы проверить, запущена ли служба Samba, выполните следующие команды.
systemctl status smbd systemctl status nmbd
Для запуска этих двух служб, выполните следующие команды:
sudo systemctl start smbd sudo systemctl start nmbd
После запуска, smbd
будет слушать на порту 139 и 445.
Редактирование файла конфигурации
Там только один конфигурационный файл , который необходимо отредактировать: /etc/samba/smb.conf
.
sudo nano /etc/samba/smb.conf
В разделе [global]
, убедитесь, что значение workgroup
относиться к рабочей группе компьютеров Windows.
workgroup = WORKGROUP
Прокрутите вниз к нижней части файла. (В текстовом редакторе nano, нажмите CTRL+W
а затем CTRL+V
.) Включите новый раздел, как показано ниже. Замените username
на необходимое имя пользователя.
[Home Share ] comment = Home Public Folder path = /home/username/ writable = yes valid users = username
Home Share
это имя папки , которое будет отображаться в сети Windows. Комментарием является описание общей папки. Следующие 3 строки указывают, что только указанный пользователь valid users
имеет право доступа к каталогу /home/username/
, который также доступен для записи. Вышеуказанная конфигурация отключит анонимный доступ.
Сохраните и закройте файл, а затем выполните следующую команду, чтобы проверить, если есть синтаксические ошибки.
testparm
Создание пользователя
Samba содержит по умолчанию user
в качестве режима защиты, означает, что клиенты должны ввести имя пользователя и пароль для доступа к общей папке. Чтобы добавить пользователя в Ubuntu, выполните следующую команду:
sudo adduser username
Вам будет предложено установить пароль Unix. Кроме того, необходимо установить отдельный Samba пароль для пользователя с помощью следующей команды:
sudo smbpasswd -a username
Теперь все, что осталось сделать, это перезапустить демон smbd.
sudo systemctl restart smbd
Доступ Samba к общей папки из Windows
На компьютере Windows, который находится в той же сети, откройте проводник и нажмите Сеть на левой панели. Вы увидите сервер самбы. Дважды щелкните общую папку и введите имя пользователя и пароль.
Доступ Samba к ресурсу папке с компьютера Ubuntu
В диспетчере файлов, перейдите на вкладку Сеть на левой панели и выберите Сеть Windows.
Выберите рабочую группу, сервер Samba и общую папку, а затем введите имя пользователя и пароль Samba.
Добавление нескольких пользователей или групп
Если нескольким учетным записям необходимо получение доступа к общей папке, то необходимо изменить правомерных пользователей, как показано ниже в файле /etc/samba/smb.conf
.
valid users = user1, user2, user3
Также используйте smbpasswd для установки пароля Samba для каждого из этих пользователей.
sudo smbpasswd -a user1 sudo smbpasswd -a user2 sudo smbpasswd -a user3
Для того, чтобы разрешить группе пользователей получить доступ к общей папке, используйте следующую конфигурацию /etc/samba/smb.conf
.
valid users = @sambashare
Создайте группу.
sudo groupadd sambashare
Затем добавьте в эту группу пользователей
sudo gpasswd -a user1 sambashare sudo gpasswd -a user2 sambashare sudo gpasswd -a user3 sambashare
Группа должна иметь разрешение на запись в общую папку, которая может быть достигнута при следующих двух команд.
Набор sambashare как владельца группы общей папки:
sudo chgrp sambashare /path/to/shared/folder -R
Предоставить право на запись в группе.
sudo chmod g+w /path/to/shared/folder/ -R
Все!
Я надеюсь , что эта статья помогла вам настроить сервер Samba на Ubuntu 16.04. Как всегда, если вы нашли этот пост полезным, то отпишитесь в комментариях.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Настройка samba клиента (или как работает SAMBA)
Доброго времени читатели и гости блога www.k-max.name. Сегодняшнюю статью хочу посвятить изучению пакета SAMBA и основ совместного использования разделяемых ресурсов в гетерогенных сетях Linux и Windows. Кроме сетевых протоколов Microsoft, используемых в samba, существуют так же протоколы NFS и NIS, разработанные Sun, которые так же поддерживаются продуктами Microsoft, но не получившие у последних большого распространения и удобны в использовании в сетях Linux и UNIX. Начнем с небольшой теории.
Основы взаимодействия Windows и Linux (протоколы и другие особенности)
В Linux для организации доступа к удаленной системе достаточно знать лишь IP адрес. Вместе с системой DNS, IP адресация представляет собой вполне законченный механизм взаимодействия между системами Linux. В Windows сложилась другая ситуация. Изначально, сети Windows находились в совершенно другом пространстве имен, это было следствием попытки организовать взаимодействие без участия протокола TCP/IP. Для чего был разработан родной для Windows протокол NetBEUI (Network Basic Extended Interface — основной расширенный сетевой пользовательский интерфейс). Не углубляясь в принципы сетевого взаимодействия можно сказать, что NetBEUI состоит из протокола SMB, транспортируемого по протоколу NetBIOS и обернутого в адресуемый протокол LLC, который является подуровнем канального уpовня. Из сказанной каши можно с трудом понять, что NetBEUI не принадлежит какому-либо из уровней модели OSI. В итоге, данный протокол получился не маршрутизируемым и малоэффективным.Через некоторое время, на основе NetBEUI был разработан протокол NetBIOS Frame (NBF) protocol (NetBIOS over IEEE 802.2 LLC). Следующим шагом была реализация NBT (NetBIOS over TCP/IP).
Протокол NetBIOS (точнее SMB) обладает своим собственным пространством имен. Все имена могут иметь длину до 16 алфавитно-цифровых символов. При этом, использовать имена, начинающиеся с цифры не приемлемо для реализации протокола NetBIOS over TCP/IP, т.к. данное имя будет интерпретироваться как IP-адрес. В NetBIOS существует понятие Рабочая группа (в последствии замененное понятием домен). Компьютеры, имеющие одинаковое имя рабочей группы принадлежат одной группе.
NetBIOS over TCP/IP использует два основных протокола и два порта 139/tcp (порт службы сеанса NetBIOS) и 137/udp (порт сервера имен NetBIOS). Порт UDP используется для разрешения имен на основе широковещательных рассылок, что в большой сети порождает большой трафик. Чтобы уменьшить большой широковещательный трафик, необходимо использовать сервер имен NetBIOS (в Microsoft данный сервер получил название WINS — Windows Internet Naming Service). WINS для NetBIOS over TCP/IP это как DNS для TCP/IP.
С появлением Win2k и Active Directory, Microsoft полностью отказалась от NetBIOS. Вместо NetBIOS стал использоваться SMB через TCP/IP (без использования протокола NetBIOS, его же называют NetBIOS-less). Данный протокол позволял отказаться от WINS и резолвить имена с помощью DNS, используя связку системы безопасности Kerberos и службу каталогов Active Directory. Active Directory — это LDAP каталог (аналог OpenLDAP), которому я обязательно посвящу статью.
Чтобы SAMBA работала без поддкржки NetBIOS, необходимо, чтобы система была членом домена Active Directory!!! Если система НЕ член домена, то отключать поддержку NetBIOS не стоит!
Собственно, протокол SMB и дал начало названия проекта Samba. Через некоторое время SMB был переименован в CIFS (Common Internet File System). Samba версии 2 может использоваться только совместно с протоколом NetBT (NetBIOS over TCP/IP). Версия Samba 3 способна обеспечивать совместимость по протоколу SMB через TCP/IP (NetBIOS-less TCP/IP) и совместима с Active Directory. При использовании SMB через TCP/IP используется порт 445/tcp, а так же 135/tcp для обеспечения взаимодействия по протоколу DCE RPC (удаленные вызовы процедур).
При установке и настройке Samba (без членства в домене Active Directory) желательно использовать демон Samba как сервер WINS или как член сервера WINS для снижения нагрузки мультикаст трафика в сети.
Исходные данные (подготовка хостов для осуществления общего доступа)
Сначала я опишу возможность организации доступа к ресурсам на Windows (Сервер) со стороны Linux (Клиент). Для организации данного взаимодействия нам необходимо наличие соединения по протоколу TCP/IP между хостами (то есть присвоен корректный IP, заданы правильные маски, в каждой системе должен быть корректный файл hosts и правильно настроена служба ДНС, если таковая используется), а так же наличие расшаренного ресурса в системе Windows. В примере, машина Windows будет иметь IP 192.168.2.1 и имя host, Linux — 192.168.2.2 и имя samba. Рабочую группу будем использовать WORKGROUP. Ресурс в общем доступе будет называться share.
Пакет Samba для своей работы требует наличия модулей ядра и инструментов для доступа к удаленной системе. Прежде всего, должна быть поддержка файловых систем smbfs и cifs ядром Linux. Старые версии ядра — ниже 2.6.х может не поддерживать cifs в начальной комплектации компиляции. Хотя, по поводу поддержки smbfs в современных дистрибутивах можно поспорить, т.к. данный модуль устарел и не поддерживает символы кириллицы и … ну в общем я его рассматривать не буду ввиду устаревания. Для включения поддержки cifs в старые ядра 2.4 необходимо ознакомиться с документацией на сайте: http://linux-cifs.samba.org/. Новые версии ядра Linux 2.6 в большинстве дистрибутивов имеют встроенную поддержу cifs (если, конечно, ядро не самосборное). Убедиться в поддержке ядром — cifs можно, выполнив команду grep над файлом текущей конфигурации ядра:
samba:~# grep CONFIG_SMB_FS /boot/config-2.6.32-5-686 # CONFIG_SMB_FS is not set samba:~# grep CONFIG_CIFS /boot/config-2.6.32-5-686 CONFIG_CIFS=m # CONFIG_CIFS_STATS is not set CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set CONFIG_CIFS_DFS_UPCALL=y CONFIG_CIFS_EXPERIMENTAL=y
Посмотрев на вышеприведенный код, хорошо видно, что текущее ядро не поддерживает SMB_FS (нам оно в принципе и не нужно), а вот cifs поддерживается в виде модуля (что, собственно, нас так же устраивает). Если в Вашем ядре нет поддержки CIFS, то необходимо будет его пересобрать с необходимым параметром. О том как это сделать, я описывал в статьях Ядро Linux (получение информации и управление) и Управление ядром Linux (сборка, компилирование, конфигурирование). Итак, мы убедились, что наше ядро поддерживает нужную файловую систему. Теперь нам необходимо установить саму SAMBA и кое-какие инструменты. Выбор того, каким способом устанавливать ПО в Linux оставляю Вам. Скажу лишь, что при установке из исходных текстов, получив их (исходники) с samba.org можно получить более новую версию, нежели при установке в бинарном виде из репозитория, в котором скорее всего будет более старая и проверенная версия. Я пошел по пути наименьшего сопротивления и установил SAMBA через пакетный менеджер (apt-get install samba). Так же, необходимо установить пакет smb-fs (без данного пакета я столкнулся с ошибкой CIFS VFS: cifs_mount failed w/return code = -22).
Мы начнем с самого простого примера и предположим, что DNS для разрешения имен не используется и машины имеют статичные IP-адреса. Поэтому нам необходимо в /etc/hosts добавить следующую строку:
samba:~# cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 samba 192.168.2.1 host samba:~# ping host PING host (192.168.2.1) 56(84) bytes of data. 64 bytes from host (192.168.2.1): icmp_req=1 ttl=128 time=2.46 ms 64 bytes from host (192.168.2.1): icmp_req=2 ttl=128 time=0.322 ms ^C --- host ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.322/1.394/2.467/1.073 ms
Утилитой ping мы проверили возможность разрешения имени и связь с удаленным хостом Windows. И как можно понять — все работает.
Организация доступа к Windows с помощью клиента smbclient
В первую очередь, нам необходимо убедиться в том, может ли наш Linux взаимодействовать с Windows с помощью Samba. Самый простой способ, это воспользоваться FTP-подобным клиентом smbclient. C помощью которого, можно отправить запрос системе Windows и получить информацию о том, какие ресурсы Windows являются доступными.
samba:~# smbclient -L host -U% Domain=[WORKGROUP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- ------- Error returning browse list: NT_STATUS_ACCESS_DENIED Domain=[WORKGROUP] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Server Comment --------- ------- HOST Workgroup Master --------- ------- WORKGROUP HOST samba:~# smbclient -L host -UАдминистратор%12345 Domain=[HOST] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Sharename Type Comment --------- ---- ------- IPC$ IPC Удаленный IPC print$ Disk Драйверы принтеров SharedDocs Disk PrinterHP3005 Printer HP3005 share Disk ADMIN$ Disk Удаленный Admin share_ware Disk C$ Disk Стандартный общий ресурс Domain=[HOST] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Server Comment --------- ------- Workgroup Master --------- -------
Из листинга видно, как мы с помощью smbclient и параметра -L запросили список доступных ресурсов на машине host от имени анонимного пользователя (параметр -U%). В ответ Windows нам сказал, что Error returning browse list: NT_STATUS_ACCESS_DENIED, то есть анонимный доступ запрещен. Далее, мы попробовали подключиться к машине от имени пользователя Администратор с паролем 12345, который зарегистрирован в системе. Мы получили ответ со списком расшаренных ресурсов. Это не может не радовать. Давайте попробуем подключиться к шаре share:
samba:~# cd smb/ samba:~/smb# smbclient //host/share -UАдминистратор%12345 Domain=[HOST] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] smb: \> dir . D 0 Fri Mar 18 17:36:56 2011 .. D 0 Fri Mar 18 17:36:56 2011 ime D 0 Fri Mar 18 17:36:43 2011 Мои рисунки DR 0 Fri Mar 18 17:36:56 2011 Моя музыка DR 0 Fri Mar 18 17:36:56 2011 40915 blocks of size 262144. 24388 blocks available smb: \> cd ime smb: \ime\> dir . D 0 Fri Mar 18 17:36:43 2011 .. D 0 Fri Mar 18 17:36:43 2011 chsime D 0 Fri Mar 18 17:36:43 2011 CHTIME D 0 Fri Mar 18 17:36:43 2011 imejp D 0 Fri Mar 18 17:36:43 2011 imejp98 D 0 Fri Mar 18 17:36:43 2011 imjp8_1 D 0 Fri Mar 18 17:36:43 2011 imkr6_1 D 0 Fri Mar 18 17:36:43 2011 mscandui.dll A 220160 Tue Apr 15 16:00:00 2008 shared D 0 Fri Mar 18 17:36:43 2011 SOFTKBD.DLL A 130048 Tue Apr 15 16:00:00 2008 SPGRMR.dll A 62976 Tue Apr 15 16:00:00 2008 SPTIP.dll A 272384 Tue Apr 15 16:00:00 2008 40915 blocks of size 262144. 24388 blocks available smb: \ime\> get SPTIP.dll getting file \ime\SPTIP.dll of size 272384 as SPTIP.dll (11565,2 KiloBytes/sec) (average 11565,2 KiloBytes/sec) smb: \ime\> quit samba:~/smb# ls -l итого 269 drwxr-xr-x 2 root root 1024 Мар 18 19:00 . drwxr-xr-x 13 root root 1024 Мар 18 18:50 .. -rw-r--r-- 1 root root 272384 Мар 18 19:00 SPTIP.dll
Итак, в приведенном листинге нам удалось подключиться к шаре \\host\share от пользователя Администратор с паролем 12345. Мы получили содержимое каталога (причем русские символы прекрасно отображаются), перешли в подкаталог ime, получили его содержимое и получили на локальную машину файл SPTIP.dll, командой get (команда как и у FTP клиента). Вы, наверно, заметили, что в утилите smbclient путь к шаре указывается с прямым слешем, хотя в Windows принято задавать путь с обратным слешем. Утилита smbclient довольно гибка и используется как часть утилиты smbprint, для передачи потока данных, отправленных на принтер.
Организация доступа к Windows с помощью модулей ядра smbfs и cifsfs
Драйвер файловой системы smbfs по своему поведению напоминает утилиту smbclient. Он выполняет аутентификацию на основе предоставленного имени и пароля и устанавливает соединение с сервером SMB/CIFS, после этого подключает соединение с сервером SMB/CIFS к точке монтирования файловой системы. Права владения точкой монтирования устанавливаются в соответствии с пользователем и группой Linux, установившей соединение, а права доступа к файлам в точке монтирования устанавливаются на основании umask пользователя, установившего соединение.
Фактически, управление доступом ко всем файлам и каталогам переходит под управление Linux, а на сервере SMB/CIFS все обращения будут рассматриваться как операции, выполненные единственным пользователем. То есть все пользователи, работающие с файлами сервера в точке монтирования будут рассматриваться сервером SMB как единственный пользователь.
Драйвер SMBFS имеет существенное ограничение — не поддерживает Unicode, что может приводить к проблемам, если имена файлов или каталогов содержат символы НЕ английского алфавита. Данный драйвер стоит использовать только в крайних случаях, например когда не удалось завести cifs. Давайте проведем несколько практических действий с расшаренным каталогом:
samba:~# su mc-sim mc-sim@samba:/root$ umask 0022 mc-sim@samba:/root$ exit exit samba:~/smb# mount -t smbfs //host/share /mnt -o username=Администратор,password=12345,uid=mc-sim,gid=mc-sim samba:~# df /mnt Файловая система 1K-блоков Исп Доступно Исп% смонтирована на //host/share/ 10474348 4434212 6040136 43% /mnt samba:~# ls -la /mnt/ итого 1 drwxr-xr-x 1 mc-sim mc-sim 0 Мар 22 19:46 . drwxr-xr-x 21 root root 1024 Фев 27 16:48 .. drwxr-xr-x 1 mc-sim mc-sim 0 Мар 18 17:36 ime drwxr-xr-x 1 mc-sim mc-sim 0 Мар 18 17:36 Мои рисунки drwxr-xr-x 1 mc-sim mc-sim 0 Мар 18 17:36 Моя музыка samba:/mnt# ls -la /mnt/ime/ итого 676 drwxr-xr-x 1 mc-sim mc-sim 0 Мар 18 17:36 . drwxr-xr-x 1 mc-sim mc-sim 0 Мар 22 19:43 .. drwxr-xr-x 0 mc-sim mc-sim 0 Мар 18 17:36 chsime drwxr-xr-x 0 mc-sim mc-sim 0 Мар 18 17:36 CHTIME drwxr-xr-x 0 mc-sim mc-sim 0 Мар 18 17:36 imejp -rwxr-xr-x 1 mc-sim mc-sim 220160 Апр 15 2008 mscandui.dll ...
Из примера можно увидеть, что мы зашли под пользователем mc-sim и посмотрели на его umask, который равен 0022, что соответствует правам доступа 755, то есть rwxr-xr-x, что мы далее и увидим. Далее, закрываем сессию пользователя и оказываемся в оболочке текущего пользователя и пытаемся подключить подмонтировать сетевой каталог от имени пользователя, umask которого узнали выше (т.е. — mc-sim). Думаю, что формат команды mount вам ясен из моей статьи о основных командах Linux, но все же опишу указанные параметры: -t smbfs указывает нам использовать тип файловой системы — SMBFS, далее указываем путь к шаре в виде: //хост/шара, далее точка монтирования в формате /точка/монтирования, далее параметры монтирования (после ключа -o) — имя пользователя и пароль на удаленной системе (username и password соответственно) с правами которого будет происходить обращение к удаленным каталогам, далее UID и GID локальных пользователей, права которых будут учитываться при чтении/записи в примонтированный каталог. После монтирования удаленного каталога, мы можем спокойно обращаться к файлам на удаленном хосте, как к локальным и производить все доступные операции с файлами, как с локальной файловой системой. В том числе, копирование/удаление/перемещение, естественно, учитывая права локального и удаленного пользователей.
Хочется так же отметить, что запуская mount -t smbfs, фактически мы запускаем команду /usr/bin/smbmount, которая является символьной ссылкой на /sbin/mount.smbfs. smbmount считывает параметры из конфигурационного файла smb.conf (обычно находится или в /etc/smb.conf или /etc/samba/smb.conf). Формат выполнения команды smbmount совпадает с mount -t smbfs. Для корректной работы SAMBA в виде подключающегося клиента, минимально достаточно файла со следующим содержимым:
samba:~# cat /etc/samba/smb.conf [global] workgroup = WORKGROUP
Давайте рассмотрим более сложный пример монтирования расшаренного каталога:
samba:~# cat /etc/samba/pw username=Администратор password=12345 samba:~/smb# mount -t smbfs //host/share /mnt -o credentials=/etc/samba/pw,uid=mc-sim,gid=mc-sim,fmask=600,dmask=700 samba:~# df /mnt Файловая система 1K-блоков Исп Доступно Исп% смонтирована на //host/share/ 10474348 4434212 6040136 43% /mnt
В данном примере команда очень похожа на приведенную чуть выше, за исключением, нескольких дополнительных передаваемых параметров. Первое — это credentials=/etc/samba/pw — позволяет указать файл с идентификационными данными для подключения к удаленному ресурсу. Содержимое данного файла так же указано в примере. Другие два новых параметра — это указание маски прав доступа для файлов и директорий, соответственно, которые складываются с системной umask и применяются к содержимому в директории.
Давайте теперь поговорим о cifs. Формат команды с применением модуля cifsfs точно такой же, как и smbfs, за исключением того, что параметр smbfs заменяется на cifs, а имя пользователя указывается не username, а просто user. Итого, команда выглядит как: mount -t cifs //host/share /mnt -o user=User,password=,uid=mc-sim,gid=mc-sim. Так же стоит обратить внимание, что fmask и dmask считается устаревшим параметром и заменен на file_mode и dir_mode соответственно. Ну и команда, при использовании модуля cifsfs запускается не /sbin/mount.smbfs, а /sbin/mount.cifs
Чтобы монтировать SMB/CIFS — ресурсы автоматически при загрузке, необходимо проверить работоспособность монтирования с помощью вышеуказанных команд с необходимыми параметрами. Если тесты прошли удачно, то необходимо добавить строку в файл /etc/fstab примерно следующего содержания:
//хост/расшаренный_ресурс /каталог/монтирования файловая_система опции_монтирования
, где //хост/расшаренный_ресурс — UNC-путь к расшаренному ресурсу, /каталог/монтирования — точка монтирования (естественно, она должна существовать), файловая_система — указание файловой системы (на текущий момент, считаю, что актуальна только cifs), опции_монтирования — строка опций, которая передавалась команде mount -t cifs, после ключа -o.
Резюме
На этом, на сегодня закончу. В следующей части повествования о SAMBA расскажу о взаимодействии Windows как клиента и Linux в виде файлового сервера SAMBA. Подведу маленький итог всему вышенаписанному. В сегодняшней статье я постарался рассказать об основах взаимодействия гетерогенных сетей Linux и Windows, немного рассказал об истории появления протоколов NetBIOS и взаимодействие хостов в сети TCP/IP по данному протоколу. Постарался изложить принципы взаимодействия между Linux и Windows и показал на практике, как взаимодействуют указанные системы. А так же описал, каким образом подключиться к расшаренным ресурсам Windows из Linux и заставить ОС Linux монтировать сетевые каталоги Windows при загрузке. Всем спасибо за внимание. Жду комментариев и дополнений!
С Уважением, Mc.Sim!
Другие материалы в категории Настройка сервера Linux
Теги: CIFS, Linux, Microsoft Windows, NetBEUI, SMB, WINS, команды, настройка, основы
Обзор общего ресурса Samba
SMB (также известного как общий доступ к файлам Windows).
Версии Samba
OpenWrt (2019-2) поддерживает две версии Samba. Samba3 и Samba4. Многие из существующих руководств основаны на Samba3…
см .: Альтернативное более новое руководство
Сервер Samba 3 — Перед запуском
Перед началом установки samba важно, чтобы вы рассортировали ваши диски.
Установка поддержки файловой системы, монтирование, базовые разрешения на уровне ОС — все это то, над чем работает Samba.
Начало установки сервера Samba перед установкой и проверка правильности установки рабочего диска в конечном итоге значительно усложнит задачу.
(: Добавьте ссылки на различные руководства по настройке USB / файловой системы)
см .: Советы NTFS
1. Монтажное хранилище
см .: Настройка устройств хранения
Когда закончите настройку точки монтирования, проверьте (e.г. с ls / mnt
в командной строке), что существует хотя бы одна точка монтирования, прежде чем продолжить.
2. Установка samba
Чтобы узнать, установлена ли уже на вашем устройстве samba, попробуйте запросить версию samba:
smbd -V
или запросите opkg:
список установленных opkg | grep samba
если это не удается, вам необходимо установить самбу. Для этого сначала определите версию samba, доступную для вашей установки:
обновление opkg список opkg | grep samba
В нашем примере доступная версия — «samba36»:
люси-приложение-самба - git-17.219.28675-9ee26ac-1 - Сетевые ресурсы - Модуль Samba SMB / CIFS ... samba36-client - 3.6.25-6 - Samba 3.6 SMB / CIFS клиент samba36-server - 3.6.25-6 - Программный пакет Samba представляет собой набор программ, реализующих протокол SMB для систем UNIX, что позволяет
Обязательно: Теперь установите пакет сервера samba:
opkg установить samba36-server
Необязательно: если вам нужен клиент samba из командной строки для отладки проблем, также установите:
opkg установить samba36-client
Необязательно: если вам нужна простая конфигурация LuCi GUI для samba, также установите:
opkg установить luci-app-samba
3.Настройка сервиса samba: раздел «config samba» в / etc / config / samba
Обычно вам не нужно менять настройки по умолчанию, указанные в этом разделе. В некоторых случаях вы можете захотеть изменить параметр «interface», если сервис samba должен прослушивать разные интерфейсы.
Этот раздел конфигурации определяет значения и параметры, относящиеся к общей работе samba. В следующей таблице перечислены все доступные параметры, их значения по умолчанию и, соответственно, краткая характеристика.См. Дополнительную информацию на странице руководства smb.conf.
Это настройки по умолчанию для общих опций:
конфиг 'samba' опция 'имя' 'lede' опция 'рабочая группа' lede ' option 'description' Samba on lede ' опция 'charset' UTF-8 ' вариант 'дома' 0 ' опция 'interface' loopback lan '
Имя | Тип | Обязательно | По умолчанию | Опция | Описание |
---|---|---|---|---|---|
имя | строка | нет | имя хоста или lede | Имя сервера | |
рабочая группа | строка | нет | имя хоста или lede | Имя рабочей группы | |
описание | строка | нет | Samba по имени хоста или lede | Описание сервера | |
кодировка | строка | нет | UTF-8 | Отображение кодировки и кодировки unix | |
дома | логический | нет | 0 | 0, 1 | Поделиться каталогом пользователей |
interface | string | no | loopback lan | Интерфейсы, которые должна прослушивать самба. |
По умолчанию SAMBA будет доступен через NetBIOS.
В этом разделе вам необходимо настроить папки на диске, которые вы собираетесь сделать доступными для пользователей в вашей LAN .
Убедитесь, что вы уже подключили жесткий диск USB к USB-порту и правильно смонтировал раздел. Вы можете предоставить общий доступ к разделу в целом или только к отдельным каталогам на нем.Для каждой записи нужно создать индивидуальный раздел config sambashare .
В следующем примере общее имя SMB Sharename сопоставлено с подключенным диском, который сопоставлен с / mnt / sda3 .
конфиг 'sambashare' option 'name' 'Sharename' вариант 'путь' / mnt / sda3 ' опция 'create_mask' 0700 ' опция 'dir_mask' 0700 ' option read_only 'нет' ...
Запустите
ls / mnt
в командной строке, если вам нужно отладить / определить доступные точки монтирования.вам может потребоваться адаптировать «маску создания» и «маску каталога» в случае использования vFAT / FAT32 или exFAT в качестве файловой системы на внешнем диске. В случае возникновения проблем рекомендуется сначала попробовать EXT4.
Установите read_only на yes, если вы хотите отключить доступ для записи
Имя | Тип | Обязательно | По умолчанию | Опция | Описание |
---|---|---|---|---|---|
имя | строка | да | (нет) | Имя общего файлового ресурса SMB.Будет отображаться в файловом браузере клиента. | |
путь | путь к файлу | да | (нет) | Полный путь к каталогу.путь | |
пользователи | строка | нет | гостевая учетная запись или из глобального шаблона | пользователи самбы разрешили доступ к этой записи; используйте smbpasswd для создания комбинации user-pwd! Можно указать несколько пользователей, разделенных запятой (например, параметр пользователи root, никто ).Переведено действующим пользователям | |
только чтение | строка | нет | да или из глобального шаблона | нет, да | нет разрешает чтение / запись, иначе предоставляется доступ только для чтения; (для rw также необходимо смонтировать fs rw!). только чтение |
guest_ok | строка | нет | нет или из глобального шаблона | нет, да | Указывает, нужно ли вам войти через samba-имя пользователя и пароль для доступа к этому общему ресурсу.гость ок. |
create_mask | integer | нет | 0744 или из глобального шаблона | chmod маска для созданных файлов (требуется доступ для записи). создать маску | |
dir_mask | integer | no | 0755 или из глобального шаблона | chmod маска для созданных каталогов (требуется доступ для записи).маска каталога. |
Каждый общий ресурс samba может быть настроен как на уровне общего доступа, так и на уровне пользователя.
На уровне общего доступа все пользователи сети могут получить доступ к общему ресурсу, и все файлы доступны всем пользователям.
На уровне пользователя для доступа к общему ресурсу необходимы имя пользователя и пароль.
По умолчанию Samba настроен для доступа на уровне пользователя (это также рекомендуемый способ).
Конфигурация общего ресурса Samba при использовании доступа «уровня общего доступа»
Чтобы установить доступ на уровне общего доступа
изменить security = user to security = share in /etc/samba/smb.conf.template
Решите для себя, хотите ли вы установить
option 'read_only' 'yes
‘ на'no
‘, чтобы разрешить неограниченный анонимный доступ, включая разрешение на запись.установить guest_ok на да на долю
конфиг 'sambashare' ... опция 'read_only' 'да' вариант 'guest_ok' 'да'
Конфигурация общего ресурса Samba при использовании доступа «на уровне пользователя»
Убедитесь, что для guest ok установлено значение no и разрешите вашему созданному пользователю доступ к общей папке с опцией пользователи , добавив имена пользователей.
Если вы хотите добавить более одного пользователя, используйте список, разделенный запятыми.
В следующем примере мы разрешим новому пользователю получить доступ к общему ресурсу.
конфиг 'sambashare' ... вариант guest_ok 'нет' опция пользователей 'newuser'
5. Добавление пользователя (ей) samba
Чтобы получить доступ к общему ресурсу samba с доступом на уровне пользователя, пользователи должны быть добавлены в систему путем редактирования / etc / passwd
.
Добавьте строку для каждого необходимого пользователя. Выберите уникальный идентификатор пользователя (первое число в строке) 1000 или выше, которого еще не существует.Установите идентификационный номер группы (второй номер) на «65534» (тот же номер, что и у пользователя nobody). Остальное скопируйте.
например для создания пользователя:
пользователь в этом примере будет называться «новый пользователь» (это имя для входа, которое необходимо ввести, когда Windows отобразит диалоговое окно аутентификации)
с уникальным системным идентификатором «1000»
с идентификатором группы 65534 (который является идентификатором группы для «никто» = нет специальной группы по умолчанию)
‘/ var’ просто означает, что пользователю не потребуется специальная домашняя папка в системе
‘/ bin / false’ означает, что у пользователя не будет ассоциированной программы оболочки по умолчанию
корень: 0: 0: корень: / корень: / bin / ash никто: *: 65534: 65534: никто: / var: / bin / false демон: *: 65534: 65534: демон: / var: / bin / false newuser: *: 1000: 65534: newuser: / var: / bin / false
имейте в виду, что пользователи и группы, используемые Samba, должны иметь соответствующие разрешения для своих общих ресурсов, т.е.е. им нужен доступ для записи, чтобы писать через кого-л.
Для беспрепятственного доступа из клиентов Windows используйте то же имя пользователя, что и для входа в систему на вашем клиенте. Если вы используете учетную запись Microsoft для входа, просто используйте случайное имя пользователя без @ в имени, «новый пользователь» будет работать!
, независимо от имени файла (которое таково по историческим причинам Linux), фактические пароли пользователей хранятся отдельно и будут добавлены на следующем шаге
Для беспрепятственного доступа при использовании учетных записей Microsoft Online в Windows 8/10 отредактируйте / etc / samba / smb.conf.template и добавьте username map = /etc/samba/username.map :
[весь мир] [...] имя пользователя map = /etc/samba/username.map
Затем создайте /etc/samba/username.map , который связывает имя пользователя Linux с именем входа в учетную запись Microsoft:
newuser = [email protected]
6. Добавление пароля для каждого пользователя samba
Самба не полагается на пароли, хранящиеся в / etc / shadows.
Добавив следующее, вы разрешите пользователям доступ к общей папке SMB.С этими паролями ваши пользователи не получат SSH или LuCi доступа к вашей системе LEDE (если вы не дадите им другой дополнительный пароль в файле / etc / shadows)
smbpasswd -a новый пользователь
Пароли хранятся в хешированной форме в файле: / etc / samba / smbpasswd .
Для беспрепятственного доступа из клиентов Windows предпочтительно использовать тот же пароль, что и для входа в систему на вашем клиенте. (Это также относится к учетным записям Microsoft Online)
7.Перезапуск самбы
Перезагрузите самбу, выполнив следующую команду
перезапуск службы самбы
Необязательная конфигурация: /etc/samba/smb.conf.template
Помимо файла UCI ( / etc / config / samba ), можно внести изменения в файл /etc/samba/smb.conf.template .
В обычном режиме работы по умолчанию эту конфигурацию можно оставить нетронутой.
например чтобы разрешить пользователям с нулевым паролем (могут проходить аутентификацию без ввода пароля), отредактируйте / etc / samba / smb.conf.template и добавьте нулевых паролей = да :
Поиск и устранение неисправностей
- Клиенты Windows: при использовании exFAT или vFAT (FAT32) в качестве файловой системы на стороне LEDE для самбы вы можете получить сообщение об ошибке Windows 0x8007003b на клиентах Windows> = Win8. Эта ошибка, по-видимому, особенно возникает при попытке скопировать большие файлы (> 3,5 ГБ ) в общий ресурс LEDE SMB, хотя, например, exFAT поддерживает файлы размером> 4 ГБ. После этого сервисы самбы на стороне LEDE могут дать сбой, что потребует перезагрузки устройства LEDE.Последний файл, скопированный до сбоя, обычно не копируется правильно. Надежный способ избежать этой ошибки — использовать EXT4 на внешнем диске, подключенном к устройству LEDE.
Если доступ для записи невозможен
проверьте, что для точки монтирования (например,
ls -l / mnt / sha3
установлены биты «rwx».chmod
можно использовать, чтобы изменить это, если есть сомнения.проверьте, что общий ресурс samba настроен с опцией read_only ‘no’
кажется, что если имя общего ресурса samba совпадает с именем точки монтирования, которая запускает режим только для чтения.Например. не называйте общий ресурс samba «sha3», если ваша точка монтирования называется «/ mnt / sha3»
Если в месте назначения недостаточно места.
- Поскольку корневая файловая система имеет ограниченное хранилище (скажем, 2 МБ), и вы монтируете хранилище в / mnt / sda1 (16 ГБ с 8 ГБ свободно), и вы указываете путь в разделе Общие каталоги сетевых ресурсов / Samba в Конфигурация SMB как / mnt, тогда у вас будет только 2 МБ пространства, но если вы используете / mnt / sda1, у вас (16 ГБ с 8 ГБ свободно) теперь достаточно места в месте назначения.
SMB 1.0 / CIFS Client должен быть включен…
Нажмите клавишу Windows + R
Тип: optionalfeatures.exe
Нажмите EnterПрокрутите вниз до SMB 1.0 / CIFS File Sharing Support.
Отметьте клиент SMB 1.0 / CIFS.
Снимите флажок SMB 1.0 / CIFS Автоматическое удаление и
Снять флажок SMB 1.0 / CIFS ServerНажмите ОК
Перезагрузите, если будет предложено.
Этот веб-сайт использует файлы cookie. Используя веб-сайт, вы соглашаетесь с хранением файлов cookie на вашем компьютере.Также вы подтверждаете, что прочитали и поняли нашу Политику конфиденциальности. Если вы не согласны, покиньте сайт.OKПодробнее о файлах cookie
docs / guide-user / services / nas / samba_configuration.txt · Последнее изменение: 13.10.2019 18:15 автор: udoline
.
Монтирование акций samba из клиента unix
Монтирование акций samba из клиента unix
Общее описание
Использование общего ресурса сервера Samba в файловой системе unix зависит от множества отдельных компонентов. Вам нужны как минимум smbfs (который больше не поддерживается) или современные модули ядра cifs. Хотя в более старой документации говорится об использовании smbfs, у нее есть много ограничений, и следует отдавать предпочтение cifs. Тем не менее, в этом документе я опишу только модуль cifs.
Поскольку файловая система cifs включена в стандартное ядро Linux, ее просто собрать либо как модуль, либо как встроенный. Если вы собираете модуль cifs (например, чтобы получить более новую версию с исправлениями) и не устанавливаете его в расположение по умолчанию, тогда вам может потребоваться загрузить его перед монтированием общего ресурса или позволить modprobe загрузить его через modprobe.conf, чтобы получить более новый модуль cifs, а не тот, который поставляется с вашим дистрибутивом.
Базовая команда монтирования — mount -t cifs //
Утилита mount вызывает помощник монтирования, обычно mount.cifs , который вызывает ядро.
Помощник монтирования mount.cifs является помощником в пространстве пользователя и необходим для синтаксического анализа имен tcp / ip и получения идентификатора пользователя и пароля, а также выполняет простое форматирование параметров монтирования.
Сервер прослушивает входящие клиентские соединения через TCP / IP и, таким образом, имеет IP-адреса и, как правило, имена хостов tcp, настроенные для них, но пользователи часто обращаются к серверу по его «имени netbios» (имя RFC1001).Для монтирования с использованием клиента cifs необходимо указать имя tcp (а не имя netbios) для сервера. Чтобы преобразовать
точка монтирования должна быть каталогом в другом месте файловой системы, которая должна существовать.
Общие параметры mount.cifs
Теперь объяснение опций mount -t cifs, описанных в man mount.cifs.
mount.cifs имеет множество опций, некоторые из них действительно сбивают с толку. Я постараюсь упомянуть здесь самое главное.
- user =
, который используется для аутентификации на сервере.Если это не указано, используется переменная среды USER. Этот параметр также может принимать форму «пароль пользователя%» или «рабочая группа / пользователь» или «пароль рабочей группы / пользователя%», чтобы можно было указать пароль и рабочую группу как часть имени пользователя. - pass =
- credentials =
имя пользователя = значение пароль = значение
- uid =
- gid =
- домен = <домен | рабочая группа> : устанавливает домен (рабочую группу) пользователя
- ip =
- гость : смонтируйте общий ресурс как гостевой и не запрашивайте пароль.
Есть и другие варианты, но они не так важны, чтобы быть полезными, кроме производительности и действительно конкретных вещей.
Разрешение имен NetBios с WINS
Всем сетевым программам в какой-то момент необходимо преобразовать имя хоста в IP-адрес. Обычно это делается с помощью вызова функции gethostbyname . Этот вызов является библиотечной функцией и, следовательно, обрабатывается в пользовательском пространстве.Системы Glibc, такие как Linux, имеют возможность использовать более одного метода поиска для выполнения такого запроса. Это известно как nsswitch (переключатель службы имен). Файл конфигурации обычно находится в /etc/nsswitch.conf.
Если программа хочет разрешить IP-адрес хоста с именем wiki, она просто вызывает функцию gethostbyname . Тогда за выполненный поиск отвечает нижележащий glibc. Glibc читает /etc/nsswitch.conf и загружает библиотеку, упомянутую в строке hosts .Это ключевой момент: если есть запись выигрывает , glibc загружает libnss_wins.so, который включает поиск имени NetBios. Вы получили это, вы можете разрешить имя Windows в IP-адрес.
Так что все просто: установите libnss_wins.so, добавьте в свой /etc/nsswitch.conf в строке hosts запись wins, и разрешение имен Windows работает. Ваша сетевая настройка должна подходить для этого, но это не вопрос самбы.
Пошаговый список для начала работы
Предположим, у вас есть один из тех ящиков NAS с питанием от ARM, таких как Buffalo et al., Которые делают под вашим телевизором, и вы хотите получить к нему доступ с настольного компьютера Linux где-нибудь в вашем доме.
Вам понадобится IP-адрес указанного ящика! Часто вы можете узнать это через веб-интерфейс вашего роутера.
Отредактируйте файл / etc / fstab с правами root с помощью вашего любимого редактора
, например. sudo gedit / etc / fstab
В конце файла добавьте строку, которая выглядит так: —
/// <общая папка> / <точка монтирования> cifs user = , pass = 0 0
Если вы никогда не настраивали пользователей на NAS, это будет выглядеть так
/// <общая папка> / <точка монтирования> cifs guest, _netdev, uid = <ваше имя пользователя в Linux> 0 0
Вот как выглядит одна из моих записей
//192.168.2.100/share / mnt / oneterra cifs guest, _netdev, uid = mike 0 0
Теперь, когда я просматриваю / mnt / oneterra, я вижу все свои файлы на моем NAS емкостью 1 ТБ! Если бы я пропустил uid = myloginname, у меня был бы доступ только для чтения, _netdev должен сообщить Linux, чтобы он дождался, пока сеть загрузится, прежде чем пытаться монтировать
Для получения дополнительной информации попробуйте эту ссылку [1]
TODO: составьте пошаговый список для решения большинства проблем
Вот дословные команды, которые я использовал (SuSE 10.0 на станцию Buffalo Link). Обратите внимание, я знал IP-адрес, в моем случае имя SMB не работало, и я не беспокоился о том, чтобы имя сети «Имя NetBios» работало, как было предложено выше.
su (убедитесь, что вы делаете это как root) mkdir / mnt / linky_share монтировать -t cifs -o пользователь = люк //192.168.1.104/share / mnt / linky_shareЗатем он запросит пароль для вашего общего доступа к файлам. вуаля! теперь вы можете рассматривать его как свою файловую систему.
#note Я думал, что "mount -t cifs -o guest" должен работать, но у меня возникла ошибка разрешения, хотя # У меня есть общие ресурсы, для которых нет ограничения доступа...
Подключение общих ресурсов при входе в систему
Если вы хотите автоматически монтировать общие ресурсы при входе пользователя в систему, я нашел единственный способ сделать это с помощью модуля pam_mount. Это единственный способ выполнить монтирование с аутентификацией, не требуя от пользователя сохранения пароля в файле или ввода его на терминале.
Для получения дополнительной информации
Руководство пользователя Linux CIFS client (http://linux-cifs.samba.org) можно найти по адресу:
http://pserver.samba.org/samba/ftp/cifs-cvs/linux-cifs-client-guide.pdf
или
http://pserver.samba.org/samba/ftp/cifs-cvs/linux-cifs-client-guide.odt
.
Это
В разделе рассматривается простое устранение неполадок всех служб имен
вы столкнетесь, но только для общих проблем
которые влияют на Samba.
Есть несколько хороших ссылок для устранения неполадок с конкретным именем
услуги: Пол Альбиц и Cricket Liu DNS и
Bind (O’Reilly) покрывает DNS, Хэл
Stern NFS и
шекелей (O’Reilly) покрывают шекели
(«Желтые страницы»), а Windows
Internet Name Service (WINS), хостов / LMHOSTS
файлы, а NIS + лучше всего покрываются соответствующими
руководства поставщиков.
Определение того, что используется
Сначала посмотрите,
сервер и клиент используют DNS, WINS, NIS или
содержит файлов для поиска IP-адресов, когда вы
дайте им имя. У каждого типа системы разные предпочтения:
Windows 95/98 / Me пробует WINS и файл LMHOSTS
сначала, потом трансляция, и наконец DNS и HOSTS
файлы.Windows NT / 2000 / XP пробует WINS, затем выполняет широковещательную передачу, затем
файл LMHOSTS и, наконец,
ХОСТЫ и DNS.Программы Windows, использующие стандарт WINSOCK, используют файл HOSTS, DNS,
WINS, а затем трансляция. Не думайте, что если
работает служба имен разных программ, SMB
клиентская программа имя сервиса будет!Демоны Samba используют lmhosts , WINS, Unix
разрешение имени системы, а затем транслировать.- Системы
Unix могут быть настроены для использования любой комбинации DNS,
HOSTS файлов, NIS или NIS +, и winbind в целом
в любом порядке.
Мы рекомендуем настроить клиентские системы для использования WINS и
DNS, демоны Samba для использования WINS и DNS и сервер Unix для
используйте DNS, размещает файлов и, возможно, NIS +.
Вам нужно будет просмотреть свои заметки и фактические
системы, чтобы увидеть, какие из них используются.
На клиентах все службы имен настроены в TCP / IP.
Панель свойств панели управления сетью, как описано в
Глава 3. Вам может потребоваться проверить там, чтобы увидеть
что вы на самом деле включили.На сервере см.
если существует файл /etc/resolv.conf . Если это так,
вы используете DNS. Вы можете использовать других как
ну хотя. Вам нужно будет проверить наличие шекелей и
комбинации услуг.
Проверьте наличие файла /etc/nsswitch.conf в Solaris
и другие операционные системы System V Unix. Если у вас есть, ищите
строка, которая начинается с host: за которой следует один или
больше файлов, привязка,
nis или nis +. Эти
назовите службы для использования, по порядку, с необязательным дополнительным материалом в
квадратные скобки.Ключевое слово files предназначено для
используя HOSTS файлов, при связывании
(Демон имен в Интернете Беркли) относится к использованию DNS.
Если клиент и сервер отличаются, первое, что нужно сделать, это получить их
синхронно. Клиенты могут использовать DNS, WINS, HOSTS и
LMHOSTS файлов, но не NIS или NIS +. Серверы могут
используйте HOSTS и LMHOSTS
файлы, DNS, NIS или NIS + и winbind, но не WINS, даже если ваш
Сервер Samba предоставляет услуги WINS. Если ты не можешь
заставить все системы использовать одни и те же услуги, вы
необходимо тщательно проверять сервер и клиент на наличие одинаковых данных.
Вы также можете использовать -R (порядок разрешения)
опция для smbclient . Если вы хотите
для устранения неполадок WINS, например, вы бы сказали:
$ smbclient -L сервер -R выигрывает
Возможные настройки: хосты (что означает
что бы ни использовала система Unix, а не только
/ etc / hosts файлов), lmhosts,
выигрывает, и bcast (трансляция).
В следующих разделах мы используем термин long
имя для полного доменного имени (FQDN), например
сервер.example.com, а термин короткий
имя для части хоста полного доменного имени, например
сервер.
.
smbclient
Если команда
задана, то? команда отобразит
краткое информативное сообщение об указанной команде. Если нет
указана команда, список доступных команд будет
отображаться.
Если указана команда оболочки
, команда!
команда выполнит оболочку локально и запустит указанную оболочку
команда. Если команда не указана, будет запущена локальная оболочка.
Клиент запросит возврат сервера
вся известная информация о файле или каталоге (включая потоки).
Клиент запросит возврат сервера
«альтернативное» имя (имя 8.3) для файла или каталога.
Устанавливает уровень архива при работе с файлами.
0 означает игнорировать бит архива, 1 означает работать только с файлами с этим установленным битом,
2 означает работать только с файлами с этим установленным битом и сбрасывать его после операции,
3 означает работу со всеми файлами и сброс после операции.По умолчанию — 0.
Переключить состояние флага «намерение резервного копирования»
отправляется на сервер в списках каталогов, и файл открывается. Если
установлен флаг «намерение резервного копирования», сервер попытается
обойти некоторые проверки файловой системы, если пользователю предоставлено
SE_BACKUP или SE_RESTORE привилегии. Это состояние полезно, когда
выполнение операции резервного копирования или восстановления.
Устанавливает параметр размера блока для операции tar.По умолчанию — 20.
Заставляет tar-файл записываться в блоках размером * TBLOCK (обычно 512 байт).
Клиент запросит у сервера отмену
задания печати, идентифицированные заданными числовыми идентификаторами заданий печати.
Переключает установку флага в SMB-пакетах, которые
указывает серверу рассматривать имена файлов с учетом регистра. Установите ВЫКЛ.
по умолчанию (указывает файловому серверу рассматривать имена файлов как нечувствительные к регистру).Только
в настоящее время влияет на файловые серверы Samba 3.0.5 и выше с учетом регистра
для параметра установлено значение auto в smb.conf.
Если указано «имя каталога», текущий
рабочий каталог на сервере будет изменен на каталог
указано. Эта операция завершится неудачно, если по какой-либо причине указанный
каталог недоступен.
Если имя каталога не указано, текущая рабочая
каталог на сервере будет сообщен.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает. Клиент запрашивает, чтобы сервер
изменить разрешения UNIX на данный восьмеричный режим в стандартном формате UNIX.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает. Клиент запрашивает, чтобы сервер
измените владельца UNIX и группу на указанные десятичные значения.Обратите внимание, что есть
в настоящее время нет возможности удаленно искать значения uid и gid UNIX для заданного имени.
Это может быть исправлено в будущих версиях расширений CIFS UNIX.
Закрывает файл, явно открытый командой open. Используется для
для внутреннего тестирования Samba.
Клиент запросит попытку сервера
удалить все файлы, соответствующие маске
из текущей рабочей
каталог на сервере.
Клиент запросит попытку сервера
удалить все файлы и каталоги, соответствующие маске
из текущей рабочей
каталог на сервере. Обратите внимание, что это рекурсивно удалит файлы и каталоги внутри
каталоги, выбранные даже без установки команды рекурсии. Если какой-либо из удаленных
запросы терпят неудачу, команда прекращает обработку в этот момент, оставляя файлы и каталоги
еще не обработан нетронутым.Это сделано намеренно.
Список файлов, соответствующих маске
в текущем
рабочий каталог на сервере будет получен с сервера
и отображается.
Создает список каталогов, а затем распечатывает текущее использование диска и свободное пространство на общем ресурсе.
Выполняет запрос SMBecho для проверки связи с сервером.Используется для внутреннего тестирования Samba.
Завершить соединение с сервером и выйти
из программы.
Скопируйте файл с именем имя удаленного файла
из
сервер к машине, на которой запущен клиент. Если указано, имя
локальная копия имя локального файла
. Обратите внимание, что все переводы в
smbclient
являются двоичными. См. Также
строчная команда.
Требуется, чтобы сервер поддерживал расширения UNIX. Запросы и распечатки
ACL POSIX для файла.
Создает жесткую ссылку на сервере с использованием семантики Windows CIFS.
Видеть? команда выше.
Отображает историю команд.
При отправке или получении файлов smbclient использует
размер внутреннего буфера зависит от максимального количества разрешенных запросов
к подключенному серверу.Эта команда позволяет установить этот размер на любой
диапазон между 0 (что означает использование размера, контролируемого сервером по умолчанию) байтов
и 16776960 (0xFFFF00) байт. Размер, контролируемый сервером, является
наиболее эффективен, поскольку smbclient будет конвейерно обрабатывать столько одновременных чтений или
записи, необходимые для максимальной занятости сервера. Установив это на
любой другой размер замедлит передачу.
Если указано имя каталога
, текущее
рабочий каталог на локальном компьютере будет изменен на
указанный каталог.Эта операция завершится неудачно, если
причина, по которой указанный каталог недоступен.
Если имя каталога не указано, имя
будет сообщен текущий рабочий каталог на локальном компьютере.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает. Клиент запрашивает, чтобы сервер
создать жесткую связь между именем ссылки и целевыми файлами. Файл с именем ссылки
не должно существовать.
Показать текущие соединения, удерживаемые для целей DFS.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает. Пытается установить POSIX
fcntl блокировка данного типа на заданном диапазоне. Используется для внутреннего тестирования Samba.
Устанавливает новый vuid для этого сеанса путем повторного входа в систему.Заменяет текущий vuid. Распечатывает новый vuid. Используется для внутреннего тестирования Samba.
Выключает пользователя с сервера, закрывая сеанс.
Используется для внутреннего тестирования Samba.
Переключить строчные буквы в именах файлов для получения и
Команды mget.
При включении нижнего регистра имена локальных файлов преобразуются
в нижний регистр при использовании команд get и mget. Это
часто бывает полезно при копировании (скажем) файлов MSDOS с сервера, потому что
Имена файлов в нижнем регистре являются нормой в системах UNIX.
См. Команду dir выше.
Эта команда позволяет пользователю установить маску
который будет использоваться во время рекурсивной работы mget и
команды mput.
Маски, указанные для команд mget и mput, действуют как
фильтрует каталоги, а не файлы, когда рекурсия
включен.
Необходима маска, указанная с помощью команды mask
для фильтрации файлов в этих каталогах.Например, если
маска, указанная в команде mget, — «source *», а маска
указан с помощью команды маски «* .c», а рекурсия
включен, команда mget получит все файлы, соответствующие
«* .c» во всех каталогах ниже, включая все каталоги
соответствие «источнику *» в текущем рабочем каталоге.
Обратите внимание, что значение маски по умолчанию пустое (эквивалент
на «*») и остается так до тех пор, пока не будет использована команда маски для его изменения.
Он сохраняет последнее указанное значение на неопределенный срок.Чтобы
чтобы избежать неожиданных результатов, было бы разумно изменить значение
маска возвращается к «*» после использования команд mget или mput.
См. Команду mkdir.
Скопируйте все файлы, соответствующие маске
с сервера на
машина, на которой запущен клиент.
Обратите внимание, что маска
интерпретируется по-разному во время рекурсивной
операция и нерекурсивная операция — обратитесь к рекурсивной и
команды маски для получения дополнительной информации.Обратите внимание, что все переводы в
smbclient
являются двоичными. См. Также команду в нижнем регистре.
Создать новый каталог на сервере (доступ пользователя
разрешающие привилегии) с указанным именем.
Извлечь удаленный файл и просмотреть его с содержимым
переменной среды PAGER.
Копировать все файлы, соответствующие маске
в текущей рабочей
каталог на локальном компьютере в текущий рабочий каталог на
сервер.
Обратите внимание, что маска
интерпретируется по-разному во время рекурсивной
операция и нерекурсивная операция — обратитесь к рекурсии и маске
команды для получения дополнительной информации. Обратите внимание, что все переводы в smbclient
бинарны.
Запросить каталог для изменения
уведомления. Эта команда выдает рекурсивный
filechangenotify вызывает все возможные изменения. Как
При появлении изменений печатается одна строка за каждое изменение.Видеть
https://msdn.microsoft.com/en-us/library/dn392331.aspx
для описания номеров действий, которые
печать команд.
Эта команда никогда не заканчивается, она ждет события
бесконечно.
Запросить удаленный сервер, чтобы узнать, поддерживает ли он CIFS UNIX
extension и распечатывает список поддерживаемых возможностей. Если да, поверните
при обработке имени POSIX и чтении / записи больших файлов (если доступно).
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает.Попытка договориться
Шифрование SMB для этого соединения. Если smbclient связан с kerberos
учетные данные (-k) аргументы этой команды игнорируются, а Kerberos
учетные данные используются вместо этого для согласования подписи и запечатывания GSSAPI. Видеть
также параметр -e для smbclient для принудительного шифрования при начальном соединении.
Эта команда появилась в Samba 3.2.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает.Открывает удаленный файл
с использованием расширений CIFS UNIX и печатает fileid. Используется для внутренней Samba
в целях тестирования.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает. Создает удаленный каталог
с использованием расширений CIFS UNIX в данном режиме.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает.Удаляет удаленный каталог
с использованием расширений CIFS UNIX.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает. Удаляет удаленный файл
с использованием расширений CIFS UNIX.
Запросить на удаленном сервере токен пользователя с помощью CIFS UNIX
добавочные номера WHOAMI называют. Распечатывает гостевой статус, пользователя, группу, список групп и
Список sid, который удаленный сервер использует от имени вошедшего в систему пользователя.
Распечатать указанный файл с локального компьютера
через службу печати на сервере.
Включить подсказку для имен файлов во время работы
команд mget и mput.
При включении пользователю будет предложено подтвердить
передача каждого файла во время этих команд. При переключении
ВЫКЛ, все указанные файлы будут переданы без запроса.
Скопируйте файл с именем имя локального файла
из
машина запускает клиента на сервер.Если указано,
имя удаленной копии имя удаленного файла
. Обратите внимание, что все переводы
в smbclient
являются двоичными. См. Также команду в нижнем регистре.
Отображает очередь печати, показывая идентификатор задания,
имя, размер и текущий статус.
См. Команду выхода.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает.Распечатать
значение символической ссылки «symlinkname».
См. Команду rmdir.
Переключить рекурсию каталогов для команд mget
и mput.
При включении эти команды обрабатывают все каталоги.
в исходном каталоге (то есть в каталоге, который они копируют
from) и будет рекурсивно переходить в любой, соответствующий указанной маске
к команде. Только файлы, соответствующие маске, указанной с помощью
команда маски будет получена.См. Также команду маски.
Когда рекурсия выключена, только файлы из текущего
рабочий каталог на исходном компьютере, соответствующий указанной маске
в команды mget или mput будут скопированы, и любая указанная маска
использование команды маски будет проигнорировано.
Переименовать файлы в текущем рабочем каталоге на
сервер от старое имя файла
до
новое имя файла
.Необязательный
-f переключатель позволяет заменить целевой файл,
если он существует. Это поддерживается диалектом протокола NT1.
и семейство протоколов SMB2.
Удалить все файлы, соответствующие маске
из текущей
рабочий каталог на сервере.
Удалить указанный каталог (доступ пользователя
разрешающие привилегии) с сервера.
Попытка скопировать файл на сервер с помощью
наиболее эффективные вызовы копирования на стороне сервера.Возвращается к использованию
читать, затем писать, если сервер не поддерживает копирование на стороне сервера.
Версия команды атрибута DOS для установки
права доступа к файлам. Например:
setmode myfile + r
сделает мой файл доступным только для чтения.
Показать текущее активное соединение, удерживаемое для целей DFS.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает.Клиент запрашивает
Базовый информационный уровень UNIX и выводит ту же информацию, что и команда Linux stat.
бы о файле. Это включает размер, блоки, используемые на диске, тип файла,
разрешения, номер inode, количество ссылок и, наконец, три отметки времени
(доступ, изменение и изменение). Если файл является специальным файлом (символическая ссылка, символ или
блочное устройство, фифо или сокет), тогда также может быть напечатана дополнительная информация.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает.Клиент запрашивает, чтобы сервер
создать символическую жесткую ссылку между целевым файлом и файлом с именем ссылки. Файл с именем ссылки
не должно существовать. Обратите внимание, что сервер не будет создавать ссылку на любой путь, который лежит
за пределами текущего подключенного общего ресурса. Это обеспечивается сервером Samba.
Выполняет операцию tar — см.
-T
параметр командной строки выше. Поведение
может быть затронута командой tarmode (см. ниже).Используя g
(инкрементный) и N (новее) повлияют на настройки режима полета. Запись
что использование опции «-» с tar x может не работать — используйте
вместо этого параметр командной строки.
Размер блока. Должен следовать действительный (больший
чем ноль) размер блока. Записывает tar-файл в
блоков
* TBLOCK (512 байт) блоков.
Изменяет поведение tar относительно DOS
атрибуты.Есть 4 режима, которые можно включить или
выкл.
Инкрементальный режим (по умолчанию выключен). Когда выключено (использование
полный
) tar сделает резервную копию всего
вне зависимости от архива бит
настройка. При включении (при использовании inc
) tar будет только
резервное копирование файлов с установленным битом архива.
Режим сброса (по умолчанию выключен). Когда включен (используя
reset
) tar удалит бит архива на
все файлы, которые он создает резервные копии (подразумевает общий доступ для чтения / записи). Использовать
noreset
для выключения.
Системный режим (по умолчанию включен). Когда выключено, tar не будет создавать резервные копии
системные файлы. Для выключения используйте nosystem
.
Скрытый режим (по умолчанию включен). Когда выключено, tar не будет создавать резервные копии
скрытые файлы. Для выключения используйте nohidden
.
Это позволяет пользователю настроить значение по умолчанию
таймаут, используемый для каждого запроса SMB. По умолчанию установлено
20 секунд. Увеличьте его, если иногда запросы к серверу
тайм-аут.Это может произойти, если выбрано шифрование SMB3.
и smbclient заваливает сервер запросами.
Эта команда зависит от сервера, поддерживающего CIFS
Расширения UNIX и не будут работать, если сервер не работает. Пытается разблокировать POSIX
fcntl блокирует данный диапазон. Используется для внутреннего тестирования Samba.
Печатает текущее имя тома общего ресурса.
Изменяет текущий используемый vuid в протоколе на
заданное произвольное число. Без аргумента распечатывает текущий
vuid используется. Используется для внутреннего тестирования Samba.
Устанавливает новое древовидное соединение (соединение с общим ресурсом).
Заменяет текущее дерево подключения. Печатает новый идентификатор (идентификатор дерева).
Используется для внутреннего тестирования Samba.
Закройте текущее подключение к общему ресурсу (отключение дерева).Используется для внутреннего тестирования Samba.
Изменяет текущий идентификатор дерева (tid) в
протокол на новый произвольный номер. Без аргументов это
распечатывает используемый в данный момент tid.
Используется для внутреннего тестирования Samba.
Изменяет временные метки в файле по имени.
Время следует указывать в формате ГГ: ММ: ДД-ЧЧ: ММ: СС или -1, чтобы не изменять.
.