Настройка Samba на RedHat Linux 9 для корректной работы с macOS с возможностью бэкапов TimeMachine

Введение

macOS всё жёстче относится к сетевым протоколам. Сегодня Samba-серверу нужно строго соответствовать ожиданиям клиента: поддерживать SMB2/SMB3, исключать NetBIOS и обеспечивать совместимость с HFS+-/APFS-фичами, включая Time Machine, Spotlight и метаданные Apple.

Цель этой статьи — развернуть Samba-сервер на RHEL9 с идеальной поддержкой macOS, включая возможность резервного копирования и автообнаружения в Finder.

Установка необходимых пакетов

Установим Samba, Avahi и утилиты для управления доступом:

sudo dnf install -y samba samba-client samba-common avahi avahi-tools nss-mdns setroubleshoot-server policycoreutils-python-utils

Конфигурация Samba (/etc/samba/smb.conf)

[global]
workgroup = WORKGROUP
domain master = no
server string = Samba Server
netbios name = srv
include = registry

disable netbios = yes
smb ports = 445
server role = standalone

server signing = if_required
client signing = if_required
wins support = no

logging = systemd
usershare owner only = false

interfaces = 192.168.1.10
bind interfaces only = yes

ea support = yes
use sendfile = yes
strict allocate = yes
allocation roundup size = 0

vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:delete_empty_adfiles = yes
fruit:metadata = stream
fruit:resource = stream
fruit:model = MacStudio
fruit:time machine = yes
fruit:nfs_aces = no
fruit:posix_rename = yes
fruit:veto_appledouble = no
fruit:wipe_intentionally_left_blank_rfork = yes

Затем определим ресурсы. Пример для Time Machine:

[TimeMachine]
path = /mnt/backup/TimeMachine
browseable = yes
writable = yes
guest ok = no
valid users = haxver
force user = haxver
create mask = 0664
directory mask = 0775
vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:time machine = yes

Пример обычной расшаренной папки:

[Movies]
comment = Videos
path = /mnt/videos/Movies
valid users = haxver
inherit acls = Yes
public = no
writable = yes
printable = no
spotlight = yes

Создание пользователя

sudo useradd haxver
sudo passwd haxver
sudo smbpasswd -a haxver

Настройка прав и SELinux

Права на каталог:

sudo chown -R haxver:haxver /mnt/backup/TimeMachine
sudo chmod -R 770 /mnt/backup/TimeMachine
sudo setfacl -m u:haxver:rwx /mnt/backup/TimeMachine

SELinux:

sudo semanage fcontext -a -t samba_share_t "/mnt(/.*)?"
sudo restorecon -Rv /mnt

Запуск Samba

sudo systemctl enable --now smb

Настройка Avahi

Создадим службу Bonjour для Time Machine, чтобы macOS автоматически увидела шару:

Создайте файл /etc/avahi/services/samba.service:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_adisk._tcp</type>
    <port>9</port>
    <txt-record>dk0=adVN=TimeMachine,adVF=0x82</txt-record>
    <txt-record>sys=adVF=0x100</txt-record>
  </service>
  <service>
    <type>_smb._tcp</type>
    <port>445</port>
  </service>
</service-group>

Перезапустите Avahi:

sudo systemctl enable --now avahi-daemon

Убедитесь, что служба видна:

avahi-browse -a | grep -i time

Если всё настроено корректно, macOS обнаружит шару как резервное хранилище в интерфейсе Time Machine.

Подключение с macOS

1. Откройте Finder.

2. Нажмите Command + K.

3. Введите smb://192.168.1.10/Movies или нужный ресурс.

4. Авторизуйтесь под пользователем haxver.

Для Time Machine:

1. Откройте настройки Time Machine.

2. Выберите сетевой диск.

3. Введите логин и пароль Samba-пользователя.

Проверка

Команды для диагностики:

testparm
sudo smbclient -L localhost -U haxver

Для macOS:

smbutil view //haxver@192.168.1.10

Заключение

Теперь Samba работает без NetBIOS, строго на SMB2/3, со всеми расширениями Apple: ресурсными потоками, метаданными, Spotlight и поддержкой Time Machine. macOS автоматически обнаруживает сервер через Avahi и Bonjour. Это решение можно применять и в домашних, и в офисных сетях, где используется техника Apple.