SuidBit auf Scripte funktioniert nicht

Linux verhindert die Ausführung von Scripten mit gesetztem SuidBit, nur kompilierte Programme sind erlaubt. Wäre es anders könnte z.B. ein Script mit gesetztem SuidBit auf root durch den Besitzer ja nach belieben geändert und dann als root ausgeführt werden.

Soll nun trotzdem ein Script (Bash, Python, etc) als andere Benutzer ausgeführt werden, hilft z.B. folgendes kleine C-Programm:

#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
int main(void) {
  execl("/pfad/zum/script/script.sh", "argument1", "argument2", (const char *) NULL);
  return(EXIT_FAILURE);
}

Das Programm einfach mit „gcc -o script-exec script-exec.c“ kompilieren und mittels „chmod +s script-exec“ das SuidBit setzen. Mit chown noch dem passenden Besitzer einstellen.

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
F T X C U