MacBook Pro Touch Bar의 Touch ID는 macOS에서 관리자 권한 상승을 지원합니까?
터치 ID가 터미널에서 sudo 액세스 권한을 부여 할 수 있습니까?
암호 필드에 문자열 입력을 수행 할 수 있는 YubiKey 를 얻는 것을 고려하고 있기 때문에 이것이 궁금 하지만 Mac 용 Touch ID는 필요하지 않을 수 있습니다.
MacBook Pro Touch Bar의 Touch ID는 macOS에서 관리자 권한 상승을 지원합니까?
터치 ID가 터미널에서 sudo 액세스 권한을 부여 할 수 있습니까?
암호 필드에 문자열 입력을 수행 할 수 있는 YubiKey 를 얻는 것을 고려하고 있기 때문에 이것이 궁금 하지만 Mac 용 Touch ID는 필요하지 않을 수 있습니다.
답변:
TouchID는 권한 상승을 지원하지만 현재로서는 Apple 자체 앱에서만 지원되는 것으로 보입니다. 내 생각에 불행히도 타사 앱을 지원하려면 업데이트해야합니다. 여전히 비밀번호를 많이 입력하게됩니다.
sudo에 TouchID를 활성화하는 방법은 @conorgriffin의 답변 을 참조하십시오 .
Mac에서 TouchID sudo
가 암호 대신 액세스 권한 을 인증하도록하려면 다음을 수행해야합니다.
sudo su -
/etc/pam.d/sudo
같은 명령 행 편집기를 사용 하여 파일을 편집하십시오.vim
nano
이 파일의 내용은 다음과 같아야합니다
# sudo: auth account password session
auth required pam_opendirectory.so
account required pam_permit.so
password required pam_deny.so
session required pam_permit.so
auth
상단에 추가 줄 을 추가해야 이제 다음과 같이 보입니다.
# sudo: auth account password session
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
vim
해야 할 수 있습니다 ( 예 : 저장 wq!
시 사용 )sudo
아래와 같이 TouchID로 인증하라는 메시지가 표시되어야합니다
참고 : 이 기능을 사용하려면 설정을 변경해야하므로 iTerm을 사용하는 경우 아래의 Pierz 사용자 답변을 참조하십시오 .
iTerm2 (v3.2.8 +)를 사용하는 경우 pam_tid.so
위와 같이 수정 했지만 이전 버전에서 작동 하더라도 터미널에서 Touch ID가 sudo와 작동하지 않는 것을 볼 수 있습니다 . 이것은 현재 기본적으로 활성화되어있는 것처럼 보이는 고급 기능 입니다. 여기서는 iTerm2-> 환경 설정> 고급> (세션 제목으로 이동)> 세션이 로그 아웃 한 후 다시 로그인 할 수 있도록 허용해야합니다 .
또는이 pam_reattach
모듈을 사용 하여 세션 기능과 TouchID sudo를 동시에 유지할 수 있습니다 .
No
설정이 완료된 직후에 작업했습니다 . "터치"를 검색해도 옵션이 나타납니다.
pam_reattach
설정을 변경하거나 iTerm을 다시 시작할 필요가 없습니다. 모든 것이 즉시 작동합니다! (어떻게 실마리가 없기 때문에 세션이 "실제로 생존"하는지 테스트하지는 않았지만 설정을 변경할 필요는 없었습니다).
터미널이나 iTerm에서 sudo 액세스를 위해 지문을 사용할 수 있습니다 . 파일 auth sufficient pam_tid.so
의 첫 줄에 추가 하면 /etc/pam.d/sudo
됩니다.
Allow sessions to survive logging out and back in
. gitlab.com/gnachman/iterm2/issues/7608#note_153123852
condoriffin이 설명하는대로 sudo가 TouchID PAM 모듈을 사용할 수 있도록하는 간단한 스크립트를 만들었습니다. 터미널 전체에 복사하여 붙여 넣거나 " curl
파이프 bash
"바로 가기를 사용할 수있는 단일 스크립트로 수행됩니다 .
curl -sL https://gist.githubusercontent.com/RichardBronosky/31660eb4b0f0ba5e673b9bc3c9148a70/raw/touchid_sudo.sh | bash
완전한 스크립트 :
#!/bin/bash
# curl -sL https://gist.githubusercontent.com/RichardBronosky/31660eb4b0f0ba5e673b9bc3c9148a70/raw/touchid_sudo.sh | bash
# This script is ready to copy-paste in whole, or just the line above (without the leading #)
# Use TouchID for sudo on modern MacBook Pro machines
# This script adds a single line to the top of the PAM configuration for sudo
# See: https://apple.stackexchange.com/q/259093/41827 for more info.
touchid_sudo(){
sudo bash -eu <<'EOF'
file=/etc/pam.d/sudo
# A backup file will be created with the pattern /etc/pam.d/.sudo.1
# (where 1 is the number of backups, so that rerunning this doesn't make you lose your original)
bak=$(dirname $file)/.$(basename $file).$(echo $(ls $(dirname $file)/{,.}$(basename $file)* | wc -l))
cp $file $bak
awk -v is_done='pam_tid' -v rule='auth sufficient pam_tid.so' '
{
# $1 is the first field
# !~ means "does not match pattern"
if($1 !~ /^#.*/){
line_number_not_counting_comments++
}
# $0 is the whole line
if(line_number_not_counting_comments==1 && $0 !~ is_done){
print rule
}
print
}' > $file < $bak
EOF
}
touchid_sudo
이 스크립트는 bash 또는 DevOps를 처음 사용하는 사람들을 가르치는 것을 좋아하는 몇 가지 멋진 패턴을 보여줍니다.
.bak
. (매끄럽게 보이지만 그 패턴은 무엇이든지 $file
재사용 가능합니다.curl ... | bash
모든 함수를 감싸고 마지막 줄에서 호출하십시오. 이렇게하면 다운로드가 중단되면 (부분적으로) 아무 것도 수행되지 않습니다.sudo bash -eu
사용자에게 지시하지 않도록 스크립트에 전화를 겁니다. ( -eu
대한 짧은 errexit 및 nounset 당신이 그들을 사용해야합니다!)'EOF'
조기 인용 확장을 방지하기 위해 작은 따옴표 bash heredoc .awk
보다 읽기 쉽게 만듭니다.컴퓨터가 지원하는 경우 sudo 명령에 대한 터치 ID를 활성화하기 위해 다음과 같은 가능한 작업을 만들었습니다.
- 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 != ''