2017-03-28 3 views
0

Wir haben viele Benutzer su in dem gleichen Konto und ich möchte verfolgen, welche Befehle jeder von ihnen ohne die Ausgaben dieser Befehle ausgeführt wird.Wie loggen Benutzereingaben

Ich versuchte Rohrleitung su tee, die gut funktioniert, außer es gibt mir auch die Ausgabe. script tat das gleiche. Eine andere Lösung, die ich ausprobiert habe, war strace, aber beide geben mir Tastenanschläge, die Passwörter erfassen können UND sagt mir nicht, was in Subshells passiert oder zumindest konnte ich nicht herausfinden, wie man es richtig benutzt. Ich habe auch alle Arten von interessanten Umleitungen versucht, aber alle vorgeschlagenen Lösungen waren für bash, während ich mit tcsh ... Ich möchte nicht einen Keylogger verwenden, weil ich nicht versehentlich ein Passwort erfassen möchte, ich realisiere dies bedeutet dass ich nicht weiß, was Leute tun, wenn sie Texteditoren starten, aber ich kann damit leben.

die perfekte Lösung wäre, das "Echo" zu erfassen, das ist das Zeug, das der Benutzer an die Shell "sendet", wenn er zurückkommt, aber ich habe es nicht geschafft, eine gute Frage zu formulieren, damit Google hilfreich ist diese Front. könnte mir jemand in die richtige richtung zeigen?

* berücksichtigen, dass ich Rootrecht nicht

bearbeiten haben: leider unsere Version von sudo ist < 1.7.4p4

+1

Dies ist ein Job für [** 'sudo' **] (https://www.sudo.ws/). Ich empfehle Ihnen, dass Ihr Administrator alle Benutzer, die privilegierten Zugriff benötigen, in eine Gruppe einweist, sudo mit den entsprechenden Befehlsaliasnamen konfiguriert und alle Kennwörter auf dem System ändert, die freigegeben wurden. Passwörter sind wie Kaugummi. Sie sollten für sich behalten werden, und eine klebrige Verwirrung verursachen, wenn Sie geteilt werden. – ghoti

+0

@ghoti wir eigentlich 'sudo su' das Konto. Ich verstehe, dass/var/log/secure soll halten was ich suche, aber ohne Zugriff auf root hilft mir das nicht: \ – Nullman

Antwort

0

sudo su ist nicht viel besser als su allein, aber Sie könnten Sehen Sie sich die E/A-Protokollierungsfunktionen an, die über die LOG_INPUT und LOG_OUTPUT Tags in der Manpage sudoers(5) aktiviert wurden.

log_input

    Wenn gesetzt, sudo den Befehl in einer Pseudo-tty laufen und melden Sie sich alle Benutzereingaben. Wenn der Standardeingang nicht mit dem Tty des Benutzers verbunden ist, weil der Befehl aufgrund einer E/A-Umleitung Teil einer Pipeline ist, wird dieser Eingang ebenfalls in einer separaten Protokolldatei gespeichert .

    Die Eingabe wird in das Verzeichnis der iolog_dir Option angegeben protokolliert (/var/log/sudo-io Standardeinstellung) unter Verwendung einer eindeutigen Sitzungs-ID , die in der normalen sudo Protokollzeile enthalten ist, mit TSID= vorangestellt. Die iolog_file Option kann verwendet werden, um das Format der Sitzungs-ID zu steuern.

    Beachten Sie, dass Benutzereingaben vertrauliche Informationen wie Passwörter enthalten können (auch wenn sie nicht auf dem Bildschirm angezeigt werden), die unverschlüsselt in der Protokolldatei gespeichert werden. In den meisten Fällen genügt es, die Befehlsausgabe über log_output zu protokollieren.

log_output

    Wenn gesetzt, wird sudo den Befehl in einem pseudo tty laufen und alle Ausgangs protokollieren, die an den Bildschirm gesendet wird, ähnlich zu dem Skript (1) Befehl. Wenn die Standardausgabe oder der Standardfehler aufgrund von E/A-Umleitung oder weil der Befehl Teil einer Pipeline ist, nicht mit dem tty des Benutzers verbunden ist, wird diese Ausgabe ebenfalls erfasst und in separaten Protokolldateien gespeichert.

    Die Ausgabe wird in das Verzeichnis der iolog_dir Option angegeben protokolliert (/var/log/sudo-io Standardeinstellung) unter Verwendung einer eindeutigen Sitzungs-ID , die in der normalen sudo Protokollzeile enthalten ist, mit TSID= vorangestellt. Die iolog_file Option kann verwendet werden, um das Format der Sitzungs-ID zu steuern.

    Ausgabeprotokolle können mit dem Dienstprogramm sudoreplay (8), , angezeigt werden, das auch zum Auflisten oder Durchsuchen der verfügbaren Protokolle verwendet werden kann.

Verwenden visudo Ihre `sudoers-Dateien zu ändern. Sie müssen diese beiden Tags zu beliebigen sudo-Einträgen hinzufügen, die Berechtigungen für Gruppen bereitstellen. Zum Beispiel:

%admins   ALL=(ALL) NOPASSWD: LOG_INPUT: LOG_OUTPUT: ALL 

Sie werden auch die Protokollierung Standort mit der iolog_dir Option müssen. Zum Beispiel:

Beachten Sie, dass dies mindestens sudo Version 1.7.4p4 erfordert.

+0

ja, ich habe vergessen, dies zu erwähnen. Ich wollte seine Lösung versuchen, aber wir haben eine ältere Version von sudo – Nullman

+0

Zeit, um Sudo zu aktualisieren. – ghoti

+0

statische Projektumgebung, leider: \ ziemlich eine Beize – Nullman