È da mesi ormai che lavoro ad un programma. Presto ve ne parlerò. Promesso.
Stanotte, come diversivo, ho voluto abbozzare l'idea di come si potrebbe inserire la password all'interno di uno script. Mi spiego meglio.
Supponete di creare uno script che accede ad un database per manipolarlo, l'ideale sarebbe che lo stesso script vi chieda anche una password prima di potervi accedere.
Lo script che vi sto per presentare vi chiede, per una sola volta, di creare una password, che viene salvata in un file di testo. Certo, poi questo file andrebbe criptato, lo capisco bene.
Poi vi chiede di ridigitare la password, che viene confrontata con quella salvata nel file di testo. Solo se le due password corrispondono, l'accesso all'ipotetico database sarà consentito. La seconda volta che sarà avviato lo script, a meno che non sia stato cancellato il file con la password, vi sarà chiesto di digitare la password una sola volta.
Salvate lo script, pass.sh, nella cartella Documenti e rendetelo eseguibile.
#!/bin/bash
#Luigi Iannoccaro (Bit3Lux)
#Pass.sh
passkr=~/Documenti/pass.txt
if [ ! -f $passkr ]; then
#read -p "crea la tua password: " tua_password
tua_password=$(zenity --title="Crea la password" --password)
echo $tua_password > $passkr
fi
tua_pass=$(cat $passkr)
pass=0
while [ "$tua_pass" != "$pass" ]; do
clear
#read -p "Digita la tua password: " pass
pass=$(zenity --title="Digita la password" --password)
if [ $? -eq 1 ]; then
exit 1
elif [ "$tua_pass" != "$pass" ]; then
#echo "Accesso al programma negato, digita la password in modo corretto."
zenity --info \
--width=300 \
--height=130 \
--title="Informazione" \
--text="Accesso Negato! Digita la password in modo corretto."
elif [ "$tua_pass" == "$pass" ]; then
#echo "Accesso consentito."
zenity --info \
--width=300 \
--height=130 \
--title="Informazione" \
--text="Accesso Consentito"
fi
done
exit 0
Alla prossima! ;)
Suggerimento: Prova ad usare una funzione di hashing sia nelle memorizzazione che nel confront ;)
RispondiEliminaStasera provo. Grazie ;)
EliminaLo so, conosco bene il programma che stai testando da tempo.. Ottima l'idea dello script password.. :)
RispondiEliminaecho password | md5sum.textutils | cut -d' ' -f1
RispondiEliminaMD5 è meglio che niente...
Ci sono anche gli hashing SHA, volendo.
RispondiEliminahttp://www.gnu.org/software/coreutils/manual/coreutils.html#md5sum-invocation
Perfetto! :))
EliminaSemplice ed efficace :-)
EliminaCarissimo Bit,
RispondiEliminaecco qui la modifica con l'introduzione della password criptata con SHA256.
#!/bin/bash
#Luigi Iannoccaro (Bit3Lux)
#Pass.sh
passkr=~/Documenti/pass.txt
if [ ! -f $passkr ]; then
#read -p "crea la tua password: " tua_password
tua_password=$(zenity --title="Crea la password" --password)
echo $tua_password | sha256sum | awk '{print $1}' > $passkr
fi
tua_pass=$(cat $passkr)
pass=0
while [ "$tua_pass" != "$pass" ]; do
clear
#read -p "Digita la tua password: " pass
pass=$(zenity --title="Digita la password" --password | sha256sum | awk '{print $1}')
if [ $? -eq 1 ]; then
exit 1
elif [ "$tua_pass" != "$pass" ]; then
#echo "Accesso al programma negato, digita la password in modo corretto."
zenity --info \
--width=300 \
--height=130 \
--title="Informazione" \
--text="Accesso Negato! Digita la password in modo corretto."
elif [ "$tua_pass" == "$pass" ]; then
#echo "Accesso consentito."
zenity --info \
--width=300 \
--height=130 \
--title="Informazione" \
--text="Accesso Consentito"
fi
done
exit 0
Manca solo la limitazione per cui solo root può creare il file di password, che altrimenti potrebbe essere cancellato per ricreare una nuova password e guadagnarsi l'accesso.
RispondiEliminaif [[ "$(id -u)" -ne "0" ]]; then echo "Non sei root, pussa via!"; exit 1; fi
Grazie a tutti voi per i vostri contributi! ;)
RispondiElimina