Czy Touch ID dla paska dotykowego MacBook Pro obsługuje podwyższanie uprawnień administratora w systemie macOS?
W jakiś inny sposób, czy Touch ID może dać dostęp sudo w Terminalu?
Zastanawiam się nad tym, ponieważ rozważam uzyskanie YubiKey, który może wprowadzać ciąg znaków do pól hasła, ale Touch ID dla komputerów Mac może sprawić, że nie będzie to konieczne.
Odpowiedzi:
TouchID obsługuje podnoszenie uprawnień, ale na razie wydaje się, że jest obsługiwany tylko we własnych aplikacjach Apple. Domyślam się, że aplikacje innych firm będą musiały zostać zaktualizowane, aby je obsługiwać, niestety. Nadal często wpisuję hasło.
Zobacz @ odpowiedź conorgriffin jest na instrukcje, aby włączyć TouchID dla sudo.
źródło
Aby TouchID na komputerze Mac uwierzytelniał Cię w celu
sudo
uzyskania dostępu zamiast hasła, wykonaj następujące czynności.sudo su -
/etc/pam.d/sudo
plik za pomocą edytora wiersza poleceń, takiego jakvim
lubnano
Zawartość tego pliku powinna wyglądać następująco
musisz dodać dodatkowy
auth
wiersz na górze, aby teraz wyglądał tak:vim
będzie wymagać użyciawq!
podczas zapisywania)sudo
a pojawi się monit o uwierzytelnienie za pomocą TouchID, jak pokazano poniżejUwaga: patrz odpowiedź użytkownika Pierz poniżej, jeśli korzystasz z iTerm, ponieważ musisz zmienić ustawienie, aby włączyć tę funkcję.
źródło
Jeśli korzystasz z iTerm2 (v3.2.8 +), być może zauważyłeś, że Touch ID nie działa z sudo w terminalu, pomimo dokonania
pam_tid.so
modyfikacji jak wyżej i działa w poprzednich wersjach. Jest to związane z zaawansowaną funkcją, która wydaje się teraz domyślnie włączona - należy ją tutaj wyłączyć: iTerm2-> Preferencje> Zaawansowane> (Przejdź do nagłówka sesji)> Zezwalaj sesjom na wylogowanie i ponowne zalogowanie .Alternatywnie możesz użyć tego
pam_reattach
modułu, aby jednocześnie zachować funkcję sesji i TouchID sudo.źródło
No
został ustawiony w otoczeniu. Możesz także wyszukać „dotyk”, a pojawi się opcja.pam_reattach
nie trzeba ani zmieniać ustawienia, ani restartować iTerm - wszystko działa od razu! (Nie testowałem, czy sesje rzeczywiście przetrwały, ponieważ nie mam pojęcia, jak to zrobić, ale nie potrzebowałem zmieniać ustawienia).Możesz użyć odcisku palca, aby uzyskać dostęp do sudo w terminalu lub iTerm, po prostu dodaj
auth sufficient pam_tid.so
do pierwszego wiersza/etc/pam.d/sudo
pliku.źródło
Allow sessions to survive logging out and back in
: gitlab.com/gnachman/iterm2/issues/7608#note_153123852Stworzyłem prosty skrypt, który umożliwia sudo korzystanie z modułu TouchID PAM dokładnie tak, jak wyjaśnia conorgriffin. Robi to w jednym skrypcie, który można skopiować i wkleić do terminala w całości lub użyć skrótu „
curl
potokbash
”:curl -sL https://gist.githubusercontent.com/RichardBronosky/31660eb4b0f0ba5e673b9bc3c9148a70/raw/touchid_sudo.sh | bash
Kompletny skrypt :
Ten skrypt pokazuje kilka fajnych wzorców, które uwielbiam uczyć ludzi, którzy dopiero zaczynają bash lub DevOps.
.bak
na końcu. (Wygląda srogo, ale ten wzór działa z tym, co jest w$file
środku i nadaje się do ponownego użycia.curl ... | bash
, zawiń wszystko w funkcję i wywołaj ją w ostatnim wierszu. W ten sposób, jeśli pobieranie zostanie przerwane, nic nie zostanie (częściowo) zrobione.sudo bash -eu
skryptu, abyś nie kazał użytkownikowi tego zrobić. (-eu
skrót od errexit i rzeczownik i powinieneś ich używać!)'EOF'
aby zapobiec przedwczesnemu rozszerzeniu powłoki.awk
czytelności wbudowania .źródło
Utworzyłem następujące zadania ansible, aby włączyć identyfikator dotykowy dla poleceń sudo, jeśli Twój komputer to obsługuje:
źródło