Как настроить Samba-шару между двумя Linux-системами?

Установка пакетов зависит от вашего дистрибутива, поэтому мы ее пропускаем. Переходим сразу к настройке — она одинакова для всех Linux-систем.

Немного поясню. Samba работает в разных режимах, я выбрал для своей внутренней сети самый простой и предлагаю его вам. Перечисление всех конфигураций — материал для отдельной книги.

Фактически для хранилища мы будем использовать отформатированный в ext4 жесткий диск, его точка монтирования и будет нашей сетевой папкой. Так как он монтируется в систему от root’а, его точка монтирования по умолчанию принадлежит суперпользователю. Мы принудительно задаем ей права 777, чтобы сетевые пользователи могли работать свободно с данными. При этом безопасность внутри шары контролируется правилами из файла smb.conf. В итоге сетевые клиенты и локальные пользователи сервера могут свободно обмениваться, перезаписывать и удалять файлы друг друга без каких-либо конфликтов.

Настройка Samba на сервере

  1. Повторюсь. В этой конфигурации сама samba-папка (шара) всегда от пользователя root и с правами 777.
  2. Узнаем UUID диска и прописываем автомонтирование в /etc/fstab:

    /dev/disk/by-uuid/ce9d1640-6523-41t1-88cc-1321ba1g2c44 /mnt/Storage ext4 defaults,nofail 0 2
  3. Конфиг /etc/samba/smb.conf:

    
    [global]
        min protocol = SMB3
    [sambashare]
        comment = Samba on APPLE HDD 500GB
        path = /mnt/Storage
        public = no
        writable = yes
        read only = no
        guest ok = no
        create mask = 0664
        directory mask = 0777
        force create mode = 0664
        force directory mode = 0777
    
  4. Создание системного пользователя — без пароля в системе, без домашней папки и без возможности заходить на сервер по SSH, исключительно для нужд Samba:

    sudo useradd -M -s /sbin/nologin smbusver
  5. Создание samba-пароля для этого пользователя:

    sudo smbpasswd -a smbusver

Настройка Samba на клиенте

Для настройки клиента вам понадобятся утилиты работы с файловой системой CIFS, например, пакет cifs-utils в Debian/Ubuntu или Arch/Manjaro.

  1. Создаем точку монтирования в домашнем каталоге текущего пользователя со стандартными правами доступа:

    mkdir -p /home/kupereal/sambashare
  2. Чтобы не хранить сетевой пароль в открытом виде в системном файле fstab, мы создаем отдельный скрытый файл. Вносим в него учетные данные samba-пользователя. После сохранения обязательно закрываем права на чтение всем, кроме root’а.

    
    sudo touch /root/.cifsmnt
    echo -e "username=smbusver\npassword=joculo2000\n" | sudo tee /root/.cifsmnt > /dev/null
    sudo chmod 600 /root/.cifsmnt
    

    Содержимое скрытого файла credentials для Samba-клиента с логином и паролем

  3. Находим uid и gid текущего пользователя по команде id.
  4. Автомонтирование шары в /etc/fstab:

    //192.168.0.218/sambashare /home/kupereal/sambashare cifs user,rw,credentials=/root/.cifsmnt,uid=1000,gid=1001,nofail 0 0
  5. Для проверки корректности настроек и монтирования без перезагрузки выполните команду:

    sudo mount -a

Автор: Kupereal

Занимаюсь разработкой и продвижением веб-сайтов. Развиваю каналы в мессенджерах. Настраиваю рабочее окружение (Win/Lin/Mac) и весь серверный стек для проектов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *