Интеграция Active Directory не работает должным образом с winbind и samba

Интеграция Active Directory не работает должным образом с winbind и samba

Я пытаюсь заставить свой Linux-бокс использовать аутентификацию Active Directory. Я считаю, что у меня почти все настроено правильно. Я могу выдавать wbinfo -gи wbinfo -uвидеть все группы и пользователей соответственно.

Краткое введение в мою установку:

Имя пользователя, которое я использую на моем Linux-ящике для выполнения административных задач, — nick. Мое имя пользователя Active Directory — nwalke. У них два разных пароля. Я могу войти в ящик с nickпаролем и этого пользователя, а также могу войти как nwalkeс nwalkeпаролем .

Любопытный момент:

После создания домашнего каталога пользователя Active Directory я запускаю скрипт, требующий доступа root. Это делается для настройки некоторых общесистемных вещей, таких как общий ресурс Samba для них. Когда я вхожу как nwalke, я ввожу свой nwalkeпароль, и все проходит успешно. Затем меня приветствует [sudo] password for nick:. Если я ввожу свой nwalkeпароль здесь, он говорит Sorry, try again.. Если я ввожу nickпароль , он говорит Sorry, user nick is not allowed to execute scriptname as root.

Если я сделаю groupsкак nwalke, то увижу, что волшебным образом моему пользователю была предоставлена ​​группа nick.

Теперь я случайно подумал, что nickу него UID 100, а не 1000. Так что изначально в моем smb.confу меня был idmap uid 1000-10000. Единственное, что я могу вспомнить, это то, что я вошел в систему, nwalkeкогда он был еще установлен, и теперь мне просто выдают UID 1000, заставляя Linux думать, что я nick.

Я не совсем уверен, куда идти дальше. Как я уже сказал, я почти уверен, что Active Directory правильно взаимодействует с моим сервером, но что-то должно быть неправильно отображено на стороне Linux.

Есть предположения?

Вот мой smb.conf:

[global]
    security = ads
    netbios name = hostname
    realm = COMPANY.COM
    password server = adshost.company.com
    workgroup = COMPANY
    idmap uid = 10000-90000
    idmap gid = 10000-90000
    winbind separator = +
    winbind enum users = no
    winbind enum groups = no
    winbind use default domain = yes
    template homedir = /home/%D/%U
    template shell = /bin/bash
    client use spnego = yes
    domain master = no
    load printers = no
    printing = bsd
    printcap name = /dev/null
    disable spoolss = yes

Нужно ли мне как-то привязываться к пользователю на Linux-компьютере?

решение1

Похоже, у вас есть перекрытие UID.
Если nwalkeи nickимеют одинаковый числовой UID, первое совпадение nsswitch победит для таких вещей, как id, sudo, ls, и т. д. (и первое совпадение обычно находится вне файла passwd, если вы не изменили порядок /etc/nsswitch.confили эквивалент).

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

Ваши локальные ( /etc/passwd, /etc/group) и удаленные (NIS, Samba, LDAP, что угодно) UID/GID не должны пересекаться. Исправьте эту основную проблему, и остальное решится само собой.

решение2

Я изменил значение в smb.conf на 10 000, но все равно создается впечатление, что nwalke связывается с 1000. Как решить эту проблему?

Я не могу вспомнить, какой это файл, и у меня сейчас нет системы, чтобы проверить.

Когда пользователь впервые подключается, ему назначается идентификатор, а затем он сохраняется в одной из баз данных Samba в /var/lib/samba/ Взгляните на эту папку, может быть очевидно, какой это файл. Вы можете попробовать остановить Samba и просто переместить/удалить все файлы там, хотя вам нужно будет снова присоединиться к домену, так как учетные данные учетной записи машины также хранятся в одной из этих баз данных.

Связанный контент