Я пытаюсь заставить свой Linux-ящик использовать аутентификацию в активном каталоге. Я считаю, что почти все настроено правильно. Я могу выпустить wbinfo -g
и wbinfo -u
и увидеть все группы и пользователей соответственно.
Краткое введение в мою настройку:
Имя пользователя, которое я использую в своем Linux-окне для выполнения административных задач: nick
. Мое имя пользователя в активном каталоге nwalke
. У них два разных пароля. Я могу войти в ящик с помощью nick
и пароль этого пользователя, и я также могу войти как nwalke
с участием nwalke
пароль.
Любопытный момент:
После создания домашнего каталога пользователя активного каталога я запускаю сценарий, для которого требуется 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
.
Я не совсем уверен, что делать дальше. Как я уже сказал, я почти уверен, что активный каталог правильно взаимодействует с моим сервером, но что-то не должно отображаться прямо на стороне 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-серверу?
Я изменил значение в smb.conf на 10 000, но все еще кажется, что nwalke сопрягается с 1000. Как мне решить эту проблему?
Я не могу вспомнить, какой это файл, и в настоящее время у меня нет системы для проверки.
Когда пользователь впервые подключается, ему будет назначен идентификатор, а затем он будет сохранен в одной из баз данных Samba в /var/lib/samba/
Загляните в эту папку, может быть очевидно, какой это файл. Вы могли бы попробовать остановить Samba и просто переместить / удалить все файлы в нем, хотя вам нужно будет повторно присоединиться к домену, поскольку учетные данные учетной записи компьютера также хранятся в одной из этих баз данных.
Похоже, у вас есть перекрытие UID.
Если nwalke
и nick
использовать тот же числовой UID, что первое совпадение nsswitch выиграет для таких вещей, как id
, sudo
, ls
и т.д. (и первое совпадение обычно отсутствует в файле passwd, если вы не изменили порядок в /etc/nsswitch.conf
или эквивалент).
(логины будут работать с любым именем, потому что логин ищет пользователя по имени. Однако наличие двух пользователей с одинаковым именем вызовет некоторый интересный хаос ...)
Ваш местный (/etc/passwd
, /etc/group
) и удаленные (NIS, Samba, LDAP и т. д.) UID / GID не должны перекрываться. Устраните эту основную проблему, а остальное разрешится само.