Что такое Samba и зачем она нужна в Ubuntu 20.04

Samba – это стандартный набор программ, который начал функционировать с 1992 года под лицензией GNU. Данное программное обеспечение используется для взаимодействия с Linux, Windows, и Unix системами в работе с файлами для клиентов, которые использует протокол SMB/CIFS.

Samba также является важным компонентом для интеграции Linux-серверов и настольных ПК в среду Active Directory. Проще говоря данное программное обеспечение позволяет настроить файловое хранилище для неавторизированного доступа, авторизованного использования, или совместного доступа.

Установка Samba через терминал Ubuntu

Начать установку на Ubuntu можно с команды:

sudo apt install samba -y

Сервис Samba используется под названием smbd. Следующим шагом будет добавление данного сервиса в автозапуск и одновременно запустим его, с помощью команды:

sudo systemctl enable –now smbd

Далее можно проверить текущий статус с помощью:

sudo systemctl status smbd

Вот небольшой список команд, который может потребоваться для дальнейшего использования Samba:

  • Остановка сервиса: sudo systemctl stop smbd
  • Перезапуск: sudo systemctl restart smbd
  • Отключить из автозапуска: sudo systemctl disable smbd

Настройка общего доступа к папке в Samba

Первым шагом к настройке общего доступа станет создание папки, далее нужно отредактировать конфигурационный файл, в котором нужно добавить раздел для этой новой папки с указанием имени, пути и прав доступа.

Начнем с создания директории:

sudo mkdir /var/public

Далее добавляем полные права для всех:

sudo chmod 775 /var/public

Var используется как пример, потому используйте ваши реальные папки. Далее нужно изменить конфигурационный файл. Для исполнения этой задачи мы будем использовать редактор nano.

sudo nano /etc/samba/smb.conf

В файл нужно будет добавить следующие директивы:

[public_share]                                                                                               

            comment = Directory public                                                                        

            path = /var/public

            public = yes                                                                                                      

            writable = yes                                                                                                  

            guest ok = yes                                                                                                 

    create mask = 0775                                                                                         

            directory mask = 0775                                                                                    

            force create mode = 0775                                                                               

            force directory mode = 0775  

После сохранения изменений, нужно перезапустить демона с помощью:

sudo systemctl restart smbd

 

Читайте также: Настройка FTP-сервера на Ubuntu

Настройка прав доступа и безопасности

На следующем этапе, давайте настроим доступ по логину и паролю. Сначала нужно создать тестовую директоре и предоставим полные права. Это можно сделать следующим образом:

sudo mkdir -p /var/acc_pass && sudo chmod 777 /var/acc_pass

Далее нужно открыть файл конфигурации, его можно открывать с помощью nano, или как в нашем примере с помощью другого редактора:

sudo vim /etc/samba/smb.conf

После открытия файла конфигурации, нужно добавить следующее:

[acc_pass]

            comment = Account Password Share

            path = /var/acc_pass

            browsable = no

            public = no

            writable = yes

            read only = no

            guest ok = no

            create mask = 0775

            directory mask = 0775

            force create mode = 0775

force directory mode = 0775

Следующим шагом будет добавления пользователя с помощью:

sudo smbpasswd -a selectel

Чтобы проверить или процесс осуществляется корректно, нужно кликнуть на нужную директорию и если вы увидите окно с паролем и логином, то процесс настроен корректно.

Подключение сетевой папки Samba с других устройств

Для подключения к сетевой папки нужно использовать утилиту cifs. Обновление и установка данной утилиты происходит следующим образом:

sudo apt update && sudo apt install cifs-utils -y

Далее нужно смонтировать ресурс следующим образом:

sudo mount.cifs //192.168.1.10/share /mnt/share -o username=user,password=pass

В данном примере сетевая папка монтируется в локальный каталог mnt/share. Просто подставьте нужные данные в этот пример для корректного процесса монтирования.

 

Часто спрашивают: iftop: как анализировать сетевой трафик в Linux

Решение распространённых ошибок при работе с Samba

  • mount error(13): Permission denied: при возникновении подобной ошибки скорее всего юзер не имеет нужного доступа или введен неправильный пароль/имя_юзера.

В таком случае нужно проверить или юзер добавлен:

sudo pdbedit -L | grep username

Также откройте файл конфигурации для проверки нужных параметров.

  • mount error(22): Invalid argument: здесь причина может быть в несовместимости версии протоколов или в неверных параметрах в монтировании.

Для решения нужно перепроверить код с mount, далее проверить версию протокола, и также убедиться, что установлена утилита cifs:

sudo apt install cifs-utils

  • mount error(112): Host is down: основными причинами может быть не запуск smbd или недоступность сервера.

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

sudo ufw status

  • NT_STATUS_ACCESS_DENIED: нет доступа к ресурсу но юзер аутентифицирован.

Для решения этой проблемы нужно проверить права на файлы и директорию, и нужно обязательно перезапустить Samba после внесенных изменениях.

  • Bind failed on port 139/445: порты уже используются другим процессом.

Чтобы исправить проблему, нужно перепроверить или запущен лишь один smbd. Если Samba запущена несколькими способами нужно отключить ненужный.

Проверка работы Samba и тестирование сетевых подключений

Для того чтобы корректно произвести проверку, нужно начать с перезапуска службы, для этого используйте:

sudo systemctl restart smbd

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

Следующим важным тестом станет проверка правильного отклика с помощью ping ACLIENT и ping BIGSERVER – с рабочей станции. Если не получен ожидаемый результат, тогда программное обеспечение было некорректно настроено или инсталлировано.