, 1 min read
Linux pam and /etc/shells
I learned the hard way that a user in /etc/passwd not having a shell specified in /etc/shells is not able to log-on.
On Ubuntu /etc/shells looks like this:
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/tmux
/usr/bin/screen
On Arch it looks like this:
/bin/sh
/bin/bash
So if you provide a user with shell /usr/bin/bash, he cannot log-in, thanks to pam_shells.so.
See man shells, man pam_shells, and authentication error with shell=/usr/bin/bash.
Also see Creating User Account With Empty Password on Linux.