Как войти в систему, используя мои терминалы bash, работающие в интерактивном режиме?

2

Я использую контроллер домена (oldap) для проверки подлинности моих хостов. Все это прекрасно работает, за исключением того факта, что мои пользователи ldap инициализируются с неинтерактивными оболочками.

Я знаю, что проблема не в самом пользователе, так как домашний каталог скелета успешно копируется, и я могу успешно эмулировать интерактивную оболочку, выполнив ее bash -l.

Кто-нибудь знает, где я могу настроить процесс загрузки пользователя? или процесс загрузки оболочки / tty / терминала?

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

PS: еще один странный побочный эффект - порядок элементов моей переменной PATH. Обычно, сначала элементы пути /usr/local/{sbin,bin}, а затем /user контейнеры . Я не уверен, что это актуально, хотя

hanzo2001
источник

Ответы:

3

Я нашел это в моем случае! Довольно просто, на самом деле! Для начала беги

ldapsearch -xLLLH ldap://<dc_uri> -b <dirbase> uid=<username> '*' > user.ldif
grep loginshell user.ldif

В моем случае, у пользователя была назначена неправильная оболочка входа в систему ( /bin/sh), что для меня означает dash, а не bash .

Решение простое. Преобразуйте файл описания user.ldif в модификатор, а затем запустите ldapmodifyс достаточным количеством учетных данных.

# ldif
dn: uid=<username>,<dirbase>
changeType: modify
replace: loginShell
loginShell: /bin/bash

Тогда беги

ldapmodify -xWH ldap://<dc_uri> -D <adminuser> -f modUser.ldif

Если вы боитесь, это может взорваться вам в лицо, запустите -nvварианты, чтобы вы могли получить подробное моделирование того, что произойдет

hanzo2001
источник