Estoy usando el siguiente comando para obtener una contraseña del llavero en un script de shell:security find-generic-password -w -s "MyServiceName"
Funciona, pero muestra una ventana emergente que me pide la contraseña del llavero de inicio de sesión:
security
quiere usar su información confidencial almacenada en "MyServiceName" en su llavero. Para permitir esto, ingrese la contraseña del llavero de "inicio de sesión".Con las opciones para
Deny
,Allow
oAlways Allow
Pero no quiero ingresar la contraseña de mi llavero cada vez, así que no puedo usar "Permitir" y prefiero no "Permitir siempre" para mantener cierto nivel de seguridad aquí.
Idealmente, me gustaría recibir un aviso de Touch ID en su lugar. ¿Hay alguna manera de hacer esto?
Al investigar esto, no pude encontrar ningún método que permitiera que el security
comando hiciera uso de Touch ID. Este artículo titulado: Cómo usar Touch ID para autenticar sudo en Mac OS , mencionado en un comentario sobre sudo
el uso de Touch ID, no funcionará aquí ya que hace uso de la adición de esta línea:
auth sufficient pam_tid.so
al sudo
archivo PAM de , /etc/pam.d/sudo
. No hay nada equivalente al security
comando ya que no hace uso de sudo
.
Por lo tanto, le queda usar uno de los 2 métodos mencionados en el cuadro de diálogo al ejecutar el security
comando:
Si elige "Permitir siempre", esto otorgará acceso indefinidamente solo al security
comando. Si elige "Permitir", otorgará security
acceso solo 1 vez a Llavero.
Aquí he creado un elemento de contraseña de aplicación en el llavero llamado TestPassword.
Podemos ver que no se le ha dado acceso a nada mirando la pestaña ACL de este cuadro de diálogo.
Si ejecuto este security
comando:
$ security find-generic-password -w -s "TestPassword"
Y permanentemente "Permitir siempre" Me darán la contraseña para este elemento de Keychain:
TestPassword123
Pero lo que es más importante, lo agregaré security
a la ACL para este elemento en Llavero.
ZedTuX
Harv