Считывание samba что это
Настройка Samba
Что такое Samba?
Настройка общих папок
Linux
Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.
Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:
apt-get update && apt-get upgrade
Устанавливаем пакет Samba:
Создадим резервную копию файла конфигурации:
cp /etc/samba/smb.conf /etc/samba/smb.conf_sample
Создадим директории для файлов, например в каталоге /media:
Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.
Создаем каталог для всех пользователей:
Изменим права доступа к каталогу:
Также следует воспользоваться командой chown для смены владельца и/или группы.
Создаем директорию для ограниченного круга лиц:
С помощью системных инструментов создадим группу пользователей:
Добавляем пользователей Samba:
Созданных пользователей добавляем в группу:
Изменим группу, которой принадлежит приватная директория:
chgrp smbgrp /media/samba/private
С помощью инструментов Samba создадим пароль для добавленного пользователя:
С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:
Удаляем все строки из файла. Вставляем следующие:
[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]
path = /media/samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]
path = /media/samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes
Сохраняем используя сочетание Ctrl + X, затем нажимаем Y и Enter.
Объясним значения строк. конфигурационный файл состоит из трех секций:
В секции global присутствуют пять параметров:
Настройки директорий выполняются в соответствующих секциях:
Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.
Samba (Русский)
Перевод этой статьи или раздела не отражает оригинальное содержание.
Samba — это реализация сетевого протокола SMB. Она облегчает организацию общего доступа к файлам и принтерам между системами Linux и Windows и является альтернативой NFS (Русский).
Contents
Настройка сервера
Установка
В связи с тем, что пакет samba поставляется без данного файла, вам нужно создать его перед запуском smb.service.
Настройка межсетевого экрана
Если вы используете межсетевой экран, не забудьте открыть необходимые порты (как правило, 137-139 + 445). Для получения информации о полном списке портов, смотрите использование портов Samba.
Правило UFW
Так как профиль приложения UFW для Samba по умолчанию отсутствует, вы можете захотеть создать его.
Затем загрузите этот профиль в UFW, запустив команду ufw app update Samba как root/sudo.
После этого можно разрешить доступ к Samba командой ufw allow Samba
Использование
Управление пользователями
Добавление пользователя
Для работы Samba требуется какой-нибудь Linux-пользователь — вы можете использовать существующего пользователя или создать нового.
Хотя имена пользователей Samba общие с системными пользователями, Samba использует для них отдельные пароли. Чтобы добавить нового пользователя Samba, воспользуйтесь следующей, заменив пользователь_samba на имя нужного пользователя:
Будет предложено задать пароль для этого пользователя.
Depending on the server role, existing File permissions and attributes may need to be altered for the Samba user account.
Если вы хотите разрешить новому пользователю только доступ к Samba-ресурсам и запретить полноценный вход в систему, можно ограничить возможности входа:
Просмотр списка пользователей
Список добавленных в Samba пользователей можно посмотреть с помощью команды pdbedit(8) :
Смена пароля Samba-пользователя
Чтобы сменить пароль пользователя, используйте smbpasswd :
Создание ресурсов для общего доступа
Со стороны Windows не забудьте изменить файл smb.conf для Windows Workgroup (в Windows по умолчанию: WORKGROUP).
Запуск служб
Расширенная конфигурация
Создание ресурсов общего доступа от имени обычного пользователя
Эта команда создает необходимый каталог в /var/lib/samba :
Эта команда создает группу sambashare:
Эта команда меняет владельца и группу каталога, который вы только что создали, на суперпользователя:
Эта команда меняет разрешения каталога usershares таким образом, что пользователи, входящие в группу sambashare, могут читать, записывать и выполнять файлы:
Задайте эти переменные в конфигурационном файле smb.conf :
Добавьте вашего пользователя в группу sambashare. Замените ваше_имя_пользователя на имя вашего linux-пользователя:
Завершите сеанс и войдите снова, чтобы применилось добавление новой группы к вашему пользователю.
Теперь у вас должна появиться возможность настраивать общий доступ samba, используя графический интерфейс. Например, в Thunar вы можете нажать правую кнопку мыши на любом каталоге и предоставить для него общий доступ в сети.
Для настройки общего доступа через командную строку используйте одну из следующих команд:
Если вы хотите предоставить общий доступ к файлам, находящимся в вашем домашнем каталоге, не забудьте задать доступ как минимум на чтение другим пользователям ( chmod a+rX ).
Установка и форсирование прав доступа
Разрешения могут быть применены и к серверу, и к отдельным ресурсам:
См. smb.conf(5) для более подробной информации о настройке прав доступа.
Ограничение версии протокола для повышения безопасности
В файле /etc/samba/smb.conf добавьте опции server min protocol и server max protocol для ограничения используемых версий протокола:
См. server max protocol в smb.conf(5) для обзора поддерживаемых протоколов.
Использование шифрования SMB
Нативное шифрование транспорта SMB доступно с версии SMB 3.0. Среди клиентов, поддерживающих такое шифрование, имеются Windows 8 и новее, Windows Server 2012 новее, smbclient в Samba 4.1 и новее.
Смотрите smb.conf(5) для более подробной информации, особенно разделы Effects for SMB1 и Effects for SMB2.
Отключение общего доступа к принтерам
По умолчанию Samba предоставляет общий доступ к принтерам, настроенным через CUPS.
Если вам это не нужно, используйте следующие опции для отключения:
Запрет определённых расширений файлов в общем ресурсе Samba
Увеличение пропускной способности
Большинству пользователей подойдут настройки по умолчанию. Однако корректное использование ‘socket options’ может улучшить производительность, но ошибки в настройке также могут и ухудшить её. Проверяйте эффекты, прежде чем вносить какие-либо серьезные изменения.
Читайте smb.conf(5) прежде чем применять описанные здесь опции.
SMB3 multi-channel может улучшить производительности, однако иногда может испортить данные из-за race conditions. В будущих версиях ситуация может улучшиться:
Ограничение времени бездействия полезно для предотвращения исчерпания ресурсов сервера из-за большого количества неактивных подключений:
Использование sendfile улучшает эффективность использования процессора и повышает скорость Samba:
Установка min receivefile size разрешает zero-copy запись непосредственно из буфера сокета в кэш файловой системы (если доступен). Это может улучшить производительность, но требует тестирования:
Асинхронное чтение/запись файлов может повысить производительность:
Увеличение размера буферов приёма/отправки и флаги оптимизации сокетов могут быть полезны для улучшения производительности. Рекомендуется протестировать каждый флаг отдельно, так как они могут вызывать проблемы в некоторых сетях:
Включение доступа для старых клиентов или устройств
Последние версии Samba больше не предлагают старые методы аутентификации и протоколы, которые всё ещё используются некоторыми старыми клиентами (IP-камерами и т.д.). Такие устройства обычно требуют от сервера разрешения аутентификации NTLMv1 и протокола NT1, известного как CIFS. Чтобы эти устройства работали с последней версией Samba, добавьте эти два параметра в секцию [global] :
Для анонимного/гостевого доступа достаточно лишь первого параметра. Если старое устройство использует имя и пароль для доступа, то нужен и второй параметр тоже.
Настройка клиента
Вы можете получать доступ и монтировать локально ресурсы, предоставленные для общего доступа другими компьютерами сети, используя графический интерфейс или интерфейс командной строки. Графический способ ограничен, так как большинство легковесных окружений рабочего стола не имеет родных средств настройки доступа к этим ресурсам.
Существует две «части» предоставления общего доступа. Первая лежит в основе механизма работы файловой системы, а вторая является интерфейсом, который позволяет пользователю выбирать монтируемые ресурсы общего доступа. В некоторых окружениях первая часть уже встроена.
Ручное монтирование
Чтобы вывести список общедоступных ресурсов на сервере:
Создать точку монтирования для ресурса:
Имя системы Windows.
Каталог общего доступа.
Локальный каталог, в который будет примонтирован ресурс.
Смотрите страницу руководства mount.cifs(8) для получения информации.
Добавление ресурса в /etc/fstab
а запись в вашем fstab должна выглядеть примерно так:
Монтирование пользователями
Это позволит пользователям монтировать ресурс, если точка монтирования находится в каталоге, владельцами которого они являются, например, в свою домашнюю директорию. Чтобы пользователи могли монтировать и размонтировать ресурсы Samba в точках монтирования, владельцами которых они не являются, используйте smbnetfs или дайте им необходимые привилегии с помощью sudo.
Имена хостов WINS
Пакет smbclient предоставляет драйвер для использования имен хостов WINS. Чтобы его включить, добавьте “wins” в строку “hosts” файла /etc/nsswitch.conf.
Автоматическое монтирование
Есть несколько способов легко просматривать ресурсы общего доступа:
smbnetfs
Для начала удостоверьтесь, что вам доступны все ресурсы, которые вам нужны для монтирования:
Если это не работает, найдите и измените следующую строку в /etc/samba/smb.conf подобным образом:
Если все работает, как и ожидалось, установите пакет smbnetfs из официальных репозиториев.
Затем добавьте следующую строку в файл /etc/fuse.conf :
Скопируйте каталог /etc/smbnetfs/.smb в вашу домашнюю директорию:
Затем создайте ссылку на файл smb.conf :
Если для доступа к некоторым общим каталогам необходимы имя пользователя и пароль, отредактируйте файл
Также возможно добавление записей для специфичных хостов, чтобы они были примонтированы smbnetfs, если это необходимо. Больше информации можно найти в
Когда вы закончите настройку, необходимо выполнить
В противном случае smbnetfs пожалуется: ‘insecure config file permissions’.
Наконец, чтобы примонтировать сетевое окружение Samba в каталог по вашему выбору, выполните
Демон
autofs
Смотрите статью Autofs для получения информации об автомонтировщике ядра (kernel-based) Linux.
Настройка файлового менеджера
Nautilus, Nemo, Thunar и PCManFM
Нажмите Ctrl+l и введите smb://имя_сервера/ресурс в панель адреса, чтобы получить доступ к ресурсу.
KDE имеет встроенную возможность просмотра ресурсов Samba, в этом случае нет необходимости в дополнительных пакетах. Однако, для графического интерфейса в Системных Настройках KDE установите пакет kdenetwork-filesharing из официальных репозиториев.
Если при использовании Dolphin вы получите ошибку «Time Out», необходимо раскомментировать и отредактировать эту строку в файле smb.conf:
Другие графические окружения
Есть несколько полезных программ, но им могут требоваться пакеты, созданные для них. Это может быть сделано с помощью Arch package build system. Хорошая новость заключается в том, что они не нуждаются в особом окружении, устанавливаемом для их поддержки, так что они «тянут» за собой меньше пакетов.
Решение проблем
Известная ошибка Windows 7 «mount error(12): cannot allocate memory» может быть исправлена установкой пары ключей в реестре системы Windows:
В качестве альтернативы можно запустить командную строку от имени Администратора и выполнить следующее:
Выполните одно из следующих действий, чтобы изменения вступили в силу:
Проблемы получения доступа к ресурсам, защищенным паролем, из Windows
При проблемах получения доступа к ресурсам, защищенным паролем, из Windows попробуйте добавить следующее в файл /etc/samba/smb.conf :[1] [устаревшая ссылка 2020-08-04]
Обратите внимание, что это должно быть добавлено в локальный файл smb.conf, а не в файл сервера
Диалоговое окно появляется с большой задержкой
У меня была проблема, связанная с тем, что диалоговое окно для ввода пароля появлялось с задержкой около 30 секунд, когда я пытался установить соединение из Windows XP/Windows 7. Когда я посмотрел файл error.log на сервере, я увидел:
Эта опция предотвращает поиск cups и файла /etc/printcap:
Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
Если вы являетесь домашним пользователем, используете samba исключительно для организации общего доступа к файлам с сервера или NAS и не заинтересованы в организации общего доступа к принтерам, вы можете исправить эту ошибку, добавив следующие строки в файл /etc/samba/smb.conf:
…проверьте ваши логи:
и больше ошибка не должна появляться.
Не удается предоставить общий доступ к папке
Проблема проявляется в том, что, когда вы пытаетесь предоставить общий доступ к папке через Dolphin (файловый менеджер), и вначале, вроде бы, все работает нормально, после перезапуска Dolphin иконка ресурса исчезла из папки, а в терминале (Konsole) вы видите следующий вывод:
Для решения проблемы включите пользовательские общие ресурсы, как это описано в разделе #Создание ресурсов общего доступа от имени обычного пользователя.
«Просмотр» сети выдает ошибку «Не удалось получить список ресурсов с сервера» (Failed to retrieve share list from server)
в вашу конфигурацию iptables.
Вы не являетесь владельцем каталога
Попробуйте просто перезагрузить систему.
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)
Вероятно, вы указываете smbclient неправильное имя сервера. Чтобы узнать его, запустите на сервере команду hostnamectl и найдите строку «Transient hostname».
Блог о системном администрировании. Статьи о Linux, Windows, СХД NetApp и виртуализации.
Доброго времени читатели и гости блога www.k-max.name. Сегодняшнюю статью хочу посвятить изучению пакета SAMBA и основ совместного использования разделяемых ресурсов в гетерогенных сетях Linux и Windows. Кроме сетевых протоколов Microsoft, используемых в samba, существуют так же протоколы NFS и NIS, разработанные Sun, которые так же поддерживаются продуктами Microsoft, но не получившие у последних большого распространения и удобны в использовании в сетях Linux и UNIX. Начнем с небольшой теории.
Основы взаимодействия Windows и Linux (протоколы и другие особенности)
Протокол NetBIOS (точнее SMB) обладает своим собственным пространством имен. Все имена могут иметь длину до 16 алфавитно-цифровых символов. При этом, использовать имена, начинающиеся с цифры не приемлемо для реализации протокола NetBIOS over TCP/IP, т.к. данное имя будет интерпретироваться как IP-адрес. В NetBIOS существует понятие Рабочая группа (в последствии замененное понятием домен). Компьютеры, имеющие одинаковое имя рабочей группы принадлежат одной группе.
Чтобы 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 для снижения нагрузки мультикаст трафика в сети.
Исходные данные (подготовка хостов для осуществления общего доступа)
Мы начнем с самого простого примера и предположим, что DNS для разрешения имен не используется и машины имеют статичные IP-адреса. Поэтому нам необходимо в /etc/hosts добавить следующую строку:
Организация доступа к Windows с помощью клиента smbclient
В первую очередь, нам необходимо убедиться в том, может ли наш Linux взаимодействовать с Windows с помощью Samba. Самый простой способ, это воспользоваться FTP-подобным клиентом smbclient . C помощью которого, можно отправить запрос системе Windows и получить информацию о том, какие ресурсы Windows являются доступными.
Итак, в приведенном листинге нам удалось подключиться к шаре \\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 как единственный пользователь.
Давайте рассмотрим более сложный пример монтирования расшаренного каталога:
Резюме
На этом, на сегодня закончу. В следующей части повествования о SAMBA расскажу о взаимодействии Windows как клиента и Linux в виде файлового сервера SAMBA. Подведу маленький итог всему вышенаписанному. В сегодняшней статье я постарался рассказать об основах взаимодействия гетерогенных сетей Linux и Windows, немного рассказал об истории появления протоколов NetBIOS и взаимодействие хостов в сети TCP/IP по данному протоколу. Постарался изложить принципы взаимодействия между Linux и Windows и показал на практике, как взаимодействуют указанные системы. А так же описал, каким образом подключиться к расшаренным ресурсам Windows из Linux и заставить ОС Linux монтировать сетевые каталоги Windows при загрузке. Всем спасибо за внимание. Жду комментариев и дополнений!
Бразильский танец с бубном: Настройка, оптимизация работы и обеспечение безопасности Samba-клиента
Содержание статьи
В наши нелегкие времена, когда большинство пользователей сидит под виндой, обычному линуксоиду приходится подстраиваться под обстоятельства. Файл уже не передашь с помощью nc или NFS, а документ не распечатаешь удаленно через CUPS. Остается только использовать Samba, про тотальную настройку и оптимизацию которой я сейчас и расскажу.
Ликвидация безграмотности
Samba — это свободная программная реализация протокола SMB/ CIFS. Этот протокол, нэйтивно поддерживаемый семейством ОС Windows, позволяет получать удаленный доступ к файлам и сетевым принтерам. В винде рядовой пользователь может повлиять лишь на минимум настроек, связанных с доступом, остальные же опции глубоко скрыты в реестре либо отсутствуют вовсе. В никсах протокол SMB не является обязательным и не всегда доступен из коробки.
Для его использования требуется установить клиентскую (для доступа к уже расшаренным файлам и принтерам) и серверную (для расшаривания у себя на компе) части. После установки следует создать главный конфигурационный файл (если его нет) и запустить стартовый скрипт для активации серверной части. Например, для Arch Linux команды будут выглядеть так:
cp /etc/samba/smb.conf.default /etc/samba/smb.conf
/etc/rc.d/samba start
В некоторых системах следует запустить два демона: smbd (файловый) и nmbd (демон имен). Собственно, за расшаривание папок и прочие функции отвечает серверная часть Samba, а за доступ к уже расшаренным на других компах — консольная утилита smbclient. В качестве фронт-энда к ней выступает часть функционала распространенных файловых менеджеров, таких как Dolphin или Nautilus.
В них настройка осуществляется не намного сложнее, чем в винде, поэтому здесь останавливаться не будем. Кроме smbclient существует еще ряд программ, облегчающих жизнь в консоли, кратко рассмотрим наиболее используемые.
В старые версии пакета Samba входили утилиты smbmount и smbumount, которые, по сути, заменены на mount.cifs и umount.cifs.
Пилим конфиг
В конфиге Samba доступно несметное количество опций, при желании их все можно найти в справочной странице smb.conf(5). Поэтому для простоты приведу минимальный рабочий конфиг, а далее расскажу про наиболее интересные параметры, которые можно в него добавить:
$ cat /etc/samba/smb.conf
[global]
; Имя рабочей группы
workgroup = WRKGRP
; Уровень безопасности
security = SHARE
[myshare]
; Абсолютный путь к разделяемому ресурсу
path = /usr/somewhere/shared
; Доступ только на чтение
read only = Yes
; Доступ будет предоставлен с правами гостевого
пользователя (nobody)
guest ok = Yes
Функциональность этого конфига сводится к расшариванию папки /usr/somewhere/shared для всех пользователей рабочей группы WRKGRP без возможности записи. Конфиг состоит из нескольких секций (в данном случае двух), в секции global определяются общие параметры сервера, остальные секции могут называться произвольными именами (за исключением имен специальных секций), и в них задаются настройки для каждого разделяемого объекта (в примере использован объект myshare).
Для расшаривания принтеров существует специальная секция printers, которая в большинстве случаев имеет следующий вид:
[printers]
path = /usr/spool/public
guest ok = yes
printable = yes
Для автоматической активации принтеров в секцию global также следует добавить строку «load printers = yes».
Другие важные параметры конфига:
[public]
create mask = 0400
directory mask = 0700
path = /export/public
writeable = yes
[archive]
path = /export/archive
writeable = no
browseable = no
Тонкая настройка и оптимизация
Samba предоставляет нам широкие возможности по оптимизации. Одной из них является директива sockets options. Однако не существует универсального способа добиться максимальной производительности, так как все сети различны (тип соединения, тип оборудования и так далее) Если ты хочешь увеличить скорость передачи файлов в своей сети, то придется поэкспериментировать. В своих рассуждениях я буду опираться на особенности реализации интерфейса сокетов в Linux (об этом можно почитать в руководстве socket(7)). Первым делом добавим в конфигурацию Samba следующую запись:
[global]
socket options = TCP_NODELAY IPTOS_LOWDELAY
SO_RCVBUF=65536 SO_SNDBUF=65536
Чтобы найти оптимальные параметры для конкретных условий, надо провести эксперименты по передаче тестового файла размером 100 Мб и 100 тестовых файлов по 1 Мб, затем оценить время выполнения операций. Для создания 100-мегабайтного тестового файла выполни команду:
$ dd if=/dev/zero of=testfi le count=10240 bs=10240
Для создания 100 файлов размером 1 Мб поможет следующий скрипт:
$ cat mkfi les.sh
#!/bin/bash
for ((i=1; i
Далее нужно примонтировать шару:
И провести копирование с замером времени:
$ time cp /home/user/share/testfi le /home/user/
Результаты, получившиеся у меня, можешь наблюдать на рисунке (шкала Y — время копирования в секундах). Примечание: сервер Samba имеет привычку кэшировать передаваемые данные, поэтому рекомендую перезапускать его при каждом новом тесте. В конфиге smb.conf можно задать ряд параметров, которые так или иначе будут сказываться на производительности:
Следует также отметить, что ощутимую прибавку к производительности может дать использование асинхронного ввода-вывода. Правда, для этого необходимо пересобрать Samba с опцией AIO_ SUPPORT, после чего добавить в конфиг следующие параметры:
aio read size = 16384
aio write size = 16384
aio write behind = true
Shit happens
При работе с Samba могут вылезти различного рода косяки и грабли. примеры, для распространенных из них. Для решения проблемы с отображением кириллических символов рекомендуется выставить следующие параметры в секции global:
dos charset = cp866
unix charset = UTF8
display charset = UTF8
А если в твоей системе нет и не планируется развертывание серверов печати CUPS, то в логах периодически будут появляться ошибки по этому поводу. В таком случае лучше отключить поддержку печати в Samba, добавив в секцию global следующие строки:
load printers = no
show add printer wizard = no
printing = none
printcap name = /dev/null
disable spoolss = yes
WinXP — достаточно древняя и глючная система, но, тем не менее, множество людей остаются ей верны. При использовании разделяемых ресурсов эта операционка открывает соединения сразу к двум портам: 139/tcp и 445/tcp. Если ей это удается, то на 139-м порту соединение она разрывает, что приводит к появлению в логах записи «getpeername failed. Error was Transport endpoint is not connected».
Чтобы ошибка не возникала, необходимо добавить в секцию global строчку «smb ports = 139».
GUI в помощь
С помощью SWAT (Samba Web Administration Tool) можно конфигурировать самбу прямо из браузера. Интерфейс утилиты не выдерживает никакой критики, но она полезна с точки зрения тонкой настройки, поскольку показывает все возможные параметры конфига и дает контекстные подсказки к каждому из них. Для корректной работы необходимо доустановить пакет xinetd:
Затем привести файл /etc/xinetd.d/swat к следующему виду:
service swat
<
type = UNLISTED
protocol = tcp
port = 901
socket_type = stream
wait = no
user = root
server = /usr/sbin/swat
log_on_success += HOST DURATION
log_on_failure += HOST
disable = no
>
А также добавить в файл /etc/hosts.allow строку «swat:127.0.0.1». После чего запустить демон xinetd:
И вуаля! SWAT доступен по адресу http://localhost:901. Альтернативным средством для управления параметрами Samba из браузера является Webmin, который имеет приятный интерфейс и множество функций для управления системой.
/etc/rc.d/webmin start
После установки и запуска демона веб-морда будет доступна по адресу https://localhost:10000.
Подводим итоги
Процесс настройки Samba — это сложная и интересная задача. После оптимизации у меня получилось сократить время передачи файлов в среднем на 20%. Возможно, твои успехи в этом будут намного лучше: в некоторых источниках сообщается об ускорении аж до 200%.
Текущее состояние дел: Samba 3.5
Основным нововведением в версии 3.5 стала экспериментальная поддержка протокола SMB2, использующегося в системах Vista/Se7en. Благодаря значительному упрощению SMB2 (было более 100 команд, а стало 19) повысилась и производительность при передаче файлов. Среди прочих изменений:
Что нам готовит день грядущий: Samba 4.0
Проект Samba4 более пяти лет развивается параллельно с Samba3 и содержит почти полную переработку кода в контексте реализации работы в качестве Active Directory Domain Controller (совместимый с Win2k и выше) и приведения поддерживаемого SMB-протокола к полной совместимости с продуктами Microsoft. Реализованы встроенный LDAP-сервер, поддерживающий Active Directory правила; встроенный Kerberos KDC (Key Distribution Center) сервер; ACL в базе пользователей; виртуальная файловая система (Microsoft VFS) и так далее.
Основным нововведением разрабатываемой версии 4.0 станет возможность использования Samba-сервера в качестве контроллера домена Active Directory. Данная возможность реализована в версиях 3.x, но в сильно урезанном виде. После трех лет разработки первый технический релиз 4.0.0TP1 был выпущен в январе 2006 года. Впоследствии альфа-релизы появляются регулярно. Последняя версия 4.0.0-alpha14 выпущена 24 декабря 2010 года.