"also, check that the shell is not set to either /sbin/nologin or
/bin/false, which would also block login, even with a successful
In the link you provided, the above refers to
/etc/passwd file format is as follow :
- Username: It is used when user logs in. It should be between 1 and
32 characters in length.
- Password: An x character indicates that encrypted password is stored
in /etc/shadow file.
- User ID (UID): Each user must be assigned a user ID (UID). UID 0
(zero) is reserved for root and UIDs 1-99 are reserved for other
predefined accounts. Further UID 100-999 are reserved by system for
administrative and system accounts/groups.
Group ID (GID): The primary group ID (stored in /etc/group file)
User ID Info: The comment field. It allow you to add extra
information about the users such as user's full name, phone number
etc. This field use by finger command.
- Home directory: The absolute path to the directory the user will be
in when they log in. If this directory does not exists then users
directory becomes /
- Command/shell: The absolute path of a command or shell (/bin/bash).
Typically, this is a shell. Please note that it does not have to be
Here, you are interested in the last parameter :
In case you could find this interesting, here are the difference between
When /sbin/nologin is set as the shell, if user with that shell logs
in, they'll get a polite message saying 'This account is currently not
available.'. This message can be changed with the file
/bin/false is just a binary that immediately exits, returning false,
when its called, so when someone who has false as shell logs in,
they're immediately logged out when false exits.
So, basically, just check in file
/etc/passwd that you don't have
/bin/false defined in the last field for the user you need.
(well, not sure why i wrote such an answer as my initial comment should be enough, but that is...)