Provided by: manpages-nl-dev_4.27.0-1_all bug

NAAM

       setreuid, setregid - zet echte en/of geldende gebruiker of groep ID

BIBLIOTHEEK

       Standard C bibliotheek  (libc, -lc)

SAMENVATTING

       #include <unistd.h>

       int setreuid(uid_t ruid, uid_t euid);
       int setregid(gid_t rgid, gid_t egid);

   Feature Test Macro´s eisen in  glibc (zie feature_test_macros(7)):

       setreuid(), setregid():
           _XOPEN_SOURCE >= 500
               || /* Since glibc 2.19: */ _DEFAULT_SOURCE
               || /* Glibc <= 2.19: */ _BSD_SOURCE

BESCHRIJVING

       setreuid() zet echte en geldende gebruiker ID's van het huidige proces.

       Opgeven  van een waarde van -1 voor of het echte of het geldende ID dwingt het systeem dat ID onveranderd
       te laten.

       Niet-geprivilegieerde processen mogen alleen het effectieve gebruiker ID naar het geldende gebruiker  ID,
       het effectieve gebruiker ID of het opgeslagen set-user-ID  zetten.

       On-geprivilegieerde  gebruikers  mogen  het  echte  gebruiker ID naar het geldende gebruiker ID zetten en
       andersom.

       Als het echte gebruiker ID veranderd wordt (i.e., ruid is niet -1) of het  geldende  gebruiker  ID  wordt
       naar een waarde gezet niet gelijk aan het vorige echte gebruiker ID, dan zal het bewaarde ID gezet worden
       naar het nieuwe geldende gebruiker ID.

       Volledig  analoog  zet  setregid()  echte  en  effectieve groep ID´s van het aanroepende proces, en alles
       hierboven is geldig met "groep" in plaats van "gebruiker".

EIND WAARDE

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

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

FOUTEN

       EAGAIN De aanroep zou de echte UID van de aanroeper veranderen (m.a.w., ruid 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 ruid komt niet overeen met de echte gebruiker ID van de aanroeper en deze aanroep zou  het  aantal
              processen, behorende bij de echte gebruikers ID ruid, 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 Een of meer van de doel gebruiker of groep ID´s is niet geldig in de gebruiker naamruimte.

       EPERM  De aanroepende proces is niet-geprivilegieerd (op Linux: heeft niet de noodzakelijke capaciteit in
              zijn gebruiker naamruimte: CAP_SETUID in het geval van setreuid(), of CAP_SETGID in het geval  van
              setregid())  en  een verandering anders dan (i) ruilen van het effectieve gebruiker (groep) ID met
              de echte gebruiker (groep) ID, of (ii) eentje zetten op de waarde van de ander of (iii) zetten van
              de effectieve gebruiker (groep) ID  op  de  waarde  van  het  opgeslagen  set-user-ID  (opgeslagen
              set-group-ID) werd gespecificeerd.

VERSIES

       POSIX.1 specificeert niet alle UID veranderingen die Linux toestaat voor een niet-geprivilegieerd proces.
       Met  setreuid() kan het effectieve gebruiker ID identiek gemaakt worden aan het echte gebruiker ID of het
       opgeslagen set-user-ID, en het is niet  gespecificeerd  of  een  niet-geprivilegieerd  proces  het  echte
       gebruiker  ID op het echte gebruiker ID, het echte groep ID of het opgeslagen set-user-ID mag zetten. Met
       setreuid() kan het echte groep ID verandert worden  naar  de  waarde  van  het  echte  groep  ID  of  het
       opgeslagen  set-group-ID.  De  precieze details omtrent welke ID veranderingen toegestaan worden variëren
       per implementatie.

       POSIX.1  specificeert  het  effect  van  deze  aanroepen  op  de  opgeslagen  set-user-ID  en  opgeslagen
       set-group-ID niet.

VOLDOET AAN

       POSIX.1-2008.

GESCHIEDENIS

       POSIX.1-2001, 4.3BSD (verschenen voor het eerst in 4.2BSD).

       Zetten van het effectieve gebruiker (groep) ID op het opgeslagen set-user-ID (opgeslagen set-group-ID) is
       mogelijk vanaf Linux 1.1.37 (1.1.38).

       De  originele  Linux setreuid()  en setregid()  systeem aanroepen ondersteunen alleen 16-bit gebruiker en
       groep IDs.  Vervolgens, voegde Linux 2.4 setreuid32()  en setregid32() toe voor 32-bit IDs ondersteuning.
       De glibc  setreuid()   en   setregid()   omwikkel  functies  handelen  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 setreuid() en setregid())   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

       getgid(2), getuid(2), seteuid(2), setgid(2), setresuid(2),  setuid(2),  capabilities(7),  credentials(7),
       user_namespaces(7)

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  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.

Linux man-pagina's 6.9.1                           2 mei 2024                                        setreuid(2)