Foi um erro no meu script "auth" do PAM: o script foi encerrado sem nunca receber um "ok" ou "concluído".
Eu quero que o sudo se comporte assim para todos os usuários:
Se o usuário tiver atualmente uma senha não vazia, solicite a senha.
Se o usuário tiver uma senha vazia, solicite a senha e aceite a string vazia ou não solicite nada e permita.
Isso é possível? No momento, eu tenho (1), mas é o que acontece com um usuário com uma senha vazia:
$ sudo echo
Sorry, try again.
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts
Como alternativa, posso desativar a verificação de senha por usuário, mas não é isso que desejo, porque o usuário pode definir uma senha posteriormente e, em seguida, o sudo deve solicitá-la.
Eu não acho que isso seja possível porque sudo não saberá que um usuário não tem uma senha ou que é a string vazia até que ela ( sudo ) apresente a senha, vazia ou não, Módulo PAM para validação. Portanto, sempre será necessário solicitar a senha ao usuário antes de prosseguir.
Seu único recurso aqui é configurar usuários que não exigem o uso de uma senha com a opção NOPASSWD em seu arquivo sudoers. Mas isso é altamente inseguro, e eu recomendo que você considere seriamente qual é o seu objetivo final antes de continuar com esse método.
Este U & Q & A intitulado: Como você cria um usuário sem senha? sugeriu usar esse método que funcionou para mim.
$ sudo passwd --delete samtest
Removing password for user samtest.
passwd: Success
Agora, adicione uma linha como esta ao seu arquivo /etc/sudoers . NOTA: Edite sempre este arquivo usando sudo visudo .
samtest ALL=(ALL) NOPASSWD: ALL
Agora tente fazer login como usuário "samtest" sem nenhuma senha.
$ su - samtest
$
Agora, tente usar essa conta usando sudo :
$ whoami
samtest
$ sudo echo
$
Perguntando por que sudo através de um console funciona enquanto solicita uma senha por SSH?
Pelo menos no Ubuntu 16.04, a política padrão em /etc/pam.d/common-auth contém:
auth [success=1 default=ignore] pam_unix.so nullok_secure
Os pam_unix (8) documentos manuais que nullok_secure apenas permitem senhas vazias ao usar um dos TTYs em /etc/securetty . Se essa limitação não for desejada, pode-se substituir nullok_secure por nullok .
Como alternativa, é possível permitir que um usuário específico use senhas vazias por meio de um arquivo NOPASSWD sudoers, conforme descrito por slm.
Tags sudo