解決策 1:
Freenode の #suse チャネルでこれについて質問したところ、Miuku は Arul と同じことを提案しましたが、彼は 2 つのことを述べました。Windows ドメインを使用している場合、loginShell 属性を設定できます。
悲しいことに、私は samba ドメインにいるので、役に立ちませんでした。しかし、彼の最後の提案は完璧でした。次の出力を取得してください:
getent passwd USERNAME
これにより、ユーザーに相当する有効なエントリが /etc/passwd に作成されます。これを取得して /etc/passwd に貼り付け、使用するシェルの有効なパスの最後にシェルを更新します。この方法では、すべてのユーザーに対して変更されるわけではなく、変更を行う前に、これを構成しているマシンにシェルがあることを確認できます。
解決策 2:
まったく同じ問題がありました。ドメイン内のすべてのマシンに zsh がインストールされているわけではなく、すべてのユーザーに影響を与えたくないので、最終的に .bashrc に入れました:
if [ -x /usr/bin/zsh ]; then
echo 'starting zsh'
# export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
exec /usr/bin/zsh
fi
これは洗練されていないかもしれませんが、少なくとも仕事は完了します。
解決策 3:
samba ドメイン コントローラー構成を編集するアクセス権がある場合は、smb.conf でシェルを設定できる次のプロパティを設定できます
template shell = /bin/zsh
zsh がインストールされていないマシンにログインするとどうなるかはわかりませんが (すべてのディストリビューションにデフォルトで zsh がインストールされているわけではありません)、ディストリビューションのデフォルト シェルが呼び出されると思います。
単に試してみたいだけなら、zsh と入力してサブシェルを取得してください。