Установка и настройка Samba в Linux: единый доступ для Windows и Linux

Samba — это мощный пакет программ, который позволяет операционным системам на базе Linux взаимодействовать с компьютерами под управлением Windows по протоколу SMB/CIFS. С его помощью вы можете организовать общий доступ к файлам и принтерам, сделав папки на Linux-сервере доступными для Windows-машин в сети, и наоборот. Это руководство подробно расскажет, как установить и настроить Samba в разных дистрибутивах Linux, включая Ubuntu/Debian, Fedora и Arch, а также как использовать его в качестве клиента.

Установка сервера Samba в различных дистрибутивах

Первым шагом является установка пакетов Samba. Команды различаются в зависимости от используемого менеджера пакетов.

Для дистрибутивов на основе Debian/Ubuntu (Ubuntu, Linux Mint, Debian):
Используйте менеджер пакетов APT. Рекомендуется обновить списки пакетов перед установкой.

sudo apt update

sudo apt install samba

Для дистрибутивов на основе RHEL/Fedora (Fedora, CentOS, RHEL):
Воспользуйтесь менеджером пакетов DNF.

sudo dnf install samba samba-common samba-client

Для дистрибутивов на основе Arch (Arch Linux, Manjaro):
Используйте менеджер пакетов Pacman.

sudo pacman -S samba

После установки рекомендуется включить службу Samba в автозагрузку и запустить её:

sudo systemctl enable —now smb

# На некоторых системах (особенно Debian/Ubuntu) служба может называться smbd

sudo systemctl enable —now smbd

Установка сервера Samba в терминале Linux командой sudo apt install samba
Процесс установки пакетов Samba в дистрибутиве на основе Debian/Ubuntu

Базовая настройка сервера Samba

Основная конфигурация Samba находится в файле /etc/samba/smb.conf. Перед редактированием создайте его резервную копию: sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup.

1. Настройка общего доступа к папке

Добавьте в конец файла /etc/samba/smb.conf блок, описывающий ваш общий ресурс. Вот пример простой и безопасной конфигурации для домашнего использования:

[my_share]
      comment = My Shared Folder on Linux
      path = /srv/samba/share # Абсолютный путь к папке на Linux
      browseable = yes
      read only = no
      guest ok = no
      valid users = @smbgroup
      create mask = 0660
      directory mask = 0770

Ключевые параметры:

  • [my_share] — имя общего ресурса, которое будет видно в сети.

  • path — реальный путь к каталогу. Создайте его и задайте права: sudo mkdir -p /srv/samba/share.

  • read only = no — разрешает запись.

  • guest ok = no — запрещает анонимный гостевой доступ.

  • valid users = @smbgroup — доступ разрешён только пользователям из группы smbgroup.

2. Создание пользователей и настройка прав доступа

Samba использует собственную базу паролей, отдельную от системной Linux.

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

sudo groupadd smbgroup

sudo usermod -aG smbgroup $USER

Создайте каталог и назначьте права:

sudo mkdir -p /srv/samba/share

sudo chown -R :smbgroup /srv/samba/share

sudo chmod 2770 /srv/samba/share # setgid бит для наследования группы

Добавьте пользователя в базу Samba и задайте пароль для сетевого доступа:

sudo smbpasswd -a $USER

3. Проверка конфигурации и перезапуск службы

Всегда проверяйте синтаксис конфигурационного файла перед перезапуском:

sudo testparm

Если ошибок нет, перезагрузите Samba:

sudo systemctl restart smb # или smbd
Пример настройки файла конфигурации Samba smb.conf для общего доступа
Фрагмент конфигурационного файла /etc/samba/smb.conf с настройкой общего ресурса

Установка и использование клиента Samba

Чтобы подключаться к сетевым ресурсам (шарам) с других компьютеров (Windows или Linux), вам понадобится клиентская часть.

Установка клиентских утилит

  • Ubuntu/Debian: sudo apt install smbclient cifs-utils

  • Fedora: sudo dnf install samba-client cifs-utils

  • Arch: sudo pacman -S smbclient cifs-utils

Подключение к общим папкам

Просмотр доступных ресурсов:

smbclient -L //server_ip_or_name -U username

Подключение в интерактивном режиме (подобно FTP):

smbclient //server_ip_or_name/share_name -U username

Монтирование общего ресурса в систему (рекомендуемый способ):

sudo mkdir /mnt/samba_share

sudo mount -t cifs -o username=your_samba_user //server_ip/share_name /mnt/samba_share

Для автоматического монтирования при загрузке добавьте запись в /etc/fstab.

Подключение к сетевой шаре Samba через smbclient в терминале Linux
Использование клиента smbclient для просмотра и подключения к общим ресурсам в сети

Решение частых проблем и итоги

  • Проверьте брандмауэр: Разрешите службы Samba (sudo ufw allow samba в Ubuntu или настройте firewalld в Fedora).

  • Убедитесь, что клиент и сервер в одной рабочей группе (обычно WORKGROUP, задаётся в smb.conf).

  • Для сложных сетей может потребоваться настройка имени хоста (NetBIOS) и Wins-сервера.

Итог: Samba — это универсальный и надёжный инструмент для интеграции Linux и Windows в единую сеть. Выполнив описанные шаги — установку сервера Samba, тонкую настройку файла smb.conf, создание пользователей и установку клиента — вы легко организуете общий доступ к файлам между любыми операционными системами в вашей домашней или офисной сети.