12 dicembre, 2007

Bash: Come richiedere una password senza mostrarla sul terminale

In bash per richiedere l'input dell'utente si usa la funzione read. Ad esempio:

read -p "Inserisci il nome utente:" username

L'utente batte sulla tastiera il suo nome utente che verrà visualizzato a video e quando premerà il tasto invio la stringa verrà assegnata alla variabile shell $username. Cosa succede se vogliamo però richiedere una password? Di certo non vogliamo che questa venga visualizzata sul terminale. In questo caso è possibile usare il comando stty in questo modo

stty -echo #disabilitiamo l'output sul terminale
read -p "Inserisci la password:" password
stty echo #riabilitiamo l'output sul terminale

2 commenti:

  1. Anonimo5:51 PM

    Magari puo' essere utile a qualcuno...

    Per nascondere cio' che viene digitato, basta aggiungere il parametro -s al comando read...

    niente di piu' semplice:

    $ read -sp "Password: " pass


    Ciao! :D

    P.S.: Non posti piu' i tuoi trucchetti sul python?

    RispondiElimina
  2. Non sapevo del parametro -s, comodo ;)

    Non sto scrivendo molto su python lo so magari prima o poi mi deciderò a riprendere

    Ciao

    RispondiElimina