Remplacer l'invite de mot de passe par Touch ID pour lire le mot de passe du trousseau

14

J'utilise la commande suivante pour récupérer un mot de passe à partir du trousseau dans un script shell: security find-generic-password -w -s "MyServiceName"

Cela fonctionne, mais il affiche une fenêtre contextuelle me demandant le mot de passe du trousseau de connexion:

securitysouhaite utiliser vos informations confidentielles stockées dans "MyServiceName" dans votre trousseau. Pour ce faire, saisissez le mot de passe du trousseau "login".

Avec les options Deny, AllowouAlways Allow

Mais je ne veux pas entrer mon mot de passe de trousseau à chaque fois, donc je ne peux pas utiliser "Autoriser" et je préfère ne pas "Toujours autoriser" afin de maintenir un certain niveau de sécurité ici.

Idéalement, j'aimerais plutôt recevoir une invite Touch ID. Est-ce qu'il y a un moyen de faire ça ?

Coyotwill
la source
Ce serait génial ! Est-ce vous avez trouvé quelque chose?
ZedTuX
Je ne suis pas sûr que cela réponde à votre question, mais vous pouvez demander à sudo d'utiliser TouchID au lieu d'une boîte de dialogue de mot de passe, voir ici: osxdaily.com/2017/11/22/use-touch-id-sudo-mac
Harv

Réponses:

3

En enquêtant sur cela, je n'ai trouvé aucune méthode permettant à la securitycommande d'utiliser Touch ID. Cet article intitulé: Comment utiliser Touch ID pour authentifier sudo sur Mac OS , mentionné dans un commentaire concernant sudopuis utiliser le Touch ID, ne fonctionnera pas ici car cela utilise l'ajout de cette ligne:

auth sufficient pam_tid.so

au sudofichier PAM de /etc/pam.d/sudo. Il n'y a rien d'équivalent à la securitycommande car elle n'utilise pas sudo.

Par conséquent, il vous reste à utiliser l'une des 2 méthodes mentionnées dans la boîte de dialogue lors de l'exécution de la securitycommande:

  • Toujours autoriser
  • Autoriser

ss1

Si vous choisissez "Toujours autoriser", cela autorisera l'accès indéfiniment uniquement à la securitycommande. Si vous choisissez «Autoriser», il n'accordera l' securityaccès qu'une seule fois au trousseau.

Exemple

Ici, j'ai créé un élément de mot de passe d'application dans le trousseau appelé TestPassword.

ss2

Nous pouvons voir que rien n'y a été donné en regardant l'onglet ACL de cette boîte de dialogue.

ss3

Si j'exécute cette securitycommande:

$ security find-generic-password -w -s "TestPassword"

Et de façon permanente "Toujours autoriser", je recevrai le mot de passe pour cet article du trousseau:

TestPassword123

Mais plus important encore, je vais ajouter securityà l'ACL pour cet élément dans le trousseau.

ss4

slm
la source