如果 shell 設定為 /usr/bin/bash 則無法登入

如果 shell 設定為 /usr/bin/bash 則無法登入

所以我遇到了一個有趣的問題。在 Arch Linux 上,如果我建立一個使用 shell 的用戶,/usr/bin他們將無法登入。

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

當他們嘗試登入時,他們會收到“登入錯誤”。但如果我編輯/etc/passwdshell 並將其更改為/bin/bash,一切都會正常工作。

有什麼想法嗎?謝謝!

答案1

作為Arch Wiki 明確表示

警告:為了能夠登錄,登入 shell 必須是 /etc/shells 中列出的 shell 之一,否則 PAM 模組 pam_shell 將拒絕登入要求。特別是,不要使用 /usr/bin/bash 路徑代替 /bin/bash,除非在 /etc/shells 中正確配置。

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

/bin/sh
/bin/bash

答案2

如果和沒有連結bash在一起,那麼如果您指定了錯誤的 Bash 路徑,登入程式將無法啟動 shell。/bin/bash/bin/usr/bin

如果二進位檔案連結在一起,則您需要進行編輯/etc/shells以包含這兩個變體。

相關內容