# 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:

<div id="bkmrk-%23include-%3Cstddef.h%3E-"><div>```
<span class="co2">#include <stddef.h></span>
<span class="co2">#include <stdlib.h></span>
<span class="co2">#include <unistd.h></span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span> <span class="br0">{</span>
  execl<span class="br0">(</span><span class="st0">"/pfad/zum/script/script.sh"</span><span class="sy0">,</span> <span class="st0">"argument1"</span><span class="sy0">,</span> <span class="st0">"argument2"</span><span class="sy0">,</span> <span class="br0">(</span><span class="kw4">const</span> <span class="kw4">char</span> <span class="sy0">*</span><span class="br0">)</span> NULL<span class="br0">)</span><span class="sy0">;</span>
  <span class="kw1">return</span><span class="br0">(</span>EXIT_FAILURE<span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span>
```

</div></div>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.