User Tools

Site Tools


ubuntu:setuid

setUID

SetUid C source

setuidtest.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main(void)
{
    int current_uid = getuid();
    printf("My UID is: %d. My GID is: %dn\n", current_uid, getgid());
    system("/usr/bin/id");
    if (setuid(0))
    {
        perror("setuid");
        return 1;
    }
    //I am now root!
    printf("\nMy UID is: %d. My GID is: %dn\n", getuid(), getgid());
    system("/usr/bin/id");
    //Time to drop back to regular user privileges
    setuid(current_uid);
    printf("\nMy UID is: %d. My GID is: %dn\n", getuid(), getgid());
    system("/usr/bin/id");
    return 0;
}

Compile and chmod

gcc -o setuidtest setuidtest.c
chmod u+s setuidtest

Read from stdin

char buf[1];
 
while(read(0, buf, sizeof(buf))>0) {
   // read() here read from stdin charachter by character
   // the buf[0] contains the character got by read()
   ....
}
ubuntu/setuid.txt · Last modified: 2018/02/18 05:54 by tschulz