Tipp: Touch ID statt Passworteingabe für sudo am Mac

Mit der Anpassung einer Konfigurationsdatei lässt sich der Befehl sudo bequem per Fingerabdruck auf MacBooks autorisieren.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Lesezeit: 3 Min.

Frage: Ich benutze im Terminal häufiger das sudo-Kommando, um Befehle mit erweiterten Rechten auszuführen. Ich muss dabei stets mein langes Passwort von Hand eingeben und kann nicht, wie sonst in macOS üblich, den Touch ID-Sensor verwenden. Lässt sich das irgendwie nachrüsten?

Mac & i antwortet: Ja, das geht in der Tat, sofern Sie sich zutrauen, die Systemdatei /etc/pam.d/sudo zu bearbeiten. Diese legt fest, welche Authentifizierungsmethoden sudo unterstützt. Neben der Passworteingabe wäre das zum Beispiel ein Sicherheitsschlüssel (Smartcard). Der Trick ist nun, hier das Modul für Touch ID zu ergänzen. Geben Sie dazu im Terminal Folgendes ein, um die genannte Datei im Nano-Editor zu öffnen:

sudo nano /etc/pam.d/sudo

Nach Eingabe des Admin-Kennworts erscheint der Inhalt der Datei. Fügen Sie hier in der zweiten Zeile unterhalb ... pam_smartcard.so folgende Zeile hinzu:

auth sufficient pam_tid.so

Die Datei sollte nun diesen Inhalt haben:

# sudo: auth account password session
auth       sufficient     pam_smartcard.so
auth       sufficient     pam_tid.so
auth       required       pam_opendirectory.so
account    required       pam_permit.so
password   required       pam_deny.so
session    required       pam_permit.so

Beenden Sie Nano mit Ctrl+X, bestätigen die Änderung mit Y für "Yes" und übernehmen den vorgeschlagenen Dateinamen unverändert mit der Return-Taste, um die Datei zu überschreiben.

Mit der Anpassung einer Konfigurationsdatei lässt sich sudo per Touch ID autorisieren.

Wenn Sie das Terminal neu starten oder einen neuen Tab öffnen, erscheint bei Verwendung von sudo der typische Touch-ID-Dialog. Sollten Sie ihn abbrechen, können Sie wie gewohnt das Passwort manuell eingeben. Beim entfernten Zugriff auf Ihren Mac per SSH erfolgt die Authentifizierung logischerweise weiterhin per Tastatur. Unter Umständen müssen Sie die Prozedur nach der Installation eines Updates erneut ausführen, weil dabei die Datei mit den Authentifizierungsmodulen zurückgesetzt wird.

Wenn Sie das Touch-ID-Modul nach Updates nicht immer manuell ergänzen möchten, können Sie auch folgendes Shell-Skript verwenden, das den Vorgang automatisiert:

#!/usr/bin/env zsh

# Überprüfe, ob "pam_tid.so" in der Datei "/etc/pam.d/sudo" vorhanden ist
if ! grep -q "pam_tid.so" "/etc/pam.d/sudo"; then
    # Füge den Eintrag für 'pam_tid.so' in Zeile 3 ein
    sudo sed -i '' '3i\
auth       sufficient     pam_tid.so
' "/etc/pam.d/sudo"
    echo "Touch ID wurde in /etc/pam.d/sudo eingefügt."
else
    echo "Touch ID ist bereits in /etc/pam.d/sudo konfiguriert."
fi

Fügen Sie den Code etwa in TextEdit ein und speichern ihn unter "Touch ID für sudo aktivieren.command" ab. Die Endung "command" sorgt dafür, dass Sie das Skript per Doppelklick starten können. Damit das funktioniert, müssen Sie die Skriptdatei allerdings einmalig ausführbar machen:

chmod +x "/Pfad/zu/Touch ID für sudo aktivieren.command"

Einige Editoren wie BBEdit erledigen den letzten Schritt automatisch oder bieten wie CotEditor eine Option wie "Datei als ausführbar definieren" im Speichern-Dialog an.

Wichtig: Die Verwendung des Skripts geschieht auf eigene Gefahr, weshalb wir es nicht direkt als Download anbieten. Falls bei Ihnen die Datei /etc/pam.d/sudo in einer veränderten Fassung vorliegt, etwa durch ein Update nach Veröffentlichung des Artikels, kann das im schlimmsten Fall das sudo-Kommando unbrauchbar machen.

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmmung wird hier ein externer Preisvergleich (heise Preisvergleich) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (heise Preisvergleich) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

(lbe)