Que programaapenaspergunta a senha do usuário especificado (mesmo que o usuário chamador seja root) e retorna o código de saída 0 se estiver OK e 1 se falhar?
Existe um programa tão simples (ou seja, não "sudo" com configuração editada) para executar a tarefa?
Também estou procurando um programa que faça login do usuário (verificando sua senha, escrevendo em auth.log), mas não execute nenhum programa (como login
), simplesmente retorne o código de saída.
Responder1
Você quer um utilitário conhecido comopwauth
. Ele faz exatamente o que você descreve: aceita nome de usuário e senha e retorna um código de saída com base na validade. Ele foi projetado para ser usado com o mod_auth_external do Apache para conectar-se à autenticação do sistema, mas deve funcionar perfeitamente para o que você deseja.
Responder2
O que você está tentando anular o propósito de uma sessão de usuário, o usuário já digitou essa senha quando fez login em sua conta, então é rude solicitá-la novamente para sua tarefa; se você deseja que seu programa seja baseado em login, a melhor abordagem é oferecer suporte aos chaveiros, isso permite que o próprio usuário escolha se deseja ou não digitar explicitamente uma senha para sua tarefa.
Não force os usuários a digitar correct horse battery staple
novamente quando acabaram de digitar...
Responder3
Parece que a maneira mais simples é escrevê-lo usandopython-pamusando /usr/share/doc/python-pam/examples/pamtest.py
como exemplo. O exemplo lê a senha, autentica o usuário usando PAM e escreve a mensagem dependendo do resultado. Pode ser facilmente alterado para códigos de saída variados.