## Preparare l'avvio per il primo utente

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

Installare e mantenere l'applicativo |  | Pulizia prima della produzione