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:
securitydesea utilizar su información confidencial almacenada en "MyServiceName" en su llavero. Para permitir esto, ingrese la contraseña del llavero "iniciar sesión".Con las opciones a
Deny,AllowoAlways Allow
Pero no quiero ingresar mi contraseña de llavero cada vez, así que no puedo usar "Permitir" y prefiero no "Permitir siempre" para mantener un cierto nivel de seguridad aquí.
Idealmente, me gustaría obtener un aviso de Touch ID en su lugar. ¿Hay alguna forma de hacer esto?

Respuestas:
Al investigar esto, no pude encontrar ningún método que permitiera que el
securitycomando utilizara Touch ID. Este artículo titulado: Cómo usar Touch ID para autenticar sudo en Mac OS , mencionado en un comentario sobresudoy luego usar Touch ID, no funcionará aquí ya que hace uso de la adición de esta línea:de
sudoarchivo PAM 's,/etc/pam.d/sudo. No hay nada equivalente alsecuritycomando ya que no hace uso de élsudo.Por lo tanto, debe utilizar uno de los 2 métodos mencionados en el cuadro de diálogo al ejecutar el
securitycomando:Si selecciona "Permitir siempre", esto otorgará acceso indefinido solo al
securitycomando. Si selecciona "Permitir", otorgarásecurityacceso solo 1 vez a Keychain.Ejemplo
Aquí he creado un elemento de contraseña de aplicación en 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
securitycomando:Y permanentemente "Permitir siempre" se me dará la contraseña para este artículo de Keychain:
Pero lo más importante es que agregaré
securitya la ACL para este artículo en Keychain.fuente