Я использую контроллер домена (oldap) для аутентификации моих хостов. Все это отлично работает, за исключением того, что мои пользователи ldap инициализируются неинтерактивными оболочками.
Я знаю, что проблема связана не с пользователем, поскольку домашний каталог скелета копируется успешно, а я может успешно эмулировать неинтерактивную оболочку, выполнив bash -l.
Кто-нибудь знает, где я могу настроить процесс загрузки пользователя? или процесс загрузки оболочки / tty / terminal?
Я знаю, что должен быть какой-то файл конфигурации, который определит, что оболочку по умолчанию следует вызывать с помощью интерактивной опции, но я не могу ее найти. [ ! d5]
PS: еще один странный побочный эффект - это порядок элементов моей переменной PATH. Обычно первыми элементами пути являются /usr/local/{sbin,bin}, затем /user. Я не уверен, что это важно, хотя
Я нашел это в моем случае! На самом деле, очень просто! Для начала запустите
ldapsearch -xLLLH ldap://<dc_uri> -b <dirbase> uid=<username> '*' > user.ldif
grep loginshell user.ldif
. В моем случае у пользователя была неправильная логическая оболочка, назначенная (/bin/sh), которая для меня означает тире и не 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, чтобы вы могли получить подробное моделирование того, что произойдет
Я нашел это в моем случае! На самом деле, очень просто! Для начала запустите
ldapsearch -xLLLH ldap://<dc_uri> -b <dirbase> uid=<username> '*' > user.ldif
grep loginshell user.ldif
. В моем случае у пользователя была неправильная логическая оболочка, назначенная (/bin/sh), которая для меня означает тире и не 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, чтобы вы могли получить подробное моделирование того, что произойдет