.\" -*- coding: UTF-8 -*- .\" Copyright (C), 1994, Graeme W. Wilford (Wilf). .\" and Copyright (C) 2010, 2014, 2015, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Fri Jul 29th 12:56:44 BST 1994 Wilf. .\" Changes inspired by patch from Richard Kettlewell .\" , aeb 970616. .\" Modified, 27 May 2004, Michael Kerrisk .\" Added notes on capability requirements .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH setuid 2 "2 mei 2024" "Linux man\-pages 6.8" .SH NAAM setuid \- zet gebruiker identiteit .SH BIBLIOTHEEK Standard C bibliotheek (\fIlibc\fP, \fI\-lc\fP) .SH SAMENVATTING .nf \fB#include \fP .P \fBint setuid(uid_t \fP\fIuid\fP\fB);\fP .fi .SH BESCHRIJVING \fBsetuid\fP() zet het effectieve gebruiker ID van het huidige proces. Als het huidige proces gerechtigd is (preciezer: als het proces de \fBCAP_SETUID\fP capaciteit in zijn gebruiker naamruimte heeft), dan worden zowel de echte UID als de opgeslagen set\-user\-ID ook gezet. .P Onder Linux is \fBsetuid\fP() geïmplementeerd zoals de POSIX versie met het \fB_POSIX_SAVED_IDS\fP kenmerk. Dit staat een set\-user\-ID programma (anders dan root) toe, al zijn gebruikers rechten te laten vallen, vervolgens niet\-gerechtigd werk uit te voeren, en dan het origineel geldende gebruikers ID opnieuw op een veilige manier in te zetten. .P Als de gebruiker root is of het programma is setuid root, dan moet er extra opgepast worden. De \fBsetuid\fP() functie test het geldende uid van de aanroeper en als het de systeem beheerder is, worden alle met het proces verbonden ID's naar \fIuid\fP gezet. Nadat dit heeft plaatsgevonden is het onmogelijk voor het programma om root privileges terug te krijgen. .P Dus een setuid\-root programma dat wenst om tijdelijk root privileges te laten vallen, de identiteit aan te nemen van een niet\-root gebruiker, en dan de root privileges te herwinnen, kan \fBsetuid\fP() niet gebruiken. U kunt dat voor elkaar krijgen met de aanroep \fBseteuid\fP(). .SH "EIND WAARDE" Bij succes wordt nul teruggegeven. Bij falen wordt \-1 teruggegeven en wordt \fIerrno\fP overeenkomstig gezet. .P \fIOpmerking\fP: er zijn gevallen waarbij \fBsetuid\fP() kan falen, zelfs wanneer de aanroeper UID 0 is; het is een grove veiligheidsfout om de terugkeer waarde van \fBsetuid\fP() niet te controleren. .SH FOUTEN .TP \fBEAGAIN\fP De aanroep zou de echte UID van de aanroeper veranderen (m.a.w., \fIuid\fP komt niet overeen met de echte UID van de aanroeper), maar er trad een tijdelijke fout op bij het toekennen van de benodigde data structuren in de kernel. .TP \fBEAGAIN\fP \fIuid\fP komt niet overeen met de echte gebruiker ID van de aanroeper en deze aanroep zou het aantal processen, behorende bij de echte gebruikers ID \fIuid\fP, boven de resource limiet \fBRLIMIT_NPROC\fP van de aanroeper brengen. Vanaf Linux 3.1 komt deze fout niet meer voor (nog steeds zouden robuuste applicaties op deze fout moeten controleren); zie de beschrijving van \fBEAGAIN\fP in \fBexecvd\fP(2). .TP \fBEINVAL\fP De gebruikers ID opgegeven in \fIuid\fP is niet geldig in de gebruikers naamruimte.s .TP \fBEPERM\fP De gebruiker is niet gerechtigd (Linux: heeft niet de \fBCAP_SETUID\fP capaciteit in zijn gebruikers naamruimte) en \fIuid\fP komt niet overeen met de echte UID of de opgeslagen set\-user\-ID van het aanroepende proces. .SH VERSIES .SS "C library/kernel verschillen" Op kernel niveau zijn gebruiker ID en groep ID een per\-thread attribute. Hoewel POSIX vereist dat alle threads van een proces dezelfde identiteit delen. De NPTL implementatie van threads implementeert de POSIX eis door in omwikkel functies te voorzien voor de diverse systeem aanroepen die de UID´s en GID´s veranderen. Deze omwikkel functies (inclusief die ene voor \fBsetuid\fP() gebruiken een op signalen gebaseerde techniek om er van zeker te zijn dat als een thread zijn identiteit verandert, alle andere threads van dat proces ook hun identiteit veranderen. Zie voor details \fBnptl\fP(7). .SH "VOLDOET AAN" POSIX.1\-2008. .SH GESCHIEDENIS POSIX.1\-2001, SVr4. .P .\" SVr4 documents an additional EINVAL error condition. Niet geheel compatibel met de 4.4BSD aanroep, die alle echte, opgeslagen en effectieve gebruiker ID´s zet. .P De originele Linux \fBsetuid\fP() systeem aanroep ondersteunde alleen 16\-bit gebruiker IDs. Vervolgens, voegde Linux 2.4 \fBsetuid32\fP() toe voor 32\-bit IDs ondersteuning. De glibc \fBsetuid\fP() omwikkel functies handelt de variaties in kernel versies transparant af. .SH OPMERKINGEN Linux gebruikt het idee van bestandsysteem\-gebruiker\-ID, normaal is dat hetzelfde als het geldende gebruiker ID. De \fBsetuid\fP() aanroep zet ook de bestandssysteem gebruiker ID van het huidige proces. Zie \fBsetfsuid\fP(2). .P Als \fIuid\fP verschillend is van het oude geldende uid, dan zal het proces geen core\-dumps mogen achterlaten. .SH "ZIE OOK" \fBgetuid\fP(2), \fBseteuid\fP(2), \fBsetfsuid\fP(2), \fBsetreuid\fP(2), \fBcapabilities\fP(7), \fBcredentials\fP(7), \fBuser_namespaces\fP(7) .PP .SH VERTALING De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema , Mario Blättermann en Luc Castermans . .PP Deze vertaling is vrije documentatie; lees de .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID. .PP Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar .MT debian-l10n-dutch@lists.debian.org .ME .