![无法使用 AD 帐户和 /bin/bash 登录 Linux](https://linux22.com/image/133739/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20AD%20%E5%B8%90%E6%88%B7%E5%92%8C%20%2Fbin%2Fbash%20%E7%99%BB%E5%BD%95%20Linux.png)
我已经配置了使用 AD 帐户登录 Linux 所需的一切(Kerberos v5、SSSD、Samba 和 NTP),但是当我使用 Putty 连接到服务器时,启动的默认 shell 是/bin/sh
.
我使用 Mac Mini PowerPC 并安装了 SSSD 版本 1.13.4。
/etc/sssd/sssd.conf
文件:
[sssd]
services = nss, pam
config_file_version = 2
domains = <FQDN>
reconnection_retries = 3
debug_level = 5
[nss]
default_shell = /bin/bash
debug_level = 5
[pam]
debug_level = 5
[domain/<FQDN>]
id_provider = ad
access_provider = ad
default_shell = /bin/bash
override_homedir = /home/%u
debug_level = 5
我有这个错误:
[e]0bash
daniel.luna@devsrv2:~$ exit
exit
[e]0
和
login as: daniel.luna
daniel.luna<FQDN>'s password:
...
Last login: Thu May 17 11:35:51 2018 from
-sh: 24: u@h:: not found
[e]0
我需要配置一切,以便默认启动 bash,有帮助吗?
答案1
您的用户的loginShell
LDAP 属性是什么?当使用 SSSD 的 LDAP/AD 后端时,这通常决定用户的 shell。
您可以使用几个不同的工具来验证用户的 shell。
使用getent passwd
,shell 将是第七个(最后一个)字段:
[hendrenj@pitserver ~]$ getent passwd hendrenj
hendrenj:*:152370:829:hendrenj:/home/hendrenj:/bin/bash
或者使用sssctl user-checks
,您可以 grep 查找 shell:
[hendrenj@pitserver ~]$ sudo sssctl user-checks hendrenj 2>&1 | grep shell
- shell: /bin/bash
如果报告的 shell 不是/bin/bash
,您将需要更新 LDAP 端的 shell 属性。如果报告的 shell 是/bin/bash
,则问题出在本地。要么您的 中存在配置错误sssd.conf
,要么/bin/bash
不是它声称的那样,或者用户的.bashrc
文件正在执行不同的 shell,或者存在其他一些本地问题。