GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kann ich vi-Aktivitäten protokollieren?

Wie protokollieren Sie ihre Aktivitäten gerade? Am einfachsten ist es, sie daran zu hindern, Shells von vi aus zu starten.

# vi /home/user/.exrc
set exrc
set shell=/bin/false
# chown root:root /home/user/.exrc
# chmod 644 /home/user/.exrc
# chattr +i /home/user/.exrc

Wenn Sie eine spezielle Shell verwenden, um ihre Befehle zu protokollieren, können Sie vi so ändern, dass nur diese Shell verwendet wird.


Sie können auch die Prozessabrechnung aktivieren ( s/kann/sollte/ !)

Sie können dann verwenden:

lastcomm(1)

um zu sehen, wie der Befehl ausgeführt wird und ob sie nach einem Fork ausgeführt wurden, mit oder ohne exec.

In Kombination mit einem Host-basierten IDS sollte Ihnen dies alles geben, was Sie brauchen, "damit des Königs Gerechtigkeit widerfährt".


Sprechen Sie über die Shell-Geschichte? vi-Shell-Modus (:sh ) startet die Standard-Shell des Benutzers. Wenn das bash ist, können Sie sicherstellen, dass die Verlaufsprotokollierung immer aktiviert ist, indem Sie die globale /etc/bashrc bearbeiten und Folgendes hinzufügen:

set HISTFILE=~/.bash_history
shopt -s histappend
PROMPT_COMMAND='history -a'

Dadurch wird sichergestellt, dass jeder Benutzerbefehl in einer Datei protokolliert, nicht überschrieben und jedes Mal aktualisiert wird, wenn der Shell-Prompt erscheint.

Beachten Sie, dass Benutzer dies in ihrem persönlichen ~/.bashrc überschreiben können Daher ist dies keine absolute Garantie dafür, dass eine Protokollierung erfolgt.

Einige Versionen von vi (wie nvi) unterstützen einen abgesicherten Modus, der den Shell-Zugriff deaktiviert, indem vi als nvi -S gestartet wird . Sie könnten einen globalen Alias ​​in /etc/bashrc setzen um diesen Modus auch standardmäßig zu erzwingen.

Beachten Sie, dass das Problem, dass Benutzer auf unerwartete Weise zur Shell gelangen, im Allgemeinen ein klassisches Unix-Problem ist. Es gibt keine Möglichkeit, dies vollständig zu deaktivieren. Das Beste, was Sie tun können, ist, den Zugriff standardmäßig einzuschränken. Ein erfahrener Benutzer (oder sogar ein Benutzer, der mit Google vertraut ist) kann diese Einschränkungen immer umgehen. Wenn zum Beispiel ein Benutzer nicht möchte, dass sein Shell-Verlauf protokolliert wird, kann er einfach eine neue Kopie der Shell mit den Optionen ausführen, die er verwenden möchte.

Hier ist eine großartige Beschreibung, wie man die Protokollierung in Bash erzwingt und wie die Protokollierung umgangen werden kann.

Haben Sie schließlich darüber nachgedacht, einfach mit dem Benutzer zu sprechen, um festzustellen, was er tut? In 99 % der Fälle kann eine einfache verbale Kommunikation jede Verwirrung beseitigen. Wenn Sie die Aktivitäten dieses Benutzers protokollieren, weil Sie ihm nicht vertrauen, können Sie vielleicht mit ihm über Ihre Bedenken sprechen.


Linux
  1. Kann ein Prozess unabhängig von einer Shell ausgeführt werden?

  2. Kann eine .sh-Datei Malware sein?

  3. Wie kann ich jemandem sicher eine Muschel geben?

  4. Kann der Init-Prozess ein Shell-Skript in Linux sein?

  5. Wie kann ich das Verzeichnis /var/log verschieben

So erstellen Sie eine Rsyslog-Konfiguration für die zentrale Protokollierung

Python-Protokollierung - Speicherort der Protokolldateien überprüfen?

Wie kann ich eine Division mit Variablen in einer Linux-Shell durchführen?

Wie finde ich meine Shell-Version mit einem Linux-Befehl?

Kann Windows anstelle von cmd eine Linux-Shell verwenden?

Kann ich von der Linux-Shell aus eine Verbindung zu einem Windows-Computer herstellen?