Linux

我可以在伺服器上的所有使用者中搜尋 bash 歷史記錄嗎?

  • October 4, 2017

我想查看跨多個使用者帳戶在 Linux 伺服器上執行的所有 bash 命令。我使用的特定發行版是 CentOS 5.7。有沒有辦法在伺服器上全域搜尋 .bash_history 文件,或者它會是一個更本土的過程locate | cat | grep?(我只是打了個寒顫)。

用於getent列舉主目錄。

getent passwd |
cut -d : -f 6 |
sed 's:$:/.bash_history:' |
xargs -d '\n' grep -s -H -e "$pattern" 

如果您的主目錄位於眾所周知的位置,則可能很簡單

grep -e "$pattern" /home/*/.bash_history

當然,如果使用者使用不同的 shell 或不同的值HISTFILE,這不會告訴你太多。這也不會告訴您未通過 shell 執行的命令,或有關別名和函式以及現在已刪除的外部命令,這些命令在使用者的$PATH. 如果你想知道使用者執行了哪些命令,你需要程序記帳或一些更高級的審計系統;請參閱監視我的電腦上的活動。,如何檢查一個程序在完成後執行了多長時間?.

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