setgid(2) System Calls Manual setgid(2) BEZEICHNUNG setgid - setzt die Gruppenidentitat (GID) BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include int setgid(gid_t gid); BESCHREIBUNG setgid() setzt die effektive Gruppen-ID des aufrufenden Prozesses. Falls der aufrufende Prozess privilegiert ist (genauer: uber die Capability CAP_SETGID in seinem Benutzernamensraum verfugt), werden auch die reale und die gespeicherte set-group-ID gesetzt. Unter Linux ist setgid() wie die POSIX-Version mit dem _POSIX_SAVED_IDS-Merkmal implementiert. Das ermoglicht einem set-group-ID-Programm, das nicht set-user-ID-root ist, alle seine Gruppenprivilegien abzugeben, einige nicht privilegierte Arbeiten zu erledigen und dann auf sichere Art und Weise weiter die ursprungliche effektive Gruppenkennung zu nutzen. RUCKGABEWERT Bei Erfolg wird Null zuruckgegeben. Bei einem Fehler wird -1 zuruckgegeben und errno gesetzt, um den Fehler anzuzeigen. FEHLER EINVAL Die in GID angegebene Gruppenkennung ist in diesem Benutzer-Namensraum unzulassig. EPERM Der aufrufende Prozess ist nicht privilegiert (verfugt nicht uber die CAP_SETGID-Capability in seinem Benutzernamensraum) und gid entspricht nicht der realen Gruppenkennung oder der gespeicherten set-group-ID des aufrufenden Prozesses. VERSIONEN Unterschiede C-Bibliothek/Kernel Auf der Kernelebene sind Benutzer- und Gruppenkennungen Attribute pro Thread. POSIX verlangt aber, dass sich alle Threads in einem Prozess die gleichen Berechtigungsnachweise teilen. Die NPTL-Threading-Implementierung behandelt die POSIX-Anforderungen durch Bereitstellung von Wrapper-Funktionen fur die verschiedenen Systemaufrufe, die die UIDs und GIDs der Prozesse andern. Diese Wrapper-Funktionen (darunter die fur setgid()) verwenden eine signalbasierte Technik, um sicherzustellen, dass bei der Anderung der Berechtigungsnachweise eines Threads auch alle anderen Threads des Prozesses ihre Berechtigungsnachweise andern. Fur Details siehe nptl(7). STANDARDS POSIX.1-2008. GESCHICHTE POSIX.1-2001, SVr4. Der ursprungliche setgid()-Systemaufruf unterstutzte nur 16-Bit-Gruppen-IDs. Danach fuhrte Linux 2.4 mit setgid32() die Unterstutzung fur 32-Bit-IDs hinzu. Die Glibc-Wrapperfunktion setgid() behandelt die Unterschiede zwischen den Kernel-Versionen transparent. SIEHE AUCH getgid(2), setegid(2), setregid(2), capabilities(7), credentials(7), user_namespaces(7) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Stefan Janke , Martin Eberhard Schauer und Mario Blattermann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 setgid(2)