239 votes

Touch ID pour la barre tactile de Mac peut-il authentifier les utilisateurs sudo et les privilèges d'administrateur ?

  • Touch ID pour la barre tactile du MacBook Pro prend-il en charge l'élévation des privilèges d'administrateur dans MacOS ?

  • De manière un peu différente, est-ce que le Touch ID peut donner un accès sudo dans Terminal ?

Je me pose cette question parce que j'envisage d'obtenir un YubiKey qui permet de saisir une chaîne de caractères dans les champs de mot de passe, mais Touch ID pour les Macs pourrait rendre cette fonction inutile.

2 votes

1 votes

@pathikrit - proche mais il semble qu'un module PAM serait une bien meilleure solution qu'un sudo bifurqué. Je n'en ai pas encore vu qui ait été écrit ; je vais peut-être m'y essayer.

2 votes

Les utilisateurs de Tmux doivent configurer pam_reattach . Installer, par exemple, via brew install pam-reattach et ajoutez la ligne auth optional /opt/homebrew/lib/pam/pam_reattach.so (ou /opt/homebrew/lib/... pour les Macs Intel) avant la ligne auth sufficient pam_tid.so . ( via )

9voto

Mark Ballew Points 51

Pour résumer la solution d'Andy et Glenjamin en une seule pièce :

---
- hosts: localhost
  tasks:
  - name: install pam_reattach pam module
    homebrew:
      name: fabianishere/personal/pam_reattach
      state: present
    register: reattach_result

  - name: detect touch id support
    shell: pgrep ControlStrip
    ignore_errors: true
    register: touch_id_result

  - name: enable touch id for sudo commands
    lineinfile:
      path: /etc/pam.d/sudo
      line: 'auth       sufficient     pam_tid.so'
      insertbefore: '^auth       sufficient     pam_smartcard.so$'
    become: yes
    when: touch_id_result.rc == 0 and touch_id_result.stdout != ''

  - name: enable persistent touch id for tmux and iterm
    lineinfile:
      path: /etc/pam.d/sudo
      line: 'auth       optional       pam_reattach.so'
      insertbefore: '^auth       sufficient     pam_tid.so$'
    become: yes
    when: reattach_result == 0

Cela peut être exécuté avec seulement ansible-playbook sudo-touchid.ymlsudo-touchid.yml c'est le nom que j'ai donné à cette pièce.

La première étape consiste à installer le logiciel de Fabian pam_reattach qui permet à sudo de fonctionner dans iTerm, tmux, etc. Il n'est pas dans les formules par défaut de Homebrew, donc nous le récupérons de son propre dépôt.

La seconde vérifie si ce Mac possède une barre tactile, sinon nous allons abandonner.

Troisièmement, on regarde si on a déjà ajouté pam_tid.so à /etc/pam.d/sudo et seulement s'il y a une barre tactile.

Enfin, nous ajoutons également pam_reattach.so comme un optional méthode d'authentification. Selon l'auteur, il pourrait avoir un bug inconnu, et si nous utilisons required cela pourrait entraîner un lock-out.

3 votes

Cette réponse pourrait bénéficier d'une explication sur la façon de l'utiliser et sur la raison pour laquelle les différentes parties sont nécessaires.

0 votes

Il s'avère que pgrep ControlStrip réussit aussi sur mon MBP 2021 M1 Max, même s'il n'a plus de barre tactile.

4voto

Andy Points 131

J'ai créé les tâches ansible suivantes pour activer touch id pour les commandes sudo si votre ordinateur le supporte :

- name: detect touch id support
  shell: pgrep ControlStrip
  ignore_errors: true
  register: touch_id_result

- name: enable touch id for sudo commands
  lineinfile:
    path: /etc/pam.d/sudo
    line: 'auth       sufficient     pam_tid.so'
    insertbefore: '^auth       sufficient     pam_smartcard.so$'
  become: yes
  when: touch_id_result.rc == 0 and touch_id_result.stdout != ''

4voto

Michael Warkentin Points 956

Ma réponse à une ficelle :

sudo su root -c 'chmod +w /etc/pam.d/sudo && echo "auth       sufficient     pam_tid.so\n$(cat /etc/pam.d/sudo)" > /etc/pam.d/sudo && chmod -w /etc/pam.d/sudo'

Que fait une commande ?

  1. D'abord, j'indique que je veux tout faire de Root (en utilisant sudo, l'astuce ne fonctionnera pas ( plus précisément il le fera, mais plus difficile à mettre en œuvre)
  2. Ensuite, je donne les droits d'écriture à /etc/pam.d/sudo
  3. Puis j'ajoute la ligne auth sufficient pam_tid.so à le début du fichier. Voir ce poste
  4. Ensuite, j'enlève le droits d'écriture accordés /etc/pam.d/sudo , en prenant en en tenant compte Remarques de Matin ZD

P.S. En expérimentant sudo et su cassé dans le terminal, il se répare comme ceci https://support.apple.com/en-us/HT204012 activer la racine

su - root
vim /etc/pam.d/sudo

Rétablir le fichier dans son état d'origine

0 votes

Le PS vient de me sauver la vie ! Mais j'avais besoin du lien anglais et non du lien russe ( support.apple.com/fr/HT204012 ), alors j'ai envoyé une modification.

1voto

Edward Brey Points 317

Cette ligne insérera la ligne d'authentification décrite ci-dessus. ici comme deuxième ligne de la sudo (de sorte qu'il apparaisse en premier après la ligne de commentaire).

sudo sed -i -- '2s/^/auth sufficient pam_tid.so\n/' /etc/pam.d/sudo

0voto

Une chose à mentionner est que vous devez d'abord modifier l'autorisation du fichier puis essayer d'effectuer des modifications :

sudo su -
chmod u+w /etc/pam.d/sudo

Ajout de cette ligne à la première ligne :

# sudo: auth account password session
auth       sufficient     pam_tid.so # << Add this here ;)
auth       sufficient     pam_smartcard.so
auth       required       pam_opendirectory.so
account    required       pam_permit.so
password   required       pam_deny.so
session    required       pam_permit.so

Puis rétablissez les autorisations de fichiers lorsque vous avez terminé :

chmod u-w /etc/pam.d/sudo

2 votes

Je fais et recommande ce changement depuis des années et je n'ai jamais entendu dire que quelqu'un avait besoin de le faire. Si cela est parfois nécessaire, je pense qu'il serait utile d'expliquer quand, sinon cela semble complètement superflu.

0 votes

J'avais un focus sur les permissions, pas pour cette ligne ;) @grg Aussi, si vous voulez modifier le fichier ou y écrire, par défaut, la permission du fichier est 444, ce qui signifie que personne ne peut écrire.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X