From 0bee76e02b4e9f98b2400afbc5b8b725e7536fd5 Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Thu, 9 Jun 2022 15:23:53 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20samba=20=D0=BC=D0=B0=D0=BD=D1=83=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manuals/README.md | 3 +- manuals/src/samba.md | 152 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 154 insertions(+), 1 deletion(-) create mode 100644 manuals/src/samba.md diff --git a/manuals/README.md b/manuals/README.md index a8298fd..1eb6c51 100644 --- a/manuals/README.md +++ b/manuals/README.md @@ -1,3 +1,4 @@ # Мануалы -## [initrd (Initial RAM Disk)](src/initrd.md) \ No newline at end of file +## [initrd (Initial RAM Disk)](src/initrd.md) +## [Базовая настройка подключения к серверу Samba](src/samba.md) diff --git a/manuals/src/samba.md b/manuals/src/samba.md new file mode 100644 index 0000000..8b128bf --- /dev/null +++ b/manuals/src/samba.md @@ -0,0 +1,152 @@ +# Базовая настройка подключения к серверу 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 окончена!