Присоединившись к вечеринке, я наблюдаю за сетевыми системами, использующими LDAP, с домашними каталогами за пределами /home и UID (из-за сбоя сценариев) в миллионах. Поэтому ни один из текущих ответов не работает. Тест, который работает для меня, проверяет, имеет ли пользователь действительную оболочку входа. Действительная оболочка - это та, которая указана в /etc/shells. Простейшая форма:
getent passwd | grep -wFf /etc/shells
Файл может содержать комментарии (или пустые строки), поэтому их необходимо отфильтровать:
getent passwd | grep -wFf <(grep '^/' /etc/shells)