setuid

Top Page

Reply to this message
Author: Cazenave Frederic
Date:  
To: guilde
Subject: setuid
ref wrote:
>
>         Salut à tous !

Salut a tous,

J'aurai besoin d'un peu d aide pour comprendre correctement
le fonctionnement de la fonction setuid :

J ai fait le petit programme de test suivant

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <asm/io.h>

void main(void)
{
    int val,uid;
    uid = getuid();
    printf ("uid = %d\n",uid);
    setuid(geteuid());
    ioperm (0x3fb,1,1);
    val = inb(0x3fb);
    setuid(uid);
    printf ("uid = %d, val = 0x%x\n",getuid(),val);
    setuid(getuid());
    val = inb(0x3fb);
    printf ("uid = %d\n",getuid());
}


apres compilation avec -02 compile sous root, un utilisateur
lambda plante core dump
Si je fais un chmod +s, un utilisateur peut executer le programme
les uid changent mais quelque soit uid je peut faire
un "inb".

Pouvez vous me dire comment peut on donner l'autorisation
a un utilisateur lambda d'acceder à un port (registre interne)
sans pour autant mettre "trop" en danger la securite du systeme


Merci d'avance

Fred
donc