Два контроллера домена на Samba 4 - разные UID пользователей

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

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

Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

Всем привет!
Настраиваю контроллер домена AD (PDC+BDC) на Samba 4 под Debian. Поднял первый контроллер, поднял второй, добавил его в домен, добавил на первом сетевую шару для носимых профилей пользователей, создал аналогичную папку на втором и настроил csync2 для синхронизации, но теперь проблема в том, что если профиль пользователя (читай - папка на шаре) был создан на одном контроллере, после был синхронизирован на второй контроллер, после чего первый конроллер выключен и пользователь логинится через второй контроллер - доступа к папке у него нет. Посмотрел подробнее - у одного и того же пользователя разные идентификаторы на серверах получаются, вот его в папку и не пускает.
Друзья, подскажите, пожалуйста, как можно решить эту проблему!

Конфиги наипримитивнейшие
PDC:

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

root@debian-samba4:~# cat /usr/local/samba/etc/smb.conf
# Global parameters
[global]
    workgroup = TEST
    realm = TEST.LOCAL
    netbios name = DEBIAN-SAMBA4
    server role = active directory domain controller
    dns forwarder = 192.168.1.102

[netlogon]
    path = /usr/local/samba/var/locks/sysvol/test.local/scripts
    read only = No

[sysvol]
    path = /usr/local/samba/var/locks/sysvol
    read only = No

[profiles]
    path = /usr/local/samba/var/profiles
    read only = No
    writable = Yes
root@debian-samba4:~#

BDC:

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

root@bdc-samba:~# cat /usr/local/samba/etc/smb.conf
# Global parameters
[global]
    workgroup = TEST
    realm = test.local
    netbios name = BDC-SAMBA
    server role = active directory domain controller

[netlogon]
    path = /usr/local/samba/var/locks/sysvol/test.local/scripts
    read only = No

[sysvol]
    path = /usr/local/samba/var/locks/sysvol
    read only = No

[profiles]
    path = /usr/local/samba/var/profiles
    read only = No
root@bdc-samba:~#
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение McSim »

Привет.
покажи вывод testparm -sv /путь/к/конфигу | grep backend
И, на всякий /etc/nsswitch.conf
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

McSim писал(а):
15.06.2013 14:27
Привет.
покажи вывод testparm -sv /путь/к/конфигу | grep backend
И, на всякий /etc/nsswitch.conf

Спасибо, что откликнулся! Вот всё что просил

PDC:

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

root@debian-samba4:~# /usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep backend
Load smb config files from /usr/local/samba/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Processing section "[profiles]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
    passdb backend = samba_dsdb
    idmap backend = tdb
    share backend =
    idmap config * : backend = tdb
root@debian-samba4:~#


BDC:

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

root@bdc-samba:~# /usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep backend
Load smb config files from /usr/local/samba/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Processing section "[profiles]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
    passdb backend = samba_dsdb
    idmap backend = tdb
    share backend =
    idmap config * : backend = tdb
root@bdc-samba:~#


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
group:          compat
shadow:         compat

hosts:          files dns
networks:       files

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

netgroup:       nis

Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение McSim »

В общем-то проблема на лице (то есть на лицо :rolleyes: ). Параметр idmap backend = tdb отвечает за хранение соответствий вендовых SID и юниксовых UID/GID. Т.к. tdb является локальной базой и хранится на каждой самбе отдельно, соответственно и маппинг SID/uid/gid не соответствует на 2х хостах. При этом csync2 при задании прав доступа ,видимо, использует UID/GID.
Чтобы маппинг соответствовал, вижу несколько выходов (по мере уменьшения костыльности):
1. настроить синхронизацию файлов tdb (можно попробовать просто прибиндить одну файловую систему к другой по sshfs, например), но это вообще костыль, т.к. при выключении прибинженной системы трудно спрогнозировать что произойдет со второй...
2. Синхронизировать каталоги не по csync2 а каким-нибудь smbclient и bash. Либо найти опцию csync2, умеющую синхронизировать права по имени пользователя, а не UID/GID
3. настроить хранение маппингов в LDAP. Это правильный вариант. К тому же, вроде как, в samba4 есть какая-то реализация ldap, не знаю насколько он применим к данному функционалу.
Вот тут есть хорошие примеры: http://www.samba-doc.ru/samba3example/01happy.html
4. Для хранения одинковых UID/GID использовать какой-нибудь NIS.

НО: я даю советы с колокольни samba3, не исключено, что в 4 версии что-то поменялось...
Я могу предположить, что файлы tdb маппинг ID должны по идее синхронизироваться samba4, но в этом нужно убедиться посредством просмотра tdb-баз командой tdbedit.и логов samba на предмет наличия событий синхронизации.
Жаль, что SAMBa4 HOWTO совсем пустая...
Спасибо сказали:
Дмитрий Н.
Сообщения: 174
ОС: openSUSE Leap 15.0

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение Дмитрий Н. »

Про настройку idmap для samba4 можно прочитать здесь.
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »


McSim писал(а):
17.06.2013 16:11
Либо найти опцию csync2, умеющую синхронизировать права по имени пользователя, а не UID/GID

Не поможет к сожалению - у этих пользователей нет имен

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

root@bdc-samba:~# ls -l /usr/local/samba/var/profiles/
total 52
drwxrws---  14 root    staff 4096 Jun 17 11:40 Administrator.V2
drwxrws---  14 3000020 staff 4096 Jun 17 18:50 tester
drwxrws---  14 3000021 staff 4096 Jun 18 12:50 tester2
drwxrws---+ 14 3000016 staff 4096 Jun 13 14:37 tester2.V2
drwxrws---  14 3000022 staff 4096 Jun 14 17:15 tester3.V2
drwxrws---  14 3000023 staff 4096 Jun 17 11:40 tester4.V2
drwxrws---  14 3000020 staff 4096 Jun 13 12:55 tester.V2
drwxrws---  14 3000019 staff 4096 Jun 13 12:55 vaf.V2
root@bdc-samba:~#




Дмитрий Н. писал(а):
17.06.2013 17:30
Про настройку idmap для samba4 можно прочитать здесь.

Спасибо! Да, там есть описание параметра, указывающего метод хранения соответствия, однако не ясно как же самое простое его хранить!
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

Добавил idmap backend AD, но проблема сохранилась - новый пользователь, а проблема старая.

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

Load smb config files from /usr/local/samba/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Processing section "[profiles]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
    passdb backend = samba_dsdb
    idmap backend = tdb
    share backend =
    idmap config TEST:backend = ad
    idmap config * : backend = tdb
root@bdc-samba:~#


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

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение McSim »

попробуй в nsswitch.conf указать это:

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

passwd:         compat winbind
group:          compat winbind

и проверь, заработает ли резолвинг UID?

esvaf писал(а):
18.06.2013 15:34
Кстати, а как часто сервера должны синхронизировать между собой информацию о домене?

Это задается в групповых политиках (точное размещение - не помню :unsure: )
Спасибо сказали:
Дмитрий Н.
Сообщения: 174
ОС: openSUSE Leap 15.0

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение Дмитрий Н. »

esvaf,

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

idmap backend = tdb
это не правильно, так можно делать если есть только 1 сервер самба, попробуй убрать этот параметр.
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение McSim »

Дмитрий Н.
Имхо, это значение по умолчанию. Его нет смысла убирать, если задан

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

    idmap config TEST:backend = ad
    idmap config * : backend = tdb
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

К сожалению, ничего не помогает.
Как я понимаю при указании

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

 idmap config TEST:backend = ad

самба сначала пытается получить информацию из домена, а если её там нет то уже использует локальную базу.
Так вот насколько я видел инфу из LDAP - там вроде нет UID...
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение McSim »

Оставь (это на обоих серверах должно быть задано)

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

idmap config TEST:backend = ad

дополнительно укажи:

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

        winbind enum users = yes
        winbind enum groups = yes

после этого покажи вывод samba -d и

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

/usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep winb

и

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

/usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep map

далее создай нового йузера на одном из DC, через пару минут выполни команды getent passwd на каждом сервере и покажи вывод.
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

McSim писал(а):
20.06.2013 17:00
Оставь (это на обоих серверах должно быть задано)

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

idmap config TEST:backend = ad

дополнительно укажи:

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

        winbind enum users = yes
        winbind enum groups = yes

сделал + рестартанул самбу на обоих машинах
McSim писал(а):
20.06.2013 17:00
после этого покажи вывод samba -d

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

root@bdc-samba:/usr/local/samba/sbin# ./samba -d

Invalid option -d: missing argument

Usage: samba [-?DibV] [-?|--help] [--usage] [-D|--daemon] [-i|--interactive]
        [-M|--model=MODEL] [--maximum-runtime=seconds] [-b|--show-build]
        [-d|--debuglevel=DEBUGLEVEL] [--debug-stderr]
        [-s|--configfile=CONFIGFILE] [--option=name=value]
        [-l|--log-basename=LOGFILEBASE] [--leak-report] [--leak-report-full]
        [-V|--version]
root@bdc-samba:/usr/local/samba/sbin#

какой дебаг левел ему ставить?
McSim писал(а):
20.06.2013 17:00
и

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

/usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep winb

и

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

/usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep map

На первом сервере:

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

root@debian-samba4:/usr/local/samba/etc# /usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep winb
Load smb config files from /usr/local/samba/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Processing section "[profiles]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
    winbind separator = \
    winbind cache time = 300
    winbind reconnect delay = 30
    winbind max clients = 200
    winbind enum users = Yes
    winbind enum groups = Yes
    winbind use default domain = No
    winbind trusted domains only = No
    winbind nested groups = Yes
    winbind expand groups = 1
    winbind nss info = template
    winbind refresh tickets = No
    winbind offline logon = No
    winbind normalize names = No
    winbind rpc only = No
    winbind max domain connections = 1
    winbindd socket directory =
    winbindd privileged socket directory =
    winbind sealed pipes = No
root@debian-samba4:/usr/local/samba/etc# /usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep map
Load smb config files from /usr/local/samba/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Processing section "[profiles]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
    map to guest = Never
    username map =
    map untrusted to domain = No
    use mmap = Yes
    os2 driver map =
    username map script =
    username map cache time = 0
    ldap idmap suffix =
    homedir map = auto.home
    afs username map =
    idmap backend = tdb
    idmap cache time = 604800
    idmap negative cache time = 120
    idmap uid =
    idmap gid =
    idmap config TEST:backend = ad
    idmap_ldb:use rfc2307 = yes
    idmap config * : backend = tdb
    acl map full control = Yes
    map acl inherit = No
    map archive = No
    map hidden = No
    map system = No
    map readonly = no
    dmapi support = No
root@debian-samba4:/usr/local/samba/etc#

И на втором:

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

root@bdc-samba:/usr/local/samba/sbin# /usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep winb
Load smb config files from /usr/local/samba/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Processing section "[profiles]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
    winbind separator = \
    winbind cache time = 300
    winbind reconnect delay = 30
    winbind max clients = 200
    winbind enum users = Yes
    winbind enum groups = Yes
    winbind use default domain = No
    winbind trusted domains only = No
    winbind nested groups = Yes
    winbind expand groups = 1
    winbind nss info = template
    winbind refresh tickets = No
    winbind offline logon = No
    winbind normalize names = No
    winbind rpc only = No
    winbind max domain connections = 1
    winbindd socket directory =
    winbindd privileged socket directory =
    winbind sealed pipes = No
root@bdc-samba:/usr/local/samba/sbin# /usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf | grep map
Load smb config files from /usr/local/samba/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Processing section "[profiles]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
    map to guest = Never
    username map =
    map untrusted to domain = No
    use mmap = Yes
    os2 driver map =
    username map script =
    username map cache time = 0
    ldap idmap suffix =
    homedir map = auto.home
    afs username map =
    idmap backend = tdb
    idmap cache time = 604800
    idmap negative cache time = 120
    idmap uid =
    idmap gid =
    idmap config TEST:backend = ad
    idmap_ldb:use rfc2307 = yes
    idmap config * : backend = tdb
    acl map full control = Yes
    map acl inherit = No
    map archive = No
    map hidden = No
    map system = No
    map readonly = no
    dmapi support = No
root@bdc-samba:/usr/local/samba/sbin#


McSim писал(а):
20.06.2013 17:00
далее создай нового йузера на одном из DC, через пару минут выполни команды getent passwd на каждом сервере и покажи вывод.

первый

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

root@debian-samba4:/usr/local/samba/etc# /usr/local/samba/bin/samba-tool user add tester4
New Password:
Retype Password:
User 'tester4' created successfully
root@debian-samba4:/usr/local/samba/etc# sleep 180
root@debian-samba4:/usr/local/samba/etc# getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin
tester:x:1000:1000:tester,,,:/home/tester:/bin/bash
messagebus:x:104:106::/var/run/dbus:/bin/false
root@debian-samba4:/usr/local/samba/etc#

и второй

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

root@bdc-samba:/usr/local/samba/sbin# getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin
tester:x:1000:1000:tester,,,:/home/tester:/bin/bash
messagebus:x:104:106::/var/run/dbus:/bin/false
root@bdc-samba:/usr/local/samba/sbin#
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

McSim писал(а):
20.06.2013 13:32
попробуй в nsswitch.conf указать это:

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

passwd:         compat winbind
group:          compat winbind

и проверь, заработает ли резолвинг UID?

как проверить?
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение McSim »

Все выполненные в позапредыдущем посте команды были сделаны после указания

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

passwd:         compat winbind
group:          compat winbind

?
как проверить?

getent должен выводить список пользователей в том числе и из AD.
А так же при просмотре (ls -l) списка файлов UID должны отображаться в виде имен пользователей:
какой дебаг левел ему ставить?

упс, на -d, а -b. Я хотел посмотреть, с какими параметрами собрана самба.
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

McSim писал(а):
21.06.2013 08:50
Все выполненные в позапредыдущем посте команды были сделаны после указания

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

passwd:         compat winbind
group:          compat winbind

?

Да.

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

root@debian-samba4:/etc# cat /etc/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

hosts:          files dns
networks:       files

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

netgroup:       nis
root@debian-samba4:/etc# service samba4 restart
[ ok ] Stopping Samba daemon: samba.
[ ok ] Starting Samba daemon: samba.
root@debian-samba4:/etc# ls -l /usr/local/samba/var/profiles/
total 24
drwx--S---   2 root    staff 4096 Jun 20 12:00 t
drwxrws---+ 14 3000022 staff 4096 Jun 20 15:47 tester3.V2
drwxrws---+ 14 3000023 staff 4096 Jun 20 18:24 tester5.V2
drwxrws---  14 3000016 staff 4096 Jun 19 17:25 tester.V2
root@debian-samba4:/etc#

McSim писал(а):
21.06.2013 08:50
getent должен выводить список пользователей в том числе и из AD.
А так же при просмотре (ls -l) списка файлов UID должны отображаться в виде имен пользователей:
какой дебаг левел ему ставить?

упс, на -d, а -b. Я хотел посмотреть, с какими параметрами собрана самба.


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

root@debian-samba4:~# /usr/local/samba/sbin/samba -b
Samba version: 4.0.6
Build environment:
   Build host:  Linux debian-samba4 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
Paths:
   BINDIR: /usr/local/samba/bin
   SBINDIR: /usr/local/samba/sbin
   CONFIGFILE: /usr/local/samba/etc/smb.conf
   NCALRPCDIR: /usr/local/samba/var/run/ncalrpc
   LOGFILEBASE: /usr/local/samba/var
   LMHOSTSFILE: /usr/local/samba/etc/lmhosts
   DATADIR: /usr/local/samba/share
   MODULESDIR: /usr/local/samba/lib
   LOCKDIR: /usr/local/samba/var/lock
   STATEDIR: /usr/local/samba/var/locks
   CACHEDIR: /usr/local/samba/var/cache
   PIDDIR: /usr/local/samba/var/run
   PRIVATE_DIR: /usr/local/samba/private
   SWATDIR: /usr/local/samba/share/swat
   CODEPAGEDIR: /usr/local/samba/share/codepages
   SETUPDIR: /usr/local/samba/share/setup
   WINBINDD_SOCKET_DIR: /usr/local/samba/var/run/winbindd
   WINBINDD_PRIVILEGED_SOCKET_DIR: /usr/local/samba/var/lib/winbindd_privileged
   NTP_SIGND_SOCKET_DIR: /usr/local/samba/var/lib/ntp_signd
root@debian-samba4:~#
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение McSim »

очень странно...
Я правильно понимаю, что tester - это локальный пользователь из линукса?

Дополнительно, давай попробуем вот так: оставь idmap в конфиге только вот такой:

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

idmap config *:backend = ad

проверь, чтобы testparm не выдавал ошибок.
и снова выполни getent passwd. покажи вывод.

По идее, при параметрах

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

passwd:         compat winbind
group:          compat winbind

и

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

    winbind enum users = Yes
    winbind enum groups = Yes

getent через интефейс внбинда ( WINBINDD_SOCKET_DIR: /usr/local/samba/var/run/winbindd WINBINDD_PRIVILEGED_SOCKET_DIR: /usr/local/samba/var/lib/winbindd_privileged) должен получать список пользователей из AD. Очень странно, что не получает...

Еще можно попробовать следующее:
1. попробовать на обоих серверах отобразить UID GID пользователя с помощью команды id tester4
2. создать еще одного пользователя.
Создать от этого пользователя файл/папку на обоих серверах, либо сделать логин в доменную рабочую станцию (ну чтобы создался элемент в файловой системе с владельцем - пользователем) и проверить соответствие UID GID с помощью ls -ln. Может в четвертой самбе каки-то образом порезали винбинд и он не отдает системе данные из самбы, но сама самба после того как мы указали idmap - ad уже корректно синхронизирет идентификаторы...
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

McSim писал(а):
21.06.2013 11:00
очень странно...
Я правильно понимаю, что tester - это локальный пользователь из линукса?

да, простой пользователь
McSim писал(а):
21.06.2013 11:00
Дополнительно, давай попробуем вот так: оставь idmap в конфиге только вот такой:

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

idmap config *:backend = ad

проверь, чтобы testparm не выдавал ошибок.

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

root@debian-samba4:/usr/local/samba/etc# cat ./smb.conf
# Global parameters
[global]
    workgroup = TEST
    realm = TEST.LOCAL
    netbios name = DEBIAN-SAMBA4
    server role = active directory domain controller
    dns forwarder = 192.168.1.102
#    idmap_ldb:use rfc2307 = yes
    idmap config *:backend = ad
    winbind enum users = yes
    winbind enum groups = yes

[netlogon]
    path = /usr/local/samba/var/locks/sysvol/test.local/scripts
    read only = No

[sysvol]
    path = /usr/local/samba/var/locks/sysvol
    read only = No

[profiles]
    path = /usr/local/samba/var/profiles
    read only = No
root@debian-samba4:/usr/local/samba/etc# service samba4 reload
[ ok ] Reloading /usr/local/samba/etc/smb.conf :.
root@debian-samba4:/usr/local/samba/etc# /usr/local/samba/bin/testparm -sv /usr/local/samba/etc/smb.conf
Load smb config files from /usr/local/samba/etc/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[sysvol]"
Processing section "[profiles]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
[global]
    dos charset = CP850
    unix charset = UTF-8
    workgroup = TEST
    realm = TEST.LOCAL
    netbios name = DEBIAN-SAMBA4
    netbios aliases =
    netbios scope =
    server string = Samba 4.0.6
    interfaces =
    bind interfaces only = No
    server role = active directory domain controller
    security = USER
    auth methods =
    encrypt passwords = Yes
    client schannel = Auto
    server schannel = Auto
    allow trusted domains = Yes
    map to guest = Never
    null passwords = No
    obey pam restrictions = No
    password server = *
    smb passwd file = /usr/local/samba/private/smbpasswd
    private dir = /usr/local/samba/private
    passdb backend = samba_dsdb
    algorithmic rid base = 1000
    root directory =
    guest account = nobody
    enable privileges = Yes
    pam password change = No
    passwd program =
    passwd chat = *new*password* %n\n *new*password* %n\n *changed*
    passwd chat debug = No
    passwd chat timeout = 2
    check password script =
    username map =
    password level = 0
    username level = 0
    unix password sync = No
    restrict anonymous = 0
    lanman auth = No
    ntlm auth = Yes
    client NTLMv2 auth = Yes
    client lanman auth = No
    client plaintext auth = No
    client use spnego principal = No
    preload modules =
    dedicated keytab file =
    kerberos method = default
    map untrusted to domain = No
    log level = 2
    syslog = 1
    syslog only = No
    log file =
    max log size = 5000
    debug timestamp = Yes
    debug prefix timestamp = No
    debug hires timestamp = Yes
    debug pid = No
    debug uid = No
    debug class = No
    enable core files = Yes
    smb ports = 445, 139
    large readwrite = Yes
    server max protocol = SMB3
    server min protocol = LANMAN1
    client max protocol =
    client min protocol =
    unicode = Yes
    min receivefile size = 0
    read raw = Yes
    write raw = Yes
    disable netbios = No
    reset on zero vc = No
    log writeable files on exit = No
    defer sharing violations = Yes
    nt pipe support = Yes
    nt status support = Yes
    max mux = 50
    max xmit = 16644
    name resolve order = lmhosts, wins, host, bcast
    max ttl = 259200
    max wins ttl = 518400
    min wins ttl = 21600
    time server = No
    unix extensions = Yes
    use spnego = Yes
    client signing = default
    server signing = default
    client use spnego = Yes
    client ldap sasl wrapping = plain
    enable asu support = No
    svcctl list =
    cldap port = 0
    dgram port = 0
    nbt port = 0
    krb5 port = 0
    kpasswd port = 0
    web port = 0
    rpc big endian = No
    deadtime = 0
    getwd cache = Yes
    keepalive = 300
    lpq cache time = 30
    max smbd processes = 0
    max disk size = 0
    max open files = 16384
    socket options = TCP_NODELAY
    use mmap = Yes
    hostname lookups = No
    name cache timeout = 660
    ctdbd socket =
    cluster addresses =
    clustering = No
    ctdb timeout = 0
    ctdb locktime warn threshold = 0
    smb2 max read = 1048576
    smb2 max write = 1048576
    smb2 max trans = 1048576
    smb2 max credits = 8192
    load printers = Yes
    printcap cache time = 750
    printcap name =
    cups server =
    cups encrypt = No
    cups connection timeout = 30
    iprint server =
    disable spoolss = No
    addport command =
    enumports command =
    addprinter command =
    deleteprinter command =
    show add printer wizard = Yes
    os2 driver map =
    mangling method = hash2
    mangle prefix = 1
    max stat cache size = 256
    stat cache = Yes
    machine password timeout = 604800
    add user script =
    rename user script =
    delete user script =
    add group script =
    delete group script =
    add user to group script =
    delete user from group script =
    set primary group script =
    add machine script =
    shutdown script =
    abort shutdown script =
    username map script =
    username map cache time = 0
    logon script =
    logon path = \\%N\%U\profile
    logon drive =
    logon home = \\%N\%U
    domain logons = No
    init logon delayed hosts =
    init logon delay = 100
    os level = 20
    lm announce = Auto
    lm interval = 60
    preferred master = No
    local master = Yes
    domain master = Auto
    browse list = Yes
    enhanced browsing = Yes
    dns proxy = Yes
    wins proxy = No
    wins server =
    wins support = No
    wins hook =
    lock spin time = 200
    oplock break wait time = 0
    ldap admin dn =
    ldap delete dn = No
    ldap group suffix =
    ldap idmap suffix =
    ldap machine suffix =
    ldap passwd sync = no
    ldap replication sleep = 1000
    ldap suffix =
    ldap ssl = start tls
    ldap ssl ads = No
    ldap deref = auto
    ldap follow referral = Auto
    ldap timeout = 15
    ldap connection timeout = 2
    ldap page size = 1024
    ldap user suffix =
    ldap debug level = 0
    ldap debug threshold = 10
    eventlog list =
    add share command =
    change share command =
    delete share command =
    preload =
    lock directory = /usr/local/samba/var/lock
    state directory = /usr/local/samba/var/locks
    cache directory = /usr/local/samba/var/cache
    pid directory = /usr/local/samba/var/run
    ntp signd socket directory =
    utmp directory =
    wtmp directory =
    utmp = No
    default service =
    message command =
    get quota command =
    set quota command =
    remote announce =
    remote browse sync =
    nbt client socket address = 0.0.0.0
    nmbd bind explicit broadcast = Yes
    homedir map = auto.home
    afs username map =
    afs token lifetime = 604800
    log nt token command =
    NIS homedir = No
    registry shares = No
    usershare allow guests = No
    usershare max shares = 0
    usershare owner only = Yes
    usershare path = /usr/local/samba/var/locks/usershares
    usershare prefix allow list =
    usershare prefix deny list =
    usershare template share =
    allow insecure wide links = No
    async smb echo handler = No
    panic action =
    perfcount module =
    host msdfs = Yes
    passdb expand explicit = No
    idmap backend = tdb
    idmap cache time = 604800
    idmap negative cache time = 120
    idmap uid =
    idmap gid =
    template homedir = /home/%D/%U
    template shell = /bin/false
    winbind separator = \
    winbind cache time = 300
    winbind reconnect delay = 30
    winbind max clients = 200
    winbind enum users = Yes
    winbind enum groups = Yes
    winbind use default domain = No
    winbind trusted domains only = No
    winbind nested groups = Yes
    winbind expand groups = 1
    winbind nss info = template
    winbind refresh tickets = No
    winbind offline logon = No
    winbind normalize names = No
    winbind rpc only = No
    create krb5 conf = Yes
    ncalrpc dir = /usr/local/samba/var/run/ncalrpc
    winbind max domain connections = 1
    winbindd socket directory =
    winbindd privileged socket directory =
    winbind sealed pipes = No
    allow dns updates = disabled
    dns forwarder = 192.168.1.102
    dns update command =
    nsupdate command =
    rndc command =
    multicast dns register = Yes
    samba kcc command =
    server services =
    dcerpc endpoint servers =
    spn update command =
    share backend =
    tls enabled = No
    tls keyfile =
    tls certfile =
    tls cafile =
    tls crlfile =
    tls dh params file =
    rpc_server:tcpip = no
    rpc_daemon:spoolssd = embedded
    rpc_server:spoolss = embedded
    rpc_server:winreg = embedded
    rpc_server:ntsvcs = embedded
    rpc_server:eventlog = embedded
    rpc_server:srvsvc = embedded
    rpc_server:svcctl = embedded
    rpc_server:default = external
    idmap config * : backend = ad
    comment =
    path =
    username =
    invalid users =
    valid users =
    admin users =
    read list =
    write list =
    force user =
    force group =
    read only = Yes
    acl check permissions = Yes
    acl group control = No
    acl map full control = Yes
    create mask = 0744
    force create mode = 00
    directory mask = 0755
    force directory mode = 00
    force unknown acl user = No
    inherit permissions = No
    inherit acls = No
    inherit owner = No
    guest only = No
    administrative share = No
    guest ok = No
    only user = No
    hosts allow =
    hosts deny =
    allocation roundup size = 1048576
    aio read size = 0
    aio write size = 0
    aio write behind =
    ea support = No
    nt acl support = Yes
    profile acls = No
    map acl inherit = No
    afs share = No
    smb encrypt = default
    durable handles = Yes
    block size = 1024
    change notify = Yes
    directory name cache size = 100
    kernel change notify = Yes
    max connections = 0
    min print space = 0
    strict allocate = No
    strict sync = No
    sync always = No
    use sendfile = No
    write cache size = 0
    max reported print jobs = 0
    max print jobs = 1000
    printable = No
    print notify backchannel = Yes
    print ok = No
    printing = cups
    cups options =
    print command =
    lpq command = %p
    lprm command =
    lppause command =
    lpresume command =
    queuepause command =
    queueresume command =
    printer name =
    use client driver = No
    default devmode = Yes
    force printername = No
    printjob username = %U
    default case = lower
    case sensitive = Auto
    preserve case = Yes
    short preserve case = Yes
    mangling char = ~
    hide dot files = Yes
    hide special files = No
    hide unreadable = No
    hide unwriteable files = No
    delete veto files = No
    veto files =
    hide files =
    veto oplock files =
    map archive = No
    map hidden = No
    map system = No
    map readonly = no
    mangled names = Yes
    store dos attributes = Yes
    dmapi support = No
    browseable = Yes
    access based share enum = No
    blocking locks = Yes
    csc policy = manual
    fake oplocks = No
    kernel oplocks = No
    kernel share modes = Yes
    locking = Yes
    oplocks = Yes
    level2 oplocks = Yes
    oplock contention limit = 2
    posix locking = Yes
    strict locking = Auto
    dfree cache time = 0
    dfree command =
    copy =
    preexec =
    preexec close = No
    postexec =
    root preexec =
    root preexec close = No
    root postexec =
    available = Yes
    volume =
    fstype = NTFS
    set directory = No
    wide links = No
    follow symlinks = Yes
    dont descend =
    magic script =
    magic output =
    delete readonly = No
    dos filemode = No
    dos filetimes = Yes
    dos filetime resolution = No
    fake directory create times = No
    vfs objects = dfs_samba4, acl_xattr
    msdfs root = No
    msdfs proxy =
    ntvfs handler =

[netlogon]
    path = /usr/local/samba/var/locks/sysvol/test.local/scripts
    read only = No

[sysvol]
    path = /usr/local/samba/var/locks/sysvol
    read only = No

[profiles]
    path = /usr/local/samba/var/profiles
    read only = No
root@debian-samba4:/usr/local/samba/etc#


McSim писал(а):
21.06.2013 11:00
и снова выполни getent passwd. покажи вывод.

По идее, при параметрах

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

passwd:         compat winbind
group:          compat winbind

и

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

    winbind enum users = Yes
    winbind enum groups = Yes

getent через интефейс внбинда ( WINBINDD_SOCKET_DIR: /usr/local/samba/var/run/winbindd WINBINDD_PRIVILEGED_SOCKET_DIR: /usr/local/samba/var/lib/winbindd_privileged) должен получать список пользователей из AD. Очень странно, что не получает...

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

root@debian-samba4:/usr/local/samba/etc# getent passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
Debian-exim:x:101:103::/var/spool/exim4:/bin/false
statd:x:102:65534::/var/lib/nfs:/bin/false
sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin
tester:x:1000:1000:tester,,,:/home/tester:/bin/bash
messagebus:x:104:106::/var/run/dbus:/bin/false
root@debian-samba4:/usr/local/samba/etc#

McSim писал(а):
21.06.2013 11:00
Еще можно попробовать следующее:
1. попробовать на обоих серверах отобразить UID GID пользователя с помощью команды id tester4
2. создать еще одного пользователя.
Создать от этого пользователя файл/папку на обоих серверах, либо сделать логин в доменную рабочую станцию (ну чтобы создался элемент в файловой системе с владельцем - пользователем) и проверить соответствие UID GID с помощью ls -ln. Может в четвертой самбе каки-то образом порезали винбинд и он не отдает системе данные из самбы, но сама самба после того как мы указали idmap - ad уже корректно синхронизирет идентификаторы...

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

root@debian-samba4:/usr/local/samba/etc# id tester4
id: tester4: No such user
root@debian-samba4:/usr/local/samba/etc#


:wacko:
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение McSim »

видимо библиотека, ответственная за winbind не отрабатывает.
Как это проверить честно говоря затрудняюсь подсказать... по карйней мере пока...
Может кто-то из форумчан что-то подскажет.
Хотелось бы получить результат этого:
2. создать еще одного пользователя.
Создать от этого пользователя файл/папку на обоих серверах, либо сделать логин в доменную рабочую станцию (ну чтобы создался элемент в файловой системе с владельцем - пользователем) и проверить соответствие UID GID с помощью ls -ln. Может в четвертой самбе каки-то образом порезали винбинд и он не отдает системе данные из самбы, но сама самба после того как мы указали idmap - ad уже корректно синхронизирет идентификаторы...
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

Сейчас уже сделал два новых виртуальных серера и полностью переустановил самбу и пересоздал домен.
В результате появилась еще одна проблема - при создании пользователей через PDC они на BDC не появляются, а при создании на BDC появляются на PDC через пару секунд.
В чём может быть дело?
Спасибо сказали:
Аватара пользователя
McSim
Сообщения: 419
Статус: Экспериментатор
ОС: заGNU/Linux Debian

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение McSim »

esvaf писал(а):
21.06.2013 15:51
Сейчас уже сделал два новых виртуальных серера и полностью переустановил самбу и пересоздал домен.
В результате появилась еще одна проблема - при создании пользователей через PDC они на BDC не появляются, а при создании на BDC появляются на PDC через пару секунд.
В чём может быть дело?

конфиги samba, nss, и версию samba в студию :rolleyes:
а еще, этот параметр не нужно было отключать:

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

#    idmap_ldb:use rfc2307 = yes

Это позволяет использовать схему NIS в LDAP встроенном в SAMBA AD

P.S. Зачем новая переустановка-то происходила? Давай со старой разберемся...
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

McSim писал(а):
21.06.2013 16:06
esvaf писал(а):
21.06.2013 15:51
Сейчас уже сделал два новых виртуальных серера и полностью переустановил самбу и пересоздал домен.
В результате появилась еще одна проблема - при создании пользователей через PDC они на BDC не появляются, а при создании на BDC появляются на PDC через пару секунд.
В чём может быть дело?

конфиги samba, nss, и версию samba в студию :rolleyes:
а еще, этот параметр не нужно было отключать:

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

#    idmap_ldb:use rfc2307 = yes

Это позволяет использовать схему NIS в LDAP встроенном в SAMBA AD

P.S. Зачем новая переустановка-то происходила? Давай со старой разберемся...

Можно и со старой, я её не удалял, но там тоже периодически проскакивали глюки типа неполной синхронизации, что меня коробило. Плюс я при новой сборке самбы указал --with-shared-modules=idmap_ad,idmap_rid
Спасибо сказали:
Аватара пользователя
esvaf
Бывший модератор
Сообщения: 844
Статус: экс- LinuxForum.Ru team
ОС: CentOS 5.3

Re: Два контроллера домена на Samba 4 - разные UID пользователей

Сообщение esvaf »

McSim писал(а):
21.06.2013 16:06
конфиги samba, nss, и версию samba в студию :rolleyes:


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

root@pdc2:~# /usr/local/samba/sbin/samba -V
Version 4.0.6
root@pdc2:~# cat /usr/local/samba/etc/smb.conf
# Global parameters
[global]
    workgroup = TEST
    realm = TEST.LOCAL
    netbios name = PDC2
    server role = active directory domain controller
    dns forwarder = 192.168.1.102
    idmap_ldb:use rfc2307 = yes
    idmap config TEST:backend = ad
    idmap config TEST:default = yes
    idmap config TEST:schema_mode = rfc2307
    winbind nss info = rfc2307
    winbind trusted domains only = no
    winbind use default domain = yes
    winbind enum users  = yes
    winbind enum groups = yes

[netlogon]
    path = /usr/local/samba/var/locks/sysvol/test.local/scripts
    read only = No

[sysvol]
    path = /usr/local/samba/var/locks/sysvol
    read only = No

[profiles]
    path = /usr/local/samba/var/profiles
    read only = No
root@pdc2:~# cat /etc/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
group:          compat
shadow:         compat

hosts:          files dns
networks:       files

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

netgroup:       nis
root@pdc2:~#
Спасибо сказали: