Provided by: manpages-de-dev_2.5-1_all 

BEZEICHNUNG
setgid - setzt die Gruppenidentität (GID)
ÜBERSICHT
#include <sys/types.h>
#include <unistd.h>
int setgid(gid_t gid);
BESCHREIBUNG
setgid() setzt die effektive Gruppen-ID des aufrufenden Prozesses. Falls der aufrufende Prozess
privilegiert ist (über die Capability CAP_SETGID in seinem Benutzernamensraum verfügt), werden auch die
reale und die gesicherte Gruppen-ID gesetzt.
Unter Linux ist setgid() wie die POSIX-Version mit dem _POSIX_SAVED_IDS-Merkmal implementiert. Das
ermöglicht einem setgid-Programm, das nicht vom Superuser aufgerufen wurde, alle seine Gruppenprivilegien
abzugeben, einige nicht privilegierte Arbeiten zu erledigen und dann auf sichere Art und Weise weiter die
ursprüngliche effektive Gruppen-ID zu nutzen.
RÜCKGABEWERT
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend
gesetzt.
FEHLER
EINVAL Die in gid angegebene Gruppen-ID ist in diesem Benutzer-Namensraum unzulässig.
EPERM Der aufrufende Prozess ist nicht privilegiert (verfügt nicht über die CAP_SETGID-Capability) und
gid entspricht nicht der realen Gruppen-ID oder der gespeicherten »set-group«-ID des aufrufenden
Prozesses.
KONFORM ZU
POSIX.1-2001, POSIX.1-2008, SVr4.
ANMERKUNGEN
Der ursprüngliche setgid()-Systemaufruf unterstützte nur 16-Bit-Gruppen-IDs. Danach führte Linux 2.4 mit
setgid32() die Unterstützung für 32-Bit-IDs hinzu. Die Glibc-Wrapperfunktion setgid() behandelt die
Unterschiede zwischen den Kernel-Versionen transparent.
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 für die verschiedenen Systemaufrufe, die die UIDs und GIDs der Prozesse ändern. Diese
Wrapper-Funktionen (darunter die für setgid()) verwenden eine signalbasierte Technik, um sicherzustellen,
dass bei der Änderung der Berechtigungsnachweise eines Threads auch alle anderen Threads des Prozesses
ihre Berechtigungsnachweise ändern. Für Details siehe nptl(7).
SIEHE AUCH
getgid(2), setegid(2), setregid(2), capabilities(7), credentials(7), user_namespaces(7)
KOLOPHON
Diese Seite ist Teil der Veröffentlichung 4.15 des Projekts Linux-man-pages. Eine Beschreibung des
Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
sich unter https://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Stefan Janke <gonzo@burg.studfb.unibw-
muenchen.de>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann
<mario.blaettermann@gmail.com> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an
<debian-l10n-german@lists.debian.org>.
Linux 15. September 2017 SETGID(2)