
Что такое 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 – с рабочей станции. Если не получен ожидаемый результат, тогда программное обеспечение было некорректно настроено или инсталлировано.