我使用 LDAP 来处理网络上的用户和身份验证。我现在正在添加 FreeBSD 主机,但遇到了登录 shell 的问题。在 Linux 上,shell 往往位于 中/bin/$shellname
,因此将 LDAP 中的登录 shell 设置为 可以/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
“有效”,但是扩展性不是很好。
答案1
您可以在每台机器上创建一个目录 /shell,其中包含指向 shell 位置的符号链接。这样,您感兴趣的用户就可以拥有 /shell/zsh、/shell/bash 等 shell,而符号链接在本地处理实际位置问题。