Come configurare le variabili d’ambiente su Linux
Le variabili d’ambiente permettono di rendere disponibili informazioni e configurazioni ai programmi eseguiti su un sistema Linux.
Sono utilizzate frequentemente dalle applicazioni web per gestire, ad esempio, modalità di esecuzione, percorsi, porte, nomi di database o altre impostazioni che non è necessario inserire direttamente nel codice.
Su una VPS può quindi capitare di dover impostare una variabile temporaneamente per eseguire un comando oppure renderla disponibile in modo permanente all’interno della propria sessione o applicazione.
In questa guida vedremo come visualizzare, creare, modificare e rimuovere le principali variabili d’ambiente su Linux.
Visualizzare le variabili d'ambiente
Per visualizzare tutte le variabili d’ambiente attualmente disponibili puoi utilizzare:
printenv
Se vuoi controllare una variabile specifica puoi indicarne il nome:
printenv PATH
Un altro metodo consiste nell’utilizzare echo:
echo $PATH
Il simbolo $ indica che stai facendo riferimento al valore della variabile.
Per verificare rapidamente se una determinata variabile è presente puoi utilizzare:
printenv NOME_VARIABILE
Se la variabile non è definita, il comando non restituirà alcun valore.
Impostare una variabile temporaneamente
Per creare una variabile d’ambiente puoi utilizzare export:
export NOME_VARIABILE="valore"
Puoi verificare il valore impostato con:
echo $AMBIENTE
La variabile sarà disponibile nella sessione corrente e nei programmi avviati da quella sessione. Ad esempio:
export APP_ENV="produzione" python3 app.py
In questo caso APP_ENV sarà disponibile all’applicazione Python durante la sua esecuzione.
È importante considerare che una variabile impostata in questo modo non rimane disponibile dopo la chiusura della sessione SSH.
Rendere una variabile disponibile dopo il login
Se vuoi impostare una variabile automaticamente ogni volta che accedi alla VPS tramite la tua shell, puoi inserirla nel file ~/.bashrc.
Apri il file con:
nano ~/.bashrc
Aggiungi, ad esempio:
export APP_ENV="produzione"
Salva il file e ricarica la configurazione:
source ~/.bashrc
Puoi quindi verificare:
echo $APP_ENV
Da questo momento la variabile verrà caricata automaticamente nelle nuove sessioni Bash dell’utente.
Questo metodo è utile per variabili personali o necessarie ai comandi eseguiti manualmente dalla shell.
Impostare una variabile per un singolo comando
Non è sempre necessario rendere permanente una variabile. Per questo, puoi assegnarla direttamente prima del comando che deve utilizzarla:
echo $APP_ENV
La variabile sarà disponibile solamente durante l’esecuzione di quel comando.
Questa modalità è utile quando devi eseguire un’applicazione con una configurazione specifica senza modificare permanentemente l’ambiente della VPS.
Rimuovere una variabile
Per eliminare una variabile dalla sessione corrente puoi utilizzare unset:
unset APP_ENV
Puoi verificare che non sia più disponibile con:
printenv APP_ENV
Se invece la variabile è stata aggiunta a ~/.bashrc, devi rimuovere o commentare anche la relativa riga nel file:
nano ~/.bashrc
Dopo la modifica puoi ricaricare la configurazione:
source ~/.bashrc
Variabili d'ambiente e informazioni sensibili
Le variabili d’ambiente vengono spesso utilizzate dalle applicazioni per configurare password, token e credenziali. Ad esempio:
export DB_PASSWORD="password-esempio"
Questo metodo può essere comodo, ma non significa che il valore sia automaticamente sicuro.
Una variabile presente nell’ambiente può infatti essere accessibile ai processi che la ereditano e, in determinate circostanze, può essere visualizzata attraverso strumenti di diagnostica.
Per questo motivo è preferibile evitare di inserire password, token o altre informazioni sensibili direttamente nei file condivisi o nei repository Git.
Se un’applicazione utilizza un file .env, è inoltre importante evitare di inserirlo nel repository quando contiene credenziali reali. In genere è opportuno aggiungerlo al .gitignore e mantenere nel progetto solamente un file di esempio, come .env.example.