(Anmerkung: Der groups
Befehl ist zwar immer noch nützlich, wird jedoch meistens durch den Befehl id ersetzt .)
Ein Benutzer hat eine primäre Gruppe, die traditionell in der Datei definiert ist,
/etc/passwd
mit der er sich anmeldet, die heute jedoch möglicherweise andere Quellen hat. Er kann auch Mitglied zusätzlicher Gruppen sein, die als sekundäre oder ergänzende Gruppen bezeichnet werden und traditionell in der Akte angegeben /etc/groups
sind, die heute jedoch auch aus zusätzlichen Quellen stammen oder von diesen impliziert werden können (wie NIS, LDAP, SAMBA usw.).
Primär- und Ergänzungsgruppen werden zum Zeitpunkt der Anmeldung definiert und bleiben aktuell . Der Benutzer kann jedoch jederzeit seine derzeit aktive Primärgruppe
mit dem newgrp
Befehl ändern .
Der Anmeldevorgang legt die primäre und die ergänzende Gruppe fest. Für die spätere Version wird normalerweise die libc-Funktion
initgroups aufgerufen , die die Liste der zusätzlichen Gruppendaten zusammenstellt und an die
setgroups- Funktion weiterleitet , die sie im Kontext des Prozesses festlegt.
Die Informationsquellen für initgroups
sind:
Wird von der GNU C-Bibliothek und bestimmten anderen Anwendungen verwendet, um zu bestimmen, aus welchen Quellen Namensdienstinformationen in einer Reihe von Kategorien in welcher Reihenfolge abgerufen werden sollen. Jede Kategorie von Informationen wird durch einen Datenbanknamen identifiziert.
Der groups
Befehl zeigt die Gruppen an, die aktuell auf Ihren Benutzer angewendet werden, und die Liste beginnt mit der aktuellen Primärgruppe, gefolgt von den zusätzlichen Gruppen ab dem Zeitpunkt der Anmeldung. Änderungen an den Datenquellen nach dem Zeitpunkt der Anmeldung werden in der angezeigten Liste nicht berücksichtigt.
Der groups username
Befehl wird Linux fragen zu berechnen , die Gruppen für den Benutzer, die es in erster Linie die Dateien mit tun /etc/password
und /etc/groups
dann den zusätzlichen Quellen. Dies spiegelt die aktuelle Situation der Systemdateien wider und entspricht möglicherweise nicht den aktuellen Gruppen , die zum Zeitpunkt der Anmeldung noch gültig sind.
Der groups username
Befehl führt möglicherweise zu einem anderen Ergebnis, wenn nicht alle Quellen verwendet werden, die der Anmeldevorgang zur Berechnung Ihrer zusätzlichen Gruppen verwendet hat. Dies ist anscheinend in Ihrem Fall der Fall. Auf diese Quellen kann möglicherweise nicht über Ihr Login zugegriffen werden oder der Befehl kann sie nur nicht aufrufen.
Die Verwendung des id username
Befehls kann zu besseren Ergebnissen führen, es kann jedoch auch nicht garantiert werden, dass er so vollständig ist wie der Anmeldevorgang. Der id
Befehl ist aktueller als der alte groups
Befehl und sollte präziser als dieser sein .
Obwohl der groups
Befehl ein genaues und korrektes Ergebnis liefert, haben Sie gut demonstriert, dass der groups username
Befehl nicht dazu in der Lage ist, dasselbe zu tun.
Ohne den Quellcode des groups
Befehls zu untersuchen, würde ich vermuten, dass die Implementierung des groups username
Befehls in Ihrer Linux-Distribution analysiert /etc/groups
, die in Ihrem Fall nichts enthielt, aber nicht verwendet /etc/nsswitch.conf
, von der alle Ihre zusätzlichen Gruppen stammten. Daher aufgeführt wird nur die primären Gruppennamen
jacob
.
Weitere Informationen finden Sie unter: