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