[linux-l] shellbefehle loggen
Olaf Radicke
olaf_rad at gmx.de
Mo Mai 13 13:10:48 CEST 2002
On Mon, May 13, 2002 at 11:43:27AM +0200, Steffen Dettmer wrote:
> * Olaf Radicke wrote on Fri, May 10, 2002 at 13:51 +0000:
> > On Fri, May 10, 2002 at 09:46:15AM +0200, Ruwen Poljak wrote:
> > > ich suche ein tool welches shellebefehle in eine logdatei
> > > schreibt. wichtig wäre, das nur bestimmte shellbefehle mitgeloggt
> > > werden, also bsp. rm, oder mv, das müßte dann über eine
> > > configdatei steuerbar sein.
> >
> > Für jede offene Shell wird ein Divice angelegt. Das kann man
> > auslesen wie eine Datei.
>
> Wie meinst Du das? Meinst Du, daß man stdio durch eine named FIFO
> umlenkt und der Shell die FIFO als stdio gibt? Oder was für ein
> Device soll er anlegen?
Das Device wir von alleine angelegt.
Also:
1.) Drücke Strg-Alt-F1 und logg dich als User ein.
2.) Drücke Strg-Alt-F2 und logg dich als root ein.
3.) Dann gib "w" ein und du erhältst etwas diese Meldung:
--schnipp--
10:43am up 2:14, 7 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ol tty1 - 10:24am 5:03 0.14s 0.14s -bash
root tty2 - 10:24am 3:34 0.15s 0.04s bash
--schnapp--
4.) Dann gib als root auf tty2 " cat /dev/tty1" ein
5.) Dann Drücke Strg-Alt-F1 und gib z.B. ein "Das liest der root".
6.) Drücke Strg-Alt-F2 da wird dann jetz stehen "Das liest der root".
Klappt aber auch nur manchmal - weiß der Teufel warum.
>
> > Denkbar währe also ein Perl-Skript das im ersten Schritt per
> > Bashbefehl "w" guckt wer ist eingelockt, wer hat welches
> > Divice.
>
> Na ja, bloß dann hat die Shell ja i.d.R. ein Terminal, da kann
> man ja dann nichts mehr dazwischen hängen.
Schein bar doch.
> > Als Zweites, in das Divice guckt und alles verwirft bis
> > "Mein-Schlüssel-Word" kommt und dann mitschreibt ...
>
> Das wird verdammt kompliziert zu parsen. Ich kann mir nicht
> vorstellen, daß man auf dieser Ebene Kommandoabhängig filtern
> kann. Du kannst ja schreiben:
> ls="rm" && $ls filename
> und sowas. Oder ein Script starten. Ganz toll ist immer der
> Eintrag "mc" in solchen logs.
>
> > Es wird aber sehr knifflig die Fehler ab zu fangen.
>
> Ja, wieso?
>
Um einen Fehler abzufangen muss man erstmal eine Annamme
devinieren. Aber es kann ziemlich komische Dinge passiern
wenn man mit dem Divice rummurckst. Sieh Beispiel oben.
> > Der andere Weg könnte sein, die ".bash_history" auszuwerten.
>
> Die wird nur beim Beenden der Shell geschrieben, und das kann man
> auch einfach umgehen.
>
> Kommt auch sehr darauf an, was Du machen möchtest.
Ganz meine Zustimmung...
>Möchtest Du
> ein Log, falls ein Admin Mist macht (und man wissen möchte, wer
> es war)
Na wenn Admin "root" ist können wir uns das Alles sparen.
Mfg Olaf
Mehr Informationen über die Mailingliste linux-l