/* FILE suid.c */ #include #include #include #include int main () { int pid; pid = fork(); if (pid < 0) { /* fork fallita */ printf("Errore in fork\n"); exit(1); } if (pid == 0) { /* figlio */ printf("real-user id = %d\n", getuid()); printf("effective-user id = %d\n", geteuid()); printf("Esecuzione di programma (con suid settato) che visualizza file (leggibile solo dal proprietario)\n"); execl("leggiPippo1", "leggiPippo1", (char *)0); printf("Errore in execl\n"); exit(1); } /* padre */ wait ((int *)0); printf("Terminato figlio\n"); exit (0); }