SETGID(2)

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. Wird diese Funktion durch den Superuser (mit der CAP_SETGID-Capability) aufgerufen, 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
At the kernel level, user IDs and group IDs are a per-thread attribute. However, POSIX requires that all threads in a process share the same credentials. The NPTL threading implementation handles the POSIX requirements by providing wrapper functions for the various system calls that change process UIDs and GIDs. These wrapper functions (including the one for setgid()) employ a signal-based technique to ensure that when one thread changes credentials, all of the other threads in the process also change their credentials. For details, see 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.04 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 http://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>.