Sudo não pede senhas se NOPASSWD não funcionar

1

Eu tenho um programa que é executado uma vez e se remove de sudoers quando terminar. E eu tenho alguns scripts que chamam essa função de uma sessão ssh . O que eu gostaria é que esses comandos não sejam interrompidos no prompt de senha quando o comando que eu quero executar não estiver em sudoers .

Existe uma maneira de substituir a função SUDO_ASKPASS para apenas bombardear para que eu possa ignorar a execução de coisas que, de outra forma, me apresentariam prompts de senha?

Minha melhor tentativa foi algo como:

SUDO_ASKPASS=/bin/false sudo -A /opt/sbin/mycommand

mas isso me deixou com

sudo: pam_authenticate: Conversation error

Eu basicamente quero que sudo nunca me peça uma senha, independentemente de o comando que estou executando esteja em sudoers.

A minha correção dos lazybones é remover o comando -t do meu ssh e esperar que eu nunca precise realmente usar o terminal.

Outra correção, eu acho, seria apenas para brindar meu script que está em sudoers e fazer com que ele imprima um ASCII thumbs-up ou algo útil.

Existe uma maneira direta de contornar isso?

    
por Peter Turner 29.06.2017 / 23:06

1 resposta

1

Você pode perguntar a sudo -l . Ele retorna o caminho completo do comando a ser executado ou sai com um status diferente de zero. Aqui, ignoramos a saída e verificamos o retorno de status:

if sudo -l somecommand... >/dev/null
then
    echo "This is permitted" >&2
else
    echo "You are out of luck today" >&2
fi
    
por 30.06.2017 / 00:49

Tags