Samba – это мощный программный пакет с открытым исходным кодом, обеспечивающий беспрепятственный обмен файлами и принтерами между системами Linux/Unix и клиентами Windows. Он позволяет Linux-системам выступать в роли файловых серверов Windows, что делает его жизненно важным инструментом в средах со смешанной ОС, таких как корпоративные сети или домашние системы.

Это руководство поможет вам установить и настроить Samba на Linux-системе, что позволит вам совместно использовать каталоги и легко управлять правами доступа.

Что такое Samba?

Samba реализует протоколы SMB (Server Message Block) и CIFS (Common Internet File System), используемые в Windows для совместного использования файлов и принтеров. Это позволяет:

  • Linux-системам обмениваться файлами с машинами Windows

  • Linux-системам получать доступ к общим папкам Windows

  • Централизованный доступ к общим ресурсам в гетерогенных сетях

Шаг 1: Установите Samba

Процесс установки может немного отличаться в зависимости от дистрибутива Linux.

Для Debian/Ubuntu:

sudo apt update
sudo apt install samba

Для CentOS/RHEL (7/8 ):

sudo yum install samba samba-client samba-common

Для Fedora:

sudo dnf install samba

Чтобы проверить установку:

smbd --version

Шаг 2: Создание общей директории

Создайте каталог, который вы хотите открыть для пользователей сети.

sudo mkdir -p /srv/samba/shared
sudo chown -R nobody:nogroup /srv/samba/shared
sudo chmod -R 0775 /srv/samba/shared

Эти разрешения разрешают доступ на чтение/запись для гостевых пользователей (могут быть настроены для аутентифицированных пользователей).

Шаг 3: Настройте сервер Samba

Откройте файл конфигурации Samba:

sudo nano /etc/samba/smb.conf

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

[Shared]
путь = /srv/samba/shared
доступный для просмотра = да
только чтение = нет
разрешено гостям = да

Это определяет общую папку с именем “Shared”, доступ к которой возможен без пароля (гостевой доступ). Для большей безопасности отключите гостевой доступ и настройте доступ на уровне пользователя.

После редактирования сохраните и закройте файл.

Шаг 4: Настройка пользователя Samba

Если вы предпочитаете аутентификацию пользователей, а не гостевой доступ, создайте пользователя Samba:

sudo useradd sambauser
sudo passwd sambauser
sudo smbpasswd -a sambauser

Затем настройте блок общего доступа в файле smb.conf:

[Shared]
путь = /srv/samba/shared
действительные пользователи = sambauser
только чтение = нет

Шаг 5: Перезапустите службы Samba

Примените новую конфигурацию, перезапустив службы Samba:

sudo systemctl restart smbd
sudo systemctl enable smbd

Проверьте состояние:

sudo systemctl status smbd

Шаг 6: Настройте брандмауэр

Если вы используете брандмауэр, разрешите трафик Samba:

Для UFW (Ubuntu):

sudo ufw allow 'Samba'

Для firewalld (CentOS, Fedora):

sudo firewall-cmd --permanent --zone=public --add-service=samba
sudo firewall-cmd --reload

Шаг 7: Доступ к общей папке

В Windows:

  • Откройте File Explorer

  • Введите IP-адрес вашей Linux-системы в адресную строку, например:

    \\192.168.1.100\Shared
  • Пройдите аутентификацию, если необходимо

С другой системы Linux:

Используйте утилиту smbclient:

smbclient //192.168.1.100/Shared -U sambauser

Или смонтируйте общий ресурс:

sudo mount -t cifs //192.168.1.100/Shared /mnt/samba -o username=sambauser

Заключение

Samba – это мощный инструмент, который преодолевает разрыв между Linux и Windows. Независимо от того, создаете ли вы домашний медиасервер или управляете ресурсами в бизнес-сети, Samba обеспечивает гибкость и совместимость, необходимые для бесперебойной работы. Правильная настройка, контроль доступа пользователей и правила брандмауэра помогут обеспечить безопасный и эффективный обмен файлами.

Если вам нужна помощь в продвинутых настройках, таких как совместное использование принтеров, Samba в качестве контроллера домена или интеграция с Active Directory, не стесняйтесь запрашивать последующее руководство.