mercredi 5 septembre 2012

SUID bit

L'utilisation du bit SUID permet d'exécuter des scripts en se faisant passer pour un autre utilisateur. Cela peut être pratique sur sa machine personnelle pour appeler un script qui modifie la luminosité de l'écran... Mais aussi dangereux si la machine est utilisée par d'autres utilisateurs...

Attention, après recherche le bit suid ne fonctionne pas sur linux pour les scripts bash... Cela explique bien des choses que je ne comprenais pas !
$ cat hello.c
#include
#include

int main(int argc, char **argv[]) {
  printf("hello getuid=%d geteuid=%d\n", getuid(), geteuid());
}
$ gcc hello.c -o hello && sudo chown root:root hello && sudo chmod u+s hello && ls -l hello
-rwsr-xr-x 1 root root 8484 2012-09-05 13:43 hello
$ ./hello 
hello getuid=1000 geteuid=0
$ sudo chmod u-s hello
$ ./hello 
hello getuid=1000 geteuid=1000