具有不同path的平台上的LDAP loginShell

我正在使用LDAP来处理我的networking中的用户和身份validation。 我现在添加FreeBSD主机,并且遇到loginshell的问题。 在Linux上,shell通常位于/bin/$shellname ,因此将我在LDAP中的loginshell设置为/bin/zsh是完美的。 在FreeBSD上, /bin/zsh不存在,我需要使用/usr/local/bin/zsh 。 有针对这个的解决方法吗? 我想我可以制作一些login-shell.sh脚本,将LDAP作为“shell”传递出去,然后使用脚本来为用户确定实际的shell,但是我不是那个想法的粉丝。

我正在使用Debian和FreeBSD,都使用标准的OpenLDAP / PAM / nss设置。

编辑 :它看起来像使用/bin/sh和添加一个exec $shell.profile将“工作”,但这并不能很好地扩展。

您可以在每台机器上创build一个目录/ shell,并使用指向shell位置的符号链接。 这样,您感兴趣的用户可以拥有shell / zsh,/ shell / bash等等的shell,而符号链接在本地处理实际的位置问题。