
Установка пакетов зависит от вашего дистрибутива, поэтому мы ее пропускаем. Переходим сразу к настройке — она одинакова для всех Linux-систем.
Немного поясню. Samba работает в разных режимах, я выбрал для своей внутренней сети самый простой и предлагаю его вам. Перечисление всех конфигураций — материал для отдельной книги.
Фактически для хранилища мы будем использовать отформатированный в ext4 жесткий диск, его точка монтирования и будет нашей сетевой папкой. Так как он монтируется в систему от root’а, его точка монтирования по умолчанию принадлежит суперпользователю. Мы принудительно задаем ей права 777, чтобы сетевые пользователи могли работать свободно с данными. При этом безопасность внутри шары контролируется правилами из файла smb.conf. В итоге сетевые клиенты и локальные пользователи сервера могут свободно обмениваться, перезаписывать и удалять файлы друг друга без каких-либо конфликтов.
Настройка Samba на сервере
- Повторюсь. В этой конфигурации сама samba-папка (шара) всегда от пользователя root и с правами 777.
-
Узнаем UUID диска и прописываем автомонтирование в /etc/fstab:
/dev/disk/by-uuid/ce9d1640-6523-41t1-88cc-1321ba1g2c44 /mnt/Storage ext4 defaults,nofail 0 2 -
Конфиг /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 -
Создание системного пользователя — без пароля в системе, без домашней папки и без возможности заходить на сервер по SSH, исключительно для нужд Samba:
sudo useradd -M -s /sbin/nologin smbusver -
Создание samba-пароля для этого пользователя:
sudo smbpasswd -a smbusver
Настройка Samba на клиенте
Для настройки клиента вам понадобятся утилиты работы с файловой системой CIFS, например, пакет cifs-utils в Debian/Ubuntu или Arch/Manjaro.
-
Создаем точку монтирования в домашнем каталоге текущего пользователя со стандартными правами доступа:
mkdir -p /home/kupereal/sambashare -
Чтобы не хранить сетевой пароль в открытом виде в системном файле 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 - Находим uid и gid текущего пользователя по команде id.
-
Автомонтирование шары в /etc/fstab:
//192.168.0.218/sambashare /home/kupereal/sambashare cifs user,rw,credentials=/root/.cifsmnt,uid=1000,gid=1001,nofail 0 0 -
Для проверки корректности настроек и монтирования без перезагрузки выполните команду:
sudo mount -a
