[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