Die folgenden Links erläutern diese Konzepte in verschiedenen Kontexten. Ich habe ihre Definitionen gelesen, kann aber immer noch nicht sagen, wie sie zusammenhängen oder ob einige von ihnen gleich sind.
- Aktuelle Gruppen-ID
- Gruppen-ID
- Primäre und ergänzende Gruppen-IDs
- Effektive und echte Gruppen-IDs (auch auf Wikipedia )
Hier ist ein Beispiel für die Quelle meiner Verwirrung:
Laut man id
, wenn ich tippe id
, sollte ich bekommen, was sie effektive und echte Gruppen-IDs nennen.
id uid=501(joe) gid=501(joe) groups=501(joe), 100(users)
Jedoch Wikipedia bezieht sich auf die Ausgabe der id
unterscheiden zwischen primären und ergänzenden IDs. Darüber hinaus unterscheidet Wikipedia zwischen primären vs Zusatz und wirksam gegen reale Gruppen - IDs. Wie hängen diese Konzepte zusammen?
Stimmt es auch, dass die primäre Gruppen-ID = Gruppen-ID = aktuelle Gruppen-ID ist?
users
group
privileges
Amelio Vazquez-Reina
quelle
quelle
Antworten:
Sie mischen hier zwei verschiedene Unterscheidungen:
Die erste Unterscheidung bezieht sich darauf, wie Prozesse ausgeführt werden . Normalerweise wird ein Befehl / Programm mit den Rechten Ihres Benutzers ausgeführt. Die tatsächliche Gruppen-ID entspricht der primären Gruppe Ihres Benutzers. Dies kann durch einen Prozess geändert werden, um einige Aufgaben als Mitglied einer anderen speziellen Gruppe auszuführen. Dazu verwenden Programme die
setgid
Funktion, die ihre effektive Gruppen-ID ändert .Die zweite Unterscheidung bezieht sich auf Benutzer . Jeder Benutzer hat seine / ihre primäre Gruppe . Es gibt nur einen pro Benutzer und wird in der Ausgabe des Befehls als gid bezeichnet
id
. Ansonsten kann jeder Benutzer einer Reihe von Zusatzgruppen angehören - diese werden am Ende derid
Ausgabe aufgelistet .[Bearbeiten]:
Ich bin damit einverstanden, dass die Manpage für
id
hier etwas irreführend ist. Dies liegt wahrscheinlich daran, dass es sich um eine abgespeckte Version der Beschreibung handelt, die im Infodokument bereitgestellt wird. Führen Sie den Befehl ausinfo coreutils "id invocation"
(wie am Ende desid
Handbuchs vorgeschlagen), um ihn deutlicher anzuzeigen.quelle
newgrp
Befehl geändert werden - siehe den zweiten Absatz des Handbuchs in Ihrem ersten Link!Die Kernel-Ansicht
Konzeptionell gibt es drei Gruppen, zu denen ein Prozess gehört. Jede Menge ist eine Teilmenge der folgenden.
Aus historischen Gründen sind diese Sätze jeweils:
Normalerweise hat ein Programm eine einzelne Benutzer-ID. Wenn für die ausführbare Datei das Setuid- Modus-Bit gesetzt ist, verfügt das Programm über zwei Benutzer-IDs: Die effektive Benutzer-ID ist diejenige, die für Dateiberechtigungen und Benutzerbegrenzungen von Bedeutung ist und bestimmt, ob der Prozess als Root ausgeführt wird und so weiter. Der Prozess kann zwischen der effektiven und der realen Benutzer-ID wechseln, wenn er nicht ständig seine zusätzlichen Berechtigungen benötigt oder wenn er zwischen zwei Nicht-Root-Benutzern wechseln muss.
Der gleiche Mechanismus existiert für die Gruppe. Für Gruppen gibt es eine zusätzliche Funktion, die bei der Entwicklung des Systems nicht vorhanden war: Ein Prozess kann Mitglied einer beliebigen Anzahl von Gruppen sein. Dies sind die zusätzlichen Gruppen-IDs.
Die Benutzerdatenbankansicht
Sobald ein Benutzer authentifiziert ist, wechselt der Anmeldevorgang zu diesem Benutzer, kurz bevor die Shell des Benutzers (oder das vom Benutzer angeforderte Programm) gestartet wird. Kurz vor dem Wechsel zum gewünschten Benutzer (und dem Verlust der Root-Rechte) wechselt der Anmeldevorgang zu den gewünschten Gruppen.
In früheren Unix-Versionen konnte sich ein Prozess nur in einer einzelnen Gruppe befinden. Diese Gruppe ist die primäre Gruppen-ID des Benutzers, die (normalerweise
/etc/passwd
) in der Benutzerdatenbank gespeichert ist . Diese Gruppe wird zur tatsächlichen und effektiven Gruppen-ID der Shell oder eines anderen Programms, die durch den Anmeldevorgang gestartet werden.Heutzutage kann ein Prozess mehreren Gruppen angehören, sodass Benutzer auch mehreren Gruppen angehören können. Die Gruppendatenbank
/etc/group
enthält (normalerweise ) eine Liste von Benutzern für jede Gruppe. Diese Gruppen werden zu zusätzlichen Gruppen-IDs für das Programm, das durch den Anmeldevorgang gestartet wird.quelle
Viele andere ausgezeichnete Antworten hier, aber wenn Sie immer noch verwirrt sind wie ich, hier ist ein anderer Ansatz. Bitte beachte, dass ich nur ein Schüler dieses Stoffes bin, kein Meister , daher ist diese Antwort noch in Arbeit und nicht als solide Antwort zu betrachten, zumindest noch nicht. Betrachten Sie diese Antwort v0.2.
Gruppen sind einfach und komplex zugleich.
Schlüssel zu den unten verwendeten IDs:
Benutzer- und Gruppen-ID-Namen:
Wie Prozesse IDs erhalten:
1) Login authentifiziert den Benutzernamen und kehrt zurück
LuID
undLgID
von/etc/passwd
.2) Der erste Prozess richtet effektiv = real = login ein, dh
3) Gespaltene Kinder vererben
RuID
,EuID
,RgID
, undEgID
, (& möglicherweise gerettet & supp), jedochWenn in der Datei des neuen Programms, das ausgeführt werden soll, das (die) s U ID-Bit ( s U ID-Bit ( s U ID-Bit) gesetzt ist (sind), wird dies ab Datei wirksam:
EuID = FuID
Wenn das s g id-Bit ( s g id-Bit) in der Datei des auszuführenden neuen Programms gesetzt ist, wird es ab Datei wirksam gesetzt:
EgID = FgID
Hinweis: Die suid- und nosuid- Mount-Optionen des zugrunde liegenden Dateisystems gelten ebenfalls.
4a) Wenn s u id wurde verwendet , um eingestellte
EuID
, dannEuID
kann vorübergehend geändert werden (zB von der Wurzel degradiert), aber es ist erster ursprünglicher Wert in gespeichert wird ,OuID
so kann er später gestellt werden , falls gewünscht.4b) Wurde für die Einstellung s g id verwendet
EgID
,EgID
kann dies vorübergehend geändert werden (z. B. ein Downgrade von root), aber zuerst wird der ursprüngliche Wert gespeichert,OgID
damit er bei Bedarf später wiederhergestellt werden kann.Wenn eine Datei erstellt werden soll:
Zum Lesen öffnen:
Zum Schreiben öffnen:
Zur Ausführung öffnen:
Wenn eine Nachricht gesendet werden muss:
Referenzen: Mannausweise
Extra: Hier ist ein Hilfsprogramm, um Ihre / etc / group-Datei hübsch zu drucken:
quelle