![在 RHEL 上登录时将 shell 切换到 bash](https://linux22.com/image/88110/%E5%9C%A8%20RHEL%20%E4%B8%8A%E7%99%BB%E5%BD%95%E6%97%B6%E5%B0%86%20shell%20%E5%88%87%E6%8D%A2%E5%88%B0%20bash%20.png)
语境:
我们正在运行一个系统,该系统的 Linux 和 Unix 盒子需要针对 AD 进行身份验证,并且因为我们有许多不同版本的 Unix/Linux,所以我们必须默认为 /bin/sh 以确保无论服务器如何登录始终有效。我希望在 RHEL 上设置一个 .profile 以检查登录时设置的 shell,如果不是 bash,则切换到 bash。我没有任何运气谷歌搜索方法来做到这一点,我的 shell 脚本处于较弱的一面。
问题:
在没有 passwd 文件控制的情况下,如何在登录时检查 shell 和开关?
答案1
未经测试。编辑你的 ~/.profile ...
if [ -x /bin/bash ]; then
exec bash
fi
答案2
你的意思是类似的吗which bash >/dev/null && exec bash
?或者 的输出getent passwd
对你有用吗?