sudo é provavelmente o comando mais famoso do mundo Linux. Ele permite que usuários comuns executem outros comandos ou programas usando os privilégios de superusuário. Então, isso lhes permitirá fazer alterações ou modificações em todo o sistema que eles não puderam fazer com seus privilégios comuns de usuário.
A situação atual
Por padrão, em todas as distribuições do Linux, quando você executa o comando sudo, você precisa inserir a senha de superusuário da seguinte forma:
[sudo] senha para sup:
Uma coisa a ser notada na foto acima é que a senha está oculta. Quando os usuários escrevem qualquer coisa naquele momento, nada será exibido na tela, nem mesmo asteriscos. Eles vão ter que confiar que há algo escrito no terminal e apenas escrever suas senhas e apertar Enter.
Historicamente, isso é feito por facilidade de implementação e por motivos de segurança. Torna difícil para as pessoas que estão perto saberem o tamanho da sua senha. Se eles não souberem o tamanho da sua senha, será mais difícil adivinhá-la. Eles podem, é claro, ouvir as teclas que você está batendo e tentar adivinhar. Porém, isso é mais difícil do que apenas olhar para a tela e contar o número de asteriscos lá.
Além disso, quando eles perceberem que sua senha é muito longa, talvez nem tentem usar seu computador e adivinhar sua senha. No entanto, se a sua senha for menor que alguns caracteres, isso lhes dará esperança.
Além disso, em termos de implementação, exibir um asterisco em vez do caractere de senha requer mais código e trabalho a fazer. No terminal, quando você escreve comandos normais e os vê no terminal, é porque o “modo de eco” está definido como Ligado, o que significa que todos os caracteres serão exibidos na tela.
Em comandos sensíveis, no entanto, como sudo ou passwd, “echo mode” é definido como Off , o que simplesmente não dá o passo extra de exibir esses caracteres na tela. Então, isso é menos trabalho e código para fazer, e continuou assim desde os dias do Unix para simplesmente esconder os caracteres da senha.
O problema
Vamos levar em conta que o Linux está ganhando milhões de novos usuários ano a ano. Do ponto de vista da experiência do usuário, e falando sobre os novos usuários das distribuições Linux, muitos sequer sabem que podem precisar usar o comando sudo. A maneira atual como isso é feito não lhes dá nenhuma explicação ou sugestão sobre o motivo das chaves que eles estão teclando não são exibidos na tela quando eles escrevem suas senhas. Eles pensariam que há um problema no sistema ou em seus teclados, porque nenhum feedback visual é dado.
É claro que, como pessoas que usam Linux ou outros sistemas semelhantes ao Unix por anos, isso é uma coisa comum. Contudo, para novos usuários comuns, desde professores, médicos, seu avô ou minha tia, essa é uma péssima experiência do usuário. Os usuários esperam obter feedback na tela quando acessam as teclas do teclado, o que não está sendo feito aqui.
Uma solução seria executar o comando sudo visudo e, em seguida, alterar a linha de Defaults env_reset para Defaults env_reset, pwfeedback. Em seguida, salvar o arquivo e sair:
De agora em diante, o sudo exibirá asteriscos quando você inserir suas senhas:
[sudo]senha para sup:**************
Uma proposta
As principais distribuições Linux devem levar este problema em consideração e tentar consertá-lo. Existem duas abordagens que consideramos possíveis:
- Assim como o acima, faça sudo display asteriscos quando você digitar sua senha. Mas isso tirará a pequena vantagem de as pessoas não saberem o tamanho da sua senha. Se esta vantagem é realmente necessária ou não no mundo real está aberta a discussão.
- Exibe uma mensagem de texto sempre que o comando sudo é chamado, explicando o que está acontecendo e por que os caracteres não estão sendo exibidos. Um caso de uso normal do sudo seria:
sup@sup:~$ sudo synaptic Nota: As teclas que você escreve agora não serão exibidas na tela por motivos de segurança, mas o sistema as recebe. [sudo]senha para sup:
Dessa forma, o terminal ainda não exibiria os caracteres da senha conforme eles são inseridos, mas os primeiros usuários perceberão e entenderão que o que estão escrevendo está realmente lá, não que haja um problema no computador ou em seu teclado.
Nós vimos até agora por que isso é um problema, como contorná-lo e quais são as possíveis soluções permanentes para ele. Se você é um membro de qualquer comunidade de distribuição Linux, seria uma boa idéia discutir este tópico com os desenvolvedores e ver o que eles pensam sobre isso.