Il comando id in Linux viene utilizzato per visualizzare l'ID utente reale ed effettivo e l'ID gruppo di un utente.
In questo tutorial, ti mostrerò come utilizzare il comando id in Linux con alcuni degli esempi più comuni e utili.
comando id in Linux
Questa è la sintassi del comando id:
id [options] [username]
Se non fornisci un nome utente, il comando mostra i dettagli sull'utente attualmente connesso.
id
Ecco l'output che mi ha mostrato in Ubuntu Linux.
[email protected]:~$ id
uid=1000(abhishek) gid=1000(abhishek) groups=1000(abhishek),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),119(lpadmin),130(lxd),131(sambashare)
Nell'output sopra, l'utente abhishek
ha uid 1000 e gid 1000. Questo è il gruppo principale dell'utente abhishek
appartiene per impostazione predefinita.
A parte questo, l'utente abhishek
è anche membro di alcuni altri gruppi e tali gruppi sono stati visualizzati anche nell'output.
Esempi di comando id
Ecco le opzioni più comuni per il comando id:
Opzione | Descrizione |
---|---|
-u | Stampa l'ID utente effettivo |
-g | Stampa l'ID del gruppo effettivo |
-G | Stampa gli ID di tutti i gruppi a cui appartiene l'utente |
-n | Stampa i nomi invece degli ID (devono essere combinati con -u, -g o -G) |
-r | Stampa l'ID reale invece degli ID effettivi (devono essere combinati con -u, -g o -G) |
Utente reale vs effettivo e ID gruppo?
Questo potrebbe essere fonte di confusione per te. Quando un utente viene creato, gli viene assegnato un nome utente, un ID utente (uid), un gruppo predefinito e l'id di quel gruppo predefinito è il gid per quell'utente. Questo è l'utente "reale" e l'ID gruppo.
Poiché in Linux i processi possono essere eseguiti come altri utenti e gruppi, esiste anche un secondo set di ID chiamato ID effettivi.
Il più delle volte gli UID e GID reali ed effettivi sono gli stessi. Ma ci sono situazioni in cui un utente normale deve modificare un file privilegiato. È qui che viene utilizzato il concetto di ID effettivo. L'esempio più comune è l'utilizzo del comando passwd per modificare la password che modifica il file /etc/passwd di proprietà di root.
Non posso entrare nei dettagli qui, ma consiglio di leggerlo qui. Dovresti anche leggere le autorizzazioni SUID, GUID e sticky bit in Linux.
1. Stampa l'UID e il GID di un determinato utente
Per stampare uid e gid e tutti gli altri ID di gruppo di un utente, devi solo specificare il nome utente:
id username
Puoi elencare tutti gli utenti nel tuo sistema Linux per ottenere il nome utente desiderato.
2. Stampa solo l'UID di un utente
Puoi usare il -u
opzione per stampare l'UID in Linux. Come accennato in precedenza, se ometti il nome utente, vengono visualizzate le informazioni sull'utente che ha effettuato l'accesso.
id -u userame
Tieni presente che visualizza solo l'UID, il valore numerico, non il nome.
[email protected]:~$ id -u
1000
3. Stampa solo il GID di un utente
Allo stesso modo, puoi usare l'opzione -g
per stampare il GID di un utente. Quando dico GID, è l'ID numerico del gruppo predefinito a cui appartiene l'utente.
id -g username
Anche in questo caso, visualizzerà solo l'ID numerico del gruppo.
[email protected]:~$ id -g nobody
65534
4. Stampa gli ID di tutti gli altri gruppi a cui appartiene l'utente
Un utente può appartenere a più gruppi. Questa è una caratteristica di base del filesystem Linux. Puoi usare il comando usermod e aggiungerlo al gruppo sudo per dargli i privilegi di root.
Puoi usare il -G
opzione per visualizzare gli ID di tutti i gruppi a cui appartiene l'utente.
id -G username
Anche questo mostra solo l'ID.
[email protected]:~$ id -G abhishek
1000 4 24 27 30 46 119 130 131
5. Stampa i nomi invece degli ID numerici
Solo gli ID numerici possono creare confusione. Se vuoi i nomi, puoi combinare il -n
opzione con -u
, -g
o -G
per visualizzare i nomi.
Ad esempio, se vuoi visualizzare tutti i gruppi a cui appartiene un utente, puoi usarlo in questo modo:
id -nG username
Se utilizzo l'esempio precedente con l'opzione -n
ecco cosa mostra:
[email protected]:~$ id -nG abhishek
abhishek adm cdrom sudo dip plugdev lpadmin lxd sambashare
Suggerimento bonus:stampa gli ID reali
Tutti gli esempi precedenti mostrano gli ID effettivi. Quasi sempre sarà il vero ID.
Tuttavia, se vuoi assicurarti di ottenere l'ID reale, puoi combinare l'opzione -r
con -u
, -g
o -G
.
Può essere utilizzato in questo modo:
id -ru username
Bene! Penso che tu sappia abbastanza sul comando id ora. Se hai domande o suggerimenti, sentiti libero di lasciare un commento.