Não é possível efetuar login se o shell estiver definido como /usr/bin/bash

Não é possível efetuar login se o shell estiver definido como /usr/bin/bash

Então, acabei de me deparar com um problema interessante. No Arch Linux, se eu criar um usuário que usa um shell, /usr/binele não poderá efetuar login. Eu crio o usuário com:

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

e quando tentam fazer login, obtêm 'Login incorreto'. Mas se eu editar /etc/passwde alterar o shell para /bin/bash, tudo funcionará bem.

Alguma idéia do que está acontecendo aqui? Obrigado!

Responder1

Enquanto oArch Wiki deixa claro:

Aviso: Para poder efetuar login, o shell de login deve ser um dos listados em /etc/shells, caso contrário o módulo PAM pam_shell negará a solicitação de login.Em particular, não use o caminho /usr/bin/bash em vez de /bin/bash, a menos que esteja configurado corretamente em /etc/shells.

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

/bin/sh
/bin/bash

Responder2

Se bashestiver em /bin/bashe /bine /usr/binnão estiverem vinculados, o programa de login não poderá iniciar o shell se você especificar um caminho errado para o Bash.

Se os binários estiverem vinculados, será necessário editar /etc/shellspara incluir ambas as variantes.

informação relacionada