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
desea 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
,Allow
oAlways 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
security
comando utilizara Touch ID. Este artículo titulado: Cómo usar Touch ID para autenticar sudo en Mac OS , mencionado en un comentario sobresudo
y luego usar Touch ID, no funcionará aquí ya que hace uso de la adición de esta línea:de
sudo
archivo PAM 's,/etc/pam.d/sudo
. No hay nada equivalente alsecurity
comando 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
security
comando:Si selecciona "Permitir siempre", esto otorgará acceso indefinido solo al
security
comando. Si selecciona "Permitir", otorgarásecurity
acceso 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
security
comando:Y permanentemente "Permitir siempre" se me dará la contraseña para este artículo de Keychain:
Pero lo más importante es que agregaré
security
a la ACL para este artículo en Keychain.fuente