覆盖LDAP Shell


9

我有一个LDAP服务器和一个预定义的外壳(bash)设置在其中。但是有些机器上我希望每当用户登录时使用不同的外壳,而不是存储在LDAP中的外壳。

我怎样才能做到这一点??有人可以给我一些指导吗?

谢谢


哪个操作系统/版本?
rkthkr

操作系统-Debian Lenny
令人难以置信的2010年

Answers:


10

在/etc/ldap.conf中添加以下行:

nss_override_attribute_value loginShell <different_shell>

祝你好运,
JoãoMiguel Neves


1
请注意,为了使它对我有用,我必须在更改(/etc/init.d/nscd restart)之后重新启动nscd
Michael Mior 2013年

/etc/ldap.conflibnss的配置文件。在debian系统上,它是/etc/libnss-ldap.conf。系统上的man nss_ldap应该提供确切的名称。我还必须运行nscd -i passwd刷新nscd缓存。
凌晨

3

共享主目录?如果没有,请放入用户~/.bash_profile(或任何合适的文件,请检查中的INVOCATION man bash):

exec /bin/tcsh

或者您希望用bash替换的任何外壳。

如果他们使用ssh登录,则可以使用密钥对和强制命令。

请注意,根据您将exec放置在另一个外壳上的位置,scp如果不检查交互式外壳(例如在/etc/skel/.bashrcUbuntu上),则类似的命令可能无法正常运行。

最好的选择是,请您的LDAP管理员loginShell为您的LDAP用户更改。


用户将通过ssh登录。您能否详细说明一下密钥对和强制命令选项的使用。你能给我一些指示吗?谢谢。
令人难以置信的2010年

SSH密钥对:< sial.org/howto/openssh/publickey-auth >有关强制命令的信息可以在手册页sshd(8)和sshd_config(5)上找到
ptman 2010年

我找不到自动为所有用户执行此操作的选项。它也应该与ldap有关,因为sshd将从ldap读取默认的shell。我想重写它。
令人难以置信的2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.