Chsh企业登录

Chsh企业登录

我安装了 Fedora 34 并进行了企业登录(域用户)。

我无法将chsh用户默认 shell 更改为 zsh,因为用户不存在。 (它不存在,/etc/passwd因为不是本地用户)

/etc/passwd我尝试获取要添加的用户字符串getent passwd $USER,但它不起作用,因为字符串中存在@符号并且它会破坏登录。

有任何想法吗?

答案1

当用户位于已加入服务器的 Active Directory 中时,您无法直接向用户分配默认 shell。您可以使用相应的命令在它们所在的服务器上更改它,或者尝试覆盖它,但这会影响所有用户。如果您使用 SSSD 进行集成,您可以在 Fedora 计算机上编辑 /etc/sssd/sssd.conf 并添加

[domain/YOUR_DOMAIN]
override_shell = /bin/zsh

我建议您始终在域所在的服务器上进行更改。这将为你在未来避免很多问题

答案2

您需要指示服务器更改用户的密码。据我所知,对于 LDAP/AD,该chsh命令不知道如何执行此操作,您必须调用单独包装命令chsh.ldap

请注意,这会更改使用此网络帐户的所有计算机上的 shell,这意味着您将无法登录未安装 zsh(或安装在不同位置)的计算机。

选择不同登录 shell 的另一种方法是保留/bin/sh实际登录 shell(到处都存在),但指示它在~/.profile.

# ~/.profile
if [ -x /bin/zsh ]; then
  export SHELL=/bin/zsh
  exec $SHELL
fi

相关内容