# Базовая настройка подключения к серверу Samba ## Установка Samba За основу примера я возьму дистрибутив [Ubuntu 20.04.2](https://releases.ubuntu.com/20.04/). Для начала необходимо установить сам сервер Samba, если он отсутствует. Обновим базы данных пакетов и произведём установку Samba: ```sh sudo apt update sudo apt install samba ``` После завершения установки служба Samba запустится автоматически. Чтобы проверить, работает ли сервер Samba, введём: ```sh systemctl status smbd.service ``` Получим ожидаемый ответ: ```sh ● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-06-18 23:03:37 MSK; 15h ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 1368 (smbd) Status: "smbd: ready to serve connections..." ... ``` ## Создание сетевой учетной записи пользователя Для подключения по сети к расшариваемому каталогу нам необходимо иметь учетную запись с нужными правами. Для начала создадим общую группу пользователей Samba, в которую далее включим нашу учетную запись: ```sh sudo groupadd smbgrp ``` Создаём нового пользователя и включаем его в вышесозданную группу (`-M` - без домашней директории, `-G` - добавляем в группу): ```sh sudo useradd -MG smbgrp smbuser ``` Зададим Samba-пароль для созданной учетной записи: ```sh sudo smbpasswd -a smbuser ``` ## Настройка расшариваемого каталога Нам необходимо будет создать каталог (или выбрать из имеющихся), который необходимо будет сконфигурировать в файле настроек сервера. Создаём каталог для общего доступа. Я буду его создавать в `/mnt`: ```sh sudo mkdir -p /mnt/share ``` Установить права на чтение/запись расшариваемого каталога (где `$USER` - текущий пользователь host-системы): ```sh sudo chown $USER:smbgrp /mnt/share sudo chmod g+ws,o-rx /mnt/share ``` Или вместо последней строки выполнить: ```sh sudo chmod 2770 /mnt/share ``` Также необходимо добавить пользователя host-системы в группу `smbgrp`, для того, чтобы на хосте можно было просматривать/редактировать файлы, загруженные пользователем `smbuser`: ```sh sudo usermod -aG smbgrp $USER ``` В результате манипуляций у нас должно получиться: ```sh drwxrws--- 2 host-user smbgrp 4096 Jun 19 11:46 share/ ``` ## Конфигурация smb.conf Файл конфигурации Samba находится в `/etc/samba/smb.conf`. Нам необходимо (на всякий случай) сделать бэкап данного файла и внести изменения в основной файл для доступа к расшариваемому каталогу. Делаем бэкап: ```sh sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak ``` Теперь редактируем файл конфигурации: ```sh sudo nano /etc/samba/smb.conf ``` Добавляем в конец файла строки: ```sh [share] path = /mnt/share valid users = @smbgrp guest ok = no browsable = yes writable = yes create mask = 2770 directory mask = 2770 ``` Сохраняем файл конфигурации и проверяем на корректность новые указанные данные: ```sh testparm -s ``` Получим ожидаемый ответ: ```sh Load smb config files from /etc/samba/smb.conf Loaded services file OK. ``` Если всё в порядке - перезапускаем службу Samba: ```sh sudo systemctl restart smbd.service ``` ## Соединение Теперь попробуем присоединиться к нашему серверу с удалённого компьютера. На host-системе должен быть открыт порт `445` для подключения к Samba. С удалённого компьютера под управлением Linux (в моём случае [Solus Budgie 4.2](https://getsol.us/2021/02/03/solus-4-2-released/)) запускаем утилиту `smbclient` и подключаемся к нашему серверу (где `-U` — наш пользователь Samba, далее следует пароль): ```sh smbclient ///share -U 'smbuser' '' ``` В моём случае: ```sh smbclient //192.168.56.104/share -U 'smbuser' 'smbuser' ``` В ответ нам прилетит приглашение Samba: ```sh Try "help" to get a list of possible commands. smb: \> ``` Теперь мы можем просматривать/редактировать файлы на нашем сервере. Базовая настройка подключения к серверу Samba окончена!