Introduzione
id
è un'utilità della riga di comando che stampa gli ID utente e gruppo reali ed efficaci.
Sintassi del comando id
La sintassi per il comando id
è la seguente:
id [OPTIONS] [USERNAME]
Se il nome utente viene omesso, il comando id
visualizza informazioni sull'utente attualmente connesso.
Se richiamato senza alcuna opzione, id
stampa l'ID utente reale (uid
), l'ID gruppo primario reale dell'utente (gid
) e gli ID reali dei gruppi supplementari (groups
) a cui appartiene l'utente. L'ID utente effettivo, l'ID gruppo e gli ID gruppo supplementari vengono stampati solo quando sono diversi da quelli reali.
id
uid=1000(noviello) gid=1000(noviello) groups=1000(noviello),4(adm),27(sudo),998(docker)
Se SELinux è abilitato, id
stampa anche il contesto di sicurezza dell'utente (context
):
uid=1000(noviello) gid=1000(noviello) groups=1000(noviello) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Per ottenere informazioni su un altro utente, passare il nome utente o l'ID utente come argomento al comando id
:
id alice
uid=1000(alice) gid=1000(alice) groups=1000(alice)
Nel caso in cui un utente con un nome uguale all'ID fornito esista sul sistema, la ricerca del nome ha la precedenza. Quando si utilizza l'ID utente come argomento, anteporre l'ID con il simbolo +
per evitare di interpretare l'ID come nome.
Ad esempio, se si dispone di un utente con nome 1010
e di un altro utente con ID 1010
, se si digita il comando id 1010
verranno visualizzate le informazioni sull'utente con nome 1010
. Per ottenere informazioni sull'utente con ID 1010
, digitare id +1010
.
Opzioni del comando id
Il comando id
accetta diverse opzioni che consentono di visualizzare solo informazioni specifiche. Questo è utile quando si usa id
negli gli script di shell.
Per stampare solo l'ID utente effettivo, utilizzare l'opzione -u
(--user
):
id -u
1000
L'opzione -g
(--group
) indica a id
di stampare solo l'ID gruppo effettivo:
id -g
1000 4 27 998
Utilizzare l'opzione -G
(--groups
) per stampare gli ID effettivi di tutti i gruppi a cui appartiene l'utente:
id -G
1000
Per stampare nomi anziché numeri, utilizzare l'opzione -n
, --name
. Questa opzione può essere utilizzata solo in combinazione con -u
, -g
e -G
.
id -un
noviello
L'esecuzione del comando id
con le opzioni -un
produce lo stesso output di whoami
e l'output di id -Gn
è equivalente all'output del comando groups
.
L'opzione -r
, (--real
) può essere utilizzata in combinazione con -u
, -g
e -G
per stampare il vero, invece di valori effettivi:
id -ur
Per stampare solo il contesto di sicurezza del processo, che di solito è il contesto di sicurezza dell'utente, utilizzare l'opzione -Z
(--context
):
id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Se SELinux è disabilitato, id
stampa un messaggio di errore:
id: --context (-Z) works only on an SELinux-enabled kernel
L'opzione -z
(--zero
) indica a id
di delimitare gli elementi di output con il carattere NUL, non con gli spazi bianchi:
id -znG
novielloadmsudodocker
Ciò può essere utile quando si esegue il piping dell'output a un comando in grado di analizzare le nuove righe
Conclusione
Il comando id
stampa informazioni su un determinato utente o l'utente attualmente connesso se non viene fornito alcun nome utente o ID come argomento.