如何記錄輸入的每個命令
如何記錄某人輸入到 shell 的每個命令?
如果您登錄到其他人的伺服器並且出現故障,或者其他人是否登錄到您的伺服器(有意或惡意),我會在保護自己的基礎上詢問。
即使是新手也可以繞過歷史記錄
unset history
或創建一個新的外殼來隱藏他們的踪跡。我很好奇高級 Linux 管理員如何跟踪輸入了哪些命令或對系統進行了哪些更改。
簽出auditd。如果你添加
-a exit,always -F arch=b64 -S execve -a exit,always -F arch=b32 -S execve
將
/etc/audit/audit.rules
記錄每個執行的命令。請參閱:https ://whmcr.com/2011/10/14/auditd-logging-all-commands/然後將其發送到系統日誌伺服器。
您可以使用腳本命令。此命令不包含在 POSIX 中,但您會發現將所有擊鍵以及輸出和錯誤消息儲存在文件中很有用。您可以稍後查看該文件。如果您正在做一些重要的工作並希望保留所有活動的日誌,則應在登錄後立即呼叫此命令:
$ script
腳本啟動,文件是 typescript
$ _ 注意這是另一個 shell——登錄 shell 的子
提示返回並且您現在在此處輸入的所有擊鍵(包括用於退格的擊鍵)都記錄在文件“typescript”中。錄製結束後,您可以通過輸入exit終止會話。
注意:如果您輸入script filename,會話將儲存在文件filename而不是typescript,即如果沒有指定特定文件名,則預設為 typescript 。
您現在可以使用cat filename或cat typescript(無論哪種情況)來查看記錄的會話。
如果您希望將新會話附加到舊文件,請使用: script -a 將新會話附加到打字稿,同樣的預設規則也適用於此處
這是系統管理員可以跟踪會話的一種方式。希望它提供了豐富的資訊和有用的資訊。乾杯!