.\" -*- coding: UTF-8 -*- .\" Copyright (C), 1994, Graeme W. Wilford (Wilf). .\" and Copyright (C) 2010, 2014, 2015, Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" 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 "6 maart 2019" Linux "Linux Programmeurs Handleiding" .SH NAAM setuid \- zet gebruiker identiteit .SH SAMENVATTING \fB#include \fP .br \fB#include \fP .PP \fBint setuid(uid_t \fP\fIuid\fP\fB);\fP .SH BESCHRIJVING \fBsetuid\fP() zet het effectieve gebruiker ID van het huidige proces. Als het huidige proces geprivilegieerd 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. .PP 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 wat niet\-geprivilegieerd werk uit te voeren, en dan het origineel geldende gebruikers ID opnieuw op een veilige manier in te zetten. .PP 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. .PP 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. .PP \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 geprivilegieerd (Linux: heeft niet de \fBCAP_SETUID\fP capaciteit in zijn gebruikers naamruimte) en \fIuid\fP komt niet overeen met de echte UID of opgeslagen set\-user\-ID van het aanroepende proces. .SH "VOLDOET AAN" .\" SVr4 documents an additional EINVAL error condition. POSIX.1\-2001, POSIX.1\-2008, SVr4. Niet geheel compatibel met de 4.4BSD aanroep, die alle echte, opgeslagen en effectieve gebruiker ID´s zet. .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). .PP Als \fIuid\fP verschillend is van het oude geldende uid, dan zal het proces geen core\-dumps mogen achterlaten. .PP .\" 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. .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 "ZIE OOK" \fBgetuid\fP(2), \fBseteuid\fP(2), \fBsetfsuid\fP(2), \fBsetreuid\fP(2), \fBcapabilities\fP(7), \fBcredentials\fP(7), \fBuser_namespaces\fP(7) .SH COLOFON Deze pagina is onderdeel van release 5.10 van het Linux \fIman\-pages\fP\-project. Een beschrijving van het project, informatie over het melden van bugs en de nieuwste versie van deze pagina zijn op \%https://www.kernel.org/doc/man\-pages/ te vinden. .SH VERTALING De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema , Mario Blättermann en Luc Castermans . 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. Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar .MT debian-l10n-dutch@lists.debian.org .ME .