Переопределить оболочку LDAP

9

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

Как я могу это сделать?? Может кто-нибудь дать мне какое-то направление в этом?

Спасибо

неимоверный
источник
какая ОС / версия?
rkthkr
ОС - Debian Lenny
Невероятно,

Ответы:

10

В /etc/ldap.conf добавьте следующую строку:

nss_override_attribute_value loginShell <different_shell>

Удачи,
Жоао Мигель Невес

jneves
источник
1
Просто обратите внимание, что для того, чтобы это работало на меня, мне пришлось перезапустить nscd после изменения ( /etc/init.d/nscd restart)
Майкл Миор
/etc/ldap.confэто файл конфигурации libnss На Debianish системах это так /etc/libnss-ldap.conf. В вашей системе man nss_ldap должен дать точное имя. Мне также пришлось бежать, nscd -i passwdчтобы очистить кэш nscd.
exore
3

Общие домашние каталоги? Если нет, ~/.bash_profileукажите пользователей (или какой-либо другой файл, проверьте INVOCATION в man bash):

exec /bin/tcsh

Или любую оболочку, на которую вы хотите заменить bash.

Если они входят через ssh, вы можете использовать пары ключей и принудительные команды.

Обратите внимание, что в зависимости от того, где вы размещаете exec для другой оболочки, такие команды scpмогут работать некорректно, если вы не проверяете наличие интерактивной оболочки, как в /etc/skel/.bashrcUbuntu.

Лучше всего попросить администратора LDAP изменить имя loginShellпользователя LDAP.

ptman
источник
Пользователи будут авторизоваться через ssh. Не могли бы вы подробнее рассказать об использовании пар ключей и опции принудительных команд. Можете ли вы дать мне несколько советов? Спасибо.
Невероятно,
Пары ключей SSH: < sial.org/howto/openssh/publickey-auth > Информацию о принудительных командах можно найти на страницах man sshd (8) и sshd_config (5)
ptman
Я не смог найти опцию, которая автоматически делает это для всех пользователей. Это также должно быть связано с ldap, потому что здесь sshd будет читать оболочку по умолчанию из ldap. И я хочу переопределить это.
Невероятно,