Eu enfrentei o mesmo erro de autenticação com pam_service_name=vsftpd .
pam_service_name=ftp corrigiu o problema, então testei isso como pam_service_name=foobar e também resolvi o problema!
Aviso: Eu também sou novo no Linux, mas acredito que o conselho geralmente aceito para definir pam_service_name=ftp está errado .
pam_service_name=vsftpd seleciona o arquivo de configuração existente /etc/pam.d/vsftpd , porém pam_service_name=ftp procurará /etc/pam.d/ftp que não existe (pelo menos no meu sistema - Ubuntu 14.04.2 LTS). Eu suspeito que isso está realmente ignorando a autenticação PAM sem reclamar que não pode encontrar o arquivo.
Por não usar uma configuração válida do PAM, ela pode ser menos segura.
Solução final
Acabei mantendo pam_service_name=vsftpd e verifiquei se o shell do usuário existia no arquivo /etc/shells . link
Olhando para /etc/pam.d/vsftd
# Standard behaviour for ftpd(8).
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.
# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth required pam_shells.so
Meu problema era que estava com falha na etapa auth required pam_shells.so . Eu fiz todos os meus usuários de FTP usarem o shell /usr/sbin/nologin que não existia no arquivo /etc/shells (não-ubuntu isso pode ser apenas /sbin/nologin ). Se você não tiver certeza, tente comentar o auth required pam_shells.so para ver se essa é a causa quando pam_service_name=vsftpd .
Nota: Outras leituras sugerem que é mais limpo criar usuários virtuais, mas isso requer uma configuração diferente do vsftpd e do PAM - link .