如果 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以包含这两个变体。

相关内容