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