Existe um ótimo tutorial de Allan Odgaard no blog texmate que descreve como use o utilitário keychain da linha de comando para recuperar uma senha (entre outras coisas). Eu sugiro lê-lo, bem como os comentários correspondentes. Você pode criar uma função para ser genericamente usada, como
#!/bin/bash
get_pw () {
security 2>&1 >/dev/null find-generic-password -ga "$1" \
| ruby -e 'print $1 if STDIN.gets =~ /^password: "(.*)"$/'
}
pass=$(get_pw $1)
echo $pass
Para que isso seja feito de forma programática, sem a confirmação do usuário, você precisará conceder ao acesso security
binário (na minha instalação de 10.11.2 está localizado em /usr/bin/security
) a senha específica. Isso pode ser feito de duas maneiras:
-
executando o seguinte a partir de um terminal
security add-generic-password -a "account name" -s "service name" -T "/usr/bin/security" -U
como descrito por davidacland em sua resposta do JAMFNation . Observação : Eu não consegui reproduzir isso com um item de chaveiro existente (como a resposta davidacland sugere ser possível).
- ou -
- usando a GUI Keychain Access.app para adicionar manualmente
security
à lista de controle de acesso do item de chave:
Chaveiro GUI de acesso - > clique duas vezes no item de chaveiro - > Controle de acesso