(Nota: il groups
comando, sebbene sia ancora utile, è in gran parte sostituito dal comando id .)
Un utente ha un gruppo primario che è tradizionalmente definito nel file
/etc/passwd
file con il quale accede, ma che oggi può avere altre fonti. Può anche essere un membro di gruppi aggiuntivi, noti come gruppi secondari o supplementari, tradizionalmente specificati nel file /etc/groups
, ma che oggi possono anche derivare o essere impliciti da fonti aggiuntive (come NIS, LDAP, SAMBA ecc.).
I gruppi primari e supplementari sono definiti al momento dell'accesso e rimangono aggiornati . Tuttavia, l'utente può in qualsiasi momento modificare il proprio gruppo primario attivo corrente
utilizzando il newgrp
comando
Il processo di accesso imposta i gruppi primario e supplementare. Per il successivo, in genere chiama initgroups della funzione libc
, che compila l'elenco di dati di gruppo supplementari e lo passa alla
funzione setgroups , che lo stabilisce nel contesto del processo.
Le fonti di informazione per initgroups
sono:
usato dalla GNU C Library e da alcune altre applicazioni per determinare le fonti da cui ottenere informazioni sul servizio dei nomi in una gamma di categorie e in quale ordine. Ogni categoria di informazioni è identificata da un nome di database.
Il groups
comando mostra i gruppi attualmente applicati al tuo utente e l'elenco inizierà con il gruppo primario corrente seguito dai gruppi supplementari dal momento dell'accesso. Eventuali modifiche alle fonti dei dati dopo il momento dell'accesso non si riflettono nell'elenco visualizzato.
Il groups username
comando di sta chiedendo Linux per il calcolo dei gruppi per l'utente, che lo farà utilizzando principalmente i file /etc/password
e le /etc/groups
e poi le altre fonti. Ciò rifletterà la situazione attuale dei file di sistema e potrebbe non essere uguale ai gruppi correnti che sono ancora in vigore dal momento dell'accesso.
Il groups username
comando può dare un risultato diverso quando non utilizza tutte le fonti utilizzate dal processo di accesso per calcolare i gruppi supplementari, che è ciò che apparentemente è accaduto nel tuo caso. Queste fonti potrebbero non essere accessibili dal tuo login o potrebbero non essere consultate dal comando.
L'uso del id username
comando può fornire risultati migliori, anche se non è garantito che sia completo come quello del processo di accesso. Il id
comando è più recente di ed era destinato a essere più preciso del vecchio groups
comando.
Mentre il groups
comando dà un risultato preciso e corretto, hai ben dimostrato che groups username
non si può fare affidamento sul comando per fare lo stesso.
Senza esaminare il codice sorgente del groups
comando, immagino che l'implementazione del groups username
comando nelle tue analisi di distribuzione Linux /etc/groups
, che nel tuo caso non contenesse nulla, ma non utilizzi /etc/nsswitch.conf
, da cui provenissero tutti i tuoi gruppi supplementari. Pertanto è elencato solo il nome del gruppo primario,
jacob
.
Per ulteriori informazioni, vedere: