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 .