Quando si lavora in un ambiente Linux multiutente, è spesso essenziale sapere con quale account utente si è attualmente connessi. Che si tratti di gestione di server, scripting di automazione o risoluzione di problemi di autorizzazioni, Linux fornisce diversi comandi per visualizzare il nome di accesso corrente.

Uso del comando whoami

Il comando whoami è il modo più semplice per visualizzare il nome utente attuale

Come funziona:

  • Legge l’ID utente effettivo (EUID) del processo corrente.
  • Cerca il nome utente associato in /etc/passwd.
  • Mostra sempre chi siete al momento.

Il miglior caso d’uso:

  • Quando si usa sudo o si cambia utente, “whoami” mostra l ‘utente attivo.

Utilizzo del comando id

Il comando id fornisce più del semplice nome utente: mostra l’ID utente (UID), l’ID gruppo (GID) e l’appartenenza a un gruppo. Comando:

id -un

In alternativa, senza flag:

##ATP_NOTR_2_CODE_TAG_NOTR_ATP###

Come funziona:

  • Utilizza il database degli utenti del sistema per visualizzare le informazioni correnti sull’identità e sui gruppi.

  • -u → Visualizza l’UID.

  • -n → Stampa il nome utente invece degli ID numerici.

Uso del comando logname

Il comando logname visualizza il nome utente originale utilizzato per avviare la sessione.

Comando:

logname

Differenza chiave:

  • logname restituisce sempre il nome utente usato per accedere alla sessione.

  • Se si è cambiato utente tramite su o sudo, mostra sempre il login originale.

Uso del comando “who

Il comando who visualizza tutti gli utenti attualmente connessi e i dettagli della loro sessione.

Comando:

who am i

Esempio di uscita:

john tty1 2025-08-29 09:12

Come funziona:

  • Legge i dati della sessione da /var/run/utmp.

  • Visualizza il nome utente originale, il terminale e il timestamp di accesso.

🔹 Caso d’uso migliore:

  • Quando si verificano le sessioni correnti o gli ambienti multiutente.

Uso della variabile d’ambiente $USER

Nella maggior parte delle distribuzioni Linux, il nome utente corrente è memorizzato nella variabile d’ambiente $USER.

Comando:

echo $USER

Esempio di uscita:

john

Come funziona:

  • Recupera il valore della variabile $USER impostata durante il login.

  • Leggero e molto veloce.

Casi d’uso avanzati

a) All’interno di script di shell

#!/bin/bash
echo "Script executed by: $USER"

Utile per la registrazione dell’automazione.

b) Controllare gli utenti registrati su un server

who

Esempio di uscita:

john pts/0 2025-08-29 10:20 (192.168.1.10)
alice pts/1 2025-08-29 10:30 (192.168.1.15)

Visualizza tutti gli utenti attivi.

c) Combinare con ps per i proprietari dei processi

ps -u $USER
  • Mostra tutti i processi di proprietà dell’utente corrente.

Considerazioni sulla sicurezza

  • Server multiutente: Verificare sempre l’utente effettivo prima di eseguire comandi privilegiati.

  • Contesto Sudo: Usare “whoami” invece di $USER per evitare lo spoofing della variabile d’ambiente.

  • Script di registrazione: Preferire id -un per un’accurata segnalazione del nome utente.

Conclusione

Linux offre diversi comandi per visualizzare il nome di accesso corrente, ma ognuno ha uno scopo leggermente diverso:

  • Usare“whoami” per l’identità dell’utente attivo.
  • Usate“id -un” quando avete bisogno anche di informazioni sui gruppi.
  • Usare“logname” per scoprire chi si è connesso originariamente.
  • Usare echo $USER per ricerche rapide e scripting di shell.

La comprensione di queste differenze è fondamentale per l’amministrazione del sistema, l’automazione dello scripting e la verifica della sicurezza.