xidNumber
в idmap.ldb
. Из-за особенностей работы idmap.ldb
нельзя гарантировать, что каждый контроллер домена будет использовать один и тот же идентификатор для данного пользователя или группы.
idmap.ldb
с контроллера домена, на котором установлена роль FSMO Эмулятор PDC (см. Роли FSMO), со всеми остальными контроллерами домена. Для достижения наилучших результатов следует регулярно синхронизировать idmap.ldb
.
# apt-get install ldb-tools
/var/lib/samba/private/idmap.ldb
:
#rm -f /var/lib/samba/private/idmap.ldb.bak
#tdbbackup -s .bak /var/lib/samba/private/idmap.ldb
#Создание резервной копии idmap.ldb 0 3 * * * rm -f /var/lib/samba/private/idmap.ldb.bak && tdbbackup -s .bak /var/lib/samba/private/idmap.ldb >/dev/null 2>&1
/var/lib/samba/private/
с удалением суффикса .bak (заменить существующий файл):
# rsync -a dc1:/var/lib/samba/private/idmap.ldb.bak /var/lib/samba/private/idmap.ldb
# net cache flush
# if ! samba-tool ntacl sysvolcheck; then samba-tool ntacl sysvolreset; fi
#Синхронизация idmap.ldb 15 4 * * * rsync -a dc1:/var/lib/samba/private/idmap.ldb.bak /var/lib/samba/private/idmap.ldb && net cache flush && if ! samba-tool ntacl sysvolcheck; then samba-tool ntacl sysvolreset; fi >/dev/null 2>&1
Важно
idmap.ldb
необходим перезапуск Samba (systemctl restart samba.service
), т.к. этот файл держится открытым процессами Samba.
idmap.ldb
можно избежать, если на всех контроллерах добавить следующие параметры в smb.conf
в секции [sysvol] (и в [netlogon]) строки:
acl_xattr:ignore system acls = yes acl_xattr:default acl style = windowsПри использовании этих параметров значения расширенных атрибутов файлов (xattr security.NTACL) на всех контроллерах будут одинаковы, независимо от uid/gid. Именно это и является проблемой при использовании
rsync
, т.к. при синхронизации rsync
передаёт имена пользователей/групп и они разыменовываются в uid/gid уже «на месте», а xattr security.NTACL остаётся неизменным и, в конфигурации по умолчанию (без вышеуказанных параметров), зависит от значений uid/gid/facl.