/etc/shells contém uma lista de binários que o sistema considera shells (irrestritos). Isso significa que qualquer uso que tenha configurado um desses binários como seu shell é considerado como tendo acesso total ao sistema (significando que eles podem executar qualquer comando, desde que tenham a permissão apropriada).
O resultado mais direto é que eles podem usar chsh para alterar o shell configurado.
Se um usuário tem um shell configurado que não é nesta lista, então o sistema assume que ele é de alguma forma restrito. No caso de chsh , significa que o usuário não pode alterar esse valor.
Outros programas podem consultar essa lista e aplicar restrições semelhantes.
Portanto, colocando nologin em /etc/shells você efetivamente diz "qualquer usuário que tenha nologin como seu shell é considerado um usuário completo e irrestrito". Isso é quase certamente o oposto do que nologin pretendia dizer .