[linux-l] Wrapper für $SHELL

Oliver Beck manofwar at web.de
Fr Jan 2 14:26:13 CET 2004


On Fri, 2 Jan 2004 22:48:24 +1100 (EST)
Peter Ross <Peter.Ross at alumni.tu-berlin.de> wrote:

> On Fri, 2 Jan 2004, Olaf 'Ruebezahl' Radicke wrote:
> 
> > On Friday 02 January 2004 01:35, Oliver Beck wrote:
> > > Hallo BeLUG,
> > >
> > > ist jemand eine Möglichkeit bekannt, der $SHELL zu befehlen, das
> > > jeder Befehl mit einem anderen Programm ausgeführt wird?
> > alias ls='systrace ls'
> 
> Das klappt natuerlich nur fuer ls. Wenn ich Oliver richtig verstanden
> habe, will er aber das bei _jedem_ Befehl machen, nicht nur bei ls.

Genau.

> Da ist doch schoen, wenn man die Sourcen fuer eine Shell hat:-)

Schöner ist es, wenn ich diese auch verstehen könnte ;)
Da meine C/C++-Kenntnisse nicht arg groß sind, kann ich mit Deinem
Vorschlag wenig anfangen.

> Ich habe die gerade fuer die /bin/sh von FreeBSD (nicht schlagen, das
> Prinzip gilt fuer alle Shells)
> 
> Hier wird das Kommando nach Parsen von der Funktion tryexec
> ausgefuehrt.
> 
> Hier mal kurz der Anfang:
> --- Schnipp ---
> 
> STATIC void
> tryexec(char *cmd, char **argv, char **envp)
> {
>         int e;
> 
>         execve(cmd, argv, envp);
>         e = errno;
> 
> --- Schnapp ---
> 
> .. (Fehlerbehandlung)
> 
> Vor das execve wuerde ich halt den gewuenschten Befehl setzen,
> entweder eingebaut oder aber ebenfalls ein execve

also müsste es, so wie ich es verstanden habe, folgendermaßen lauten:

	execve(/sbin/systrace, cmd, argv, envp);

Aber mit Sicherheit hab ich das falsch verstanden ;)

Aber vom Prinzip ist das eigentlich auch gar nicht nötig. Rein
theoretisch brauch ich doch nur ein Programm, das beim Login anstatt
/bin/$SHELL /bin/wrappershell aufruft. Dieser Wrapper setzt einzig und
allein den Befehl `/sbin/systrace -a /bin/$SHELL` ab. Ich hab das mit
einem kleinen Skript versucht, bekam beim login aber "Cannot execute
/bin/wrappershell: Fehler im Format der Programmdatei".
Ich denke mal, das eine ELF/A.OUT-Binary erwartet wird, was ein Skript
ja nun mal nicht ist...


MfG/Best Regards Oliver Beck

-- 
 /"\ -ASCII-Ribbon-Campaign- |
 \ /    Against HTML Mail    | -Linux on an VIA EPIA-M9000-
  X      Against nontext     |    http://epia.std-err.de
 / \       attachments       |        (german only)



Mehr Informationen über die Mailingliste linux-l