Невозможно войти в систему, если оболочка установлена ​​на /usr/bin/bash

Невозможно войти в систему, если оболочка установлена ​​на /usr/bin/bash

Итак, я только что столкнулся с интересной проблемой. В Arch Linux, если я создаю пользователя, который использует оболочку, из которой /usr/binон не может войти. Я создаю пользователя с помощью:

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

и когда они пытаются войти, они получают 'Login Incorrect'. Но если я редактирую /etc/passwdи меняю оболочку на /bin/bash, все работает нормально.

Есть идеи, что здесь происходит? Спасибо!

решение1

КакArch Wiki ясно дает понять:

Предупреждение: Для того чтобы иметь возможность войти в систему, оболочка входа должна быть одной из перечисленных в /etc/shells, в противном случае модуль PAM pam_shell отклонит запрос на вход.В частности, не используйте путь /usr/bin/bash вместо /bin/bash., если только он не настроен должным образом в /etc/shells.

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

/bin/sh
/bin/bash

решение2

Если bashнаходится в /bin/bashи /binи /usr/binне связаны друг с другом, то программа входа в систему не сможет запустить оболочку, если вы укажете неправильный путь к Bash.

Если двоичные файлы связаны между собой, то вам необходимо отредактировать файл, /etc/shellsвключив оба варианта.

Связанный контент