LINUX.ORG.RU

Debian 10, Samba, Active Directory. Как установить владельца файла\папки группу безопасности Windows ?

 , , ,


0

1

Комрады, я в тупике!

В общем не могу назначить владельца папки группу безопасности Windows. При попытке выполнить:

chown "domain admins":"domain users" /srv/samba/printer_drivers
chown: invalid user: ‘domain admins:domain users’

оно и понятно что не получается, т.к. юзера domain admins нет.

Машина в домене Windows, установлена Samba 4.9.5, следующие параметры указаны в smb.conf

[global]
        realm = KA.KA.LOCAL
        workgroup = KA

        security = ads
        encrypt passwords = yes

        netbios name = K3062
        server string = %h server

        domain master = no
        local master = no
        preferred master = no
        os level = 0
        domain logons = no

        dns proxy = no

        socket options = TCP_NODELAY

        unix charset = UTF-8
        dos charset = 866

        idmap config * :              backend = tdb
        idmap config * :              range   = 3000-7999
        idmap config KA : backend = rid
        idmap config KA : range   = 10000-999999

        winbind enum users = yes
        winbind enum groups = yes
        winbind refresh tickets = yes
        winbind use default domain = yes
        winbind offline logon = yes
        winbind cache time = 300
        template shell = /bin/bash

        vfs objects = acl_xattr
        acl_xattr:ignore system acl = yes

        map acl inherit = yes
        store dos attributes = yes

        rpc_server:spoolss = external
        rpc_daemon:spoolssd = fork

        printing = CUPS

        load printers = no
        show add printer wizard = no

        log level = 0 vfs:1

[printers]
        comment = All Printers
        path = /var/spool/samba
        printable = yes


[print$]
        comment = Printer Drivers
        path = /srv/samba/printer_drivers/
        read only = no

[KMRU-PRT025]
        path = /var/spool/samba
        printable = yes
        printer name = PRT025

Файл nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         files winbind
group:          files winbind
shadow:         files
gshadow:        files

hosts:          mdns4_minimal [NOTFOUND=return] files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Пробовал меня в passwd, group с files на compat все равно не помогает.

В то же время! На Debian 9 все тоже самое по конф. файлам, на там все работает, в качестве владельца успешно назначается группа безопасности Windwso.

У меня вопрос что я делаю не так ?



Последнее исправление: Jakonda (всего исправлений: 2)

Ответ на: комментарий от zgen

все работает команды:

wbinfo -u
wbinfo -g

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

Так же успешно назначаются права аля

chown root:'domain users' /srv/samba/printer_drivers
Jakonda
() автор топика
Ответ на: комментарий от Jakonda

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

какое это имеет отношение к системным пользователям?

пользователей и группы должны выдавать
getent passwd
getent group

все работает

Если всё работает, тогда зачем ты сюда пришёл?

zgen ★★★★★
()
Ответ на: комментарий от zgen

пользователей и группы должны выдавать getent passwd getent group

все успешно выдает, как локальные так и группы домена

А пришле я сюда потому что не отрабатывает команда

chown «domain admins»:«domain users» /srv/samba/printer_drivers

выдает ошибку

chown: invalid user: ‘domain admins:domain users’

Если выполнить так

chown root:"domain users" /srv/samba/printer_drivers

То применяются права, но если их смотреть через Windows оснастку, то видим что владельцем значится root и изменить его на группу безопасности не получается, ругается что нет такого ID.

В Debian 9 успешно назначается, я не могу понять почему в 10 не получается.

Jakonda
() автор топика
Ответ на: комментарий от zgen

Да я это понимаю. Но NSSWITCH же позволяет в compat вроде как указывать в owner user группы Active Directory. По крайней мере в 9-ке это работает, а вот в 10 херня какая то…

Jakonda
() автор топика
Ответ на: комментарий от Jakonda

Я не знаю, что у тебя работает, не сижу с тобой рядом, и за руками твоими не слежу.

Предполагаю что ты ошибаешься, или врёшь

zgen ★★★★★
()
Ответ на: комментарий от Jakonda

вот как это в Debian 9 выглядит все

chown 'domain admins':'domain users' /samba/public
ls -l /samba/

drwxr-xr-x 2 domain admins domain users 4096 ноя  9 17:00 public

как видно, что в качестве user owner успешно назначается группа безопасности Windows…

вот в чем разница, что поменялось в 10-ке и в версиях Samba и Winbind

можно на 9ке остаться конечно, но хотелось бы разобраться в чем дело то…

Jakonda
() автор топика
Ответ на: комментарий от zgen

Предполагаю что ты ошибаешься, или врёшь

врать то мне зачем !? где логика писать с вопросом сюда, при этом заведомо врать !? это как минимум странно. Но я не вру, как есть так и пишу.

я так думаю что проблема даже не в samba и winbind, а скорей что то в ядре поменялось, т.к. chown перестал в 10ке давать назначать группу безопасности Windows с учетом что на машине используется samba.

Jakonda
() автор топика
Ответ на: комментарий от Jakonda

Domain admins не похоже на имя пользователя. Скорее на группу/контейнер.

Имя пользователя это vasya_admin в группе domain admins

vyv ★★★
()
Ответ на: комментарий от vyv

Имя пользователя это то под кем ты можешь залогиниться. Попробуй от рута через su или sudo стать этим пользователем и проверь

vyv ★★★
()
Ответ на: комментарий от vyv

Так точно Domain admins это группа доменных админов Windows AD. Если обращал внимание что там в качестве владельца можно указывать не конкретного пользователя, а целую группу, так вот и тут. Вот в Debian 9 успешно можно в user owner зацепить целую группу AD, а вот с теми же настроками samba в Debian 10 выже ругается что такого пользователя нет, что и логично. Я пытаюсь понять почему в 9 все катит, а в 10 нет и что надо сделать чтобы катило…

Jakonda
() автор топика
Ответ на: комментарий от Jakonda

В юниксах нельзя группу на пользователя. Для этого и есть группа. Назначь права printer:domain admins

Или root:domain admins

vyv ★★★
()
Ответ на: комментарий от vyv

Да я знаю это, Но samba и winbind позволяет это сделать если в nsswind.conf в параметрах user, group указать compat. Но это срабатывает почему в 9той, а в 10ке уже нет. Я не понять что в 10ке поменялось или это версионность samba так ведет себя.

Jakonda
() автор топика
Ответ на: комментарий от Jakonda

значит какие-то настройки не переехали.

chown не делает никакой магии а просит у glibc вернуть UID на «Domain admins». glibc смотрит на nsswitch. здесь задействованна libnss-winbind и, возможно, каким-то образом PAM и его правила. сравнивай что там и здесь.

vyv ★★★
()
Ответ на: комментарий от vyv

сам понимаю что никакой магии нет и вроде все прозрачно, но вот удивился что при переходе на 10ку, пропала такая вот возможность, самоличные ковыряния зашли в тупик, вот тут у комунити решил спросить, авось кто тоже так же как и я столкнулся и наковырял :)

Спасибо за наводку, буду ковырять дальше, наковыряю для истории отпишу.

Jakonda
() автор топика
Ответ на: комментарий от vyv

Все как и положено -

id "domain admins"
id: ‘domain admins’: no such user
Jakonda
() автор топика
Ответ на: комментарий от Jakonda

т.к. chown перестал в 10ке давать назначать группу безопасности Windows с учетом что на машине используется samba.

Не перестал, никогда не делал. Расширенные права выдаются через https://linux.die.net/man/1/setfacl

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Ответ на: комментарий от zgen

ну блин в Debian 9 это можно!!! Факт, если настолько упорно не верящий то подними тестовый стенд и убедись, якуешь что можно.

Вот на Debian 9. owner - domain\040admins!!!

getfacl /samba/public/
getfacl: Removing leading '/' from absolute path names
# file: samba/public/
# owner: domain\040admins
# group: domain\040users
user::rwx
group::r-x
other::r-x

А на 10 уже что то изменили что уже не срабатывает.

Jakonda
() автор топика
Ответ на: комментарий от Jakonda

Вот на Debian 9. owner - domain\040admins!!!

И что? Я создам пользователя «domain admins» и буду тебе показывать, как там owner «domain admins» это совершенно ничего значить не будет.

zgen ★★★★★
()
Ответ на: комментарий от zgen

боже, ладно запишу видео, выложу на youtube вставлю ссылку сюда. Насколько вот убеждение человека что его обманывают. Ты очень тяжелый человек.

Jakonda
() автор топика
Ответ на: комментарий от zgen

** демонстрационное видео аплодится на youtube

так очень, а может и очевидно почему, но результат на Debian 9 -

id 'domain admins'

uid=10512(domain admins) gid=10512(domain admins) группы=10512(domain admins)

а на Debian 10 -

id 'domain admins'
id:‘domain admins’: no such user

пользователя соответственно на Debian 9 и в AD Windows под именем domain admin нет, только группа безопасности в AD Windows.

все же склоняюсь в к тому что nsswinbind.conf в users, groups указан compat, но в то же время так же и указано и в Debian 10, но там вот такой вывод. Блин пока что тупик у меня, но объяснение то должно быть..

Jakonda
() автор топика
Ответ на: комментарий от Jakonda

Видео залилось - https://youtu.be/uabiAVWvHqo, там собственно все видно в сравнении между 9 и 10 debian. Конфиг samba один в один одинаков.

Jakonda
() автор топика
Ответ на: комментарий от Jakonda

Т.е. пользователь «domain admins» есть. Что ещё нужно?

Выкладывай по шагам, как настраивал, и все связанные конфиги

zgen ★★★★★
()
Последнее исправление: zgen (всего исправлений: 1)
Ответ на: комментарий от zgen

та в том то и дело что пользователя ‘domain admins’ нет, не в системе Linux, не в Windows AD. ‘domain admins’ существует только как группа безопасности в Windows AD.

Это же вижно из видео что выкладывал, там по какой то причине ‘domain admins’ прокатывает в роли пользователя в Debian 9, а вот уже в 10ке показывается нам болт, что нет такого пользователя (что само собой и разуемется). Тоже самое и с id в Debian 9 и 10, в девятке он видит ‘domain admins’ как пользователя, а в 10 нет.

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

Конфиги smb.conf, nsswitch.conf, krb5.conf - вот один в один (ну имена машин только разные само собой).

smb.conf

[global]
#       ОБЩИЕ ПАРАМЕТРЫ СЕТЕВОЙ ШАРЫ
        realm = KA.LOCAL
        workgroup = KA

        security = ads
        encrypt passwords = yes

        netbios name = KM3063
        server string = %h server

        domain master = no
        local master = no
        preferred master = no
        os level = 0
        domain logons = no

        dns proxy = no

        socket options = TCP_NODELAY

        unix charset = UTF-8
        dos charset = 866

#       Конфигурация для домена KA.LOCAL и его пользователей и групп
        idmap config * :              backend = tdb
        idmap config * :              range   = 3000-7999
        idmap config KA : backend = rid
        idmap config KA : range   = 10000-999999

#       ПАРАМЕТРЫ WINBIND
        winbind enum users = yes
        winbind enum groups = yes
        winbind refresh tickets = yes
        winbind use default domain = yes
        winbind offline logon = yes
        winbind cache time = 300
        template shell = /bin/bash

#       ПОДКЛЮЧЕНИЕ МОДУЛЕЙ VFS (Virtual File System)
        vfs objects = acl_xattr
        acl_xattr:ignore system acl = yes

#       Поддержка Windows ACLs
        map acl inherit = yes
        store dos attributes = yes

        load printers = no
        show add printer wizard = no
        printcap name = /dev/null
        disable spoolss = yes

#       ПАРАМЕНТЫ ЛОГИРОВАНИЯ
        log level = 0 vfs:1

nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat winbind
group:          compat winbind
shadow:         compat
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

krb5.conf

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = KA.LOCAL
 dns_lookup_kdc = false
 dns_lookup_realm = false
 forwardable = true
 ticket_lifetime = 24h

[realms]
 KA.LOCAL = {
 kdc = km0003.ka.local
 kdc = km0004.ka.local
 default_domain = KA.LOCAL
 admin_server = km0003.ka.local
 }

[domain_realm]
 .ka.local = KA.LOCAL
 ka.local = KA.LOCAL

все больше ничего не настраивалось на обоих машинах, они были введены в домен - net join.. только вот на 9ке вот так, а на 10 вот так работает.

Jakonda
() автор топика

назначить владельца папки

Мамке своей владельца назначь, вендузенок.

anonymous
()
Ответ на: комментарий от anonymous

Мамке своей владельца назначь, вендузенок.

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

Jakonda
() автор топика
11 января 2023 г.
Ответ на: комментарий от Jakonda

Короче! Я тогда забил на эту тему, но вот спустя время вновь вернулся и решил. Ну как решил, понял как так делать чтобы задать вот такие права:

chown 'domain admins':'domain users' /srv/samba/printer_drivers

на папку и не получить ошибку invalid user.

Нужно вместо 'domain admins' указывать GID группы, т.е. вот так

chown 10512:'domain users' /srv/samba/printer_drivers

где 10512 это как раз таки и GID 'domain admins'

Узнать GID можно так

wbinfo --group-info='domain admins'

Вдруг кому пригодится...

Jakonda
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.