記錄重新啟動服務的用戶詳細信息

記錄重新啟動服務的用戶詳細信息

這和我前段時間提出的一個問題有關。

我想記錄有關誰在 Linux 上重新啟動特定服務的詳細資訊。

例如:

如果使用者 X 重新啟動 apache,那麼它將記錄使用者名稱、時間、服務(即 apache)和狀態(成功/失敗)。

我可以編寫一個小腳本並將其手動新增至服務啟動腳本。

但這是不可能的,因為我有數千台伺服器和數十個服務。

有沒有其他方法可以在不操作服務啟動腳本的情況下執行此操作?

答案1

我建議鎖定係統。要求使用者使用sudo,僅允許使用 執行特定命令sudo,並透過禁止sudo su和等內容來禁止執行任意命令sudo bash

sudo將記錄通過它執行的所有命令,當然包括服務重新啟動。在我的機器上,它記錄到/var/log/secure,只能由root.

然而,這並沒有給你你最想要的東西——成功或失敗。但是您可以使用包裝器腳本輕鬆實現額外的日誌記錄,您可以要求使用者使用該腳本而不是直接啟動服務 - 只要小心確保包裝器腳本的安全即可!

所以使用者會輸入:

sudo wrapper_script start service

或類似的東西。

請注意 sudo 日誌兩個都原始使用者和他們正在執行 sudo 操作的使用者(預設為 root)。

相關內容