[linux-l] Datum in Script verwenden
Volker Grabsch
vog at notjusthosting.com
Mo Apr 9 18:58:18 CEST 2007
On Mon, Apr 09, 2007 at 06:44:00PM +0200, Volker Grabsch wrote:
> > Warum sucht die Shell an dieser Stelle nicht den Suchpfad?
>
> Weil es nicht die Shell ist, die die #!-Zeile interpretiert,
> sondern der Kernel. Das wurde hier im Thread zumindest gesagt.
> Ich persönlich glaube das nicht, weil der Systemaufruf execl()
> keine Scripte mit #!-Zeile direkt ausführen kann.
Sorry, falsche Info. Es funktioniert doch. Ich hatte das falsch
in Erinnerung.
Das, was nicht funktionierte, war SUID bzw. SGID auf #!-Scripte.
Dies funktioniert nur bei "richtigen" Binaries. Schade, eigentlich.
Kennt jemand von euch den Grund dafür?
Arghh ... jetzt ist es mir selbst passiert. Aber wenigstens ist
es eine Sache, die mehr als 5 Sekunden Ausprobierzeit brauchte. ;-)
Hier mein Testfall für execl:
$ cat calltest.c
#include <unistd.h>
#include <stdio.h>
int main(int argc, void **argv)
{
execl("test.sh", "test.sh");
printf("Ausführung fehlgeschlagen!\n");
return 1;
}
$ cat test.sh
#!/bin/bash
echo "Test-Shellscript erfolgreich ausgeführt"
$ gcc calltest.c -o calltest
$ ./calltest
Test-Shellscript erfolgreich ausgeführt
Viele Grüße,
Volker
--
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR
Mehr Informationen über die Mailingliste linux-l