Desde que o Macbook Pro com Touch Bar foi lançado em 2016, uma feature que esperei por muito tempo foi o Touch ID (ou qualquer outro tipo de biometria) no Mac.
A praticidade de utilizar um mecanismo biométrico como senha em um notebook não se compara a outras estratégias de segurança como Yubikeys, Smartcards, ou tokens.
O Touch Id funciona muito bem no MacOS mas há uma situação em que ele não é utilizado: no terminal.
Uso o terminal do MacOS (mais precisamente o iTerm2) diariamente e isso me incomodava desde que troquei o antigo e cansado Macbook Pro 2011 pelo Macbook Pro 2016 com Touch Bar.
Esta semana sem querer encontrei o seguinte tweet do usuário @cabel:
Testei e realmente funciona (para a maioria dos casos).
Atenção
- Se você não tem certeza se quer ativar, melhor não ativar.
- Testei no MacOS High Sierra (10.13.1). Pelo que pesquisei não funciona no MacOS Sierra nativamente, é necessário compilar e instalar o arquivo pam (veja aqui).
- Não testei, mas há relatos de que o Touch Id não é transmitido por SSH, logo, se você acessa o Macbook Pro via SSH, e executa sudo’s, há uma grande possibilidade de não funcionar.
Passo-a-Passo
- Abra o terminal e execute o comando
sudo vim /etc/pam.d/sudo
- Adicione uma nova linha ao arquivo
auth sufficient pam_tid.so
- Salve o arquivo:
- Reiniciar terminal.
A partir de agora, toda vez que executar um comando sudo será solicitado o Touch Id:
UPDATE (2017/11/29):
Quando o popup solicitando o touch id é exibido é possível clicar em “Use Password …” e inserir a senha no popup, ou cancelar o popup e digitar a senha no terminal normalmente.
Quando utilizado o Touch Id para autorizar um sudo
, a autorização permanece ativa por algum tempo (provavelmente 15 minutos como a App Store). Então os comandos sudo
subsequentes já estarão pré aprovados sem necessidade de senha. Isso é ótimo para acelerar o trabalho, mas péssimo caso seja inserido um comando incorreto.