In base ai rischi di sicurezza descritti precedentemente, è necessario fare in modo che al primo accesso di un utente vengano svolte alcune attività come:
Re-installare openssh se è possibile accedere all'applicativo in questo modo.
Richiedere una nuova password utente.
Richiedere una nuova password di root per MySQL.
Rigenerare il certificato SSL se è possibile accedere all'applicativo via SSL.
Per fare tutto questo è necessario aggiungere quanto segue al file /etc/bash.bashrc
:
if [ ! -e /etc/opt/sample-app/initial_config_done ]; then /opt/sample-app/bin/initial_config sudo touch /etc/opt/sample-app/initial_config_done fi
Con queste righe, lo script /opt/sample-app/bin/initial_config
viene eseguito al primo accesso se il file /etc/opt/sample-app/initial_config_done
non esiste. È quindi necessario:
Creare la directory /etc/opt/sample-app/
: sudo mkdir /etc/opt/sample-app/.
Creare lo script /opt/sample-app/bin/initial_config
utilizzando sudo e un editor di testo e copiando quanto segue:
#!/bin/bash # Let's change the user's password echo "Grazie per aver scelto la nostra applicazione sample-app" echo "Per ragioni di sicurezza, è necessario modificare la propria password." passwd # Now change the mysql password echo "È anche necessario indicare un nuova password di root per MySQL" let done=0 while [ $done -eq 0 ]; do read -e -s -r -p "Nuova password di root mysql:" PASS1 echo "" read -e -s -r -p "Digitare nuovamente la password di root mysql:" PASS2 if [[ "$PASS1" == "$PASS2" ]]; then let done=1 #perform the actual change assuming that our initial password is default mysqladmin -u root --password='default' password $PASS1 else echo "La due password non coincidono. Riprovare." fi done #Perform the reinstall of openssh so that the key is regenerated echo "Generazione delle chiavi SSH..." sudo apt-get --purge -y remove openssh-server sudo apt-get install -y openssh-server # You can add here any first user login actions that you require
Renderlo eseguibile: sudo chmod a+x /opt/sample-app/bin/initial_config