bash: come nascondere il testo digitato in una console

Vi siete mai chiesti per quale motivo non compare la password che viene digitata al login? E soprattutto come fare un "trucchetto" del genere?
In bash si usa il comando read per leggere gli input da tastiera. Ad esempio lo si fa ogni qualvota è necessaria la conferma per una certa operazione. Normalmente quello che viene digitato dall'utente viene stampato a video. Nel caso di una password però la stampa a video è decisamente sconsigliata.
$TIMELIMIT=60 #(secondi) echo "Inserisci la password per decifrare i dischi:" read -t $TIMELIMIT PWD <&1
Quello che viene digitato dall'utente finisce nella variabile PWD
Il metodo con il quale si rende invisibile il testo digitato è semplice: viene inibita la funzione di echo nel terminale che è la responsabile della stampa a video. Ecco il codice:
echo "Inserisci la password per decifrare i dischi:" #non mostro la pwd che viene digitata #salvo i parametri del terminale stty_orig=`stty -g` #inibisco la funzione di echo stty -echo #attendo la digitazione della password e la salvo in PWD read -t $TIMELIMIT PWD <&1 #ripristino i parametri del terminale stty $stty_orig
- blog di dam
- 900 letture

Invia nuovo commento