Provided by: manpages-nl-dev_4.15.0-9_all bug

NAAM

       setuid - zet gebruiker identiteit

SAMENVATTING

       #include <unistd.h>

       int setuid(uid_t uid);

BESCHRIJVING

       setuid()  zet  het  effectieve gebruiker ID van het huidige proces. Als het huidige proces
       gerechtigd is (preciezer: als het  proces  de  CAP_SETUID  capaciteit  in  zijn  gebruiker
       naamruimte heeft), dan worden zowel de echte UID als de opgeslagen set-user-ID ook gezet.

       Onder  Linux  is  setuid()  geïmplementeerd zoals de POSIX versie met het _POSIX_SAVED_IDS
       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.

       Als de gebruiker root is of het programma is setuid  root,  dan  moet  er  extra  opgepast
       worden.  De  setuid() functie test het geldende uid van de aanroeper en als het de systeem
       beheerder is, worden alle met het proces verbonden ID's naar uid gezet.  Nadat  dit  heeft
       plaatsgevonden is het onmogelijk voor het programma om root privileges terug te krijgen.

       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  setuid()  niet  gebruiken.  U kunt dat voor elkaar krijgen met de aanroep
       seteuid().

EIND WAARDE

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

       Opmerking:  er  zijn gevallen waarbij setuid() kan falen, zelfs wanneer de aanroeper UID 0
       is; het is een grove  veiligheidsfout  om  de  terugkeer  waarde   van  setuid()  niet  te
       controleren.

FOUTEN

       EAGAIN De  aanroep  zou  de  echte  UID van de aanroeper veranderen (m.a.w., uid 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.

       EAGAIN uid  komt  niet  overeen met de echte gebruiker ID van de aanroeper en deze aanroep
              zou het aantal processen, behorende bij  de  echte  gebruikers  ID  uid,  boven  de
              resource  limiet  RLIMIT_NPROC  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 EAGAIN in execvd(2).

       EINVAL De gebruikers ID opgegeven in uid is niet geldig in de gebruikers naamruimte.s

       EPERM  De gebruiker is niet gerechtigd (Linux: heeft niet de CAP_SETUID capaciteit in zijn
              gebruikers naamruimte) en uid komt niet overeen met de echte UID of  de  opgeslagen
              set-user-ID van het aanroepende proces.

VOLDOET AAN

       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.

OPMERKINGEN

       Linux gebruikt het idee van bestandsysteem-gebruiker-ID, normaal is dat hetzelfde als  het
       geldende gebruiker ID. De setuid() aanroep zet ook de bestandssysteem gebruiker ID van het
       huidige proces. Zie setfsuid(2).

       Als uid verschillend is van het oude geldende uid, dan  zal  het  proces  geen  core-dumps
       mogen achterlaten.

       De  originele  Linux  setuid()   systeem aanroep ondersteunde alleen 16-bit gebruiker IDs.
       Vervolgens, voegde Linux 2.4  setuid32()  toe voor 32-bit  IDs  ondersteuning.   De  glibc
       setuid()  omwikkel functies handelt de variaties in kernel versies transparant af.

   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 setuid() 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 nptl(7).

ZIE OOK

       getuid(2),   seteuid(2),   setfsuid(2),   setreuid(2),   capabilities(7),  credentials(7),
       user_namespaces(7)

COLOFON

       Deze  pagina  is  onderdeel  van  release  5.13  van  het  Linux  man-pages-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.

VERTALING

       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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.