setgid(2) System Calls Manual setgid(2)

setgid - zet groep identiteit

Standard C bibliotheek (libc, -lc)

#include <unistd.h>
int setgid(gid_t gid);

setgid() zet het geldende groep ID van het aanroepende proces. Als het aanroepende proces is geprivilegieerd (preciezer: heeft de CAP_SETGID capaciteit in zijn user namespace), dan worden de echte GID en bewaarde set-group-ID ook gezet.

Onder Linux is setgid() verwezenlijkt zoals de POSIX versie met de _POSIX_SAVED_IDS uitrusting. Dit status een zet-gid (anders dan root) toe al zijn groep privileges te laten vallen, wat ongepriveligieerd werk te doen en dan het originele geldende groep ID weer op te pakken op een veilige manier.

Bij succes wordt nul teruggegeven. Bij falen wordt -1 teruggegeven en wordt errno overeenkomstig gezet.

De groep ID zoals opgegeven in gid is niet geldig in deze user namespace.
Het aanroepende proces heeft geen privilege (heeft niet de CAP_SETGID capaciteit in zijn user namespace), en gid past niet op het echte groep ID of bewaarde set-group-ID van het aanroepende proces.

Op kernel niveau, zijn gebruiker ID´s en groep ID´s een per-thread attribute. Hoewel POSIX vereist dat alle threads in een proces dezelfde identificatie hebben. De NPTL threading implementaties voldoen aan de POSIX eis door omwikkel functies voor de verschillende systeem aanroepen die de UID´s en GID´s veranderen te implementeren. Deze omwikkel functies (inclusief die voor setgid()) gebruiken een op een signaal gebaseerde techniek om te verzekeren dat wanneer in een thread de identificatie verandert, alle andere threads in het proces ook hun identificatie veranderen. Voor details zie nptl(7).

POSIX.1-2008.

POSIX.1-2001, SVr4.

De originele Linux setgid() systeem aanroep ondersteunde alleen 16-bit groep ID´s. Nadien voegde Linux 2.4 setgid32() toe ondersteunende 32-bit ID´s. De glibc setgid() omwikkel functie handelt de variaties in kernel versies transparant af.

getgid(2), setegid(2), setregid(2), capabilities(7), credentials(7), user_namespaces(7)

De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.

2 mei 2024 Linux man-pages 6.8