Samba. Управление доступом.

В сегодняшней статье рассмотрим установку и настройку файлового сервера SAMBA на нашем сервере Ubuntu.

Cетевой обмен по протоколу SMB / SAMBA

Одним из способов доступа с STB к файлам, расположенным на сетевых компьютерах, является протокол общего доступа SMB, который является стандартным протоколом Microsoft Windows и обеспечивает функции «Сети Microsoft Windows» и «Совместного использования файлов и принтеров» . Samba – свободная реализация протокола SMB для UNIX-подобных и других операционных систем.

Применение протоколов SMB / Samba позволяет осуществлять доступ с STB (работает под управлением ОС Linux) к папкам и файлам, расположенным на сетевых компьютерах (работающих под управлением ОС Linux, Windows и др.). Таким образом, пользователи STB получают возможность проигрывать на STB медиа-файлы (видео, аудио, изображения), которые расположены на сетевых компьютерах, работающих под управлением одного из типов ОС, поддерживающей протокол SMB.

Протокол SMB / Samba является прикладным протоколом (в терминах сетевой модели OSI). Для обмена данными используется транспортный протокол TCP/IP. Протокол SMB / Samba использует архитектуру клиент – сервер: в качестве сервера выступает ПК, на котором размещаются определенные сетевые ресурсы (папки) с медиа-файлами, в качестве клиента – STB, с которого медиа-файлы проигрываются.

Сетевые ресурсы (в виде ярлыков) отображаются в STB, в меню Home media, в соответствии со стандартной сетевой LAN-архитектурой ОС Windows: Сеть / Рабочая группа / Компьютер / Папка.

По умолчанию, доступ к ресурсам компьютера закрыт настройками на стороне компьютера. При необходимости получить доступ к определенной сетевой папке, пользователь компьютера открывает доступ к этой папке. Для управления доступом к папкам используется процедура ОС Windows "Общий доступ к файлам".

Предусмотрены два типа сетевого доступа к папкам (тип доступа определяется на стороне сервера):

  • по паролю – для доступа к сетевой папке со стороны STB используется процедура Авторизации (необходимо ввести имя (login) определенного пользователя компьютера и его пароль (password);
  • без пароля – доступ к сетевой папке открыт для всех пользователей, без необходимости вводить пароль.

Обнаружение общих сетевых ресурсов на стороне STB происходит автоматически (если это не запрещено на стороне компьютера или кроме случаев, связанных с некорректной работой сети). Соединение с сетевой папкой устанавливается, когда пользователь STB открывает сетевую папку. Если используется доступ к папке по паролю, пользователю выдается запрос указать login и password.

Читайте также:  watchOS 7: все, что нужно знать о новой ОС от Apple

Также предусмотрена возможность ручного подключения сетевых папок (если они не были обнаружены автоматически). Настройка и доступ к ресурсам сети по протоколу SMB / Samba на STB проводится в меню Home media.

Ниже рассмотрен пример, как подключить сетевую папку ПК с ОС Windows 10 для воспроизведения медиа-файлов с STB.

Создание Пользователей Samba

Для создания нового пользователя myuser используйте следующую команду:

sudo useradd -M -d /samba/myuser -s /usr/sbin/nologin -G sambashare myuser

  • -M — не создавайте домашний каталог пользователя. Мы создадим этот каталог вручную.
  • -d /samba/myuser — установите домашний каталог пользователя /samba/myuser.
  • -s /usr/sbin/nologin — отключить доступ к оболочке для этого пользователя.
  • -G sambashare — Добавить пользователя в sambashare группу.

Если необходимо добавить пользователя в группу sudo, то набираем следующую команду:

sudo usermod -a -G sudo myuser

Создадим домашний каталог пользователя и назначим владельца каталога myuser и группа sambashare:

sudo mkdir /samba/myusersudo chown myuser:sambashare /samba/myuser

Следующая команда добавит бит setgid в /samba/myuser каталог, чтобы вновь созданные файлы в этом каталоге унаследовали группу родительского образом, независимо от того, какой пользователь создает новый файл, файл будет иметь владельца группы sambashare.

sudo chmod 2770 /samba/myuser

Добавьте myuserучетную запись пользователя в базу данных Samba, установив пароль пользователя:

sudo smbpasswd -a myuser

Вам будет предложено ввести и подтвердить пароль пользователя.

New SMB password: Retype new SMB password: Added user myuser.

После установки пароля запустим нашего пользователя:

sudo smbpasswd -e myuser

Enabled user myuser.

Вот теперь можно пользоваться нашим файловым хранилищем. Открываем сетевое окружение и ищем наш новый сервер:

Как видите, там появился компьютер SAMBA. Мы прописали это имя в разделе Global, в параметре netbios name. Далее дважды кликаем по имени этого компьютера и попадаем в список доступных ресурсов. Так как мы сделали только один, под названием music, то его и наблюдаем.

Для того, что бы у нас было несколько ресурсов, нужно скопировать раздел music и назвать его как-то иначе. Для каждого такого ресурса можно индивидуально назначать параметры: путь, доступ и прочее.

Если есть вопросы, то пишем в комментариях.

Также можете помочь проекту, заранее всем СПАСИБО!!!

Пожертвовать

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Послесловие

Директивы

  • # create mask — маска прав для файлов в текущей директории
  • # comment — описание
  • # directory mask — маска прав для самой директории, которая может определять такой параметр, как разрешение на создание каталога в текущем каталоге для удаленного пользователя или отсутствия такого.
  • # workgroup — это имя вашей сети, должно быть одинаковым для всех компьютеров, как рабочая группа в Windows
  • # netbios name — имя вашего компьютера в сети, сделайте всем машинам уникальное, как имя компьютера в Windows
  • # server string — описание компьютера, аналог подобного значения в Windows.
  • # security — определяет доступ к расшариваемым каталогам.
  • # browseable — хотите ли Вы сделать доступными все подкаталоги расшариваемого каталога. Этот параметр также можно использовать отдельно для каждого расшариваемого каталога.
  • # path — путь до расшариваемой папки. В данном конкретном примере будут расшарены домашняя папка пользователя shara и домашняя папка пользователя video
  • # comment — комментарий
  • # readonly — только для чтения
  • # hosts allow = — дать доступ только определенным хостам
  • # writeable = — аналогично read only, Вы можете запретить запись или разрешить
  • # valid users = — этот параметр определяет пользователей которые будут иметь доступ к серверу или папке
  • # force user = — это аналогичная команда
  • # force group = — аналогично для группы
Читайте также:  Apple выпустила седьмую бета-версию iOS 12.4 для разработчиков

Права

Обратите внимание, что Samba может ограничить права пользователя, но не может расширить права, заданные системой. То есть, если на расшариваемом каталоге не стоят права на запись для всех в самой системе, Samba не сможет разрешить запись в него сторонним пользователям. Однако если на каталоге стоят права 777, то задав параметр readonly = Yes Вы сможете ограничить доступ на запись для пользователей, подключающихся из сети.

В SAMBA так много настроек, что рассмотрение подробно каждого отдельного случая, достойно отдельной статьи. Здесь же я описал, самые распространенные примеры использования SAMBA как дома так и в малом офисе.

Настройка файлового сервера в локальной сети на Windows/Linux

В инструкции описан процесс настройки общего файлового сервера для всех пользователей локальной или виртуальной сети с операционными системами Linux и Windows.

Что это такое?

Файловый сервер работает по протоколу SMB/CIFS и позволяет предоставить доступ к общим ресурсам в локальной сети, например, текстовым файлам или сетевым принтерам. Для его развертывания на Windows используются штатные средства ОС, на Linux используется файловый сервер Samba.

В инструкции рассмотрена настройка файлового сервера на серверах с операционными системами Linux и Windows. На сервере будет находиться 2 каталога — публичный и приватный. К файловому серверу подключение будет происходить как с операционной системы Windows, так и с Linux, т.к. в виртуальной или физической локальной сети могут находиться серверы с разными ОС.

Создание и настройка частной сети

Для начала в панели управления должны быть созданы все необходимые для сети серверы.

Читайте также:  iPhone 5s на iOS 13: поддерживается или нет?

После создания необходимо объединить все машины в единую локальную сеть через панель управления в разделе Сети. В результате серверы получат локальные IP-адреса.

После создания частной сети необходимо настроить сетевые адаптеры на каждом сервере. Об этом можно прочитать в наших инструкциях:

Настройка файлового сервера

Прежде всего, необходимо определиться, на сервере с какой операционной системой будет находиться общий каталог.

Настройка файлового сервера на Linux (Debian/Ubuntu)

Для развертывания файлового сервера на системах Linux используется инструмент SAMBA. Ниже перечислены действия по его установке и настройке.

Прежде всего следует обновить локальную базу пакетов:

apt-get update

Далее установите пакеты из главного репозитория:

apt-get install -y samba samba-client

Создайте резервную копию файла конфигурации Samba:

cp /etc/samba/ /etc/samba/

Создайте или выберете директорию, к которой все пользователи будут иметь общий доступ:

mkdir -p /samba/public

Перейдите к этому каталогу и измените режим доступа и владельца:

cd /samba chmod -R 0755 public

Создайте или выберете каталог, к которому иметь доступ будут ограниченное число пользователей:

mkdir /samba/private

Настройка файлового сервера в локальной сети на Windows/Linux

Создайте группу пользователей, которые будут иметь доступ к приватным данным:

groupadd smbgrp

Создайте нужных пользователей с помощью команды useradd:

useradd user1

Добавьте созданных пользователей в группу:

usermod -aG smbgrp user1

Измените группу, которой принадлежит приватная директория:

chgrp smbgrp /samba/private

Задайте пароль, с помощью которого пользователь будет подключаться к каталогу:

smbpasswd -a user1

Откройте файл конфигурации на редактирование с помощью текстового редактора, например nano:

nano /etc/samba/

Замените содержимое файла на следующие строки:

[global] workgroup = WORKGROUP security = user map to guest = bad user wins support = no dns proxy = no [public] path = /samba/public guest ok = yes force user = nobody browsable = yes writable = yes [private] path = /samba/private valid users = @smbgrp guest ok = no browsable = yes

writable = yes

Сохраните внесенные изменения, нажав CTRL+X, затем Enter и Y.

Значения параметров выше:

Проверить настройки в можно с помощью команды:

testparm -s

Чтобы изменения вступили в силу, перезапустите сервис:

service smbd restart

Далее нужно настроить firewall, открыв порты, которые использует SAMBA. Настоятельно рекомендуем разрешить только подключения из локального диапазона IP-адресов или виртуальной частной сети. Адресное пространство вашей частной сети вы можете увидеть в панели управления 1cloud.

Замените значение параметра –s в правилах ниже для соответствия адресному пространству вашей частной сети. Как правило префикс сети /24, если вы явно не подразумеваете иного: