-
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로 인증하라는 메시지가 표시되어야합니다
- ‘취소’를 클릭하면 터미널 프롬프트에서 비밀번호를 입력 할 수 있습니다. ‘비밀번호 사용’을 클릭하면 대화 상자에 비밀번호를 입력 할 수 있습니다.
- 컴퓨터에 SSH를 연결하면 SSH를 통해 TouchID 지문을 보낼 수 없으므로 비밀번호를 사용하기 만합니다.
참고 : 이 기능을 사용하려면 설정을 변경해야하므로 iTerm을 사용하는 경우 아래의 Pierz 사용자 답변을
참조하십시오 .
답변
iTerm2 (v3.2.8 +)를 사용하는 경우 pam_tid.so
위와 같이 수정 했지만 이전 버전에서 작동 하더라도 터미널에서 Touch ID가 sudo와 작동하지 않는 것을 볼 수 있습니다 . 이것은 현재 기본적으로 활성화되어있는 것처럼 보이는 고급 기능 입니다. 여기서는 iTerm2-> 환경 설정> 고급> (세션 제목으로 이동)> 세션이 로그 아웃 한 후 다시 로그인 할 수 있도록 허용해야합니다 .
또는이 pam_reattach
모듈을 사용 하여 세션 기능과 TouchID sudo를 동시에 유지할 수 있습니다 .
답변
터미널이나 iTerm에서 sudo 액세스를 위해 지문을 사용할 수 있습니다 . 파일 auth sufficient pam_tid.so
의 첫 줄에 추가 하면 /etc/pam.d/sudo
됩니다.
답변
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 != ''