MSWin2k3 + ACL + Samba 3 (Возсожности ACL у Samba в домене)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

tkpiuk
Сообщения: 26
ОС: Gentoo

MSWin2k3 + ACL + Samba 3

Сообщение tkpiuk »

День добрый!
Такая ситуация, имеем комп, на котором крутится samba сервер, введёный в виндовый домен Win2k3

на файловой шаре с горем пополам лежат файлы и папки 2х десятков пользователей, в общем реализован привилегированный файлообменник следующей структуры

Код: Выделить всё

[fls]
        comment = raid0asu2
        path = /mnt/samba
        valid users = "@domain users"
        admin users = "@domain admins"
        read only = No
        create mask = 0660
        directory mask = 0770
        inherit permissions = Yes
        inherit acls = Yes
        inherit owner = Yes
        map acl inherit = Yes
        locking = No

\\samba\fls\ - сам ресурс
\\samba\fls\Иванов
\\samba\fls\Иванов\private
\\samba\fls\Петров
\\samba\fls\Козлов
\\samba\fls\Сидоров
                ^------- "личные каталоги пользователей"


подразумевается следующая "политика работы":
* админы могут всё =) ну это само собой
* пользователи в своих каталогах могут всё(кроме смены владельца и смены атрибутов доступа)
* пользователи в своих каталогах должны иметь право удалять всё, в том числе то, что у них понасоздавали другие пользователи(тобишь должен работать механизм наследования прав с вшестоящего каталога, но что то он не рпботает =))
* пользователи в чужих каталогах могут создавать всё что угодно и удалять только то что создали сами, чужое удалять они не должны и в private к чужим им тоже нельзя

проблема в том что, при создании файла или папки его владельцем является почему то root\root - это раз. (владельца возможно сменить с PDC, это к тому что его можно установить)
вовторых любые манипуляции с creater owner сопровождаются ошибками incorrect parametr, это к тому что нельзя установить атрибуты доступа для "владельца" и для "прочих"

так же неработают "запрещающие 'галки' доступа", вовремя приминения просто пропадают, как будто их не ставили.

у кто нибудь есть опыт в решении подобных задачь ?

у меня на данный момент работает пока так: пока админ не разрулит права для всех, они не заработают, а так все файлики у пользователей с владельцем рута.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
tkpiuk
Сообщения: 26
ОС: Gentoo

Re: MSWin2k3 + ACL + Samba 3

Сообщение tkpiuk »

процесс установки атрибутов "Запрета"
врезультате получается полный ACCEPT
:crazy: , лог winbindd:
> id ivanov.ii
uid=10015(ivanov.ii) gid=10004(domain users) группы=10004(domain users),10001(BUILTIN\users)
> tail -f /var/log/samba/log.winbindd
[2011/09/01 15:58:16.145556, 3] winbindd/winbindd_getpwuid.c:47(winbindd_getpwuid_send) getpwuid 10015
[2011/09/01 15:58:16.163525, 3] winbindd/winbindd_lookupname.c:69(winbindd_lookupname_send) lookupname Unix User\ivanov.ii
[2011/09/01 15:58:16.164982, 3] winbindd/winbindd_getpwuid.c:47(winbindd_getpwuid_send) getpwuid 10015
[2011/09/01 15:59:18.989980, 3] winbindd/winbindd_sid_to_gid.c:47(winbindd_sid_to_gid_send) sid to gid S-1-5-21-1124151414-2018029475-117285464-513
[2011/09/01 15:59:18.993953, 3] winbindd/winbindd_sid_to_gid.c:47(winbindd_sid_to_gid_send) sid to gid S-1-5-21-1124151414-2018029475-117285464-513
[2011/09/01 15:59:18.995771, 3] winbindd/winbindd_sid_to_gid.c:47(winbindd_sid_to_gid_send) sid to gid S-1-5-21-1124151414-2018029475-117285464-513


какие будут соображения ? на мой взгляд то ли самба то ли кто то ещё не там(не в домене, а в системе) ищет пользователя ivanov.ii =)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: MSWin2k3 + ACL + Samba 3

Сообщение sash-kan »

tkpiuk писал(а):
01.09.2011 14:17
какие будут соображения ?
есть в samba такая штука, как group mappings·
возможно, с этим делом у вас в системе какой-то непорядок·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
alex_suse
Сообщения: 204
ОС: Debian, openSUSE, Gentoo

Re: MSWin2k3 + ACL + Samba 3

Сообщение alex_suse »

Соображения у меня простые.
В линукс есть права: один юзер - одна группа - остальные, вида rwx по каждой позиции.
ACL дает возможность множественного доступа (юзеры и группы), но тоже в рамках rwx, фактически это чуть больше, чем права, дающиеся на шару в винде.
Пытаться с имитировать NTFS права глупость, более того разруливать права кроме наследования должен админ с помощью setfacl. Самба не совместима с NTFS, да и не должна, и не дело юзера лезть в расстоновку галочек даже, если он владелец, лучше сразу прикрыть ему такую возможность.. В 99% случаев этого хватает за глаза, остальное это отдельное надувание щёк, а не работа, типа вот доступ дать надо, но только вот когда я в настроении.



Спасибо сказали:
tkpiuk
Сообщения: 26
ОС: Gentoo

Re: MSWin2k3 + ACL + Samba 3

Сообщение tkpiuk »

alex_suse писал(а):
01.09.2011 23:22
Соображения у меня простые.
В линукс есть права: один юзер - одна группа - остальные, вида rwx по каждой позиции.
ACL дает возможность множественного доступа (юзеры и группы), но тоже в рамках rwx, фактически это чуть больше, чем права, дающиеся на шару в винде.
Пытаться с имитировать NTFS права глупость, более того разруливать права кроме наследования должен админ с помощью setfacl. Самба не совместима с NTFS, да и не должна, и не дело юзера лезть в расстоновку галочек даже, если он владелец, лучше сразу прикрыть ему такую возможность.. В 99% случаев этого хватает за глаза, остальное это отдельное надувание щёк, а не работа, типа вот доступ дать надо, но только вот когда я в настроении.

100% с вами согласен, данные скрины не от имени юзера ivanov были сделаны, там я продемонстрировал как раз таки действия админа, которые просто не отработала SAMBA.

для меня не решаемый вопрос о наследовании владельца и атрибутов доступа на создаваемые пользователем в своей(или чужой) "шаре" объекты.
поясню: юзер ивавнов создал у себя в шаре каталог "222", на него систем должна выставить все привилегии от каталога в котором был создан "222". тобишь если петрову нельзя было читать текущий каталог, то система также должна выставить Петрову запрет на чтение каталога "222". и владельцем созданного объекта должен быть Иванов , а не UNIIX USER\Root
Спасибо сказали:
tkpiuk
Сообщения: 26
ОС: Gentoo

Re: MSWin2k3 + ACL + Samba 3

Сообщение tkpiuk »

sash-kan писал(а):
01.09.2011 15:40
tkpiuk писал(а):
01.09.2011 14:17
какие будут соображения ?
есть в samba такая штука, как group mappings·
возможно, с этим делом у вас в системе какой-то непорядок·


возможно
> net groupmap list
Administrators (S-1-5-32-544) -> BUILTIN\administrators
Users (S-1-5-32-545) -> BUILTIN\users


а на приведённой вами странице,
root# net groupmap list
Domain Admins (S-1-5-21-2547222302-1596225915-2414751004-512) -> domadmin
Domain Users (S-1-5-21-2547222302-1596225915-2414751004-513) -> domuser
Domain Guests (S-1-5-21-2547222302-1596225915-2414751004-514) -> domguest


не знаю нормально это или нет BUILTIN - специально ни где я не создавал.

и ещё один момент по поводу наследования, после добавления в глобал следующих строк:
#ACL http://www.opennet.ru/openforum/vsluhforumID1/60843.html
nt acl support = yes
acl compatibility = auto
# acl compatibility = win2k
map acl inherit = yes

map hidden = no
map system = no
map archive = no
store dos attributes = yes

# http://smb-conf.ru/dos-filemode-s.html
dos filemode = yes
#=ACL


заработало наследование привилегий, однако владелец так и UNIX USER\Root.
p\s: пока не выяснил какой из параметров на это повлиял.
Спасибо сказали:
alex_suse
Сообщения: 204
ОС: Debian, openSUSE, Gentoo

Re: MSWin2k3 + ACL + Samba 3

Сообщение alex_suse »

tkpiuk писал(а):
02.09.2011 07:11
для меня не решаемый вопрос о наследовании владельца и атрибутов доступа на создаваемые пользователем в своей(или чужой) "шаре" объекты.
поясню: юзер ивавнов создал у себя в шаре каталог "222", на него систем должна выставить все привилегии от каталога в котором был создан "222". тобишь если петрову нельзя было читать текущий каталог, то система также должна выставить Петрову запрет на чтение каталога "222". и владельцем созданного объекта должен быть Иванов , а не UNIIX USER\Root


Попробуем понять, как видится мне это, для начала возьмем винду.
При сетевом доступе есть два шлагбаума (КПП), первый это шара, второй это фс (нтфс). Шара дает множественные rw и не имеет ни владельца, ни наследования. Создаваемый новый объект в шаре ничего от него не наследует, т.к. это никакой не новый объект с точки зрения шары. Другое дело фс, вот тут всё это есть. Поэтому не зря многие в правах на шару ставять типа ВСЁ и полный доступ, ну или типа DomainAdmins и DomainUsers полный доступ. А разграничение уже идет на уровне фс.

Теперь линукс с самбой.
Самба это тоже шара, такой же множественный доступ на уровне rw, такое же отсутствие понятний о владельцах и наследовании. А вот теперь фс, но это уже не нтфс и в стандартном виде это не множественный доступ на уровне rwx, при включении acl (именно на фс), мы получаем множественный доступ на уровне rwx.

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

Для хоть какого-то приблежения и делается асл на фс (множественный доступ) и всякие директивы в самбе, типа inherit acls = Yes.

Теперь конкретнее.
Есть каталог /home/public, который через самбу мы расшариваем - PUBLIC. Кто владелец сей папки? Тот, который виден chown /home/public, абсолютно точно сейчас не скажу, но при включенном асл, когда может быть несколько пользователей (увидеть их можно через getfacl), владельцем будет тот один, который виден через chown. При включенных всяких inherit в самбе, новый каталог будет наследовать и этого владельца и те права, которые мы видим через getfacl.
И это спокойно реализуется, когда самба в роли PDC. Для правильного сопоставления групп линукса и винды, делается groupmapping, тогда некий юзер, который входит с точки зрения винды в группу Domain Admins имеет те права, которые через groupmapping даны группе сопоставленной типа nt_admins, именно последней и даны правы на уровне фс.

А теперь посмотрим на это, когда линукс только участник домена.
Да через самбу на уровне шары мы можем абсолютно спокойно давать права на уровне доменных пользователей и групп, типа как у вас
valid users = "@domain users"
admin users = "@domain admins"
но это никак не относится к уровню фс, а значит к владельцу и наследованию. Вроде опять же в руки нам groupmapping, но кого и с кем мы будем сопоставлять мне не совсем ясно, ведь линукс на уровне фс ничего не знает о доменных пользовотелях и группах. Тут я точно не скажу, нет сейчас линукса введенного домен в качестве файл помойки. Мне кажется тут у вас и есть затык, у исходного каталога владелец root, он и будет им оставаться для новых объектов, и наследовать права он будет от исходного, т.е. от того, что вы видите через chown или getfacl. Вот на уровне шары там все нормально.

Добавление. По всей видимости должен быть механизм разграничения прав и на уровне фс по доменным аккаунтам, ведь линукс же нормально логинится через такой аккаунт, поэтому по идее должны нормально наследоваться разрешения, только их надо сначала выставить на корневой каталог, как и владельца.
Спасибо сказали:
tkpiuk
Сообщения: 26
ОС: Gentoo

Re: MSWin2k3 + ACL + Samba 3

Сообщение tkpiuk »

2alex_suse Благодарю вас за развёрнутый ответ,не много прояснилось, про уровень шары и уровень фс(на начальных этапах догадвался когда подымал).
но непонятен следующий механизм(тут уже я затупил с наследованиями, всмысле не правильно пошел)

я пошел по пути наследования владельца относительно родительского каталога и это заработало, после установки в global
# наследовать права родительского каталога http://smb-conf.ru/inherit-permissions-s.html def:no
inherit permissions = yes
# наследовать владельца родительского каталога http://smb-conf.ru/inherit-owner-s.html def:no
inherit owner = yes

теперь понятно почему они по дефолту вырублены, потому, что если подрузумевать другой механизм, текущий будет ошибочный, а именно:
создания объектов в "чужих(с т.з. пользователей)" шарах, тобишь иванов в каталоге петрова создаёт каталог "петровка", его владельцем должен быть ИВАНОВ, то есть владелец должен устанавлваться исходя из того кто этот объект создал, а не где он его создал =)

вот какими опциями данный метод регулируется ?
ps
кстати по поводу Accept\deny - сейчас работает следующим образом:
выставляем полный ACCEPT на всё, применяем, потом выборочно делаем DENY, в результате получаем "деAccept"(тоесть снятие accept), как я понимаю политика "разрешаем всё что разрешено, кроме запрещённого" на самбе не работает ?
например есть группа пользователей gr1\usr1, gr1\usr2, gr1\usr3, на каталог ставим права gr1:fullaccept, gr1\usr3:None. То есть каталог будет доступен всем пользователем группы gr1, и даже gr1\usr3. дак как же реализовано запрещение\исключение ?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: MSWin2k3 + ACL + Samba 3

Сообщение sash-kan »

tkpiuk писал(а):
02.09.2011 12:19
не много прояснилось
«не много» — в смысле «мало прояснилось»?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
tkpiuk
Сообщения: 26
ОС: Gentoo

Re: MSWin2k3 + ACL + Samba 3

Сообщение tkpiuk »

sash-kan писал(а):
02.09.2011 12:54
tkpiuk писал(а):
02.09.2011 12:19
не много прояснилось
«не много» — в смысле «мало прояснилось»?

в смысле не всё что было сказано мне понятно, вник в некоторые вещи, которые я ранее не понимал.
дело в том, что нет у меня как и умногих духовного Гурру, поэтому, разбираюсь по ходу.

вот ещё вопрос наверное не сильно важный, но заставляет спросить=)

справа виндовая шара, FS:NTFS, слева Samba, Linux, FS:ReiserFS с acl.
вопрос: если я правильно понял, говоря простецким языком, винда в "своей шаре" видит "откуда унаследована привилегия" из файловой системы ?, а samba такой инфы предоставить не может аля FS не полностью поддерживает виндовые "фичи", так ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
alex_suse
Сообщения: 204
ОС: Debian, openSUSE, Gentoo

Re: MSWin2k3 + ACL + Samba 3

Сообщение alex_suse »

Я прошу прощения, сейчас ответить (по времени) может и могу, но голова плохо работает :(
tkpiuk писал(а):
02.09.2011 14:54
вот ещё вопрос наверное не сильно важный, но заставляет спросить=)

справа виндовая шара, FS:NTFS, слева Samba, Linux, FS:ReiserFS с acl.
вопрос: если я правильно понял, говоря простецким языком, винда в "своей шаре" видит "откуда унаследована привилегия" из файловой системы ?, а samba такой инфы предоставить не может аля FS не полностью поддерживает виндовые "фичи", так ?

Тыкая в поле "Безопасность" мы тыкаем в фс, а не в шару, понятно, что винда в качестве фс рассматривает "правильно" два варианта - фат, там вообще никаких прав нет и свою нтфс. Самба это шара с попыткой прикрутить и "Безопасность", но винда тупая, рисует только то что знает.

Вообще попытка сделать как в винде мне видится неправильной, тем более, что как правило хватает и простых решений, "файл помойка" не зря так называется.
Спасибо сказали:
tkpiuk
Сообщения: 26
ОС: Gentoo

Re: MSWin2k3 + ACL + Samba 3

Сообщение tkpiuk »

дак всё таки, как сделать так, чтобы владельцем создаваемого файла\каталога был его создатель, то есть, кем пользователь авторизован в системе?
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian

Re: MSWin2k3 + ACL + Samba 3

Сообщение McSim »

на вопрос
дак всё таки, как сделать так, чтобы владельцем создаваемого файла\каталога был его создатель, то есть, кем пользователь авторизован в системе?

сходу не отвечу... но совет посоветую...
Если правило
* пользователи в чужих каталогах могут создавать всё что угодно и удалять только то что создали сами, чужое удалять они не должны и в private к чужим им тоже нельзя

не критично, то я бы посоветовал для хранения папок пользователей использовать параметр

Код: Выделить всё

[global]
        template homedir = /shares/users/%U

и

Код: Выделить всё

[homes]
        comment = Личная папка пользователя %U
        read only = No
        browseable = No

а для обмена между пользователями - создать каталог

Код: Выделить всё

[Обменник]
        comment = Мусорка
        path = /shares/obmen
        read only = No
        create mask = 0755
        directory mask = 0775

с правами

Код: Выделить всё

server ~ # chmod -v u+rwx,g=rx,o=rx  /shares/obmen
права доступа «/shares/obmen1» оставлены как 0755 (rwxr-xr-x)

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

Код: Выделить всё

[homedirs]
        comment = каталоги пользователей
        path = /shares/users
        read only = No
        valid users = валидные_пользователи_через_запятую

как-то так.


tkpiuk писал(а):
19.09.2011 12:19
дак всё таки, как сделать так, чтобы владельцем создаваемого файла\каталога был его создатель, то есть, кем пользователь авторизован в системе?

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