シェルが /usr/bin/bash に設定されている場合、ログインできません

シェルが /usr/bin/bash に設定されている場合、ログインできません

そこで、興味深い問題に遭遇しました。Arch Linux では、シェルを使用するユーザーを作成すると、/usr/binログインできません。次のようにしてユーザーを作成します。

useradd -m -G wheel -s /usr/bin/bash username

ログインしようとすると、「ログインが正しくありません」というメッセージが表示されます。ただし、/etc/passwdシェルを編集して に変更すると/bin/bash、すべて正常に動作します。

ここで何が起こっているのか、何か分かりますか? ありがとうございます!

答え1

としてArch Wikiは明らかに:

警告: ログインできるようにするには、ログイン シェルが /etc/shells にリストされているシェルのいずれかである必要があります。そうでない場合、PAM モジュール pam_shell はログイン要求を拒否します。特に、/bin/bashの代わりに/usr/bin/bashパスを使用しないでください。ただし、/etc/shells で適切に設定されていない場合は、

cat /etc/shells                         
#
# /etc/shells
#

/bin/sh
/bin/bash

答え2

bashが にあり/bin/bash/binがリンクされていない場合/usr/bin、Bash へのパスを間違って指定すると、ログイン プログラムはシェルを起動できません。

バイナリがリンクされている場合は、/etc/shells両方のバリアントを含めるように編集する必要があります。

関連情報