Linux

如何跟踪在終端中執行的命令(沒有 bash_history)

  • June 4, 2015

我正在編寫一個跟踪使用者活動的程序,並且基本上試圖自動化可能的事情。

我目前正在嘗試從命令行監視使用者經常使用的程序。但僅僅知道是不夠的,我需要這些命令執行時間、工作目錄等方面的數據。

我目前的解決方案是一組 python 腳本,在啟動時,通過 PATH 並為 PATH 中找到的每個程序製作一個虛擬 python 腳本。當使用者嘗試使用這些命令時,這些腳本會被呼叫(通過將路徑添加到 PATH 中),每個這樣的腳本都將其名稱和參數傳遞給另一個記錄資訊的腳本,然後呼叫最初輸入的任何內容終端(通過更改路徑)。這是一個相當混亂的解決方案。我確信有一些直接的方法可以做到這一點。

另外,如果我能獲得實時(或幾乎實時)執行的命令的數據,那就太好了。

你看過auditd嗎?如果沒有看到這個關於 Linux 審計系統的幻燈片。它確實提供了您所描述的大多數功能,並且以更加標準和簡單的方式提供。

http://people.redhat.com/sgrubb/audit/audit_ids_2011.pdf

引用自:https://unix.stackexchange.com/questions/207587