Самба линукс права доступа

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

Добрый день уважаемые форумчане.

Задача следующая: Требуется расшарить папку Films, так чтобы гость мог только читать и выполнять, а пользователь admin имел полные права. Система — Linux Mint 17.2 Rafaela.

Итак, что было предпринято:

sudo adduser admin — создал нового пользователя admin.

smbpasswd -a admin — создал самба пользователя.

smbpasswd -e admin — активировал его.

sudo gedit /etc/samba/smbusers добавил строку admin = admin

sudo chmod 775 -R /data3/Films — установил права доступа на папку Films.

Рестартнул самбу sudo service smbd restart. Также пробовал рестартить комп.

Клиентский компьютер — Win 7.

В результате: если проходить аутентификацию под пользователем admin то мы имеем полные права и всё хорошо, а вот под гостем(без аутентификации) шару видим, а заходить не хочет.

Подскажите, пожалуйста, где я ошибся?

После попытки захода на шару как гость, введя в виндовой cmd команду net use я вижу что к шаре я подключен, т.е. аутентификацию как гость прошёл. Значит надо копать в сторону прав доступа?

Обнаружил, вот что: если к шаре дописать force user = root, то на шару как гость заходит, но с полными правами доступа к папке. А при прописании к примеру force user = plex (доступ только на чтение и выполнение) на шару заходить перестаёт и даёт то же сообщение, что и выше на скрине.

Источник

Как Samba формирует права на создаваемые в шаре файлы/каталоги?

[ 1. ДАНО ]
Домашняя ЛВС.
Сервер — Ubuntu Server 16.04.1 и Samba 4.3.11.
Клиенты — Win7Pro (учётка amok — в Самбе/Убунте есть), WinXP (учётка XPMUser — в Самбе/Убунте отсутствует).

[ 2. ЗАДАЧА ]
Сделать общедоступную шару для win-клиентов с полным беспределом: все могут всё (создавать файлы и каталоги любого уровня вложенности, удалять всё, запускать *.exe).

[ 3. ЧТО СДЕЛАНО ]
Создал каталог /usr/local/samba_shara, сменил пользователя/группу на nobody/nogroup и выставил ему права 0777.

  1. Создаю с win-клиента известной Самбе учёткой amok в шаре новый файл и каталог
  2. Копирую с win-клиента известной Самбе учёткой amok в шару существующий файл и каталог
  3. Создаю с другого win-клиента не известной Самбе учёткой XPMUser в шаре новый файл и каталог
  4. Копирую с другого win-клиента не известной Самбе учёткой XPMUser в шару существующий файл и каталог

Как видно, в требуемые 0777 попадают не все файлы/каталоги! Более того, для каталогов с точки зрения итоговых прав доступа есть разница кто их создаёт/копирует — amok или XPMUser! Но и это не всё — Самба ещё умудряется различать скопированный и созданный именно amok’ом файлы.

При создании amok‘ом нового файла в шаре из лога /var/log/samba/log.MACHINE удалось выудить это:

При создании amok‘ом нового каталога в шаре из лога /var/log/samba/log.MACHINE удалось выудить это:

  1. Почему несмотря на заданную опцию force user права доступа вновь создаваемых файлов/каталогов зависят от того, из-под какой именно win-учётки их создают?
  2. Каков алгоритм формирования итоговых прав вновь создаваемых в шаре Самбы файлов/каталогов (где задаются и от чего зависят изначальные права; количество и порядок наложения масок самой Самбы на эти права; участвует ли тут файловая система Убунты со своим umask, если да, то на каком этапе; участвует ли клиентская Windows)? Почему при заданных опциях «force create mode = 0777» и «force directory mode = 0777» итоговые права отличны от 0777?
  3. Где найти свежий/нормальный/с_примерами список-описание опций smb.conf (ru/eng)? Этот видел.

Помогите, пожалуйста, решить данную, как мне сначала казалось — простейшую, задачу. Без нормальной теоретической подготовки я могу ещё долго безрезультатно проводить натурные эксперименты и заниматься хернёй высчитывая от балды побитово права и umask’и 🙁

Читайте также:  Драйвер для руля genius twinwheel 900ff для windows 10

P. S. Был удивлён, что log level = 10 Самбы стабильно «вешает» tail -f 🙂

Источник

Установка и настройка файлового сервера Samba на Ubuntu

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

Подготовка сервера

1. Время

Для корректного отображения дат, необходимо позаботиться о синхронизации времени. Для этого будем использовать демон chrony. Установим его:

apt-get install chrony

Разрешим автозапуск сервиса:

systemctl enable chrony

2. Брандмауэр

По умолчанию, в системах на базе Debian брандмауэр разрешает все соединения. Но если в нашем случае мы используем брандмауэр, необходимо открыть порты:

iptables -I INPUT -p tcp —dport 445 -j ACCEPT

iptables -I INPUT -p udp —dport 137:138 -j ACCEPT

iptables -I INPUT -p tcp —dport 139 -j ACCEPT

* где порт 445 используется для samba, а порты 137, 138 и 139 — для работы NetBIOS (использование имени компьютера для доступа).

apt-get install iptables-persistent

Установка и запуск Samba

Установка выполняется из репозитория одной командой:

apt-get install samba

Разрешаем автостарт сервиса:

systemctl enable smbd

И проверим, что сервис запустился:

systemctl status smbd

Проверяем, что сервер самба позволяет к себе подключиться. Для этого можно с компьютера обратиться к серверу по SMB, например, на компьютере с Windows это можно сделать из проводника, прописав путь к серверу с двух слэшей:

* в данном примере мы подключаемся к серверу Samba с IP-адресом 192.168.1.15.

Если мы настроили сервер правильно, система откроет пустую папку. На данном этапе проверка закончена и мы можем переходить к созданию первой шары.

Создание первой шары и предоставление к ней гостевого доступа (анонимного)

Разберем самый простой пример предоставления доступа к папке — анонимный доступ всем пользователям без запроса пароля.

Открываем на редактирование конфигурационный файл samba:

И добавляем настройку для общей папки:

[Общая папка]
comment = Public Folder
path = /data/public
public = yes
writable = yes
read only = no
guest ok = yes
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777

  • [Общая папка] — имя общей папки, которое увидят пользователи, подключившись к серверу.
  • comment — свой комментарий для удобства.
  • path — путь на сервере, где будут храниться данные.
  • public — для общего доступа. Установите в yes, если хотите, чтобы все могли работать с ресурсом.
  • writable — разрешает запись в сетевую папку.
  • read only — только для чтения. Установите no, если у пользователей должна быть возможность создавать папки и файлы.
  • guest ok — разрешает доступ к папке гостевой учетной записи.
  • create mask, directory mask, force create mode, force directory mode — при создании новой папки или файла назначаются указанные права. В нашем примере права будут полные.

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

mkdir -p /data/public

chmod 777 /data/public

Применяем настройки samba, перезагрузив сервис:

systemctl restart smbd

Пробуем подключиться к папке. Мы должны зайти в нее без необходимости ввода логина и пароля.

Доступ к папке по логину и паролю

Теперь создадим каталог, в который вход будет разрешен только авторизованным пользователям.

Открываем конфигурационный файл samba:

Добавляем настройку для новой папки:

[Папка сотрудников]
comment = Staff Folder
path = /data/staff
public = no
writable = yes
read only = no
guest ok = no
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777

* эти настройки, во многом, похожи на те, что использовались в примере выше. Вот основные различия:

  • path = /data/staff — используем новый путь до папки.
  • public = no — запрещаем публичный доступ.
  • guest ok = no — не разрешаем гостевое подключение.

Создаем каталог для новой папки:

Читайте также:  Now close all the windows

Задаем права на созданный каталог:

chmod 777 /data/staff

Создаем пользователя в системе Linux:

* где staff1 — имя пользователя.

Задаем пароль для пользователя:

Теперь создадим пользователя в samba:

smbpasswd -a staff1

systemctl restart smbd

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

Если мы авторизованы на компьютере, с которого пытаемся подключиться к серверу, под той же учетной записью, что создали для доступа к папке, samba может и не потребовать аутентификации.

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

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

Открываем конфигурационный файл samba:

Добавляем настройку для новой папки:

[Приватная папка]
comment = Private Folder
path = /data/private
public = no
writable = no
read only = yes
guest ok = no
valid users = admin, staff2, staff3, @privateusers
write list = admin, staff2
create mask = 0777
directory mask = 0777
force create mode = 0777
force directory mode = 0777
inherit owner = yes

* стоит обратить внимание на следующие настройки:

  • path = /data/private — используем новый путь до папки.
  • writable = no и read only = yes — в данном примере мы разрешим запись в каталог только некоторым пользователям. Поэтому общие настройки, разрешающие запись в папку, должны быть запрещены.
  • valid users — список пользователей, которым разрешено подключаться к каталогу. В данном примере разрешения работают для пользователей admin, staff2 и staff3, а также для всех, кто входим в группу privateusers.
  • write list — список пользователей, которые имеют доступ к папке на чтение и запись. В данном примере мы разрешаем это только для пользователей admin и staff2.
  • inherit owner — опция позволяем включить наследование владельца при создании папок и файлов.

* если мы хотим, чтобы доступ к каталогу был полный у определенных пользователей (без разделения на тех, кто может только читать и тех, кто может также писать в папку), то опцию write list можно не указывать, а опции writable и read only оставить как в примерах выше.

Источник

Самба линукс права доступа

В предыдущей статье мы связывали файловый сервер Samba с доменом FreeIPA. Мы развернули и настроили доступ на общие файловые ресурсы с авторизацией пользователей как из домена FreeIPA, так и из доверенного домена Active Directory. Теперь нам нужно создать структуру общего файлового каталога и разграничить доступ на каждую папку в соответствии с правилами, принятыми в организации. Работы будут проводиться на сервере с установленной ОС Rosa Cobalt (он же CentOS7, он же RedHat 7).

Вводные данные.

Перед нами стоит задача: создать структуру общего файлового каталога и разграничить доступ к каталогам в соответствии с принятыми правилами. У нас уже установлен сервер 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 — группа, в которую входят учетные записи администраторов файлового сервера. Т.е. эти пользователи будут иметь полный доступ во все подкаталоги общего файлового ресурса, а также смогут добавлять или удалять объекты (папки) в корневом общего файлового ресурса.
Читайте также:  Z3x drivers windows 10

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

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

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

  • Директива 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 — устанавливает права для вновь создаваемых папок

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

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

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

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

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

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

Источник

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