NAAM
setuid − zet gebruiker identiteit
OVERZICHT
#include <unistd.h>
int setuid(uid_t uid)
BESCHRIJVING
setuid zet het geldende gebruiker ID van het huidige proces. Als het geldende gebruiker-id van de aanroeper root is, dan worden de echte en de bewaarde gebruiker ID’s ook gezet.
Onder Linux is setuid gebouwd zoals de POSIX versie met de _POSIX_SAVED_IDS uitrusting. Dit status een setuid (anders dan root) programma toe, al zijn gebruikers privileges te laten vallen, wat on-gepriviligieerd werk te doen, en dan het originele geldende gebruikers ID opnieuw in te zetten op een veilige manier.
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 superuser 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 te herwinnen.
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 (niet-POSIX, BSD) aanroep seteuid.
TERUGGEEF WAARDE
Bij success wordt nul teruggegeven. Bij falen wordt −1 teruggegeven, en errno wordt naar behoren gezet.
FOUTEN
EPERM |
{toestemming} De gebruiker is niet de super-gebruiker, en uid kwam niet overeen met het geldende of bewaarde gebruiker ID van het aanroepende proces. |
VOLDOET AAN
SVr4, SVID, POSIX.1. Niet helemaal verenigbaar met de 4.4BSD aanroep, die de alle -echte, bewaarde en geldende- gebruiker ID’s zet. SVr4 beschrijft een extra EINVAL fouttoestand.
LINUX-EIGEN OPMERKINGEN
Linux gebruikt het idee van bestandsysteem-gebruiker-ID, normaal is dat hetzelfde als het geldende gebruiker ID. De setuid aanroep zet ook 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.
ZIE
getuid(2) {krijg uid}, setreuid(2) {zet*}, seteuid(2), setfsuid(2) {zet bestandsysteem uid}
VERTALING
Dit is een handleiding uit manpages-dev 1.29. Alles wat tussen ’{’..’}’ staat is aanvullende vertaling, en hoort niet bij de originele handleiding. Email naar <manpages-nl [AT] nl.org>.
$Id: setuid.2,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $