Samba linux valid users

Разграничение прав доступа на файловом сервере Samba

Перед нами стоит задача: создать структуру общего файлового каталога и разграничить доступ к каталогам в соответствии с принятыми правилами. У нас уже установлен сервер FreeIPA, поэтому все пользователи и группы будем брать из базы FreeIPA.

Будем разворачивать следующую структуру:

  • FS_share — общая точка входа на файловом сервере, содержащая папкаи подразделений организации.
  • Unit1 — папка первого подразделения
  • Unit2 — папка второго подразделения.
  1. Все пользователи организации должны видеть структуру каталога.
  2. Пользователи первого подразделения должны работать в каталоге Unit1, но не иметь доступ к каталогу второго подразделения.
  3. Пользователи второго подразделения должны работать в каталоге Unit2, но не иметь доступ к каталогу первого подразделения.
  4. Администраторы файлового сервера должны иметь доступ ко всем каталогам файлового сервера.

Добавляем группы в каталоге FreeIPA.

Для организации доступа к папкам по вышеописанному сценарию нам необходимо в домене FreeIPA создать четыре группы:

  1. fs-users — группа, члены которой имеют доступ к корневому каталогу файлового ресурса. В нее добавим встроенную группу ipausers и ранее созданную внешнюю группу, в которую входят пользователи доверенного домена Active Directory. Т.е. доступ на просмотр корневого каталога файлового ресурса будут иметь все пользователи домена FreeIPA и пользователи доверенного домена Active Directory.
  2. unit1 — группа, в которую входят учетные записи первого подразделения.
  3. unit2 — группа, в которую входят учетные записи пользователей второго подразделения.
  4. fs-admins — группа, в которую входят учетные записи администраторов файлового сервера. Т.е. эти пользователи будут иметь полный доступ во все подкаталоги общего файлового ресурса, а также смогут добавлять или удалять объекты (папки) в корневом общего файлового ресурса.

Конфигурация Samba.

Открываем файл /etc/samba/smb.conf и вносим изменения в раздел, описывающий общие ресурсы. Раздел global сейчас не рассматриваем, т.к. мы его уже настроили.

[FS_Share] comment = Test share on FS server path = /opt/share writeable = yes browseable = yes valid users = @fs-users write list = @fs-users admin users = @fs-admins guest ok = No create mask = 0660 force create mode = 0110 directory mask = 0770 [Unit1] comment = Папка первого подразделения path = /opt/share/Unit1 browseable = no valid users = @unit1 write list = @unit1 guest ok = No force group = +unit1 [Unit2] comment = Папка второго подразделения path = /opt/share/Unit2 browseable = no valid users = @unit2 write list = @unit2 guest ok = No force group = +unit2

Немного расшифруем директивы:

  • Директива force create mode = 0110 необходима для того, чтобы дополнтельно выставить на вновь создаваемые файлы executable бит для владельца и группы, который не выставляется директивой create mask. Директива force create mode действует по принципу ИЛИ с основной маской доступа, и выставляет бит в том случае, если он не выставлен директивой create mask.
  • Директива force group = +группа запрещает доступ к папкам всем, кто не входит в эту подгруппу. Текущий пользователь, обращающийся к общему ресурсу имеет только первичное значение по умолчанию группы, назначенное на эту группу. Это позволяет администратору решать, что только пользователи, которые уже находятся в специфической группе, создадут файлы с монопольным использованием группы, установленным на эту группу. Это дает более тонкую степень детализации назначения монопольного использования. Кроме того, это определяет имя группы UNIX, которое будет назначено как первичная группа по умолчанию для всех пользователей, соединяющихся с этим сервисом.
    Это полезно для того, чтобы совместно использовать файлы, гарантируя, что весь доступ к файлам этого сервиса будет использовать названную группу для проверки их разрешений. Таким образом, назначая разрешения для этой группы к файлам и каталогам в пределах этого сервиса администратор Samba может ограничить или позволить совместно использовать эти файлы.
  • Директива browsable = no вообще скрывает подпапки из прямой видимости извне. Поэтому, когда вы просматриваете сетевое окружение с других компьютеров, вы увидите только папку FS_Share .
  • valid users — список пользователей, которым разрешен доступ к сервису. Имена, начинающиеся с ‘ @ ’, ‘ + ’ и ‘ & ’ интерпретируются согласно некоторым правилам и не действительны в имени пользователя.
    Если значения параметра не определено, то все пользователи могут подключаться. Если имя пользователя находится одновременно и в этом списке и в списке invalid users list тогда, доступ для него к сервису будет запрещен. Потоком servicename заменяют для %S . Для секции [homes] полезно использование %S для подстановки имени пользователя.
  • write list — параметр определяет список пользователей имеющих доступ к сервису на чтение/запись. Если соединяющийся пользователь находится в этом списке тогда, он получит доступ на запись независимо от того установлен ли параметр read only (только чтение). Список может содержать названия группы, используется синтаксис @group . Заметьте что если пользователи одновременно находятся в списке только для чтения и в списке на чтение запись они получат доступ и на запись.
  • guest ok — если этот параметр задан в yes на общем ресурсе, то для подключения к ресурсу не требуется пароль. По умолчанию установлен в » No «
  • create mask — устанавливает права для вновь создаваемых файлов
  • directory mask — устанавливает права для вновь создаваемых папок
Читайте также:  Virtualbox linux driver dkms

Права в подпапки Unit1 и Unit2 наследуются от вышестоящей папки ( FS_Share )/ Их задавать в соответствующих разделах не нужно. Более того, если их явно указать в этих разделах, то они игнорируются.

Создаем структуру файлового ресурса и раздаем права.

Для начала необходимо создать структуру папок в корневом каталоге, соответствующую той, которая описана в файле /etc/samba/smb.conf .

# mkdir /opt/share # mkdir /opt/share/Unit1 # mkdir /opt/share/Unit2

Затем назначаем владельцев папок и назначаем права доступа:

# chown root:unit1 /opt/share/Unit1 # chmod 2770 /opt/share/Unit1 # chown root:unit2 /opt/share/Unit2 # chmod 2770 /opt/share/Unit2
  • По умолчанию владельцем владельцем корневой папки share является пользователь root . Оставляем этот параметр без изменения.
  • Владельцами папок Unit1 и Unit2 делаем соответствующие группы пользователей.
  • Права 2770, выставленные на папки Unit1 и Unit2 гарантируют, что все файлы и подпапки, находящиеся в них, будут всегда создаваться с соответствующими подгруппами этих родительских папок, что предоставляет пользователям подгрупп полный доступ к любым документам и подпапкам, даже если они созданы другими пользователями.

В итоге в данной конфигурации мы полностью решили поставленную перед нами задачу.

Источник

Настройка Samba

Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше — используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи.

  • Что такое Samba?
  • Как настроить общую папку
  • Как настроить общую папку в Linux
  • Как настроить общую папку в Windows
  • Как подключиться к общей папке
  • Как подключиться к общей папке Linux
  • Как подключиться к общей папке Windows
  • Как создать общий сетевой ресурс в Samba
Читайте также:  Hydra kali linux ssh

Что такое Samba?

Samba — серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.

Описание структуры Samba

Настройка общих папок

Linux

Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.

Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:

Устанавливаем пакет Samba:

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

Создадим директории для файлов, например в каталоге /media:

Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.

Создаем каталог для всех пользователей:

Изменим права доступа к каталогу:

Также следует воспользоваться командой chown для смены владельца и/или группы.

Создаем директорию для ограниченного круга лиц:

С помощью системных инструментов создадим группу пользователей:

Добавляем пользователей Samba:

Созданных пользователей добавляем в группу:

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

С помощью инструментов Samba создадим пароль для добавленного пользователя:

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

Удаляем все строки из файла. Вставляем следующие:

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

Сохраняем используя сочетание Ctrl + X, затем нажимаем Y и Enter.

Объясним значения строк. конфигурационный файл состоит из трех секций:

global — данная секция отвечает за общие настройки Samba-сервера;

public и private — секции описания настроек директорий общего доступа.

В секции global присутствуют пять параметров:

  • workgroup — рабочая группа. Для упрощения работы пользователей WORKGROUP указывается, как группа по умолчанию. Если в вашей сети имя рабочей группы изменено, то следует изменить это значение и для Samba;
  • security — уровень безопасности сервера. Значение user означает авторизацию по паре логин/пароль;
  • map to guest — параметр определяет способ обработки запросов. Значение bad user означает, что запросы с неправильным паролем будут отклонены, даже если такое имя пользователя существует;
  • wins support — включить или выключить поддержку WINS;
  • dns proxy — возможность проксирования запросов к DNS.
Читайте также:  Linux команда изменения файла

Настройки директорий выполняются в соответствующих секциях:

path — полный путь до директории на жестком диске;

guest ok — возможность доступа к каталогу без пароля (гостевой);

browsable — показывать ли каталог (“шару”) на сервере среди прочих. Если параметр установлен как “no”, то доступ будет возможен по полному пути, например ip-addresshidden_directory;

force user — пользователь от которого ведется работа с каталогом. Для повышения безопасности сервера, обычно используют nobody. Главное, не использовать пользователя root — это небезопасно.

writable — установка значения как “yes” позволяет пользователю выполнять действия над файлами внутри каталога — переименование, добавление, удаление, перемещение в подкаталог и копирование;

valid users — список пользователей у которых есть доступ к каталогу. Если пользователей несколько, их имена указываются через запятую. Если необходим доступ для пользователей принадлежащих группе, перед именем группы устанавливается символ ”at” @ (“собака”).

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

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

Источник

Оцените статью
Adblock
detector