Ich möchte die Verlaufseinstellungen für alle Benutzer auf den von mir verwalteten Systemen ändern. Ich möchte, dass es die Informationen vom Verbindungsterminal wie von enthältwho
sysadmin:/ # who
sysadmin pts/0 Mar 26 07:11 (sysadmin.doofus.local)
Derzeit ändere ich meinen Verlauf folgendermaßen. Ich weiß, dass viele dieser Einstellungen hier mehrmals behandelt wurden. Ich habe diesen Code jedoch vor langer Zeit aus " Linux System Administration Recipes by: Juliet Kemp " abgerufen.
shopt -s histappend
PROMPT_COMMAND='history -n;history -a'
HISTSIZE=100000
HISTFILESIZE=100000
HISTTIMEFORMAT="%m/%d/%y %T "
shopt -s histappend
Behebt das Problem, wenn mehrere Terminals geöffnet sind. Informationen können verloren gehen.
PROMPT_COMMAND='history -n;history -a'
wird erweitert, um das Anhängen des Verlaufs in Echtzeit über mehrere Terminals hinweg zu ermöglichen.
HISTSIZE=100000
HISTFILESIZE=100000
verlängert die history
Retentionsmenge
HISTTIMEFORMAT="%m/%d/%y %T
"stellt jeder Zeile der Geschichte einen Zeitstempel voran
Was Sie normalerweise bekommen history
835 ls
836 cd ..
Meine geänderten aktuellen history
Ergebnisse
5853 03/26/12 07:16:49 ls
5854 03/26/12 07:16:50 ll
Die Rückkehr von history
würde ich gerne sehen
5853 03/26/12 07:16:49 sysadmin.doofus.local ls
5854 03/26/12 07:16:50 sysadmin.doofus.local ll
001 03/26/12 05:11:29 demo_user.doofus.local cd
002 03/26/12 05:11:30 demo_user.doofus.local ll
Ich bin nicht "verheiratet", den DNS
Namen zu sehen . Ich würde es nur dort haben wollen, wenn es von who
einem anderen Ort abgerufen wird, ohne dass eine Suche oder Abfrage jeglicher Art durchgeführt werden muss. Ich würde mich über die IP-Adresse freuen.
002 03/26/12 05:11:30 192.168.0.2 ll
Warum? Ich verwalte mehrere Systeme, auf denen eine Benutzer-ID, die mehrere Benutzer derselben Gruppe gemeinsam nutzen, ihre täglichen Aufgaben erledigt. Dies würde es mir ermöglichen, ihren tatsächlichen Standort und den tatsächlichen Benutzer innerhalb der Organisation mit dem zu korrelieren, was sie in der Geschichte getan haben.
Ich bin mir bewusst, dass dies nicht optimal ist und möchte es ändern, aber wenn Sie auf einem Schiff von der Größe eines Kreuzfahrtschiffes sind, versuchen Sie nicht, Haarnadelkurven zu drehen. (Hinweis: Wenn Sie dies tun, versuchen die Passagiere, Sie über Bord zu werfen.)
Bis ich sie auf eine bessere Lösung migrieren kann, möchte ich diese Tracking-Funktion haben.
Wenn Sie Empfehlungen dazu haben, was ich derzeit für meine history
Änderungen verwende, würde ich es gerne hören.
Vielen Dank,
Bearbeiten: 1
Ich möchte keine anderen Programme ausführen oder zusätzliche "im Rahmen der Vernunft" konfigurieren müssen.
Ich möchte 0
Overhead hinzufügen , wenn ich hinzufügen muss, muss es klein sein.
Ich vertraue meinen Benutzern, ich möchte nur (sollte etwas passieren) sehen, welcher der 10 Benutzer, die sich mit demselben Benutzer am System angemeldet haben: Passwort hat es getan. Oder es könnte kein Benutzer gewesen sein, es könnte ein Vergessen cron
auf einem System gewesen sein, das als Benutzer eine Verbindung herstellt, um etwas zu tun. Oder eine Anwendung Bsp.: Die BMC Control-M
eine Verbindung herstellt ssh
und Aufgaben ausführt. Es geht weniger darum, "schlechte Benutzer" zu finden, als vielmehr darum, sie mit minimalem Aufwand aufzuspüren.
Bearbeiten 2:
Auf den Systemen werden SLES und RHEL ausgeführt
/proc
/dev
und Benutzerverzeichnisse aus /home
. Dies erhöht den Overhead. Während history
bereits aufgezeichnet wird und ihre Verbindungsinformationen dem System bekannt sind, das IP usw. verbindet. Diese Informationen können, falls sie nicht bereits "statisch" verfügbar sind, auf diese Weise festgelegt oder in einer Variablen oder Datei gespeichert und in die history
Datensätze und den Leistungstreffer eingegeben werden wäre sehr klein oder 0.
auditd
. Ich bin nicht sicher, ob die Protokolle Ihnen genügend Informationen geben. Die Schwierigkeit dessen, was Sie wollen, ist genau, warum gemeinsam genutzte Konten so verurteilt werden.
auditd
Es ist sehr ähnlich inotify
, wie Sie sagen müssen, was auf Änderungen überwacht werden soll. Einzelne Dateien, Verzeichnisse usw. Ich möchte nicht zu dieser Konfigurationsebene wechseln. In der Tat (ich tue), aber im Grunde ist es nicht so wichtig. Ich muss puppet
mit dem Zeug umgehen. auditd
kommt mit der zusätzlichen Last und Zeit zum Einrichten. Wenn ein Konto etwas ändert, möchte ich trotzdem in den Verlauf zurückblicken und sehen, wer oder was sich anmeldet und versucht.
PROMPT_COMMAND=
nur normale Befehle vor der nächsten Eingabeaufforderung ausgeführt werden, konnten Sie keine Funktion schreiben, die sed / awk aufruft und in der letzten Zeile der Verlaufsdatei arbeitet, um die Informationen hinzuzufügen. Rufen Sie dann diese Funktion auf PROMPT_COMMAND=
, um die Daten anzuhängen. Es wäre hackisch, sollte aber den Job machen.