Samba — пакет программ, которые позволяют обращаться по сети к файлам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL.

Начиная с четвёртой версии, разработка которой велась почти 10 лет, Samba может выступать в роли контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000, и способна обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10.

Samba работает на большинстве Unix-подобных систем, таких как Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD; в OS/2 портирован Samba-клиент, являющийся плагином к виртуальной файловой системе NetDrive. Samba включена практически во все дистрибутивы Linux.

Создание Эндрю Триджелл разработал первую версию Samba Unix в 1992 году в Австралийском национальном университете. Программа «nbserver 1.5» была выпущена в декабре 1993 года. Позже Триджелл выяснил, что протокол был во многом похож на тот, который используется в других сетевых серверных системах, в том числе в LAN manager. Эта информация подтолкнула его к решению сосредоточиться на сетевой совместимости с продуктами Microsoft.

Samba первоначально назывался smbserver, но название было изменено в связи с извещением от компании «Syntax», которая является владельцем товарного знака на «SMBserver», о нарушении права на торговую марку.

История версий История изменений Дата выпускаВерсияПримечания23 сентября 20033.0.0Важное обновление. Начиная с этой версии, Samba предоставляет службы файлов и печати для различных клиентов Microsoft Windows и может интегрироваться с операционной системой Windows Server либо как основной контроллер домена (, PDC), либо как член домена. Она также может быть частью домена Active Directory. Официально поддержка версии 3.0 прекращена 5 августа 2009 года. Последнее обновление этой версии 3.0.37 выпущено 1 октября 2009 года добровольцами.1 июля 20083.2.0 Переход на лицензию GPLv3; Поддержка IPv6 и шифрования SMB трафика в сервере, клиентских утилитах и библиотеках; Поддержка аутентификации клиентов Windows Vista через Kerberos. Новая клиентская Winbind библиотека (libwbclient.so), распространяемая под лицензией LGPL; Возможность хранения альтернативных данных в xattrs атрибутах файлов; Новая NetApi библиотека (libnetapi.so) для выполнения запросов, связанных с входом в домен. Также создан пример простого графического интерфейса на GTK+ для подключения к домену; Новая клиентская и серверная поддержка удаленного входа в домен и выхода из него. Поддержка присоединения к Windows 2008 доменам. В целях повышения безопасности, изменены значения по умолчанию для около десятка параметров конфигурации, связанных с аутентификацией. Снято ограничение на размер пути в 1024 байт и размер имени файла в 256 байт, теперь используются верхние ограничения операционной системы. Улучшена поддержка Unix расширений протокола CIFS; Экспериментальная поддержка организации кластеров файловых серверов. Бэкенд для хранения конфигурации в «registry» в дополнение к smb.conf; Из поставки удалены «Python bindings» и библиотека libmsrpc; Значительные улучшения в Winbind и Active Directory реализации (Windows 2003 cross-forest, transitive trusts, one-way domain trusts, userPrincipalName logons via pam_winbind and NSS, Active Directory LDAP Signing policy). Добавлен бэкенд libsmbconf для манипуляций с конфигурацией в текстовом представлении; Реализована команда «net registry», для локального доступа к реестру; Появилась поддержка асинхронных SMB запросов; Размер буфера по умолчанию установлен в 512 КБ; В библиотеку libwbclient добавлено много новых функций.27 января 20093.3 Расширенная поддержка кластеризации (Extended Cluster); Обновлена версия tdbsam бэкенда для хранения базы пользователей (сопоставления Windows и Unix аккаунтов); Каталог с библиотеками разбит на два каталог — библиотеки и модули; В поставку включены новые экспериментальные VFS модули «vfs_acl_xattr» и «vfs_acl_tdb», предназначенные для сохранения NTFS ACL атрибутов на файловых серверах Samba; В библиотеке NetApi созданы функции для управления пользовательскими и групповыми аккаунтами.3 июля 20093.4 В качестве passdb-бэкенда по умолчанию для хранения паролей отныне используется «tdbsam», который поддерживает установку индивидуальных настроек для каждого пользователя. Создание смешанной сборки, в которую включены исходные тексты Samba4 и Samba3. Значительная часть интерфейсов Samba3 теперь используется совместно с Samba4; Организовано совместное использование в Samba4 и Samba3 единой библиотеки tevent; В smbd изменится метод работы с недоверительными (untrusted) именами доменов, переданных в рамках аутентификации пользователя; Изменения в системе печати: различные исправления, в том числе, изменение описания принтеров для спулов принт-серверов Samba; Реализация вручную поддерживаемых DCE/RPC сервисов (ntsvcs, svcctl, eventlog и spoolss) будет заменена на код автоматически сгенерированный при помощи PIDL; Произведена очистка кода и код основных базовых интерфейсов используется, как Samba3, так и Samba4; Осуществлено добавление асинхронного API.Первый выпуск с использованием кода как Samba 3, так и Samba 4.30 апреля 20123.4.17Последний стабильный выпуск ветки Samba 3.4.1 марта 20103.5 Экспериментальная поддержка протокола SMB2, поддерживаемого в Windows Vista и Windows 7; Обеспечена 100-наносекундная точность установки времени изменения или создания файлов (timestamp resolution). Для поддержки необходимо ядро Linux минимум версии 2.6.22 и glibc 2.6; Добавлена поддержка шифрования соединений при выводе на печать через сервер CUPS; В Winbind проведен рефакторинг кода с целью реализации асинхронной обработки запросов; В поставку включен новый VFS-модуль vfs_scannedonly, предназначенный для сбора информации о результатах антивирусной проверки и автоматического открытия доступа только к проверенным и не зараженным вирусами файлам.9 августа 20113.6 Поддержка SMB2 признана полностью функциональной. Добавлен новый анализатор трафика SMB Traffic Analyzer (SMBTA), поддерживающий вторую версию протокола VFS-модулей, в которой реализовано шифрование, передача нескольких аргументов и упрощенный для разбора формат. Полностью переписан и подвергнут рефакторингу код обработки очередей печати (Spoolss) и реализации RAP-команд управления печатью (Remote Administration Protocol). Все связанные с печатью операции теперь выполняются через RPC-интерфейс Spoolss, что позволило в одном месте сконцентрировать код всех связанных с подсистемой печати проверок, убрав все обработчики особых ситуаций из основного кода печати. Продолжена работа по внутренней реструктуризации, нацеленная на увеличение разделения внутренних подсистем, что в конечном итоге должно привести к ускорению сборки, сокращению размера исполняемых файлов и оптимизации зависимостей; Добавлен бэкенд для работы с квотами на NFS-разделах в Linux. Разработка базируется на ранее созданной реализации для платформ Solaris и FreeBSD. Бэкенд позволяет samba передавать корректную информацию о наличии свободного места на импортируемых NFS-разделах, используемых для размещения samba-разделов; Внутренние изменения метода работы с локальной базой пользователей в Winbind.11 декабря 20124 Поддержка серверного окружения для обеспечения работы службы входа пользователей с использованием Active Directory, совместимого с серверами, начиная с Windows 2000 и клиентами XP, Windows 7 и Mac OS X. Samba 4 поддерживает полный набор операций для обеспечения входа клиентов в домен и подключения доменов. Поддерживается определение групповых политик (Group Policy); Обеспечение работы в роли контроллера домена (DC — Domain Controller), включая встроенные реализации LDAP-сервера и центра распространения ключей Kerberos (KDC — Kerberos Key Distribution Center), а также сервисов входа в стиле Samba3, работающих поверх протокола CIFS. Реализация поддерживает генерацию корректного сертификата Kerberos PAC (Privilege Attribute Certificate) и его включение в выдаваемые билеты Kerberos; Samba 4.0 поставляется с двумя отдельными реализациями файловых серверов; Дополнительно в поставку входит реализация нового экспериментального файлового сервера 'NTVFS', который развивался в рамках цикла разработки Samba 4.0, и оптимизирован для соответствия требованиям контроллера домена Active Directory. Сервер NTVFS позиционируется не только для преемственности с более старыми установками контроллера домена Active Directory, но и как рабочий пример архитектуры NT-FSA, в направлении реализации которой в отдалённой перспективе движется smbd; Служба DNS, являющаяся частью Active Directory, имеет две реализации: встроенный DNS-сервер, поддерживающий минимально необходимый набор функций, и дополнение BIND DLZ, реализованное в форме плагина для DNS-сервера BIND 9.8 и 9.9. Также возможно использование традиционной конфигурации BIND с использование файлов зон.; Для предоставления сервиса точного времени для Windows-клиентов, обеспечивается интеграция с проектом NTP; Предоставляется новый интерфейс для создания скриптов-дополнений на языке Python. Для подобных скриптов через специальный API предоставляется полный доступ ко внутренностям Samba 4; Для реализации возможного набора функций используется гибкая модель разделения на взаимодействующие между собой процессы; Новая гибкая архитектура для ведения баз данных (LDB); Реализация базовой подсистемы обеспечения безопасности (GENSEC); Свободная реализация файлового сервера с поддержкой протокола SMB2.1, основанного на наработках по созданию сервера SMB2.0, развиваемых в рамках ветки Samba 3.6. Кроме того, в состав Samba 4.0 включена начальная реализация сервера SMB3, развитие которого будет продолжено в следующих выпусках Samba 4 и в конечном итоге приведёт к созданию свободной реализации полнофункционального кластерного файлового сервера, поддерживающего протокол SMB3; Интегрированный файловый сервер SMB2/SMB/CIFS с поддержкой кластеризации, построенный с использованием технологии CTDB («clustered tdb»), которая распределяет мета-данные Samba-разделов на несколько хостов в кластере, что позволяет обеспечить автоматическое восстановление в случае сбоя одного из узлов и предоставляет гибкие механизмы балансировки нагрузки; Гибкие возможности кастомизации Samba при интеграции OEM-производителями в свои продукты.10 октября 20134.1 Обновлённый набор клиентских утилит и библиотек с поддержкой протоколов SMB2 и SMB3. Поддержка SMB3 работает только с серверами на базе Windows 2012, Windows 8 или Samba 4.x; Поддержка соединений с использованием шифрованного канала связи при соединении с серверами Windows и Samba по протоколу SMB3; Новая система репликации содержимого базы данных контроллера домена, отличающаяся увеличением эффективности и надёжности работы; Поддержка выполнения операций копирования на стороне сервера; Включение VFS-модуля для обеспечения интеграции с файловой системой Btrfs. Модуль позволяет дополнительно увеличить производительность операций копирования на стороне сервера при хранении данных на Btrfs-разделах, за счёт использования возможности по хранению только одной копии данных для идентичных файлов с их разделением на уровне метаданных; Удаление из состава Samba административного web-интерфейса SWAT. В качестве мотива называется недостаточно высокое качество кода с точки зрения безопасности.4 марта 20154.2 В VFS-модуль интеграции с файловой системой Btrfs добавлена поддержка прозрачного сжатия файлов и каталогов; Добавлен новый VFS-модуль Snapper, предоставляющий средства для работы с мгновенными снимками состояния файловой системы для обеспечения доступа к прошлым состояниям файлов; Добавлен новый VFS-модуль WORM (Write once read many), реализующий дополнительный слой поверх хранилища Sambа, предоставляющий клиенту возможность управления совершением операций записи для файлов и каталогов;