Установка и настройка файлового сервера Samba на Ubuntu: полное руководство
Если пользователям локальной сети, например, университетского кампуса или офиса, нужен доступ к общим файлам или печати документов, им пригодится файловый сервер Samba. Он позволяет просматривать общие файлы с устройств с разными операционными системами (ОС), а также видеть подключенные к ним принтеры. В статье рассказываем, как установить и настроить Samba в Ubuntu.

- Что такое сервер Samba и какие возможности он дает
- Общее руководство по установке Samba в Linux (Ubuntu)
- Создание общего каталога
- Настройка параметров Samba
- Настройка учетной записи пользователя
- Настройка параметров общего каталога Samba
- Завершение настроек
- Как удалить Samba в Ubuntu
- Коротко об установке Samba на Ubuntu
Что такое сервер Samba и какие возможности он дает
Допустим, в вашем офисе есть устройства с разными ОС: Windows, macOS и Linux. При этом сотрудникам, работающим на Windows нужны доступы к общим файлам, которые хранятся на компьютерах коллег с Linux. А сотрудникам с компьютерами на macOS важно иметь возможность распечатывать документы на принтере, подключенном к устройству на Windows. Что делать? Использовать файловый сервер Samba.
Samba — свободное программное обеспечение (ПО), которое позволяет устройствам на разных ОС иметь совместный доступ к файлам и принтерам в локальных сетях.

В основе работы Samba лежит протокол SMB/CIFS — именно он дает компьютерам возможность получать доступ к файлам и принтерам на устройствах с другими ОС. Этот протокол поддерживается на Windows, и уже через Samba — на Linux и macOS.
Какие преимущества есть у Samba:
Совместимость с разными ОС: Windows, Linux, macOS. С Samba не нужно привязываться к определенной платформе — с ним пользователи одной организации могут работать на разных ОС, при этом обмениваться файлами и свободно печатать материалы.
Аутентификация и контроль доступа. Информация в Samba передается безопасно, а доступ к ней есть только у авторизованных пользователей. Также можно настроить шифрование данных для более надежной защиты.
Понятный графический интерфейс, который позволяет работать с Samba даже членам команды без глубоких технических знаний.
Гибкость и масштатбируемость. Есть возможность добавлять новых пользователей, выделять дополнительные ресурсы с ростом числа устройств.
Поддержка различных версий операционных систем. Можно работать с более старыми ОС, например, Windows 9x, а также с современными версиями Windows и macOS.
Упрощенное восстановление данных. С помощью Samba можно создать файловый сервер, на котором хранятся все важные данные. Так можно упростить процессы резервного копирования и восстановления информации, поскольку все файлы будут находиться в одном месте.
Общее руководство по установке Samba в Linux (Ubuntu)
У большинства версий Linux, в том числе у Ubuntu, а также у Windows 10, 11 и macOS есть поддержка протокола Samba по умолчанию.
Ubuntu — популярный дистрибутив Linux, то есть набор ПО, который включает в себя ядро Linux и другие нужные для работы компьютера компоненты.
Общий алгоритм установки Samba на Ubuntu:
1. Используйте утилиту apt. Сначала обновите информацию о репозитории (хранилище) пакетов с помощью команды sudo apt update. Далее выполните команду для установки Samba:
Аргумент -y автоматически одобряет любые запросы во время установки.
2. Проверьте установку с помощью команды whereis samba. Она выведет каталог, в котором находится Samba. Также можно проверить версию утилиты через команду samba -V.
3. Убедитесь, что служба Samba запущена. Для этого запустите команду:
Утилита smbd сообщает, что Samba подключена и работает. Для возвращения в терминал нажмите q.
Evolution Image
Легко управляйте пользовательскими образами и доступами к готовым образам с популярными дистрибутивами операционных систем
Создание общего каталога
Чтобы открыть доступ к файлам для других пользователей и устройств в сети, необходимо создать отдельный общий каталог. Без него Samba не будет обслуживать подключенных клиентов.
Каталог создается по следующей схеме:
1. Введите команду mkdir для создания каталога в /home. Например, его имя будет sharing. В этом случае команда выглядит так:
2. Введите команду ls /home, чтобы проверить результат.
3. Настройте права доступа к каталогу командой:
Она выдает полный доступ к папке. Впрочем, лучше настраивать права доступа конкретным пользователям, как — читайте в разделе «Настройка учетной записи пользователя».
Настройка параметров Samba
Основные параметры Samba можно настроить через файл конфигурации smb.conf, который расположен в /etc/samba/smb.conf.
Для настройки действуйте следующим образом:
1. Откройте файл конфигурации с помощью команды:
2. Прокрутите вниз до раздела Global Settings. В этом разделе можно настроить поведение сервера Samba, его имя, роль и сетевые интерфейсы.
Важный момент: некоторые настройки в файле smb.conf помечены как комментарии. Чтобы включить и настроить эти параметры, их нужно раскомментировать — преобразовать комментарий в текст программы. Далее расскажем, какие параметры нужно раскомментировать и как это сделать.
Просмотр и идентификация
Просмотр нужен для обмена файлами между группой компьютеров по локальной сети и содержит параметр workgroup. А идентификация распознает сервер Samba, ее параметр — server string.
Как раскомментировать параметры workgroup и server string:
1. Откройте файл sudo nano /etc/samba/smb.conf.
2. Удалите символы # или ; перед соответствующими строками. Запись будет выглядеть так:
3. Сохраните изменения и перезапустите Samba командой:
Нетворкинг
Подраздел Networking нужен для настройки сетевых интерфейсов, к которым привязывается Samba. Он содержит два параметра: interfaces и bind interfaces only.
Как раскомментировать настройки в этом подразделе:
1. Проверьте доступные интерфейсы с помощью команды ip link, чтобы задать interfaces.

В примере выходных данных указано, что Samba привязывается к двум интерфейсам: lo (интерфейсу обратной связи) и enp0s3 (сетевому интерфейсу).
2. Раскомментируйте данные:
Если bind interfaces only установлен в yes, то в параметре interfaces Samba будет использовать только указанные интерфейсы. То есть если у сервера несколько сетевых интерфейсов, например enp0s3, enp0s4, enp0s5, то Samba «послушает» только те, что указаны в параметре Interfaces, а остальные проигнорирует.
Важный момент: названия серверов, к которым привязывается Samba, могут различаться на разных компьютерах.
Отладка
Отладка — это поиск и исправление ошибок в исходном коде ПО. У отладки четыре параметра:
log file = /var/log/samba/log.%m — сохраняет журналы в файле, который назван по имени подключающегося устройства (%m) в указанном каталоге. Эта настройка упрощает отладку.
max log size = 1000 — ограничивает размер файлов журнала до 1 000 КБ перед перемещением, тем самым предотвращает быстрое заполнение дискового пространства.
logging = file — настраивает Samba для регистрации событий (логов) в файлах, чтобы отслеживать, кто их открывал и что в них делал.
panic action = /usr/share/samba/panic-action %d — выполняет заданный сценарий, если возникла ошибка (%d передает сведения об ошибке). Это позволяет немедленно устранять неполадки и возобновлять процессы.
Настроить отладку можно с помощью набора команд:
Аутентификация и домен
Наиболее значимым параметром аутентификации выступает server role, он определяет тип сервера для Samba. Если этого параметра нет, добавьте следующую строку: server role = standalone server, чтобы настроить Samba как автономный сервер.
Другие настройки аутентификации включают в себя команды:
obey pam restrictions = yes — гарантирует, что Samba придерживается политик аутентификации PAM для поддержания централизованного контроля доступа. Это упрощает процесс верификации пользователей.
unix password sync = yes — синхронизирует пароли Samba с паролями Ubuntu, чтобы обеспечить однотипность учетных данных во всех службах.
passwd program = /usr/bin/passwd — говорит системе, что для изменения паролей пользователей необходимо использовать программу, которая находится по адресу /usr/bin/passwd.
passwd chat = Enter\snew\s\spassword: %n\n Retype\snew\s\spassword: %n\n password\supdated\ssuccessfully.** — автоматически меняет пароли пользователей по заданному алгоритму.
pam password change = yes — не меняет пароли, но облегчает синхронизацию локальных устройств, также придерживается политики РАМ.
map to guest = bad user — сопоставляет неопознанных пользователей с гостевой учетной записью, чтобы не пропустить неавторизованных пользователей.
Не стоит менять настройки в подразделе Домен. Прокрутите вниз до раздела Разное и задайте команду: usershare allow guests = yes. Эта команда нужна, чтобы любой пользователь мог получить доступ к общим ресурсам без указания учетных данных. Оставьте все остальные глобальные настройки без изменений.

Далее сохраните файл и выйдите из него, запустите testparm для проверки синтаксических ошибок. Если система показывает сообщение «Loaded services file OK», это означает, что ошибок нет, и сервер Samba готов к использованию.

Настройка учетной записи пользователя
Чтобы гарантировать, что только верифицированные пользователи получат доступ к конфиденциальным файлам или каталогам, нужно настроить учетные записи.
Как настроить учетные записи:
1. Задайте имя и пароль с помощью команды:
Причем имя должно принадлежать системному пользователю. Например, системная учетная запись в системе создана под именем bosko. Следовательно, нужно задать команду:

2. Чтобы добавить нового пользователя в Samba и систему, используйте команду:
Вместо [username] можно добавить в систему, например, new_user с помощью sudo adduser new_user.
3. Придумайте и подтвердите системный пароль для нового пользователя, для чего используйте:

4. У добавленных пользователей должен быть доступ на чтение, запись и выполнение для общего каталога. Чтобы дать новому пользователю эти права, выполните команду:
В этой команде:
утилита setfacl — управляет списками доступов;
аргумент -R — параметр для рекурсивного применения прав ко всем файлам/каталогам в указанном каталоге;
аргумент -m — модифицирует уже существующие права;
аргумент u:new_user:rwx — выдает указанному пользователю права на чтение (r), запись (w) и выполнение (x).
Настройка параметров общего каталога Samba
Каталог общего доступа Samba — это каталог в Linux, который настроен на доступ к другим устройствам в локальной сети через протокол SMB/CIFS. Для настройки параметров каталога выполните следующие действия.
Откройте файл конфигурации еще раз:
Перейдите в конец файла и добавьте следующие строки:
Каждая строка предоставляет определенные разрешения на доступ к каталогу:
[sharing] — показывает имя каталога, которое видят пользователи.
comment — описывает общий каталог.
path — указывает путь к общему каталогу. В примере используется каталог /home, но пользователи также могут размещать общие файлы в /samba.
read only — позволяет пользователям изменять каталог и добавлять или изменять файлы, если установлено значение no.
writeable — предоставляет доступ на чтение и запись, если установлено значение yes.
browseable — позволяет другим устройствам в сети находить каталог, если установлено значение yes. В противном случае пользователи должны знать точный путь для доступа к общему каталогу.
guest ok — если установлено значение no, параметр отключает гостевой доступ. Чтобы гостю попасть в общий каталог, придется ввести имя пользователя и пароль.
Сохраните изменения и выйдите из файла.
Перепроверьте синтаксис через testparm. Система должна подтвердить, что Samba настроена верно. Для более подробного вывода всех настроек нажмите Enter.
Обновите правила брандмауэра — защитного сервера, который отвечает за безопасность между сетью и устройством пользователя. Чтобы убедиться, что система разрешает трафик с Samba, используйте команду:
Завершение настроек
Чтобы завершить настройку, подключитесь к общему каталогу, который был создан ранее. Для этого выполните следующие шаги:
1. Перезапустите службу Samba, чтобы убедиться, что все изменения конфигурации вступили в силу:
2. Откройте файловый менеджер по умолчанию и выберите опцию Other Locations — это нужно, чтобы подключиться к общему каталогу через графический интерфейс. Для этого введите в поле адрес сервера smb://ip-address/sharing и нажмите Connect.

3. Система запросит имя пользователя и пароль. Укажите запрашиваемую информацию и нажмите Connect еще раз. Это добавит каталог общего доступа в папку общих ресурсов Windows.

Как удалить Samba в Ubuntu
При необходимости можно удалить все файлы из системы, которые связаны с Samba.
Чтобы это сделать, следуйте инструкции:
1. Остановите все службы Samba для обеспечения процесса. Используйте команду:
2. Подтвердите остановку службы с помощью команды:
Система должна показать, что она неактивна.

3. Удалите программные пакеты Samba. Для этого используйте apt менеджер и введите команду:
Опция --purge также обеспечивает удаление файлов конфигурации.
4. Очистите остаточные файлы конфигурации и зависимости:
Убедитесь, что Samba отсутствует, используя команду whereis samba. В строке не должно быть указано каталогов установки, что означает, что Samba была успешно удалена.
5. Удалите пользовательские файлы. Несмотря на то, что флаг --purge вычищает файлы конфигурации из системы, некоторые пользовательские файлы могут остаться. Чтобы удалить их вручную, используйте команду:
6. Очистите файлы журналов, созданные Samba при помощи ввода команды:
7. Восстановите права доступа к файлам. Если Samba использовалась для управления разрешениями на файлы в общих каталогах, сбросьте их. Откатите изменения ACL (список доступных прав) для общих каталогов через команду:
8. Удалите правила брандмауэра, которые связаны с Samba, чтобы защитить свою систему. Для этого используйте команду:
Затем перезагрузите брандмауэр с помощью:
9. Проверьте полное удаление службы и конфигураций Samba. Сначала посмотрите статус службы через команду:
Запрос должен показать, что она не найдена. Далее проверьте, не осталось ли пакетов с Samba, для этого введите:
Команда не должна вывести никаких результатов. Это значит, что утилита полностью удалена из системы вместе с файлами, которые с ней были связаны.
Коротко об установке Samba на Ubuntu
Samba — это бесплатное ПО, которое позволяет компьютерам с разными ОС (Windows, Linux, macOS) легко и безопасно обмениваться файлами, использовать общие принтеры в локальной сети.
Samba использует протокол SMB/CIFS, «обучая» Linux и macOS общаться с Windows на одном языке.
Среди ключевых преимуществ Samba: возможность организовать доступ к файлам и принтерам с разных устройств, безопасность передачи данных, удобный интерфейс, возможность добавлять новых пользователей и масштабироваться.
Общий алгоритм установки Samba на Ubuntu: используйте утилиту apt, чтобы обновить информацию о репозитории и установить Samba. Далее проверьте установку командой whereis samba и убедитесь, что служба Samba запущена.