Inherit owner windows and unix

Компы и автомобили

Постановка задачи

Возникла необходимость запилить файл-сервер на Samba и дать ряду пользователей возможность рулить правами доступа на отдельные каталоги. Система — FreeBSD 10.1 amd64, файло будет лежать на ZFS. Версия Samba — 3.6.24.

Исследование задачи показало, что стандартными правами Unix (aka «Unix mode») тут не обойтись. Надо использовать расширенный набор ACL. Например, нужно, чтобы к каталогу имели доступ более одной группы, но не все группы (т. е. разрешения для other тут не прокатит). Ну и на некоторые папки нужно давать доступ не отдельным группам, а прямо отдельным пользователям.

Общие сведения

По дефолту, как известно, в юниксах права на файлы и каталоги расставляются по схеме «ugo» — «user-group-other»). Во фре с помощью утилиты setfacl можно задавать права по двум схемам — POSIX 1.E и NFSv4, в зависимости от файловой системы. По факту же POSIX 1.E здесь сильно редуцирован — до этой самой схемы ugo. Тогда как в действительности POSIX 1.E слегка побогаче (подробности можно вкурить отсюда). Как гласит man setfacl:

The access permissions field contains up to one of each of the following: ‘r’, ‘w’, and ‘x’ to set read, write, and execute per‐ missions, respectively. Each of these may be excluded or replaced with a ‘-’ character to indicate no access.

Что в переводе означает: «Поля с разрешениями содержат букавки r, w или x для чтения, записи или выполнения соответственно».

Но это всё нам не очень интересно, так как у нас ZFS, а на ZFS ACL по умолчанию соответствуют схеме NFSv4.

Тюнинг ZFS

Поэтому прежде чем заюзать всю эту красоту с крутыми ACL на ZFS, необходимо ZFS слегка потюнить. А именно, проделать такое:

В данном случае storage0 — это имя моего ZFS-пула

zfs set aclmode=passthrough делает так, что если над папкой выполняется chmod, то при наличии у папки расширенных ACEs (access control entries) (расширенные — это те, которые помимо стандартных @owner, @group, @other), то эти ACL при этом НЕ ИЗМЕНЯЮТСЯ.

Также там есть режимы:

  • discard — т. е. никаких ACL сверх стандартного unix mode сохраняться не будет;
  • groupmask — новые ACL по итогу будут выставляться так, чтобы они не превышали тех, которые принадлежат @group, за исключением случая, если UID пользователя в ACL совпадает с UID владельца каталога или файла. В этом случае выставляются права не выше, чем у владельца файла. Пока даже не могу предположить, для чего такой режим может использоваться.

Если коротко, то zfs set aclinherit=passthrough необходима, для того, чтобы ACL свежесоздаваемых файлов и каталогов наследовались от каталога, в котором они создаются. Есть ещё режим passthrough-x — то же самое, что passthrough, только бит «executable» выставляется только в случае, если создающее файл приложение явным образом требует у создаваемого файла выставить бит «executable». Подробности можно вкурить тут.

Правка прав доступа из винды

В условиях задачи была заявлена необходимость дать некоему пользователю возможность управления доступом на каталоги в расшаренных папках. Причём от тонкостей командной строки пользователь бесконечно далёк, но может пользоваться виндовым диалогом прав доступа (который в свойствах папок или файлов в винде на вкладке «Безопасность» находится).

Поэтому устанавливаем владельца всех папок в шаре на определённый аккаунт, который будет админским. Допустим, это будет учётка i.ivanov. Тогда делаем так:

Первый find выставляет права full_set (это сокращение на «Полный доступ») на каталоги, а второй find — на файлы. Два find необходимы потому, что в синтаксисе команды setfacl при установке прав на каталог есть ещё модификатор «:fd:». Он означает, что права нижележащих каталогов должны наследоваться от вышестоящих. У файлов такого модификатора нет (т. е. в ACL на файлы он не предусмотрен). Если попытаться задать права на файл в формате -m u:i.ivanov:full_set:fd:allow, то setfacl выдаст ошибку.

Далее нам надо замапить группы Unix на группы в Samba. Если этого не сделать, то в диалоге «Безопасность» на винде будут видны пользователи файл-сервера (их отдаёт Самба), но не будет видно групп. Если же назначить группу руками через setfacl, то группа будет видна как «Unix Group\unixgroup»:

Но из виндового диалога добавить юниксовые группы не удастся — их там просто не видно. Чтобы они стали видны в этом диалоге, необходимы дополнительные телодвижения. Допустим, у нас есть на файл-сервере группы buhgalteria, common, engineers и bosses. Чтобы эти группы стали видны на Windows, делаем так:

И после этого в диалоге добавления прав будут присутствовать соответствующие группы. Обращаю внимание, что если имена групп NT у вас на русском, то добавлять их в маппинг надо в кодировке UTF-8.

Настройка собственно Samba

Отключаем маппинг атрибутов DOS в файлах на exec-биты и включаем хранение атрибутов DOS в виде дополнительных файлов с атрибутами. Это не обязательно, просто меня бесит, что свеже-создаваемые в SMB-шарах файлы имеют атрибут «исполняемых» при просмотре прямо в консоли сервера. Это криво и несекурно — мало ли, кто там чо зальёт.

# Disable mapping DOS bits
map hidden = no
map system = no
map archive = no

# Use extended attributes to store file modes
store dos attributes = yes

Отключаем unix extensions (они нужны для того, чтобы Самба могла работать с расширениями CIFS от HP — там можно реализовывать симлинки, хардлинки и прочее. Эти расширения могут использовать разные другие SMB-клиенты, но винда их не поддерживает. Клиенты у нас в основном на винде — поэтому unix extensions нам ни к чему. Также выставляем параметры наследования и режима обработки ACL:

  • nt acl support — включает режим маппинга NT-like ACL на ACL файловой системы;
  • inherit acls — включает режим наследования ACL от каталога, в котором создаются новые файлы и каталоги. Без этого параметра дополнительные ACL не будут наследоваться для новых файлов, будут наследоваться только unix mode разрешения;
  • inherit owner — включает режим наследования владельца каталога, в котором создаётся файл. Без этого параметра владельцем будет становиться тот пользователь, который этот файл создаёт. В рамках нашей задачи наследование требуется, поэтому включаем;
  • inherit permissions — включает наследование unix mode разрешений;
  • map acl inherit — Самба будет мапить флаги «наследовать права от родительского каталога» в NT acls на файловую систему.
Читайте также:  Отсутствует индекс производительности windows

И в настройках шары делаем так:

На этом, собственно, всё. А теперь — дискотека! 🙂

SAMBA спрашивает логин и пароль при доступе по сети (еще раз, сори)

Всем огромный привет! У меня CentOS 8 поставил sambу… конфиг:

что не так не пойму, до этого ставил и на ура … может мой конфиг не айс?

Например, нужные пользователи (в т.ч. nobody), не заведены на бэкенде утилитой smbpasswd.

Также у опубликованных директорий могут быть неверные «локальные» права.

Проблемы с форматированием кода.

нужные пользователи (в т.ч. nobody), не заведены на бэкенде >утилитой smbpasswd

Уважаемый, NDfan , а как это сделать? Ни разу не делал и не в одном мане не находил

smbpasswd -a nobody smbpasswd -e nobody

Если нужен гостевой доступ попробуй так

и всеравно не пускает

А подключение производится с чего?

с Windows 7 по сети

В настройках общего доступа случаем не включен доступ с парольной защитой?

На компе с самбой выполни

а правильный синтаксис, уважаемый?

Сори ключ -L забыл

после ребута, вообще перестало пускать ((( а, вообще, это нормально:

нет, сори, по имени компьютера, а по IP все норм — также не пускает без пароля какого-то))))

Пальцем в небо, закоменьть server min protocol = NT1

не изменилось, зато по netbios name стало пускать с запросом опять логина и пароля ( до этого вообще не пускало)

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

А это значит, что весь массив параметров просуммировался с [global] (см. вывод своего testparm), что может приводить к неожиданному поведению.

У меня есть небольшая памятка по настройке (на основе мурзилки от Sander Van Vugt, для подготовки к сертификации по 7-й части), плюс личные модификации.

Наверное, многое можно сделать лучше, но работает штатно. Интеграция с Windows была не очень интересна, но должна частично поддерживаться (подключение к бездоменному stand-alone).

Inherit owner windows and unix

Эта статья в архиве. Новая версия доступна по адресу: http://www.lissyara.su/?id=1791

Возникла необходимость сделать в филиалы файлопомойки не на винде. Альтернатива известна — samba. Однако, было требование — на местах есть админы, и файлопомойкой должны рулить они. Галочками, из-под винды. Ибо нехорошо травмировать несчастных виндовых админов вещщами типа getfacl/setfacl. Им и так тяжело :).
На этом моменте затруднений возникло немного (собственно, на галочках — тока одно, ибо в мане по smb.conf всё хорошо написано), одно из самых главных — я не мог воткнуть машину в домен, но к делу оно отношения не имеет.
Итак. Задача — самба с галками, в домене. Поехали:

Лезет синее окошко, где выбираем такие опции:

Собственно, у вас они могут и не все быть такие, однако, из необходимых — это winbindd, поддержка ACL и AD. ПОсле инсталляции, идём ставить керберос:

Тут тоже имеем голубенькое окошко:

В нём я ничё не выбрал — у меня будет LDAP из AD, проверку паролей выполняют политики домена, а иксов на сервере отродясь не держал.
После инсталляции, рисуем конфиги:
/etc/krb5.conf

Комментарий к конфигу кербероса — у меня, с этой машины, домен пингуется и резольвится по имени:

Поэтому я указал имя домена — контроллеров три, и в случае падения какого-то — автоматически подцепится другой.
/etc/hosts

Надо заметить, что эти данные соответствуют имени хоста:

После чего, получаем билет от кербероса (в этом и следующем действии используется доменный пользователь. Иногда, его приходится указывать как lissyara@MY-DOMAIN.LOCAL — иначе не прокатывает):

И вводим машину в домен:

Можно добавлять строчку в /etc/rc.conf :

и запускать самбу:

Для вящей красоты, можно сделать так:

Вот, пожалуй и всё. Галочки прекрасно ставятся, поведение как у винды. Тока денег платить не надо, да активации не просит 🙂

P.S. Где-нить в процессе, до запуска самбы, не забываем включить ACL на самой файловой системе, где у нас шары, что-то типа такого:

P.S.2 Владельцы контроллера домена с русской виндой, скорей всего, будут летать как фанера над парижем — я слабо представляю в какой кодировке надо подсовывать юзеров в таком случае 🙂

P.S.3 Для тех кто в танке — до кучи можно выбрать фряху из под винды, через управление компьютером -> подключиться к другому. И точно как с виндой рулить подключенными юзерами и даже рестартовать сервисы.

размещено: 2007-06-15,
последнее обновление: 2008-11-11,
автор: lissyara

Kolesya, 2007-06-15 в 13:30:46

самба должна нормально пережевать .

я в консоли (кои8) пишу в smb.conf
write list = «@MY-DOMAIN\Злой перец»
и все и «@MY-DOMAIN\Злой перец» нормально шарится 🙂

s.romanov, 2007-06-15 в 13:39:10

Читайте также:  Windows server dns server cache

всё замечательно только не забываем про ограничение 256 обьектов на файл, если больше облом. В своё время из-за этого отказался от ACL, внесение изменений в исходники не помогли, может в 7-ке что-то измениться

2 Kolesya
я про chown
2 s.romanov
честно говоря, при использовании более 10 юзеров — имеет смысл пересмотреть структуру AD и заюзать группы

Kolesya, 2007-06-15 в 17:43:54

по поводу групп — согласен с Лисом на 200%.

2 lissyara
Про chown как-то не подумал, у меня юзверы все в буржуйской раскладке и таких вопросов не возникает

GR, 2007-06-15 в 19:37:56

Угу map WidowsID —> UID на каждом таком серваке будет уникальным. Увы без правки схемы AD и др. танцев с бубном красиво не лечится .

э.
и что? если имеется ввиду перенос данных — то можно перенести и /var/db/samba

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

auth/auth_util.c:create_token_from_username(1110)
sid_to_uid for administrator (S-1-22-1-10002) failed

Что делать? куда копать?

Tah, 2007-06-29 в 22:38:59

2lissyara
честно говоря, при использовании более 10 юзеров — имеет смысл пересмотреть структуру AD и заюзать группы

если быть более точным, не более 16-ти групп на обьект. И этого на самом деле более чем достаточно.

2LMik
sid_to_uid for administrator (S-1-22-1-10002)
это короткий сид, используемый для аутентификации пользователя на локальном компьютере, для аутонтификации в сети используется полный(длинный сид). А вот почему передается короткий — пока даже и не скажу. нужно в гугл

uid=10005(moro) gid=10000(domain users) groups=10000(domain users)
добавил в конфиг
winbind enum users = yes
winbind enum groups = yes
и система стала видеть все группы в которые входит юзер на PDC сервере
uid=10005(moro) gid=10000(domain users) groups=10000(domain users), 10010(domain admins), 10001(BUILTIN\administrators), 10002(BUILTIN\users)


GR, 2007-06-15 в 19:37:56

Угу map WidowsID —> UID на каждом таком серваке будет уникальным. Увы без правки схемы AD и др. танцев с бубном красиво не лечится .

лечится, использованием idmap_rid

twincode, 2007-08-14 в 10:07:40

У меня одна бага проявилась виндовые права может менять только тот кто создал ресурс. В чем может быть причина?

На самбе samba-3.0.26a_1,1 не работает наследование. Вернее, работает слишком хорошо — его нельзя галками отменить.
Нормально работает на samba-3.0.25a,1.
=============
тока что напоролся — успел обновить почти филиалы, хорошо не в один день делал.
Пришлось ресторить пакет с того который не успел обновить 🙂

skif, 2008-03-31 в 15:21:09

а тоже самое без домена кто нить делал?

simplexe, 2008-04-17 в 8:59:11

ls -la | grep вася
drwxr-xr-x 2 10051 пользователи дом 512 16 апр 09:22 вася

Anton To, 2008-05-20 в 0:49:55

Параметры create mask и directory mask можно убрать, они не работают, т.к перекрываются параметром inherit permissions = yes.

Но возможно правильней их оставить и поставить
inherit permissions = no (или удалить вообще, т.к. no — по умолчанию)

DarkHost, 2008-05-27 в 15:38:24

Гораздо интереснее была бы статья Samba + UnixACL, да еще чтобы тоже галочки. Поскольку не всем нужен DC.

Сделал всё по статье, но галочки не работали. За что боролись-то? )))
В-общем, в конфиг самбы надо добавить
nt acl support = yes
и все галочки будут работать как родные
(Исправьте конфиг, пожалста)

Хау-Ту не подразумевает отключения думалки, и тем более не отвменяет чтения документации.
Также могут быть различия между версиями самбы.

Dmitry, 2008-07-13 в 22:56:29

Юмор оценил ))
Перефразируем так — «Для версии самбы 3.0.28 в конфиг включить указанную строку» (FreeBSD 7.0, GENERIC kernel)

Добрый вечер!
В CentOS 5.2 все равно галки не работают (

Точнее они позволяют добавить ACL (юзера или группу), но при этом эти ACL наследуются вложенными объектами и там их удалить не получается. При нажатит Apply ACL восстанавливаются. Перелопатил кучу источников, ответа не нашел.

Изменения
inherit acls, inherit permissions ниче не дают. ACLки удаляются только в консоли линуха.

Система CentOS 5.2, Samba 3.0.28, Win2003R2

Если есть идеи помогите плз

1. Прочтите текст в окошке который стёрли до того как ввести сообщение.
2. Прочтите камменты к статье.
3. Подумайте.

Oloremo, 2008-09-18 в 11:56:04

Один вопрос — БЕЗ ADS ACL не работают?

ПРО ГАЛОЧКИ В WinXP pro.

Чуть не застрелил два компа (сервант и клиента).

Подключил шару Фряшную, пытался найти в свойствах права на доступ юзеров на папки. час сорок фряху пытал, проверят конфиги, прочее. пока не сообразил, что у меня на клиенте (WinXP pro) стоит галочка:

Пуск -> Настройка -> Панель управления -> Свойства папки.

Закладка «Вид» -> Убрать галочку с «Использовать простой общий доступ к файлам (рекомендуется)»

На этапе ввода домен, незнает команду net join -U подскажите где копать?

Ссылка на форум для красоты дана?
Вот по ссылке и копать.

Здравствуйте!
[2011/02/01 01:19:22, 0] smbd/service.c:191(set_current_service)
chdir (/usr/home/filez/transmission/downloads) failed
вот такая у меня проблема. на папку еще имеет права трансмиссия и периодически пропадает из общего доступа эта папка и в логах такая срочка. что делать?


2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов. 2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540 2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма 2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh 2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ 2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией. 2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat 2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp. 2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл. 2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления… 2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий. 2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp. 2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG 2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк 2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты. 2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации. 2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =) 2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы — ZFS 2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к 2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача — объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах. 2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела 2010-04-30, gonzo111
proftpd file auth&quota
Proftpd — квоты и авторизация из файлов, без использования базы данных и/или системных пользователей 2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email. 2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию… 2010-03-09, terminus
DNS zones
Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон. 2010-03-09, aspera
Squid+AD (group access)
Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы 2010-03-02, BlackCat
Шлюз: Часть 4
Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org. 2010-03-01, BlackCat
Шлюз: Часть 3
Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов. 2010-03-01, BlackCat
Шлюз: Часть 2
Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента 2010-03-01, BlackCat
Шлюз: Часть 1
Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding. 2010-02-23, Morty
darkstat
Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики 2010-01-23, gonzo111
squid+sams+sqstat
Пилим squid и sams — примеры конфигов с объяснениями. Установка SqStat. 2009-12-19, schizoid
mpd5 + radius + ng_car + Abills
Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car 2009-11-16, lissyara
UFS->ZFS
Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386. 2009-11-13, gx_ua
fusefs-ntfs
Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD 2009-11-12, Morty
LiveCD
Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД. 2009-09-27, lissyara
Samba как PDC
Контроллер домена — аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =) 2009-08-30, terminus
ipfw nat
Подробное руководство по ipfw nat, сложные случаи конфигурации. 2009-08-24, levantuev
HotSpot
Установка Hotspot системы в общественное заведение.
вверх

Читайте также:  Mac os mouse cursor
Статистика сайта
Сейчас на сайте находится: 13 чел.
За последние 30 мин было: 63 человек
За сегодня было
4332 показов,
322 уникальных IP

Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

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